def upgrade_control_plane(orig_id, seed_id): orig_env = environment_obj.Environment(orig_id) seed_env = environment_obj.Environment(seed_id) controllers = list(env_util.get_controllers(seed_env)) # enable all services on seed env if len(controllers) > 1: maintenance.stop_cluster(seed_env) else: maintenance.start_corosync_services(seed_env) maintenance.start_upstart_services(seed_env) # disable cluster services on orig env maintenance.stop_cluster(orig_env) # switch networks to seed env roles = ['primary-controller', 'controller'] # disable physical connectivity for orig env for node, info in env_util.iter_deployment_info(orig_env, roles): network.delete_patch_ports(node, info) # enable physical connectivity for seed env for node, info in env_util.iter_deployment_info(seed_env, roles): network.delete_overlay_networks(node, info) network.create_patch_ports(node, info) # enable all services on seed env if len(controllers) > 1: maintenance.start_cluster(seed_env) maintenance.start_corosync_services(seed_env) maintenance.start_upstart_services(seed_env) # NOTE(akscram): Remove replaced deployment info with # the isolation mode and the alternative gateway. # CAUTION: This method removes replaced deployment # information for all nodes in an environment. seed_env.delete_facts("deployment")
def test_delete_overlay_network(mocker): node = mock.Mock() deployment_info = { 'network_scheme': { 'transformations': [{ 'action': 'add-br', 'name': 'br-ex', 'provider': 'ovs', }, { 'action': 'add-br', 'name': 'br-mgmt', }] } } mock_ssh = mocker.patch('octane.util.ssh.call') mock_ovs_tuns = mocker.patch('octane.util.network.list_tunnels_ovs') mock_ovs_tuns.return_value = ['br-ex--gre-10.10.10.2'] mock_lnx_tun = mocker.patch('octane.util.network.list_tunnels_lnx') mock_lnx_tun.return_value = ['gre3-3'] expected_args = [ mock.call(['ovs-vsctl', 'del-port', 'br-ex', 'br-ex--gre-10.10.10.2'], node=node), mock.call(['brctl', 'delif', 'br-mgmt', 'gre3-3'], node=node), mock.call(['ip', 'link', 'delete', 'gre3-3'], node=node), ] network.delete_overlay_networks(node, deployment_info) assert mock_ssh.call_args_list == expected_args