Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
    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)