Recognise arn: for REST stack lookup.
Note that the Routes mapper does brittle regexp fu to map parameters, hence using \x3A for matching a colon Fixes: Bug #1131759 Change-Id: I063bf9057782c1c0a3f809d4f8068e2594be264d
This commit is contained in:
parent
e64c536c41
commit
8939c3e524
@ -66,6 +66,11 @@ class API(wsgi.Router):
|
|||||||
stack_mapper.connect("stack_lookup",
|
stack_mapper.connect("stack_lookup",
|
||||||
"/stacks/{stack_name}",
|
"/stacks/{stack_name}",
|
||||||
action="lookup")
|
action="lookup")
|
||||||
|
# \x3A matches on a colon.
|
||||||
|
# Routes treats : specially in its regexp
|
||||||
|
stack_mapper.connect("stack_lookup",
|
||||||
|
r"/stacks/{stack_name:arn\x3A.*}",
|
||||||
|
action="lookup")
|
||||||
subpaths = ['resources', 'events']
|
subpaths = ['resources', 'events']
|
||||||
path = "{path:%s}" % '|'.join(subpaths)
|
path = "{path:%s}" % '|'.join(subpaths)
|
||||||
stack_mapper.connect("stack_lookup_subpath",
|
stack_mapper.connect("stack_lookup_subpath",
|
||||||
|
@ -1678,6 +1678,20 @@ class RoutesTest(unittest.TestCase):
|
|||||||
'tenant_id': 'aaaa',
|
'tenant_id': 'aaaa',
|
||||||
'stack_name': 'teststack'
|
'stack_name': 'teststack'
|
||||||
})
|
})
|
||||||
|
self.assertRoute(
|
||||||
|
self.m,
|
||||||
|
'/aaaa/stacks/arn:openstack:heat::6548ab64fbda49deb188851a3b7d8c8b'
|
||||||
|
':stacks/stack-1411-06/1c5d9bb2-3464-45e2-a728-26dfa4e1d34a',
|
||||||
|
'GET',
|
||||||
|
'lookup',
|
||||||
|
'StackController',
|
||||||
|
{
|
||||||
|
'tenant_id': 'aaaa',
|
||||||
|
'stack_name': 'arn:openstack:heat:'
|
||||||
|
':6548ab64fbda49deb188851a3b7d8c8b:stacks/stack-1411-06/'
|
||||||
|
'1c5d9bb2-3464-45e2-a728-26dfa4e1d34a'
|
||||||
|
})
|
||||||
|
|
||||||
self.assertRoute(
|
self.assertRoute(
|
||||||
self.m,
|
self.m,
|
||||||
'/aaaa/stacks/teststack/resources',
|
'/aaaa/stacks/teststack/resources',
|
||||||
|
Loading…
Reference in New Issue
Block a user