)
path_re = re.compile(r'stacks/([^/]+)/([^/]+)(.*)')
- HEX_ELEM = '[0-9A-Fa-f]'
- UUID_PATTERN = '-'.join([HEX_ELEM + '{8}', HEX_ELEM + '{4}',
- HEX_ELEM + '{4}', HEX_ELEM + '{4}',
- HEX_ELEM + '{12}'])
- uuid_re = re.compile(r'^' + UUID_PATTERN + '$')
-
def __init__(self, tenant, stack_name, stack_id, path=''):
'''
Initialise a HeatIdentifier from a Tenant ID, Stack name, Stack ID
self.PATH: path,
}
- @classmethod
- def is_uuid(cls, uuid):
- return HeatIdentifier.uuid_re.match(uuid)
-
@classmethod
def from_arn(cls, arn):
'''
import json
from heat.engine import identifier
-from heat.common import utils
@attr(tag=['unit', 'identifier'])
hi = identifier.HeatIdentifier('t', 's', 'i', 'p1/p2/p3')
self.assertEqual(hi._path_components(), ['p1', 'p2', 'p3'])
- def test_uuid_match(self):
- uuid = utils.generate_uuid()
- self.assertTrue(identifier.HeatIdentifier.is_uuid(uuid))
- self.assertFalse(identifier.HeatIdentifier.is_uuid('a' + uuid))
- self.assertFalse(identifier.HeatIdentifier.is_uuid(
- 'zzzzzzzz-zzzz-zzzz-zzzzzzzzzzzz'))
- self.assertFalse(identifier.HeatIdentifier.is_uuid(uuid + 'a'))
- for i in xrange(100):
- self.assertTrue(identifier.HeatIdentifier.is_uuid(
- utils.generate_uuid()))
-
@attr(tag=['unit', 'identifier'])
@attr(speed='fast')