From 2672e37ee211bf08a4b6078668bd36a08c9c606a Mon Sep 17 00:00:00 2001
From: Tang Chen <chen.tang@easystack.cn>
Date: Sat, 4 Jun 2016 21:29:44 +0800
Subject: [PATCH] Make set/unset commands in volume return normally when
 nothing specified

set/unset commands should ends up normally instead of
logging an error when nothing is specified to modify.
The main reason is: When nothing is specified, the
command sets/unsets nothing, which is a normal behavior,
and ends up normally. No API call fails. No error happens.

Change-Id: Ib03a512650e5da90aa1ef38019772448383d0d33
Partial-bug: #1588588
---
 openstackclient/tests/volume/v1/test_volume.py |  3 ---
 openstackclient/volume/v1/qos_specs.py         |  4 ----
 openstackclient/volume/v1/snapshot.py          |  6 ------
 openstackclient/volume/v1/volume.py            |  5 -----
 openstackclient/volume/v1/volume_type.py       |  2 --
 openstackclient/volume/v2/qos_specs.py         |  4 ----
 openstackclient/volume/v2/snapshot.py          |  7 -------
 openstackclient/volume/v2/volume.py            |  4 ----
 openstackclient/volume/v2/volume_type.py       | 12 ------------
 9 files changed, 47 deletions(-)

diff --git a/openstackclient/tests/volume/v1/test_volume.py b/openstackclient/tests/volume/v1/test_volume.py
index e0fd1c0800..e4f51bb535 100644
--- a/openstackclient/tests/volume/v1/test_volume.py
+++ b/openstackclient/tests/volume/v1/test_volume.py
@@ -578,9 +578,6 @@ class TestVolumeSet(TestVolume):
         parsed_args = self.check_parser(self.cmd, arglist, verifylist)
 
         result = self.cmd.take_action(parsed_args)
-
-        self.assertEqual("No changes requested\n",
-                         self.app.log.messages.get('error'))
         self.assertIsNone(result)
 
     def test_volume_set_name(self):
diff --git a/openstackclient/volume/v1/qos_specs.py b/openstackclient/volume/v1/qos_specs.py
index b9eb87523b..c49477a0e9 100644
--- a/openstackclient/volume/v1/qos_specs.py
+++ b/openstackclient/volume/v1/qos_specs.py
@@ -202,8 +202,6 @@ class SetQos(command.Command):
         if parsed_args.property:
             volume_client.qos_specs.set_keys(qos_spec.id,
                                              parsed_args.property)
-        else:
-            self.app.log.error(_("No changes requested\n"))
 
 
 class ShowQos(command.ShowOne):
@@ -263,5 +261,3 @@ class UnsetQos(command.Command):
         if parsed_args.property:
             volume_client.qos_specs.unset_keys(qos_spec.id,
                                                parsed_args.property)
-        else:
-            self.app.log.error(_("No changes requested\n"))
diff --git a/openstackclient/volume/v1/snapshot.py b/openstackclient/volume/v1/snapshot.py
index bf5bf26466..5132d71ee6 100644
--- a/openstackclient/volume/v1/snapshot.py
+++ b/openstackclient/volume/v1/snapshot.py
@@ -208,10 +208,6 @@ class SetSnapshot(command.Command):
         if parsed_args.description:
             kwargs['display_description'] = parsed_args.description
 
-        if not kwargs and not parsed_args.property:
-            self.app.log.error(_("No changes requested\n"))
-            return
-
         snapshot.update(**kwargs)
 
 
@@ -270,5 +266,3 @@ class UnsetSnapshot(command.Command):
                 snapshot.id,
                 parsed_args.property,
             )
-        else:
-            self.app.log.error(_("No changes requested\n"))
diff --git a/openstackclient/volume/v1/volume.py b/openstackclient/volume/v1/volume.py
index 11e42f8372..ffec180348 100644
--- a/openstackclient/volume/v1/volume.py
+++ b/openstackclient/volume/v1/volume.py
@@ -363,9 +363,6 @@ class SetVolume(command.Command):
         if kwargs:
             volume_client.volumes.update(volume.id, **kwargs)
 
-        if not kwargs and not parsed_args.property and not parsed_args.size:
-            self.app.log.error(_("No changes requested\n"))
-
 
 class ShowVolume(command.ShowOne):
     """Show volume details"""
@@ -428,5 +425,3 @@ class UnsetVolume(command.Command):
                 volume.id,
                 parsed_args.property,
             )
-        else:
-            self.app.log.error(_("No changes requested\n"))
diff --git a/openstackclient/volume/v1/volume_type.py b/openstackclient/volume/v1/volume_type.py
index 739270220a..4e9b1920aa 100644
--- a/openstackclient/volume/v1/volume_type.py
+++ b/openstackclient/volume/v1/volume_type.py
@@ -181,5 +181,3 @@ class UnsetVolumeType(command.Command):
 
         if parsed_args.property:
             volume_type.unset_keys(parsed_args.property)
-        else:
-            self.app.log.error(_("No changes requested\n"))
diff --git a/openstackclient/volume/v2/qos_specs.py b/openstackclient/volume/v2/qos_specs.py
index 3cea3303a2..90e11c77b7 100644
--- a/openstackclient/volume/v2/qos_specs.py
+++ b/openstackclient/volume/v2/qos_specs.py
@@ -202,8 +202,6 @@ class SetQos(command.Command):
         if parsed_args.property:
             volume_client.qos_specs.set_keys(qos_spec.id,
                                              parsed_args.property)
-        else:
-            self.app.log.error(_("No changes requested\n"))
 
 
 class ShowQos(command.ShowOne):
@@ -263,5 +261,3 @@ class UnsetQos(command.Command):
         if parsed_args.property:
             volume_client.qos_specs.unset_keys(qos_spec.id,
                                                parsed_args.property)
-        else:
-            self.app.log.error(_("No changes requested\n"))
diff --git a/openstackclient/volume/v2/snapshot.py b/openstackclient/volume/v2/snapshot.py
index 2886aaefeb..d90170809d 100644
--- a/openstackclient/volume/v2/snapshot.py
+++ b/openstackclient/volume/v2/snapshot.py
@@ -205,11 +205,6 @@ class SetSnapshot(command.Command):
         if parsed_args.description:
             kwargs['description'] = parsed_args.description
 
-        if (not kwargs and not parsed_args.property and not
-                parsed_args.state):
-            self.app.log.error(_("No changes requested\n"))
-            return
-
         if parsed_args.property:
             volume_client.volume_snapshots.set_metadata(snapshot.id,
                                                         parsed_args.property)
@@ -271,5 +266,3 @@ class UnsetSnapshot(command.Command):
                 snapshot.id,
                 parsed_args.property,
             )
-        else:
-            self.app.log.error(_("No changes requested\n"))
diff --git a/openstackclient/volume/v2/volume.py b/openstackclient/volume/v2/volume.py
index 0e07aa78d0..18473da3c2 100644
--- a/openstackclient/volume/v2/volume.py
+++ b/openstackclient/volume/v2/volume.py
@@ -385,10 +385,6 @@ class SetVolume(command.Command):
         if kwargs:
             volume_client.volumes.update(volume.id, **kwargs)
 
-        if (not kwargs and not parsed_args.property
-           and not parsed_args.image_property and not parsed_args.size):
-            self.app.log.error(_("No changes requested\n"))
-
 
 class ShowVolume(command.ShowOne):
     """Display volume details"""
diff --git a/openstackclient/volume/v2/volume_type.py b/openstackclient/volume/v2/volume_type.py
index 200d9bd51a..e44e39ff1e 100644
--- a/openstackclient/volume/v2/volume_type.py
+++ b/openstackclient/volume/v2/volume_type.py
@@ -176,13 +176,6 @@ class SetVolumeType(command.Command):
         volume_type = utils.find_resource(
             volume_client.volume_types, parsed_args.volume_type)
 
-        if (not parsed_args.name
-                and not parsed_args.description
-                and not parsed_args.property
-                and not parsed_args.project):
-            self.app.log.error(_("No changes requested\n"))
-            return
-
         result = 0
         kwargs = {}
         if parsed_args.name:
@@ -285,11 +278,6 @@ class UnsetVolumeType(command.Command):
             parsed_args.volume_type,
         )
 
-        if (not parsed_args.property
-                and not parsed_args.project):
-            self.app.log.error(_("No changes requested\n"))
-            return
-
         result = 0
         if parsed_args.property:
             try: