Exemplo n.º 1
0
    def test_bond_adding_slaves(self):
        desired_state = {
            BOND_NAME: {
                'name': BOND_NAME,
                'type': BOND_TYPE,
                'state': 'up',
                'link-aggregation': {
                    'mode': 'balance-rr',
                    'slaves': ['eth0', 'eth1']
                }
            },
            'eth1': {
                'name': 'eth1',
                'state': 'up',
                'type': 'unknown'
            }
        }
        current_state = {'eth0': {'name': 'eth0', 'type': 'unknown'}}
        expected_desired_state = copy.deepcopy(desired_state)
        expected_current_state = copy.deepcopy(current_state)
        expected_desired_state['eth0'] = {'name': 'eth0', 'state': 'up'}
        expected_desired_state['eth0']['_master'] = BOND_NAME
        expected_desired_state['eth1']['_master'] = BOND_NAME
        expected_desired_state['eth0']['_master_type'] = BOND_TYPE
        expected_desired_state['eth1']['_master_type'] = BOND_TYPE

        netapplier.generate_ifaces_metadata(desired_state, current_state)

        assert desired_state == expected_desired_state
        assert current_state == expected_current_state
Exemplo n.º 2
0
    def test_ovs_edit_slave(self):
        desired_state = {
            'eth0': {
                'name': 'eth0',
                'type': 'unknown',
                'fookey': 'fooval'
            }
        }
        current_state = {
            OVS_NAME: {
                'name': OVS_NAME,
                'type': OVS_BR_TYPE,
                'state': 'up',
                'bridge': {
                    'port': [
                        {'name': 'eth0', 'type': 'system'},
                        {'name': 'eth1', 'type': 'system'}
                    ]
                }
            },
            'eth0': {'name': 'eth0', 'type': 'unknown'},
            'eth1': {'name': 'eth1', 'type': 'unknown'}
        }
        expected_desired_state = copy.deepcopy(desired_state)
        expected_current_state = copy.deepcopy(current_state)
        expected_desired_state['eth0']['_master'] = OVS_NAME
        expected_desired_state['eth0']['_master_type'] = OVS_BR_TYPE
        expected_desired_state['eth0']['_brport_options'] = (
            current_state[OVS_NAME]['bridge']['port'][0])

        netapplier.generate_ifaces_metadata(desired_state, current_state)

        assert desired_state == expected_desired_state
        assert current_state == expected_current_state
Exemplo n.º 3
0
    def test_ovs_editing_option(self):
        desired_state = {
            OVS_NAME: {
                'name': OVS_NAME,
                'type': OVS_BR_TYPE,
                'state': 'down'
            }
        }
        current_state = {
            OVS_NAME: {
                'name': OVS_NAME,
                'type': OVS_BR_TYPE,
                'state': 'up',
                'bridge': {
                    'port': [
                        {'name': 'eth0', 'type': 'system'},
                        {'name': 'eth1', 'type': 'system'}
                    ]
                }
            },
            'eth0': {'name': 'eth0', 'type': 'unknown'},
            'eth1': {'name': 'eth1', 'type': 'unknown'}
        }
        expected_desired_state = copy.deepcopy(desired_state)
        expected_current_state = copy.deepcopy(current_state)

        netapplier.generate_ifaces_metadata(desired_state, current_state)

        assert desired_state == expected_desired_state
        assert current_state == expected_current_state
Exemplo n.º 4
0
    def test_empty_states(self):
        desired_state = {}
        current_state = {}

        netapplier.generate_ifaces_metadata(desired_state, current_state)

        assert desired_state == {}
        assert current_state == {}
Exemplo n.º 5
0
    def test_ovs_reusing_slave_used_by_existing_bridge(self):
        OVS2_NAME = 'ovs-br88'
        desired_state = {
            OVS2_NAME: {
                'name': OVS2_NAME,
                'type': OVS_BR_TYPE,
                'state': 'up',
                'bridge': {
                    'port': [{
                        'name': 'eth0',
                        'type': OBPortType.SYSTEM
                    }]
                }
            }
        }
        current_state = {
            OVS_NAME: {
                'name': OVS_NAME,
                'type': OVS_BR_TYPE,
                'state': 'up',
                'bridge': {
                    'port': [{
                        'name': 'eth0',
                        'type': OBPortType.SYSTEM
                    }, {
                        'name': 'eth1',
                        'type': OBPortType.SYSTEM
                    }]
                }
            },
            'eth0': {
                'name': 'eth0',
                'state': 'up',
                'type': 'unknown'
            },
            'eth1': {
                'name': 'eth1',
                'state': 'up',
                'type': 'unknown'
            }
        }
        expected_desired_state = copy.deepcopy(desired_state)
        expected_current_state = copy.deepcopy(current_state)
        expected_desired_state['eth0'] = {'name': 'eth0', 'state': 'up'}
        expected_desired_state['eth0']['_master'] = OVS2_NAME
        expected_desired_state['eth0']['_master_type'] = OVS_BR_TYPE
        expected_desired_state['eth0']['_brport_options'] = (
            desired_state[OVS2_NAME]['bridge']['port'][0])

        netapplier.generate_ifaces_metadata(desired_state, current_state)

        assert desired_state == expected_desired_state
        assert current_state == expected_current_state
Exemplo n.º 6
0
    def test_ovs_creation_with_new_ports(self):
        desired_state = {
            OVS_NAME: {
                'name': OVS_NAME,
                'type': OVS_BR_TYPE,
                'state': 'up',
                'bridge': {
                    'port': [{
                        'name': 'eth0',
                        'type': OBPortType.SYSTEM
                    }, {
                        'name': 'eth1',
                        'type': OBPortType.SYSTEM
                    }]
                }
            },
            'eth0': {
                'name': 'eth0',
                'type': 'unknown'
            },
            'eth1': {
                'name': 'eth1',
                'type': 'unknown'
            }
        }
        current_state = {}
        expected_desired_state = copy.deepcopy(desired_state)
        expected_current_state = copy.deepcopy(current_state)
        expected_desired_state['eth0']['_master'] = OVS_NAME
        expected_desired_state['eth1']['_master'] = OVS_NAME
        expected_desired_state['eth0']['_master_type'] = OVS_BR_TYPE
        expected_desired_state['eth1']['_master_type'] = OVS_BR_TYPE
        expected_desired_state['eth0']['_brport_options'] = (
            desired_state[OVS_NAME]['bridge']['port'][0])
        expected_desired_state['eth1']['_brport_options'] = (
            desired_state[OVS_NAME]['bridge']['port'][1])

        netapplier.generate_ifaces_metadata(desired_state, current_state)

        assert desired_state == expected_desired_state
        assert current_state == expected_current_state