Merge "Add SupportStatus class for resources"

This commit is contained in:
Jenkins 2013-12-05 12:06:21 +00:00 committed by Gerrit Code Review
commit 942ae95ed5
2 changed files with 48 additions and 0 deletions

View File

@ -90,6 +90,29 @@ class Metadata(object):
rs.update_and_save({'rsrc_metadata': metadata})
class SupportStatus(object):
SUPPORT_STATUSES = (UNKNOWN, SUPPORTED, PROTOTYPE, DEPRECATED,
UNSUPPORTED) = ('UNKNOWN', 'SUPPORTED', 'PROTOTYPE',
'DEPRECATED', 'UNSUPPORTED')
def __init__(self, status=SUPPORTED, message=None, version=None):
if status in self.SUPPORT_STATUSES:
self.status = status
self.message = message
self.version = version
else:
self.status = self.UNKNOWN
self.message = _("Specified status is invalid, defaulting to"
" %s") % self.UNKNOWN
self.version = None
def to_dict(self):
return {'status': self.status,
'message': self.message,
'version': self.version}
class Resource(object):
ACTIONS = (INIT, CREATE, DELETE, UPDATE, ROLLBACK, SUSPEND, RESUME
) = ('INIT', 'CREATE', 'DELETE', 'UPDATE', 'ROLLBACK',
@ -126,6 +149,8 @@ class Resource(object):
# If set to None no limit will be applied.
physical_resource_name_limit = 255
support_status = SupportStatus()
def __new__(cls, name, json, stack):
'''Create a new Resource of the appropriate class for its type.'''

View File

@ -1105,3 +1105,26 @@ class ReducePhysicalResourceNameTest(HeatTestCase):
else:
# check that nothing has changed
self.assertEqual(self.original, reduced)
class SupportStatusTest(HeatTestCase):
def test_valid_status(self):
status = resource.SupportStatus(
status='DEPRECATED',
message='test_message',
version='test_version'
)
self.assertEqual('DEPRECATED', status.status)
self.assertEqual('test_message', status.message)
self.assertEqual('test_version', status.version)
def test_invalid_status(self):
status = resource.SupportStatus(
status='RANDOM',
message='test_message',
version='test_version'
)
self.assertEqual('UNKNOWN', status.status)
self.assertEqual('Specified status is invalid, defaulting to UNKNOWN',
status.message)
self.assertEqual(None, status.version)