API: support prefix query parameter consistently #1835
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of changes:
apiclient get
(#1836) supports prefix queries of the API, and this PR is needed to consistently support the?prefix=
parameter for all of the different data types - settings (which was already supported), services, configuration files, and os. (apiclient get
just queries/
but consistency is good.)Testing done:
Existing and new unit tests pass.
Started a 1.4.1 AMI and a new one with these changes.
The following queries return exactly the same response (after keys are sorted) modulo the build version, IP address, and update seed, as expected:
apiclient -u /
apiclient -u /settings
apiclient -u /settings?prefix=m
shows motd, metrics, etc.apiclient -u /settings?prefix=motd
shows motdapiclient -u /settings?prefix=x
shows nothingapiclient -u /services
apiclient -u /configuration-files
apiclient -u /os
The following queries used to ignore the unknown
prefix
query and return all results, but now properly restrict to the given prefix:apiclient -u /?prefix=x
shows nothingapiclient -u /?prefix=s
shows settings and servicesapiclient -u /services?prefix=x
shows nothingapiclient -u /services?prefix=m
shows motd and metricdogapiclient -u /configuration-files?prefix=x
shows nothingapiclient -u /configuration-files?prefix=m
shows motd and metricdog-tomlapiclient -u /os?prefix=x
shows nothingapiclient -u /os?prefix=a
shows archTerms of contribution:
By submitting this pull request, I agree that this contribution is dual-licensed under the terms of both the Apache License, version 2.0, and the MIT license.