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
stack_mapper.connect("stack_lookup",
"/stacks/{stack_name}",
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']
path = "{path:%s}" % '|'.join(subpaths)
stack_mapper.connect("stack_lookup_subpath",
'tenant_id': 'aaaa',
'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.m,
'/aaaa/stacks/teststack/resources',