summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorTang Chen <tangchen@cn.fujitsu.com>2015-12-05 11:16:44 +0800
committerTang Chen <tangchen@cn.fujitsu.com>2015-12-09 09:29:54 +0800
commit45c644d428581592f9a17585e019bd6d565133e3 (patch)
tree43c489e093d3e9c777b142eb07a0b3a1f6529dc2 /openstackclient
parent511e8622944bc64822af07b1bd11681b0c5d45b3 (diff)
downloadpython-openstackclient-45c644d428581592f9a17585e019bd6d565133e3.tar.gz
Migrate "network set" command to use SDK.
This patch makes "network set" command use sdk. Since we have to keep the other commands runnable with the old network client, we use a temporary method to create sdk network client. And as a result, the tests need to patch a method to fake the temporary method, which will be removed at last. Change-Id: I794ac4b82d9200747298f1a9ee44611140e9b6d0 Implements: blueprint neutron-client Co-Authored-By: Terry Howe <terrylhowe@gmail.com> Co-Authored-By: Tang Chen <tangchen@cn.fujitsu.com>
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/network/v2/network.py21
-rw-r--r--openstackclient/tests/network/v2/test_network.py50
2 files changed, 40 insertions, 31 deletions
diff --git a/openstackclient/network/v2/network.py b/openstackclient/network/v2/network.py
index 9139757b..184c8629 100644
--- a/openstackclient/network/v2/network.py
+++ b/openstackclient/network/v2/network.py
@@ -25,7 +25,6 @@ from openstack import connection
from openstackclient.common import exceptions
from openstackclient.common import utils
from openstackclient.identity import common as identity_common
-from openstackclient.network import common
def _format_admin_state(item):
@@ -288,21 +287,23 @@ class SetNetwork(command.Command):
def take_action(self, parsed_args):
self.log.debug('take_action(%s)' % parsed_args)
+ self.app.client_manager.network = \
+ _make_client_sdk(self.app.client_manager)
client = self.app.client_manager.network
- _id = common.find(client, 'network', 'networks',
- parsed_args.identifier)
- body = {}
+ obj = client.find_network(parsed_args.identifier, ignore_missing=False)
+
if parsed_args.name is not None:
- body['name'] = str(parsed_args.name)
+ obj.name = str(parsed_args.name)
if parsed_args.admin_state is not None:
- body['admin_state_up'] = parsed_args.admin_state
+ obj.admin_state_up = parsed_args.admin_state
if parsed_args.shared is not None:
- body['shared'] = parsed_args.shared
- if body == {}:
+ obj.shared = parsed_args.shared
+
+ if not obj.is_dirty:
msg = "Nothing specified to be set"
raise exceptions.CommandError(msg)
- update_method = getattr(client, "update_network")
- update_method(_id, {'network': body})
+
+ client.update_network(obj)
return
diff --git a/openstackclient/tests/network/v2/test_network.py b/openstackclient/tests/network/v2/test_network.py
index 41be5933..6fd8bfcd 100644
--- a/openstackclient/tests/network/v2/test_network.py
+++ b/openstackclient/tests/network/v2/test_network.py
@@ -458,31 +458,35 @@ class TestListNetwork(TestNetwork):
self.assertEqual(self.data_long, list(data))
+@mock.patch('openstackclient.network.v2.network._make_client_sdk')
class TestSetNetwork(TestNetwork):
+ # The network to set.
+ _network = network_fakes.FakeNetwork.create_one_network()
+
def setUp(self):
super(TestSetNetwork, self).setUp()
- self.network.update_network = mock.Mock(
- return_value=None
- )
+ self.network.update_network = mock.Mock(return_value=None)
- self.network.list_networks = mock.Mock(
- return_value={RESOURCES: [copy.deepcopy(RECORD)]}
- )
+ self.network.find_network = mock.Mock(return_value=self._network)
# Get the command object to test
self.cmd = network.SetNetwork(self.app, self.namespace)
- def test_set_this(self):
+ def test_set_this(self, _make_client_sdk):
+ _make_client_sdk.return_value = self.app.client_manager.network
+
+ self._network.is_dirty = True
+
arglist = [
- FAKE_NAME,
+ self._network.name,
'--enable',
'--name', 'noob',
'--share',
]
verifylist = [
- ('identifier', FAKE_NAME),
+ ('identifier', self._network.name),
('admin_state', True),
('name', 'noob'),
('shared', True),
@@ -491,19 +495,21 @@ class TestSetNetwork(TestNetwork):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
result = self.cmd.take_action(parsed_args)
- exp = {'admin_state_up': True, 'name': 'noob', 'shared': True}
- exp_record = {RESOURCE: exp}
- self.network.update_network.assert_called_with(FAKE_ID, exp_record)
+ self.network.update_network.assert_called_with(self._network)
self.assertEqual(None, result)
- def test_set_that(self):
+ def test_set_that(self, _make_client_sdk):
+ _make_client_sdk.return_value = self.app.client_manager.network
+
+ self._network.is_dirty = True
+
arglist = [
- FAKE_NAME,
+ self._network.name,
'--disable',
'--no-share',
]
verifylist = [
- ('identifier', FAKE_NAME),
+ ('identifier', self._network.name),
('admin_state', False),
('shared', False),
]
@@ -511,14 +517,16 @@ class TestSetNetwork(TestNetwork):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
result = self.cmd.take_action(parsed_args)
- exp = {'admin_state_up': False, 'shared': False}
- exp_record = {RESOURCE: exp}
- self.network.update_network.assert_called_with(FAKE_ID, exp_record)
+ self.network.update_network.assert_called_with(self._network)
self.assertEqual(None, result)
- def test_set_nothing(self):
- arglist = [FAKE_NAME, ]
- verifylist = [('identifier', FAKE_NAME), ]
+ def test_set_nothing(self, _make_client_sdk):
+ _make_client_sdk.return_value = self.app.client_manager.network
+
+ self._network.is_dirty = False
+
+ arglist = [self._network.name, ]
+ verifylist = [('identifier', self._network.name), ]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.assertRaises(exceptions.CommandError, self.cmd.take_action,