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)
def upgrade(): rconfig = RunningConfig() pconfig = PersistentConfig() libvirt_networks = libvirtnetwork.networks() _upgrade_volatile_running_config(rconfig) if rconfig.config_exists() or pconfig.config_exists(): _upgrade_unified_configuration(rconfig) _upgrade_unified_configuration(pconfig) else: # In case unified config has not existed before, it is assumed that # the networks existance have been persisted in libvirt db. vdsmnets = libvirt_vdsm_nets(libvirt_networks) _create_unified_configuration(rconfig, NetInfo(netinfo(vdsmnets))) _cleanup_libvirt_networks(libvirt_networks) if ovs_info.is_ovs_service_running(): ovs_switch.update_network_to_bridge_mappings(ovs_info.OvsInfo())