Change default network mode for env creation to neutron
Now when user choses nova-network as network mode for environment warning about deprecation is displayed. segmentation-type parameter is now also supplied by default and is equal to "vlan". Tests updated. Change-Id: Idb1d5caac4f3e2c4d9661eb8162eaabefa4fca49 Closes-Bug: #1455739
This commit is contained in:
@@ -92,16 +92,24 @@ class EnvironmentAction(Action):
|
||||
"""To create an environment with name MyEnv and release id=1 run:
|
||||
fuel env create --name MyEnv --rel 1
|
||||
|
||||
By default it creates environment in ha_compact mode, and nova
|
||||
network mode, to specify other modes add optional arguments:
|
||||
By default it creates environment with ha_compact mode and
|
||||
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 \\
|
||||
--mode ha --network-mode neutron
|
||||
"""
|
||||
if params.net == "nova":
|
||||
self.serializer.print_to_output(
|
||||
{},
|
||||
"Warning: nova-network is deprecated since 6.1 release."
|
||||
)
|
||||
|
||||
env = Environment.create(
|
||||
params.name,
|
||||
params.release,
|
||||
params.net,
|
||||
net_segment_type=params.nst
|
||||
params.nst
|
||||
)
|
||||
|
||||
if params.mode:
|
||||
|
||||
@@ -291,7 +291,7 @@ def get_net_arg(help_msg):
|
||||
action="store",
|
||||
choices=("nova", "neutron"),
|
||||
help_=help_msg,
|
||||
default="nova")
|
||||
default="neutron")
|
||||
|
||||
|
||||
def get_graph_endpoint():
|
||||
@@ -358,7 +358,7 @@ def get_nst_arg(help_msg):
|
||||
action="store",
|
||||
choices=("gre", "vlan"),
|
||||
help_=help_msg,
|
||||
default=None)
|
||||
default="vlan")
|
||||
|
||||
|
||||
def get_all_arg(help_msg):
|
||||
|
||||
@@ -76,20 +76,26 @@ class EnvCreate(EnvMixIn, base.BaseShowCommand):
|
||||
choices=['nova', 'neutron'],
|
||||
dest='net_provider',
|
||||
default='neutron',
|
||||
help='Network provider for the new environment')
|
||||
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'],
|
||||
dest='nst',
|
||||
default=None,
|
||||
default='vlan',
|
||||
help='Network segmentation type. Is only '
|
||||
'used if network provider is Neutron')
|
||||
|
||||
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')
|
||||
|
||||
new_env = self.client.create(name=parsed_args.name,
|
||||
release_id=parsed_args.release,
|
||||
network_provider=parsed_args.net_provider,
|
||||
|
||||
@@ -17,7 +17,6 @@ import os
|
||||
import shutil
|
||||
|
||||
from fuelclient.cli.error import ActionException
|
||||
from fuelclient.cli.error import ArgumentException
|
||||
from fuelclient.cli.error import ServerDataException
|
||||
from fuelclient.cli.serializers import listdir_without_extensions
|
||||
from fuelclient.objects.base import BaseObject
|
||||
@@ -34,25 +33,20 @@ class Environment(BaseObject):
|
||||
attributes_path = 'clusters/{0}/attributes'
|
||||
|
||||
@classmethod
|
||||
def create(cls, name, release_id, net,
|
||||
net_segment_type=None, mode='ha_compact'):
|
||||
def create(cls, name, release_id, net, net_segment_type,
|
||||
mode='ha_compact'):
|
||||
data = {
|
||||
"nodes": [],
|
||||
"tasks": [],
|
||||
"name": name,
|
||||
"release_id": release_id
|
||||
"release_id": release_id,
|
||||
"net_segment_type": net_segment_type,
|
||||
}
|
||||
if net.lower() == "nova":
|
||||
data["net_provider"] = "nova_network"
|
||||
else:
|
||||
data["net_provider"] = "neutron"
|
||||
|
||||
if net_segment_type is None:
|
||||
raise ArgumentException(
|
||||
'"--net-segment-type" must be specified!')
|
||||
|
||||
data["net_segment_type"] = net_segment_type
|
||||
|
||||
data = cls.connection.post_request("clusters/", data)
|
||||
return cls.init_with_data(data)
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ class TestHandlers(base.BaseTestCase):
|
||||
[(
|
||||
"env --create --name=TestEnv --release=1",
|
||||
"Environment 'TestEnv' with id=1, mode=ha_compact and "
|
||||
"network-mode=nova_network was created!\n"
|
||||
"network-mode=neutron was created!\n"
|
||||
), (
|
||||
"--env-id=1 env set --name=NewEnv",
|
||||
("Following attributes are changed for "
|
||||
|
||||
@@ -37,6 +37,24 @@ class TestEnvironment(base.UnitTestCase):
|
||||
|
||||
self.assertEqual(0, m_del.call_count)
|
||||
|
||||
@mock.patch('requests.Response', new_callable=mock.MagicMock)
|
||||
@mock.patch('requests.post')
|
||||
@mock.patch('requests.get')
|
||||
def test_nova_network_using_warning(self, m_get, m_post, m_resp):
|
||||
m_resp.json.return_value = {'id': 1, 'name': 'test',
|
||||
'mode': 'ha_compact',
|
||||
'net_provider': 'neutron'}
|
||||
m_get.return_value = m_resp
|
||||
|
||||
with mock.patch('sys.stdout', new=cStringIO.StringIO()) 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())
|
||||
|
||||
|
||||
class TestEnvironmentOstf(base.UnitTestCase):
|
||||
|
||||
|
||||
@@ -51,6 +51,16 @@ class TestEnvCommand(test_engine.BaseCLITest):
|
||||
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=cStringIO.StringIO()) as m_stdout:
|
||||
self.exec_command(args)
|
||||
self.assertIn(
|
||||
'Warning: nova-network is deprecated since 6.1 release',
|
||||
m_stdout.getvalue()
|
||||
)
|
||||
|
||||
def test_env_delete(self):
|
||||
args = 'env delete --force 42'
|
||||
self.exec_command(args)
|
||||
|
||||
Reference in New Issue
Block a user