def get_interfaces_from_template(cls, node): """Parse transformations for all node role templates. Returns a list of bare interfaces and bonds. """ transformations = \ NeutronNetworkTemplateSerializer70.generate_transformations(node) interfaces = {} for tx in transformations: if tx['action'] == 'add-port': key = tx.get('bridge', tx['name']) interfaces[key] = { 'name': tx['name'], 'type': consts.NETWORK_INTERFACE_TYPES.ether } if tx['action'] == 'add-bond': key = tx.get('bridge', tx['name']) interfaces[key] = { 'name': tx['name'], 'slaves': [{'name': cls._split_iface_name(i)[0]} for i in tx['interfaces']], 'type': consts.NETWORK_INTERFACE_TYPES.bond, 'bond_properties': tx.get('bond_properties', {}) } return interfaces
def get_interfaces_from_template(cls, node): """Parse transformations for all node role templates. Returns a list of bare interfaces and bonds. """ transformations = \ NeutronNetworkTemplateSerializer70.generate_transformations(node) interfaces = {} for tx in transformations: if tx['action'] == 'add-port': key = tx.get('bridge', tx['name']) interfaces[key] = { 'name': tx['name'], 'type': consts.NETWORK_INTERFACE_TYPES.ether } if tx['action'] == 'add-bond': key = tx.get('bridge', tx['name']) interfaces[key] = { 'name': tx['name'], 'slaves': [{ 'name': cls._split_iface_name(i)[0] } for i in tx['interfaces']], 'type': consts.NETWORK_INTERFACE_TYPES.bond, 'bond_properties': tx.get('bond_properties', {}) } return interfaces
def test_schemes_order(self): template = { "templates_for_node_role": { "cinder": [ "common", "storage" ], "compute": [ "common", "private", "storage" ] }, "templates": { "storage": { "transformations": [ "storage" ] }, "common": { "transformations": [ "common" ] }, "private": { "transformations": [ "private" ] }, } } node = mock.Mock(network_template=template, all_roles=['cinder', 'compute']) transformations = \ NeutronNetworkTemplateSerializer70.generate_transformations(node) self.assertEqual(["common", "storage", "private"], transformations)
def test_schemes_order(self): template = { "templates_for_node_role": { "cinder": ["common", "storage"], "compute": ["common", "private", "storage"] }, "templates": { "storage": { "transformations": ["storage"] }, "common": { "transformations": ["common"] }, "private": { "transformations": ["private"] }, } } node = mock.Mock(network_template=template, all_roles=['cinder', 'compute']) transformations = \ NeutronNetworkTemplateSerializer70.generate_transformations(node) self.assertEqual(["common", "storage", "private"], transformations)