def _setup_ovs(networks, bondings, options, net_info, in_rollback): _ovs_info = ovs_info.OvsInfo() ovs_nets = ovs_info.create_netinfo(_ovs_info)['networks'] nets2add, nets2edit, nets2remove = _split_setup_actions(networks, ovs_nets) bonds2add, bonds2edit, bonds2remove = _split_setup_actions( bondings, net_info['bondings']) # TODO: If a nework is to be edited, we remove it and recreate again. # We should implement editation. nets2add.update(nets2edit) nets2remove.update(nets2edit) # FIXME: we are not able to move a nic from bond to network in one setup with Transaction(in_rollback=in_rollback) as config: setup_bonds = SetupBonds(bonds2add, bonds2edit, bonds2remove, config) with ifacquire.Transaction(ovs_nets) as acq: _remove_networks(nets2remove, _ovs_info, config) setup_bonds.remove_bonds() # Post removal of nets, update ovs_nets. ovs_nets = ovs_info.create_netinfo(_ovs_info)['networks'] kernel_bonds = bond.Bond.bonds() validator.validate_nic_usage( nets2add, bonds2add, _get_kernel_nets_nics(ovs_nets, kernel_bonds), _get_kernel_bonds_slaves(kernel_bonds), ) acq.acquire(setup_bonds.ifaces_for_acquirement) setup_bonds.edit_bonds() setup_bonds.add_bonds() _add_networks(nets2add, _ovs_info, config, acq) ovs_switch.update_network_to_bridge_mappings(ovs_info.OvsInfo()) setup_ipv6autoconf(networks) set_ovs_links_up(nets2add, bonds2add, bonds2edit) setup_ovs_ip_config(nets2add, nets2remove) _setup_ovs_dns(nets2add) connectivity.check(options)
def _setup_ovs(networks, bondings, options, net_info, in_rollback): _ovs_info = ovs_info.OvsInfo() ovs_nets = ovs_info.create_netinfo(_ovs_info)['networks'] nets2add, nets2edit, nets2remove = _split_setup_actions( networks, ovs_nets) bonds2add, bonds2edit, bonds2remove = _split_setup_actions( bondings, net_info['bondings']) # TODO: If a nework is to be edited, we remove it and recreate again. # We should implement editation. nets2add.update(nets2edit) nets2remove.update(nets2edit) # FIXME: we are not able to move a nic from bond to network in one setup with Transaction(in_rollback=in_rollback) as config: setup_bonds = SetupBonds(bonds2add, bonds2edit, bonds2remove, config) with ifacquire.Transaction(ovs_nets) as acq: _remove_networks(nets2remove, _ovs_info, config) setup_bonds.remove_bonds() # Post removal of nets, update ovs_nets. ovs_nets = ovs_info.create_netinfo(_ovs_info)['networks'] kernel_bonds = bond.Bond.bonds() validator.validate_nic_usage( nets2add, bonds2add, _get_kernel_nets_nics(ovs_nets, kernel_bonds), _get_kernel_bonds_slaves(kernel_bonds)) acq.acquire(setup_bonds.ifaces_for_acquirement) setup_bonds.edit_bonds() setup_bonds.add_bonds() _add_networks(nets2add, _ovs_info, config, acq) ovs_switch.update_network_to_bridge_mappings(ovs_info.OvsInfo()) setup_ipv6autoconf(networks) set_ovs_links_up(nets2add, bonds2add, bonds2edit) setup_ovs_ip_config(nets2add, nets2remove) _setup_ovs_dns(nets2add) connectivity.check(options)