Log warning if no property for (Un)Set commands

For the OSC baremetal commands that Set or Unset properties of a
chassis or port, a warning is logged if the command is invoked without
any properties being specified. This makes the behaviour similar to
that for the node resource.

Change-Id: I78255924daab12f83ea8221bb7a727726986d2d7
This commit is contained in:
Ruby Loo 2016-12-15 20:21:16 +00:00
parent 4dad0bf7cb
commit f88d99bbc2
5 changed files with 71 additions and 10 deletions

View File

@ -20,7 +20,7 @@ import logging
from osc_lib.command import command
from osc_lib import utils as oscutils
from ironicclient.common.i18n import _
from ironicclient.common.i18n import _, _LW
from ironicclient.common import utils
from ironicclient import exc
from ironicclient.v1 import resource_fields as res_fields
@ -226,7 +226,11 @@ class SetBaremetalChassis(command.Command):
if parsed_args.extra:
properties.extend(utils.args_array_to_patch(
'add', ['extra/' + x for x in parsed_args.extra]))
baremetal_client.chassis.update(parsed_args.chassis, properties)
if properties:
baremetal_client.chassis.update(parsed_args.chassis, properties)
else:
self.log.warning(_LW("Please specify what to set."))
class ShowBaremetalChassis(command.ShowOne):
@ -306,4 +310,7 @@ class UnsetBaremetalChassis(command.Command):
properties.extend(utils.args_array_to_patch('remove',
['extra/' + x for x in parsed_args.extra]))
baremetal_client.chassis.update(parsed_args.chassis, properties)
if properties:
baremetal_client.chassis.update(parsed_args.chassis, properties)
else:
self.log.warning(_LW("Please specify what to unset."))

View File

@ -20,7 +20,7 @@ import logging
from osc_lib.command import command
from osc_lib import utils as oscutils
from ironicclient.common.i18n import _
from ironicclient.common.i18n import _, _LW
from ironicclient.common import utils
from ironicclient import exc
from ironicclient.v1 import resource_fields as res_fields
@ -199,10 +199,11 @@ class UnsetBaremetalPort(command.Command):
if parsed_args.portgroup:
properties.extend(utils.args_array_to_patch('remove',
['portgroup_uuid']))
if not properties:
self.log.warning("Please specify what to unset.")
baremetal_client.port.update(parsed_args.port, properties)
if properties:
baremetal_client.port.update(parsed_args.port, properties)
else:
self.log.warning(_LW("Please specify what to unset."))
class SetBaremetalPort(command.Command):
@ -264,10 +265,11 @@ class SetBaremetalPort(command.Command):
if parsed_args.portgroup_uuid:
portgroup_uuid = ["portgroup_uuid=%s" % parsed_args.portgroup_uuid]
properties.extend(utils.args_array_to_patch('add', portgroup_uuid))
if not properties:
self.log.warning("Please specify what to set.")
baremetal_client.port.update(parsed_args.port, properties)
if properties:
baremetal_client.port.update(parsed_args.port, properties)
else:
self.log.warning(_LW("Please specify what to set."))
class DeleteBaremetalPort(command.Command):

View File

@ -352,6 +352,15 @@ class TestChassisSet(TestChassis):
self.check_parser,
self.cmd, arglist, verifylist)
def test_chassis_set_no_property(self):
uuid = baremetal_fakes.baremetal_chassis_uuid
arglist = [uuid]
verifylist = [('chassis', uuid)]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.cmd.take_action(parsed_args)
self.assertFalse(self.baremetal_mock.chassis.update.called)
def test_chassis_set_description(self):
description = 'new description'
uuid = baremetal_fakes.baremetal_chassis_uuid
@ -532,6 +541,15 @@ class TestChassisUnset(TestChassis):
self.check_parser,
self.cmd, arglist, verifylist)
def test_chassis_unset_no_property(self):
uuid = baremetal_fakes.baremetal_chassis_uuid
arglist = [uuid]
verifylist = [('chassis', uuid)]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.cmd.take_action(parsed_args)
self.assertFalse(self.baremetal_mock.chassis.update.called)
def test_chassis_unset_description(self):
uuid = baremetal_fakes.baremetal_chassis_uuid
arglist = [

View File

@ -1001,6 +1001,16 @@ class TestBaremetalSet(TestBaremetal):
self.check_parser,
self.cmd, arglist, verifylist)
def test_baremetal_set_no_property(self):
arglist = ['node_uuid']
verifylist = [
('node', 'node_uuid'),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.cmd.take_action(parsed_args)
self.assertFalse(self.baremetal_mock.node.update.called)
def test_baremetal_set_one_property(self):
arglist = ['node_uuid', '--property', 'path/to/property=value']
verifylist = [
@ -1484,6 +1494,14 @@ class TestBaremetalUnset(TestBaremetal):
self.check_parser,
self.cmd, arglist, verifylist)
def test_baremetal_unset_no_property(self):
arglist = ['node_uuid']
verifylist = [('node', 'node_uuid')]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.cmd.take_action(parsed_args)
self.assertFalse(self.baremetal_mock.node.update.called)
def test_baremetal_unset_one_property(self):
arglist = ['node_uuid', '--property', 'path/to/property']
verifylist = [('node', 'node_uuid'),

View File

@ -231,6 +231,14 @@ class TestBaremetalPortUnset(TestBaremetalPort):
self.check_parser,
self.cmd, arglist, verifylist)
def test_baremetal_port_unset_no_property(self):
arglist = [baremetal_fakes.baremetal_port_uuid]
verifylist = [('port', baremetal_fakes.baremetal_port_uuid)]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.cmd.take_action(parsed_args)
self.assertFalse(self.baremetal_mock.port.update.called)
def test_baremetal_port_unset_extra(self):
arglist = ['port', '--extra', 'foo']
verifylist = [('port', 'port'),
@ -352,6 +360,14 @@ class TestBaremetalPortSet(TestBaremetalPort):
self.check_parser,
self.cmd, arglist, verifylist)
def test_baremetal_port_set_no_property(self):
arglist = [baremetal_fakes.baremetal_port_uuid]
verifylist = [('port', baremetal_fakes.baremetal_port_uuid)]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.cmd.take_action(parsed_args)
self.assertFalse(self.baremetal_mock.port.update.called)
class TestBaremetalPortDelete(TestBaremetalPort):
def setUp(self):