Add reality support to senlin node resource

Add reality support to senlin node resource

Change-Id: I76b5236eee5484fe27f7fc54363be626e2369e13
This commit is contained in:
Ethan Lynn 2017-01-05 13:46:23 +08:00 committed by Ethan Lynn
parent d566f0f431
commit 76450e63b8
2 changed files with 29 additions and 4 deletions

View File

@ -224,6 +224,20 @@ class Node(resource.Resource):
node = self.client().get_node(self.resource_id, details=True)
return getattr(node, name, None)
def parse_live_resource_data(self, resource_properties, resource_data):
reality = {}
for key in self._update_allowed_properties:
if key == self.PROFILE:
value = resource_data.get('profile_id')
elif key == self.CLUSTER:
value = resource_data.get('cluster_id')
else:
value = resource_data.get(key)
reality.update({key: value})
return reality
def resource_mapping():
return {

View File

@ -50,8 +50,8 @@ class FakeNode(object):
self.id = id
self.name = "SenlinNode"
self.metadata = {'foo': 'bar'}
self.profile_id = "fake_profile"
self.cluster_id = "fake_cluster"
self.profile_id = "fake_profile_id"
self.cluster_id = "fake_cluster_id"
self.details = {'id': 'physical_object_id'}
self.location = "actions/fake_action"
@ -219,8 +219,8 @@ class SenlinNodeTest(common.HeatTestCase):
'status_reason': 'Unknown',
'name': 'SenlinNode',
'metadata': {'foo': 'bar'},
'profile_id': 'fake_profile',
'cluster_id': 'fake_cluster'
'profile_id': 'fake_profile_id',
'cluster_id': 'fake_cluster_id'
}
node = self._create_node()
self.assertEqual(excepted_show,
@ -229,3 +229,14 @@ class SenlinNodeTest(common.HeatTestCase):
node._resolve_attribute('details'))
self.senlin_mock.get_node.assert_called_with(
node.resource_id, details=True)
def test_node_get_live_state(self):
expected_reality = {
'name': 'SenlinNode',
'metadata': {'foo': 'bar'},
'profile': 'fake_profile_id',
'cluster': 'fake_cluster_id'
}
node = self._create_node()
reality = node.get_live_state(node.properties)
self.assertEqual(expected_reality, reality)