You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ariatosca.apache.org by da...@apache.org on 2017/01/05 13:14:33 UTC
incubator-ariatosca git commit: ARIA-56 Implement ip property on node
instance model [Forced Update!]
Repository: incubator-ariatosca
Updated Branches:
refs/heads/ARIA-56-node-ip 388126d63 -> c27a84ded (forced update)
ARIA-56 Implement ip property on node instance model
Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/c27a84de
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/c27a84de
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/c27a84de
Branch: refs/heads/ARIA-56-node-ip
Commit: c27a84ded7378be83594ab1b5e151ae41cae969b
Parents: 12e175b
Author: Dan Kilman <da...@gigaspaces.com>
Authored: Thu Jan 5 15:01:16 2017 +0200
Committer: Dan Kilman <da...@gigaspaces.com>
Committed: Thu Jan 5 15:14:22 2017 +0200
----------------------------------------------------------------------
aria/.pylintrc | 2 +-
aria/storage/base_model.py | 12 +++++++
tests/storage/test_models.py | 66 +++++++++++++++++++++++++++++++++++++++
3 files changed, 79 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/c27a84de/aria/.pylintrc
----------------------------------------------------------------------
diff --git a/aria/.pylintrc b/aria/.pylintrc
index 13a84fc..ee4d0ef 100644
--- a/aria/.pylintrc
+++ b/aria/.pylintrc
@@ -162,7 +162,7 @@ logging-modules=logging
[BASIC]
# Good variable names which should always be accepted, separated by a comma
-good-names=i,j,k,v,f,ex,e,_,id
+good-names=i,j,k,v,f,ex,e,_,id,ip
# Bad variable names which should always be refused, separated by a comma
bad-names=foo,bar,baz,toto,tutu,tata
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/c27a84de/aria/storage/base_model.py
----------------------------------------------------------------------
diff --git a/aria/storage/base_model.py b/aria/storage/base_model.py
index d1aebf2..84ebeb0 100644
--- a/aria/storage/base_model.py
+++ b/aria/storage/base_model.py
@@ -495,6 +495,18 @@ class NodeInstanceBase(ModelMixin):
def node_name(cls):
return association_proxy('node', cls.name_column_name())
+ @property
+ def ip(self):
+ if not self.host_fk:
+ return None
+ host_node_instance = self.host
+ if 'ip' in host_node_instance.runtime_properties: # pylint: disable=no-member
+ return host_node_instance.runtime_properties['ip'] # pylint: disable=no-member
+ host_node = host_node_instance.node # pylint: disable=no-member
+ if 'ip' in host_node.properties:
+ return host_node.properties['ip']
+ return None
+
class RelationshipInstanceBase(ModelMixin):
"""
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/c27a84de/tests/storage/test_models.py
----------------------------------------------------------------------
diff --git a/tests/storage/test_models.py b/tests/storage/test_models.py
index df81f95..41badf9 100644
--- a/tests/storage/test_models.py
+++ b/tests/storage/test_models.py
@@ -664,6 +664,72 @@ class TestNodeInstance(object):
assert node_instance.deployment == node_storage.deployment.list()[0]
+class TestNodeInstanceIP(object):
+
+ ip = '1.1.1.1'
+
+ def test_ip_on_none_hosted_node_instance(self, deployment_storage):
+ node = self._node(deployment_storage, ip='not considered')
+ node_instance = self._node_instance(deployment_storage, node,
+ is_host=False,
+ ip='not considered')
+ assert node_instance.ip is None
+
+ def test_property_ip_on_hosted_node_instance(self, deployment_storage):
+ node = self._node(deployment_storage, ip=self.ip)
+ node_instance = self._node_instance(deployment_storage, node,
+ is_host=True,
+ ip=None)
+ assert node_instance.ip == self.ip
+
+ def test_runtime_property_ip_on_hosted_node_instance(self, deployment_storage):
+ node = self._node(deployment_storage, ip='not considered')
+ node_instance = self._node_instance(deployment_storage, node,
+ is_host=True,
+ ip=self.ip)
+ assert node_instance.ip == self.ip
+
+ def test_no_ip_configured_on_hosted_node_instance(self, deployment_storage):
+ node = self._node(deployment_storage, ip=None)
+ node_instance = self._node_instance(deployment_storage, node,
+ is_host=True,
+ ip=None)
+ assert node_instance.ip is None
+
+ def _node(self, storage, ip):
+ kwargs = dict(
+ name='node',
+ deploy_number_of_instances=1,
+ max_number_of_instances=1,
+ min_number_of_instances=1,
+ number_of_instances=1,
+ planned_number_of_instances=1,
+ properties={},
+ type='',
+ deployment=storage.deployment.list()[0]
+ )
+ if ip:
+ kwargs['properties']['ip'] = ip
+ node = Node(**kwargs)
+ storage.node.put(node)
+ return node
+
+ def _node_instance(self, storage, node, is_host, ip):
+ kwargs = dict(
+ name='node_instance',
+ node=node,
+ runtime_properties={},
+ state=''
+ )
+ if ip:
+ kwargs['runtime_properties']['ip'] = ip
+ if is_host:
+ kwargs['host_fk'] = 1
+ node_instance = NodeInstance(**kwargs)
+ storage.node_instance.put(node_instance)
+ return node_instance
+
+
class TestRelationshipInstance(object):
def test_relatiship_instance_model_creation(self, node_instances_storage):
relationship = mock.models.get_relationship(