summaryrefslogtreecommitdiffstats
path: root/azure/aria/aria-extension-cloudify/src/aria/tests/mock/topology.py
diff options
context:
space:
mode:
Diffstat (limited to 'azure/aria/aria-extension-cloudify/src/aria/tests/mock/topology.py')
-rw-r--r--azure/aria/aria-extension-cloudify/src/aria/tests/mock/topology.py96
1 files changed, 96 insertions, 0 deletions
diff --git a/azure/aria/aria-extension-cloudify/src/aria/tests/mock/topology.py b/azure/aria/aria-extension-cloudify/src/aria/tests/mock/topology.py
new file mode 100644
index 0000000..9f0521f
--- /dev/null
+++ b/azure/aria/aria-extension-cloudify/src/aria/tests/mock/topology.py
@@ -0,0 +1,96 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from aria.modeling import models as aria_models
+
+from . import models
+
+
+def create_simple_topology_single_node(model_storage, create_operation):
+ service_template = models.create_service_template()
+ service = models.create_service(service_template)
+
+ node_template = models.create_dependency_node_template(service_template)
+ interface_template = models.create_interface_template(
+ service_template,
+ 'Standard', 'create',
+ operation_kwargs=dict(
+ function=create_operation,
+ arguments={'key': aria_models.Argument.wrap('key', 'create'),
+ 'value': aria_models.Argument.wrap('value', True)})
+ )
+ node_template.interface_templates[interface_template.name] = interface_template # pylint: disable=unsubscriptable-object
+
+ node = models.create_node(node_template, service, name=models.DEPENDENCY_NODE_NAME)
+ interface = models.create_interface(
+ service,
+ 'Standard', 'create',
+ operation_kwargs=dict(
+ function=create_operation,
+ arguments={'key': aria_models.Argument.wrap('key', 'create'),
+ 'value': aria_models.Argument.wrap('value', True)})
+ )
+ node.interfaces[interface.name] = interface # pylint: disable=unsubscriptable-object
+
+ model_storage.service_template.put(service_template)
+ model_storage.service.put(service)
+
+
+def create_simple_topology_two_nodes(model_storage):
+ service_template = models.create_service_template()
+ service = models.create_service(service_template)
+
+ # Creating a simple service with node -> node as a graph
+
+ dependency_node_template = models.create_dependency_node_template(service_template)
+ dependent_node_template = models.create_dependent_node_template(service_template,
+ dependency_node_template)
+
+ dependency_node = models.create_node(
+ dependency_node_template, service, models.DEPENDENCY_NODE_NAME)
+ dependent_node = models.create_node(
+ dependent_node_template, service, models.DEPENDENT_NODE_NAME)
+
+ dependent_node.outbound_relationships.append(models.create_relationship( # pylint: disable=no-member
+ source=dependent_node,
+ target=dependency_node
+ ))
+
+ model_storage.service_template.put(service_template)
+ model_storage.service.put(service)
+
+ return service.id
+
+
+def create_simple_topology_three_nodes(model_storage):
+ #################################################################################
+ # Creating a simple deployment with the following topology:
+ # node1 <----|
+ # | <- node0
+ # node2 <----|
+ # meaning node0 has two relationships: node1 and node2 (one each).
+
+ service_id = create_simple_topology_two_nodes(model_storage)
+ service = model_storage.service.get(service_id)
+ third_node_template = models.create_dependency_node_template(
+ service.service_template, name='another_dependency_node_template')
+ third_node = models.create_node(third_node_template, service, 'another_dependency_node')
+ new_relationship = models.create_relationship(
+ source=model_storage.node.get_by_name(models.DEPENDENT_NODE_NAME),
+ target=third_node,
+ )
+ model_storage.relationship.put(new_relationship)
+
+ return service_id