Get the root version and v1 REST API working
HTTP GET / - returns version information HTTP GET /v1 - redirects to /v1/ HTTP GET /v1/ - bays, pods, services, containers URI Change-Id: I94d29ec0511853795363dfc8d4ac5d61fe2753cc
This commit is contained in:
parent
5036e84c5a
commit
a1343111aa
|
@ -48,7 +48,8 @@ class RootController(object):
|
||||||
@wsme_pecan.wsexpose([Version])
|
@wsme_pecan.wsexpose([Version])
|
||||||
def index(self):
|
def index(self):
|
||||||
host_url = '%s/%s' % (pecan.request.host_url, 'v1')
|
host_url = '%s/%s' % (pecan.request.host_url, 'v1')
|
||||||
Version(id='v1.0',
|
v1 = Version(id='v1.0',
|
||||||
status='CURRENT',
|
status='CURRENT',
|
||||||
link=common_types.Link(target_name='v1',
|
link=common_types.Link(target_name='v1',
|
||||||
href=host_url))
|
href=host_url))
|
||||||
|
return [v1]
|
||||||
|
|
|
@ -15,6 +15,32 @@ from magnum import tests
|
||||||
|
|
||||||
class TestRootController(tests.FunctionalTest):
|
class TestRootController(tests.FunctionalTest):
|
||||||
|
|
||||||
|
def test_version(self):
|
||||||
|
expected = [{'status': 'CURRENT',
|
||||||
|
'link': {'href': 'http://localhost/v1',
|
||||||
|
'target_name': 'v1'},
|
||||||
|
'id': 'v1.0'}]
|
||||||
|
response = self.app.get('/')
|
||||||
|
self.assertEqual(expected, response.json)
|
||||||
|
|
||||||
|
def test_v1_controller_redirect(self):
|
||||||
|
response = self.app.get('/v1')
|
||||||
|
self.assertEqual(302, response.status_int)
|
||||||
|
self.assertEqual('http://localhost/v1/',
|
||||||
|
response.headers['Location'])
|
||||||
|
|
||||||
|
def test_v1_controller(self):
|
||||||
|
expected = {'containers_uri': 'http://localhost/v1/containers',
|
||||||
|
'name': 'magnum',
|
||||||
|
'services_uri': 'http://localhost/v1/services',
|
||||||
|
'type': 'platform',
|
||||||
|
'uri': 'http://localhost/v1',
|
||||||
|
'bays_uri': 'http://localhost/v1/bays',
|
||||||
|
'description': 'magnum native implementation',
|
||||||
|
'pods_uri': 'http://localhost/v1/pods'}
|
||||||
|
response = self.app.get('/v1/')
|
||||||
|
self.assertEqual(expected, response.json)
|
||||||
|
|
||||||
def test_get_not_found(self):
|
def test_get_not_found(self):
|
||||||
response = self.app.get('/a/bogus/url', expect_errors=True)
|
response = self.app.get('/a/bogus/url', expect_errors=True)
|
||||||
assert response.status_int == 404
|
assert response.status_int == 404
|
Loading…
Reference in New Issue