Merge "Make set/unset commands in network return normally when nothing specified"

This commit is contained in:
Jenkins 2016-06-09 14:58:17 +00:00 committed by Gerrit Code Review
commit ada6abb30e
13 changed files with 57 additions and 39 deletions

View File

@ -200,9 +200,6 @@ class SetAddressScope(command.Command):
attrs['shared'] = True attrs['shared'] = True
if parsed_args.no_share: if parsed_args.no_share:
attrs['shared'] = False attrs['shared'] = False
if attrs == {}:
msg = _("Nothing specified to be set.")
raise exceptions.CommandError(msg)
client.update_address_scope(obj, **attrs) client.update_address_scope(obj, **attrs)

View File

@ -14,7 +14,6 @@
"""Network action implementations""" """Network action implementations"""
from openstackclient.common import command from openstackclient.common import command
from openstackclient.common import exceptions
from openstackclient.common import utils from openstackclient.common import utils
from openstackclient.i18n import _ from openstackclient.i18n import _
from openstackclient.identity import common as identity_common from openstackclient.identity import common as identity_common
@ -434,10 +433,6 @@ class SetNetwork(command.Command):
obj = client.find_network(parsed_args.network, ignore_missing=False) obj = client.find_network(parsed_args.network, ignore_missing=False)
attrs = _get_attrs(self.app.client_manager, parsed_args) attrs = _get_attrs(self.app.client_manager, parsed_args)
if attrs == {}:
msg = _("Nothing specified to be set")
raise exceptions.CommandError(msg)
client.update_network(obj, **attrs) client.update_network(obj, **attrs)

View File

@ -426,9 +426,6 @@ class SetPort(command.Command):
elif parsed_args.no_fixed_ip: elif parsed_args.no_fixed_ip:
attrs['fixed_ips'] = [] attrs['fixed_ips'] = []
if attrs == {}:
msg = _("Nothing specified to be set")
raise exceptions.CommandError(msg)
client.update_port(obj, **attrs) client.update_port(obj, **attrs)

View File

@ -18,7 +18,6 @@ import json
import logging import logging
from openstackclient.common import command from openstackclient.common import command
from openstackclient.common import exceptions
from openstackclient.common import parseractions from openstackclient.common import parseractions
from openstackclient.common import utils from openstackclient.common import utils
from openstackclient.i18n import _ from openstackclient.i18n import _
@ -426,10 +425,6 @@ class SetRouter(command.Command):
route['nexthop'] = route.pop('gateway') route['nexthop'] = route.pop('gateway')
attrs['routes'] = obj.routes + parsed_args.routes attrs['routes'] = obj.routes + parsed_args.routes
if attrs == {}:
msg = _("Nothing specified to be set")
raise exceptions.CommandError(msg)
client.update_router(obj, **attrs) client.update_router(obj, **attrs)

View File

@ -373,9 +373,6 @@ class SetSubnet(command.Command):
obj = client.find_subnet(parsed_args.subnet, ignore_missing=False) obj = client.find_subnet(parsed_args.subnet, ignore_missing=False)
attrs = _get_attrs(self.app.client_manager, parsed_args, attrs = _get_attrs(self.app.client_manager, parsed_args,
is_create=False) is_create=False)
if not attrs:
msg = "Nothing specified to be set"
raise exceptions.CommandError(msg)
if 'dns_nameservers' in attrs: if 'dns_nameservers' in attrs:
attrs['dns_nameservers'] += obj.dns_nameservers attrs['dns_nameservers'] += obj.dns_nameservers
if 'host_routes' in attrs: if 'host_routes' in attrs:

View File

@ -14,7 +14,6 @@
"""Subnet pool action implementations""" """Subnet pool action implementations"""
from openstackclient.common import command from openstackclient.common import command
from openstackclient.common import exceptions
from openstackclient.common import parseractions from openstackclient.common import parseractions
from openstackclient.common import utils from openstackclient.common import utils
from openstackclient.i18n import _ from openstackclient.i18n import _
@ -286,9 +285,6 @@ class SetSubnetPool(command.Command):
ignore_missing=False) ignore_missing=False)
attrs = _get_attrs(self.app.client_manager, parsed_args) attrs = _get_attrs(self.app.client_manager, parsed_args)
if attrs == {}:
msg = _("Nothing specified to be set")
raise exceptions.CommandError(msg)
# Existing prefixes must be a subset of the new prefixes. # Existing prefixes must be a subset of the new prefixes.
if 'prefixes' in attrs: if 'prefixes' in attrs:

View File

@ -313,8 +313,12 @@ class TestSetAddressScope(TestAddressScope):
] ]
parsed_args = self.check_parser(self.cmd, arglist, verifylist) parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.assertRaises(exceptions.CommandError, self.cmd.take_action, result = self.cmd.take_action(parsed_args)
parsed_args)
attrs = {}
self.network.update_address_scope.assert_called_with(
self._address_scope, **attrs)
self.assertIsNone(result)
def test_set_name_and_share(self): def test_set_name_and_share(self):
arglist = [ arglist = [

View File

@ -609,8 +609,12 @@ class TestSetNetwork(TestNetwork):
verifylist = [('network', self._network.name), ] verifylist = [('network', self._network.name), ]
parsed_args = self.check_parser(self.cmd, arglist, verifylist) parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.assertRaises(exceptions.CommandError, self.cmd.take_action, result = self.cmd.take_action(parsed_args)
parsed_args)
attrs = {}
self.network.update_network.assert_called_once_with(
self._network, **attrs)
self.assertIsNone(result)
class TestShowNetwork(TestNetwork): class TestShowNetwork(TestNetwork):

View File

@ -426,6 +426,21 @@ class TestSetPort(TestPort):
self.network.update_port.assert_called_once_with(self._port, **attrs) self.network.update_port.assert_called_once_with(self._port, **attrs)
self.assertIsNone(result) self.assertIsNone(result)
def test_set_nothing(self):
arglist = [
self._port.name,
]
verifylist = [
('port', self._port.name),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
result = self.cmd.take_action(parsed_args)
attrs = {}
self.network.update_port.assert_called_once_with(self._port, **attrs)
self.assertIsNone(result)
class TestShowPort(TestPort): class TestShowPort(TestPort):

View File

@ -13,7 +13,6 @@
import mock import mock
from openstackclient.common import exceptions
from openstackclient.common import utils as osc_utils from openstackclient.common import utils as osc_utils
from openstackclient.network.v2 import router from openstackclient.network.v2 import router
from openstackclient.tests.network.v2 import fakes as network_fakes from openstackclient.tests.network.v2 import fakes as network_fakes
@ -568,12 +567,20 @@ class TestSetRouter(TestRouter):
self.cmd, arglist, verifylist) self.cmd, arglist, verifylist)
def test_set_nothing(self): def test_set_nothing(self):
arglist = [self._router.name, ] arglist = [
verifylist = [('router', self._router.name), ] self._router.name,
]
verifylist = [
('router', self._router.name),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist) parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.assertRaises(exceptions.CommandError, self.cmd.take_action, result = self.cmd.take_action(parsed_args)
parsed_args)
attrs = {}
self.network.update_router.assert_called_once_with(
self._router, **attrs)
self.assertIsNone(result)
class TestShowRouter(TestRouter): class TestShowRouter(TestRouter):

View File

@ -14,7 +14,6 @@
import copy import copy
import mock import mock
from openstackclient.common import exceptions
from openstackclient.common import utils from openstackclient.common import utils
from openstackclient.network.v2 import subnet as subnet_v2 from openstackclient.network.v2 import subnet as subnet_v2
from openstackclient.tests import fakes from openstackclient.tests import fakes
@ -549,8 +548,11 @@ class TestSetSubnet(TestSubnet):
verifylist = [('subnet', self._subnet.name)] verifylist = [('subnet', self._subnet.name)]
parsed_args = self.check_parser(self.cmd, arglist, verifylist) parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.assertRaises(exceptions.CommandError, self.cmd.take_action, result = self.cmd.take_action(parsed_args)
parsed_args)
attrs = {}
self.network.update_subnet.assert_called_with(self._subnet, **attrs)
self.assertIsNone(result)
def test_append_options(self): def test_append_options(self):
_testsubnet = network_fakes.FakeSubnet.create_one_subnet( _testsubnet = network_fakes.FakeSubnet.create_one_subnet(

View File

@ -15,7 +15,6 @@ import argparse
import copy import copy
import mock import mock
from openstackclient.common import exceptions
from openstackclient.common import utils from openstackclient.common import utils
from openstackclient.network.v2 import subnet_pool from openstackclient.network.v2 import subnet_pool
from openstackclient.tests import fakes from openstackclient.tests import fakes
@ -443,10 +442,14 @@ class TestSetSubnetPool(TestSubnetPool):
def test_set_nothing(self): def test_set_nothing(self):
arglist = [self._subnet_pool.name, ] arglist = [self._subnet_pool.name, ]
verifylist = [('subnet_pool', self._subnet_pool.name), ] verifylist = [('subnet_pool', self._subnet_pool.name), ]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.assertRaises(exceptions.CommandError, self.cmd.take_action, parsed_args = self.check_parser(self.cmd, arglist, verifylist)
parsed_args) result = self.cmd.take_action(parsed_args)
attrs = {}
self.network.update_subnet_pool.assert_called_once_with(
self._subnet_pool, **attrs)
self.assertIsNone(result)
def test_set_len_negative(self): def test_set_len_negative(self):
arglist = [ arglist = [

View File

@ -0,0 +1,6 @@
---
upgrade:
- All ``set`` and ``unset`` commands in network and volume now return
normally when nothing specified to modify. This will become the default
behavior of OSC ``set`` and ``unset`` commands.
[Bug `1588588 <https://bugs.launchpad.net/python-openstackclient/+bug/1588588>`_]