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])
|
||||
def index(self):
|
||||
host_url = '%s/%s' % (pecan.request.host_url, 'v1')
|
||||
Version(id='v1.0',
|
||||
v1 = Version(id='v1.0',
|
||||
status='CURRENT',
|
||||
link=common_types.Link(target_name='v1',
|
||||
href=host_url))
|
||||
return [v1]
|
||||
|
|
|
@ -15,6 +15,32 @@ from magnum import tests
|
|||
|
||||
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):
|
||||
response = self.app.get('/a/bogus/url', expect_errors=True)
|
||||
assert response.status_int == 404
|
Loading…
Reference in New Issue