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
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
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
def test_empty_states(self): desired_state = {} current_state = {} netapplier.generate_ifaces_metadata(desired_state, current_state) assert desired_state == {} assert current_state == {}
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
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