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)