From 354a3c0d9a16928b2c971351c5d64e51cd786041 Mon Sep 17 00:00:00 2001 From: Roman Prykhodchenko Date: Sun, 8 Nov 2015 19:20:22 +0100 Subject: [PATCH] Remove nova network support nova-network was deprecated in Fuel 6.1 and was locked as an option in Fuel UI. This patch removes deprecated functionality. Closes-bug: #1514212 Change-Id: Ic9e5628861d3b96bd6122de587fb223fdcc4f238 --- fuelclient/cli/actions/environment.py | 20 ++++------------ fuelclient/cli/arguments.py | 9 ------- fuelclient/commands/environment.py | 24 ++++--------------- fuelclient/objects/environment.py | 9 ++----- fuelclient/tests/functional/v1/test_client.py | 11 ++++----- fuelclient/tests/unit/v1/test_environment.py | 21 ---------------- fuelclient/tests/unit/v1/test_nodegroups.py | 7 +++--- .../unit/v1/test_release_networks_action.py | 4 ++-- fuelclient/tests/unit/v2/cli/test_engine.py | 8 +++---- fuelclient/tests/unit/v2/cli/test_env.py | 15 ++---------- .../tests/unit/v2/lib/test_environment.py | 22 +++-------------- fuelclient/tests/utils/fake_env.py | 8 +++---- fuelclient/v1/environment.py | 22 +++++++---------- 13 files changed, 39 insertions(+), 141 deletions(-) diff --git a/fuelclient/cli/actions/environment.py b/fuelclient/cli/actions/environment.py index a0ebe7c5..3875c2e0 100644 --- a/fuelclient/cli/actions/environment.py +++ b/fuelclient/cli/actions/environment.py @@ -57,9 +57,6 @@ class EnvironmentAction(Action): Args.get_name_arg( "Environment name" ), - Args.get_net_arg( - "Set network mode for specific environment" - ), Args.get_nst_arg( "Set network segment type" ), @@ -91,18 +88,11 @@ class EnvironmentAction(Action): By default, it creates environment setting neutron with VLAN network segmentation as network provider - (WARNING: nova-network is deprecated since 6.1 release). To specify other modes add optional arguments: - fuel env create --name MyEnv --rel 1 \\ - --network-mode neutron + fuel env create --name MyEnv --rel 1 --net-segment-type vlan """ - if params.net == "nova": - self.serializer.print_to_output( - {}, - "WARNING: nova-network is deprecated since 6.1 release." - ) - if params.net == "neutron" and params.nst == 'gre': + if params.nst == 'gre': self.serializer.print_to_output( {}, "WARNING: GRE network segmentation type is deprecated " @@ -112,7 +102,6 @@ class EnvironmentAction(Action): env = Environment.create( params.name, params.release, - params.net, params.nst, ) @@ -120,14 +109,13 @@ class EnvironmentAction(Action): self.serializer.print_to_output( data, - u"Environment '{name}' with id={id}" - u" and network-mode={net_provider} was created!" + u"Environment '{name}' with id={id} was created!" .format(**data) ) @check_all("env") def set(self, params): - """To change environment name or network mode: + """To change environment name: fuel --env 1 env set --name NewEnvName """ acceptable_params = ('name', 'pending_release_id') diff --git a/fuelclient/cli/arguments.py b/fuelclient/cli/arguments.py index 16fe9862..df1ffe24 100644 --- a/fuelclient/cli/arguments.py +++ b/fuelclient/cli/arguments.py @@ -296,15 +296,6 @@ def get_name_arg(help_msg): return get_str_arg("name", flags=("--env-name",), help=help_msg) -def get_net_arg(help_msg): - return get_arg("net", - flags=("-n", "--network-mode"), - action="store", - choices=("nova", "neutron"), - help_=help_msg, - default="neutron") - - def get_graph_endpoint(): return get_arg( 'end', diff --git a/fuelclient/commands/environment.py b/fuelclient/commands/environment.py index 461345c4..1ca32047 100644 --- a/fuelclient/commands/environment.py +++ b/fuelclient/commands/environment.py @@ -29,7 +29,7 @@ class EnvList(EnvMixIn, base.BaseListCommand): "status", "name", "release_id", - "net_provider") + "net_segment_type") class EnvShow(EnvMixIn, base.BaseShowCommand): @@ -42,7 +42,7 @@ class EnvShow(EnvMixIn, base.BaseShowCommand): "pending_release_id", "is_customized", "changes", - "net_provider") + "net_segment_type") class EnvCreate(EnvMixIn, base.BaseShowCommand): @@ -67,41 +67,25 @@ class EnvCreate(EnvMixIn, base.BaseShowCommand): help='Id of the release for which will ' 'be deployed') - parser.add_argument('-n', - '--net-provider', - type=str, - choices=['nova', 'neutron'], - dest='net_provider', - default='neutron', - help=('Network provider for the new environment. ' - 'WARNING: nova-network is deprecated since ' - '6.1 release')) - parser.add_argument('-nst', '--net-segmentation-type', type=str, choices=['vlan', 'gre', 'tun'], dest='nst', default='vlan', - help='Network segmentation type. Is only ' - 'used if network provider is Neutron.' + help='Network segmentation type.\n' 'WARNING: GRE network segmentation type ' 'is deprecated since 7.0 release.') return parser def take_action(self, parsed_args): - if parsed_args.net_provider == 'nova': - self.app.stdout.write('WARNING: nova-network is deprecated ' - 'since 6.1 release') - - if parsed_args.net_provider == 'neutron' and parsed_args.nst == 'gre': + if parsed_args.nst == 'gre': self.app.stdout.write('WARNING: GRE network segmentation type is ' 'deprecated since 7.0 release') new_env = self.client.create(name=parsed_args.name, release_id=parsed_args.release, - network_provider=parsed_args.net_provider, net_segment_type=parsed_args.nst) new_env = data_utils.get_display_data_single(self.columns, new_env) diff --git a/fuelclient/objects/environment.py b/fuelclient/objects/environment.py index 2a96a8a4..0b6f18ba 100644 --- a/fuelclient/objects/environment.py +++ b/fuelclient/objects/environment.py @@ -35,7 +35,7 @@ class Environment(BaseObject): network_template_path = 'clusters/{0}/network_configuration/template' @classmethod - def create(cls, name, release_id, net, net_segment_type): + def create(cls, name, release_id, net_segment_type): data = { "nodes": [], "tasks": [], @@ -44,11 +44,6 @@ class Environment(BaseObject): "net_segment_type": net_segment_type, } - if net.lower() == "nova": - data["net_provider"] = "nova_network" - else: - data["net_provider"] = "neutron" - data = cls.connection.post_request("clusters/", data) return cls.init_with_data(data) @@ -236,7 +231,7 @@ class Environment(BaseObject): @property def network_url(self): - return "clusters/{id}/network_configuration/{net_provider}".format( + return "clusters/{id}/network_configuration/neutron".format( **self.data ) diff --git a/fuelclient/tests/functional/v1/test_client.py b/fuelclient/tests/functional/v1/test_client.py index a467a572..27090c72 100644 --- a/fuelclient/tests/functional/v1/test_client.py +++ b/fuelclient/tests/functional/v1/test_client.py @@ -28,9 +28,8 @@ class TestHandlers(base.BaseTestCase): "[--list | --set | --delete | --create | --update]", "optional arguments:", "--help", "--list", "--set", "--delete", "--rel", "--env-create", - "--create", "--name", "--env-name", "--net", - "--network-mode", "--nst", "--net-segment-type", - "--update", "--env-update"] + "--create", "--name", "--env-name", "--nst", + "--net-segment-type", "--update", "--env-update"] self.check_all_in_msg("env --help", help_msgs) # no clusters self.check_for_rows_in_table("env") @@ -44,8 +43,7 @@ class TestHandlers(base.BaseTestCase): expected_stdout = \ [( "env --create --name=TestEnv --release={0}".format(release_id), - "Environment 'TestEnv' with id=1 and " - "network-mode=neutron was created!\n" + "Environment 'TestEnv' with id=1 and was created!\n" ), ( "--env-id=1 env set --name=NewEnv", ("Following attributes are changed for " @@ -164,8 +162,7 @@ class TestHandlers(base.BaseTestCase): self.check_for_stdout( "env create --name=NewEnv --release={0} --nst=tun" .format(release_id), - "Environment 'NewEnv' with id=1 and " - "network-mode=neutron was created!\n") + "Environment 'NewEnv' with id=1 and was created!\n") def test_destroy_multiple_nodes(self): self.load_data_to_nailgun_server() diff --git a/fuelclient/tests/unit/v1/test_environment.py b/fuelclient/tests/unit/v1/test_environment.py index 78bca31f..d8827dee 100644 --- a/fuelclient/tests/unit/v1/test_environment.py +++ b/fuelclient/tests/unit/v1/test_environment.py @@ -40,32 +40,11 @@ class TestEnvironment(base.UnitTestCase): self.assertFalse(m_delete.called) - def test_nova_network_using_warning(self): - cluster_id = 1 - cluster_data = { - 'id': cluster_id, - 'name': 'test', - 'net_provider': 'neutron' - } - self.m_request.post('/api/v1/clusters/', json=cluster_data) - self.m_request.get('/api/v1/clusters/{0}/'.format(cluster_id), - json=cluster_data) - - with mock.patch('sys.stdout', new=moves.cStringIO()) as m_stdout: - self.execute( - 'fuel env create --name test --rel 1 --network-mode nova' - .split() - ) - self.assertIn('WARNING: nova-network is ' - 'deprecated since 6.1 release.', - m_stdout.getvalue()) - def test_neutron_gre_using_warning(self): cluster_id = 1 cluster_data = { 'id': cluster_id, 'name': 'test', - 'net_provider': 'neutron' } self.m_request.post('/api/v1/clusters/', json=cluster_data) self.m_request.get('/api/v1/clusters/{0}/'.format(cluster_id), diff --git a/fuelclient/tests/unit/v1/test_nodegroups.py b/fuelclient/tests/unit/v1/test_nodegroups.py index 743dba84..cb8ad793 100644 --- a/fuelclient/tests/unit/v1/test_nodegroups.py +++ b/fuelclient/tests/unit/v1/test_nodegroups.py @@ -25,7 +25,7 @@ class TestNodeGroupActions(base.UnitTestCase): def setUp(self): super(TestNodeGroupActions, self).setUp() - self.env = fake_env.get_fake_env(net_provider='neutron') + self.env = fake_env.get_fake_env() self.req_base_path = '/api/v1/nodegroups/' self.ng = fake_network_group.get_fake_network_group() @@ -41,9 +41,8 @@ class TestNodeGroupActions(base.UnitTestCase): self.env['id'] ) - self.m_request.get('/api/v1/clusters/{0}/'.format(self.env['id']), - json={'id': self.env['id'], - 'net_provider': self.env['net_provider']}) + self.m_request.get('/api/v1/clusters/{0[id]}/'.format(self.env), + json={'id': self.env['id']}) mpost = self.m_request.post(self.req_base_path, json={'id': self.ng['id'], 'name': self.ng['name']}) diff --git a/fuelclient/tests/unit/v1/test_release_networks_action.py b/fuelclient/tests/unit/v1/test_release_networks_action.py index 6efe0d34..d9b19ccb 100644 --- a/fuelclient/tests/unit/v1/test_release_networks_action.py +++ b/fuelclient/tests/unit/v1/test_release_networks_action.py @@ -20,8 +20,8 @@ import requests_mock as rm from fuelclient.tests.unit.v1 import base -API_INPUT = {'config': 'nova_network'} -API_OUTPUT = 'config: nova_network\n' +API_INPUT = {'config': 'neutron'} +API_OUTPUT = 'config: neutron\n' @patch('fuelclient.cli.serializers.open', create=True) diff --git a/fuelclient/tests/unit/v2/cli/test_engine.py b/fuelclient/tests/unit/v2/cli/test_engine.py index 07f8bd2e..2d310518 100644 --- a/fuelclient/tests/unit/v2/cli/test_engine.py +++ b/fuelclient/tests/unit/v2/cli/test_engine.py @@ -94,25 +94,25 @@ class BaseCLITest(oslo_base.BaseTestCase): @mock.patch('cliff.formatters.table.TableFormatter.emit_list') def test_lister_sorting(self, m_emit_list): - cmd = 'env list -s status net_provider' + cmd = 'env list -s status net_segment_type' raw_data = [{'id': 43, 'status': 'STATUS 2', 'name': 'Test env 2', 'release_id': 2, - 'net_provider': 'nova'}, + 'net_segment_type': 'tun'}, {'id': 42, 'status': 'STATUS 1', 'name': 'Test env 1', 'release_id': 2, - 'net_provider': 'nova'}, + 'net_segment_type': 'tun'}, {'id': 44, 'status': 'STATUS 2', 'name': 'Test env 3', 'release_id': 2, - 'net_provider': 'neutron'}] + 'net_segment_type': 'gre'}] expected_order = [1, 2, 0] expected_data = [[raw_data[i][prop] for prop in env.EnvList.columns] diff --git a/fuelclient/tests/unit/v2/cli/test_env.py b/fuelclient/tests/unit/v2/cli/test_env.py index b70e94b8..4e67e6da 100644 --- a/fuelclient/tests/unit/v2/cli/test_env.py +++ b/fuelclient/tests/unit/v2/cli/test_env.py @@ -50,7 +50,7 @@ class TestEnvCommand(test_engine.BaseCLITest): self.m_client.get_by_id.assert_called_once_with(42) def test_env_create(self): - args = 'env create -r 1 -n neutron -nst gre env42' + args = 'env create -r 1 -nst gre env42' self.exec_command(args) self.m_get_client.assert_called_once_with('environment', mock.ANY) @@ -58,21 +58,10 @@ class TestEnvCommand(test_engine.BaseCLITest): m_client = self.m_client m_client.create.assert_called_once_with(name='env42', release_id=1, - network_provider='neutron', net_segment_type='gre') - def test_nova_net_deprecation_warning(self): - args = 'env create -r 1 -n nova env42' - - with mock.patch('sys.stdout', new=moves.cStringIO()) as m_stdout: - self.exec_command(args) - self.assertIn( - 'WARNING: nova-network is deprecated since 6.1 release', - m_stdout.getvalue() - ) - def test_neutron_gre_deprecation_warning(self): - args = 'env create -r 1 -n neutron -nst gre env42' + args = 'env create -r 1 -nst gre env42' with mock.patch('sys.stdout', new=moves.cStringIO()) as m_stdout: self.exec_command(args) diff --git a/fuelclient/tests/unit/v2/lib/test_environment.py b/fuelclient/tests/unit/v2/lib/test_environment.py index 9ad0dfd7..1a4a491b 100644 --- a/fuelclient/tests/unit/v2/lib/test_environment.py +++ b/fuelclient/tests/unit/v2/lib/test_environment.py @@ -69,13 +69,11 @@ class TestEnvFacade(test_api.BaseLibTest): env_name = self.fake_env['name'] release_id = self.fake_env['release_id'] nst = self.fake_env['net_segment_type'] - net = self.fake_env['net_provider'] matcher = self.m_request.post(self.res_uri, json=self.fake_env) self.client.create(name=env_name, release_id=release_id, - network_provider=net, net_segment_type=nst) req_data = matcher.last_request.json() @@ -85,39 +83,26 @@ class TestEnvFacade(test_api.BaseLibTest): self.assertEqual(release_id, req_data['release_id']) self.assertEqual(env_name, req_data['name']) self.assertEqual(nst, req_data['net_segment_type']) - self.assertEqual(net, req_data['net_provider']) - def test_env_create_no_nst_neutron(self): + def test_env_create_bad_nst_neutron(self): node_name = 'test_node' release_id = 20 - net = 'neutron' + nst = 'bad' self.assertRaises(error.BadDataException, self.client.create, - node_name, release_id, net) - - def test_env_create_nst_nova(self): - node_name = 'test_node' - release_id = 20 - net = 'nova' - nst = 'gre' - - self.assertRaises(error.BadDataException, - self.client.create, - node_name, release_id, net, net_segment_type=nst) + node_name, release_id, nst) def test_env_create_neutron_tun(self): env = utils.get_fake_env() env_name = env['name'] release_id = env['release_id'] nst = env['net_segment_type'] = 'tun' - net = env['net_provider'] matcher = self.m_request.post(self.res_uri, json=env) self.client.create(name=env_name, release_id=release_id, - network_provider=net, net_segment_type=nst) req_data = matcher.last_request.json() @@ -125,7 +110,6 @@ class TestEnvFacade(test_api.BaseLibTest): self.assertEqual(release_id, req_data['release_id']) self.assertEqual(env_name, req_data['name']) self.assertEqual(nst, req_data['net_segment_type']) - self.assertEqual(net, req_data['net_provider']) @mock.patch.object(task_object.DeployTask, 'init_with_data') def test_env_deploy(self, m_init): diff --git a/fuelclient/tests/utils/fake_env.py b/fuelclient/tests/utils/fake_env.py index 6c5e3624..5ead98ae 100644 --- a/fuelclient/tests/utils/fake_env.py +++ b/fuelclient/tests/utils/fake_env.py @@ -16,8 +16,7 @@ def get_fake_env(name=None, status=None, release_id=None, - fuel_version=None, pending_release=None, env_id=None, - net_provider=None): + fuel_version=None, pending_release=None, env_id=None): """Create a random fake environment Returns the serialized and parametrized representation of a dumped Fuel @@ -28,9 +27,8 @@ def get_fake_env(name=None, status=None, release_id=None, 'is_customized': False, 'release_id': release_id or 2, 'name': name or 'fake_env', - 'net_provider': net_provider or 'neutron', - 'net_segment_type': 'gre', - 'fuel_version': fuel_version or '5.1', + 'net_segment_type': 'vlan', + 'fuel_version': fuel_version or '8.0', 'pending_release_id': pending_release, 'id': env_id or 1, 'changes': []} diff --git a/fuelclient/v1/environment.py b/fuelclient/v1/environment.py index 031b61bd..73ea650e 100644 --- a/fuelclient/v1/environment.py +++ b/fuelclient/v1/environment.py @@ -23,22 +23,16 @@ class EnvironmentClient(base_v1.BaseV1Client): _updatable_attributes = ('name',) - def create(self, name, release_id, - network_provider, net_segment_type=None): + def create(self, name, release_id, net_segment_type): - if network_provider == 'neutron': - if net_segment_type not in ('gre', 'vlan', 'tun'): - msg = 'Using Neutron as a network provider requires '\ - 'specifying network segmentation type.' - raise error.BadDataException(msg) - else: - if net_segment_type: - msg = 'Network segmentation type should only be '\ - 'specified for Neutron.' - raise error.BadDataException(msg) + supported_nst = ('gre', 'vlan', 'tun') - env = self._entity_wrapper.create(name, release_id, network_provider, - net_segment_type) + if net_segment_type not in supported_nst: + msg = ('Network segmentation type should be one ' + 'of {0}'.format(' '.join(supported_nst))) + raise error.BadDataException(msg) + + env = self._entity_wrapper.create(name, release_id, net_segment_type) return env.data