示例#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
示例#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
    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)
示例#4
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)