def test_merge_node_type_interfaces_and_node_template_no_interfaces(self): node_type = self._create_node_type( interfaces={ 'interface1': { 'start': { 'implementation': 'mock.tasks.start' } } } ) node_template = {} expected_merged_interfaces = { 'interface1': { 'start': { 'implementation': 'mock.tasks.start', 'inputs': {}, 'executor': None, 'max_retries': None, 'retry_interval': None } } } actual_merged_interfaces = \ merge_node_type_and_node_template_interfaces( node_type=node_type, node_template=node_template ) self.assertEqual(actual_merged_interfaces, expected_merged_interfaces)
def test_merge_node_type_interfaces_and_node_template_no_interfaces(self): node_type_interfaces = { 'interface1': { 'start': { 'implementation': 'mock.tasks.start' } } } node_template_interfaces = {} expected_merged_interfaces = { 'interface1': { 'start': { 'implementation': 'mock.tasks.start', 'inputs': {}, 'executor': None, 'max_retries': None, 'retry_interval': None, 'timeout': None, 'timeout_recoverable': None } } } self._validate_type_interfaces(node_type_interfaces) self._validate_instance_interfaces(node_template_interfaces) actual_merged_interfaces = \ merge_node_type_and_node_template_interfaces( node_type_interfaces=node_type_interfaces, node_template_interfaces=node_template_interfaces) self.assertEqual(actual_merged_interfaces, expected_merged_interfaces)
def parse(self, node_type, host_types, plugins, resource_base, related_node_templates): node = self.build_dict_result() node.update({"name": self.name, "id": self.name, constants.TYPE_HIERARCHY: node_type[constants.TYPE_HIERARCHY]}) node[constants.INTERFACES] = interfaces_parser.merge_node_type_and_node_template_interfaces( node_type_interfaces=node_type[constants.INTERFACES], node_template_interfaces=node[constants.INTERFACES] ) node["operations"] = _process_operations( partial_error_message="in node '{0}' of type '{1}'".format(node["id"], node["type"]), interfaces=node[constants.INTERFACES], plugins=plugins, error_code=10, resource_base=resource_base, ) node_name_to_node = dict((node["id"], node) for node in related_node_templates) _post_process_node_relationships( processed_node=node, node_name_to_node=node_name_to_node, plugins=plugins, resource_base=resource_base ) contained_in = self.child(NodeTemplateRelationships).provided["contained_in"] if self.child(NodeTemplateType).value in host_types: node["host_id"] = self.name elif contained_in: containing_node = [n for n in related_node_templates if n["name"] == contained_in][0] if "host_id" in containing_node: node["host_id"] = containing_node["host_id"] return node
def test_merge_node_type_and_node_template_interfaces(self): node_type_interfaces = { 'interface1': { 'start': { 'implementation': 'mock.tasks.start' }, 'stop': { 'implementation': 'mock.tasks.stop', 'inputs': { 'key': { 'default': 'value' } } } } } node_template_interfaces = { 'interface1': { 'start': 'mock.tasks.start-overridden' } } expected_merged_interfaces = { 'interface1': { 'start': { 'implementation': 'mock.tasks.start-overridden', 'inputs': {}, 'executor': None, 'max_retries': None, 'retry_interval': None }, 'stop': { 'implementation': 'mock.tasks.stop', 'inputs': { 'key': 'value' }, 'executor': None, 'max_retries': None, 'retry_interval': None } } } self._validate_type_interfaces(node_type_interfaces) self._validate_instance_interfaces(node_template_interfaces) actual_merged_interfaces = \ merge_node_type_and_node_template_interfaces( node_type_interfaces=node_type_interfaces, node_template_interfaces=node_template_interfaces) self.assertEqual(actual_merged_interfaces, expected_merged_interfaces)
def test_merge_node_type_and_node_template_interfaces(self): node_type_interfaces = { 'interface1': { 'start': { 'implementation': 'mock.tasks.start' }, 'stop': { 'implementation': 'mock.tasks.stop', 'inputs': { 'key': { 'default': 'value' } } } } } node_template_interfaces = { 'interface1': { 'start': 'mock.tasks.start-overridden' } } expected_merged_interfaces = { 'interface1': { 'start': { 'implementation': 'mock.tasks.start-overridden', 'inputs': {}, 'executor': None, 'max_retries': None, 'retry_interval': None }, 'stop': { 'implementation': 'mock.tasks.stop', 'inputs': { 'key': 'value' }, 'executor': None, 'max_retries': None, 'retry_interval': None } } } self._validate_type_interfaces(node_type_interfaces) self._validate_instance_interfaces(node_template_interfaces) actual_merged_interfaces = \ merge_node_type_and_node_template_interfaces( node_type_interfaces=node_type_interfaces, node_template_interfaces=node_template_interfaces) self.assertEqual(actual_merged_interfaces, expected_merged_interfaces)