diff options
author | Zuul <zuul@review.openstack.org> | 2018-09-17 10:57:54 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2018-09-17 10:57:54 +0000 |
commit | 8bd810d8f80c5cf76917b0549244ad15f5866144 (patch) | |
tree | 6c3fa19141be40fde4a2e39a599ee2e2fcfe3f69 | |
parent | 39d41f356c7d1c27fcac16c92a68af5b178b71b1 (diff) | |
parent | 3012ab4bb8db0a6ea7a0cace6f1d2e2e3685b903 (diff) | |
download | python-openstackclient-8bd810d8f80c5cf76917b0549244ad15f5866144.tar.gz |
Merge "Do not require port argument when updating floating IP" into stable/queens
-rw-r--r-- | doc/source/cli/command-objects/floating-ip.rst | 8 | ||||
-rw-r--r-- | openstackclient/network/v2/floating_ip.py | 13 | ||||
-rw-r--r-- | openstackclient/tests/unit/network/v2/test_floating_ip_network.py | 64 |
3 files changed, 75 insertions, 10 deletions
diff --git a/doc/source/cli/command-objects/floating-ip.rst b/doc/source/cli/command-objects/floating-ip.rst index d9ed2307..f67287ba 100644 --- a/doc/source/cli/command-objects/floating-ip.rst +++ b/doc/source/cli/command-objects/floating-ip.rst @@ -159,14 +159,14 @@ Set floating IP properties .. code:: bash openstack floating ip set - --port <port> + [--port <port>] [--fixed-ip-address <ip-address>] [--qos-policy <qos-policy> | --no-qos-policy] <floating-ip> .. option:: --port <port> - Assocaite the floating IP with port (name or ID) + Associate the floating IP with port (name or ID) .. option:: --fixed-ip-address <ip-address> @@ -208,8 +208,8 @@ Unset floating IP Properties .. code:: bash openstack floating ip unset - --port - --qos-policy + [--port] + [--qos-policy] <floating-ip> .. option:: --port diff --git a/openstackclient/network/v2/floating_ip.py b/openstackclient/network/v2/floating_ip.py index 181f88c0..b2b86192 100644 --- a/openstackclient/network/v2/floating_ip.py +++ b/openstackclient/network/v2/floating_ip.py @@ -458,12 +458,11 @@ class SetFloatingIP(command.Command): parser.add_argument( 'floating_ip', metavar='<floating-ip>', - help=_("Floating IP to associate (IP address or ID)")) + help=_("Floating IP to modify (IP address or ID)")) parser.add_argument( '--port', metavar='<port>', - required=True, - help=_("Assocaite the floating IP with port (name or ID)")), + help=_("Associate the floating IP with port (name or ID)")), parser.add_argument( '--fixed-ip-address', metavar='<ip-address>', @@ -493,9 +492,11 @@ class SetFloatingIP(command.Command): parsed_args.floating_ip, ignore_missing=False, ) - port = client.find_port(parsed_args.port, - ignore_missing=False) - attrs['port_id'] = port.id + if parsed_args.port: + port = client.find_port(parsed_args.port, + ignore_missing=False) + attrs['port_id'] = port.id + if parsed_args.fixed_ip_address: attrs['fixed_ip_address'] = parsed_args.fixed_ip_address diff --git a/openstackclient/tests/unit/network/v2/test_floating_ip_network.py b/openstackclient/tests/unit/network/v2/test_floating_ip_network.py index 86f64ccd..61c463af 100644 --- a/openstackclient/tests/unit/network/v2/test_floating_ip_network.py +++ b/openstackclient/tests/unit/network/v2/test_floating_ip_network.py @@ -707,6 +707,39 @@ class TestSetFloatingIP(TestFloatingIPNetwork): "openstackclient.tests.unit.network.v2.test_floating_ip_network." + "fip._find_floating_ip" ) + def test_qos_policy_option(self, find_floating_ip_mock): + qos_policy = network_fakes.FakeNetworkQosPolicy.create_one_qos_policy() + self.network.find_qos_policy = mock.Mock(return_value=qos_policy) + find_floating_ip_mock.side_effect = [ + self.floating_ip, + ] + arglist = [ + "--qos-policy", qos_policy.id, + self.floating_ip.id, + ] + verifylist = [ + ('qos_policy', qos_policy.id), + ('floating_ip', self.floating_ip.id), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + self.cmd.take_action(parsed_args) + + attrs = { + 'qos_policy_id': qos_policy.id, + } + find_floating_ip_mock.assert_called_once_with( + mock.ANY, + self.floating_ip.id, + ignore_missing=False, + ) + self.network.update_ip.assert_called_once_with( + self.floating_ip, **attrs) + + @mock.patch( + "openstackclient.tests.unit.network.v2.test_floating_ip_network." + + "fip._find_floating_ip" + ) def test_port_and_qos_policy_option(self, find_floating_ip_mock): qos_policy = network_fakes.FakeNetworkQosPolicy.create_one_qos_policy() self.network.find_qos_policy = mock.Mock(return_value=qos_policy) @@ -743,6 +776,37 @@ class TestSetFloatingIP(TestFloatingIPNetwork): "openstackclient.tests.unit.network.v2.test_floating_ip_network." + "fip._find_floating_ip" ) + def test_no_qos_policy_option(self, find_floating_ip_mock): + find_floating_ip_mock.side_effect = [ + self.floating_ip, + ] + arglist = [ + "--no-qos-policy", + self.floating_ip.id, + ] + verifylist = [ + ('no_qos_policy', True), + ('floating_ip', self.floating_ip.id), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + self.cmd.take_action(parsed_args) + + attrs = { + 'qos_policy_id': None, + } + find_floating_ip_mock.assert_called_once_with( + mock.ANY, + self.floating_ip.id, + ignore_missing=False, + ) + self.network.update_ip.assert_called_once_with( + self.floating_ip, **attrs) + + @mock.patch( + "openstackclient.tests.unit.network.v2.test_floating_ip_network." + + "fip._find_floating_ip" + ) def test_port_and_no_qos_policy_option(self, find_floating_ip_mock): find_floating_ip_mock.side_effect = [ self.floating_ip, |