Merge "Keystone::Region observe reality implementation"

This commit is contained in:
Jenkins 2016-10-26 03:26:57 +00:00 committed by Gerrit Code Review
commit 3ed0903c0c
2 changed files with 39 additions and 0 deletions

View File

@ -18,6 +18,7 @@ from heat.engine import constraints
from heat.engine import properties
from heat.engine import resource
from heat.engine import support
from heat.engine import translation
class KeystoneRegion(resource.Resource):
@ -68,6 +69,17 @@ class KeystoneRegion(resource.Resource):
)
}
def translation_rules(self, properties):
return [
translation.TranslationRule(
properties,
translation.TranslationRule.RESOLVE,
[self.PARENT_REGION],
client_plugin=self.client_plugin(),
finder='get_region_id'
)
]
def client(self):
return super(KeystoneRegion, self).client().client
@ -98,6 +110,13 @@ class KeystoneRegion(resource.Resource):
enabled=enabled
)
def parse_live_resource_data(self, resource_properties, resource_data):
return {
self.DESCRIPTION: resource_data.get(self.DESCRIPTION),
self.ENABLED: resource_data.get(self.ENABLED),
self.PARENT_REGION: resource_data.get('parent_region_id')
}
def resource_mapping():
return {

View File

@ -145,3 +145,23 @@ class KeystoneRegionTest(common.HeatTestCase):
enabled=prop_diff[region.KeystoneRegion.ENABLED],
parent_region='test_parent_region'
)
def test_region_get_live_state(self):
self.test_region.resource_id = '477e8273-60a7-4c41-b683-fdb0bc7cd151'
mock_dict = mock.MagicMock()
mock_dict.to_dict.return_value = {
"parent_region_id": None,
"enabled": True,
"id": "79e4d02f8b454a7885c413d5d4297813",
"links": {"self": "link"},
"description": ""
}
self.regions.get.return_value = mock_dict
reality = self.test_region.get_live_state(self.test_region.properties)
expected = {
"parent_region": None,
"enabled": True,
"description": ""
}
self.assertEqual(expected, reality)