rest: Add links to /v1 endpoint

This change adds links to /v1 endpoint and
return 200 instead of 400

Change-Id: I41a09a12a53d33cbcdd38c27e6f367ee2b4d5e79
Closes-bug: #1424627
This commit is contained in:
Mehdi Abaakouk 2015-08-07 09:28:48 +02:00
parent d735491ab6
commit c8fb2af7b9
2 changed files with 33 additions and 11 deletions

View File

@ -1174,13 +1174,33 @@ class CapabilityController(rest.RestController):
class V1Controller(object):
search = SearchController()
archive_policy = ArchivePoliciesController()
archive_policy_rule = ArchivePolicyRulesController()
metric = MetricsController()
resource = ResourcesController()
aggregation = Aggregation()
capabilities = CapabilityController()
def __init__(self):
self.sub_controllers = {
"search": SearchController(),
"archive_policy": ArchivePoliciesController(),
"archive_policy_rule": ArchivePolicyRulesController(),
"metric": MetricsController(),
"resource": ResourcesController(),
"aggregation": Aggregation(),
"capabilities": CapabilityController()
}
for name, ctrl in self.sub_controllers.items():
setattr(self, name, ctrl)
@pecan.expose('json')
def index(self):
return {
"version": "1.0",
"links": [
{"rel": "self",
"href": pecan.request.application_url + "/v1"}
] + [
{"rel": name,
"href": pecan.request.application_url + "/v1/" + name}
for name in sorted(self.sub_controllers)
]
}
class RootController(object):

View File

@ -38,11 +38,13 @@ tests:
$.versions[0].links[0].href: $SCHEME://$NETLOC/v1/
- name: root of v1
desc: https://bugs.launchpad.net/gnocchi/+bug/1424627
url: /v1
xfail: true
response_strings:
- some hypermedia
redirects: true
response_json_paths:
$.version: "1.0"
$.links.`len`: 8
$.links[0].href: $SCHEME://$NETLOC/v1
$.links[7].href: $SCHEME://$NETLOC/v1/search
- name: root of resource
url: /v1/resource