From 4524b3605fa4260a2f916421eebfc7a99b320e4b Mon Sep 17 00:00:00 2001 From: Huanxuan Ao Date: Thu, 28 Apr 2016 11:09:49 +0800 Subject: [PATCH] Fix error in flavor set/unset command In the "flavor set/unset" command,the "flavor" parameter can be a name but can not be a id of a flavor. I think we should find a flavor by using "utils.find_resource()" in these commands. Change-Id: I5836788f7ed18813f1ebde31bb808b7c3f932b80 Closes-Bug: #1575624 --- openstackclient/compute/v2/flavor.py | 6 ++++-- openstackclient/tests/compute/v2/test_flavor.py | 12 ++++++++---- releasenotes/notes/bug-1575624-87957ff60ad661a6.yaml | 5 +++++ 3 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 releasenotes/notes/bug-1575624-87957ff60ad661a6.yaml diff --git a/openstackclient/compute/v2/flavor.py b/openstackclient/compute/v2/flavor.py index 29e0e9d45e..04674614b5 100644 --- a/openstackclient/compute/v2/flavor.py +++ b/openstackclient/compute/v2/flavor.py @@ -239,7 +239,8 @@ class SetFlavor(command.Command): def take_action(self, parsed_args): compute_client = self.app.client_manager.compute - flavor = compute_client.flavors.find(name=parsed_args.flavor) + flavor = utils.find_resource(compute_client.flavors, + parsed_args.flavor) flavor.set_keys(parsed_args.property) @@ -289,5 +290,6 @@ class UnsetFlavor(command.Command): def take_action(self, parsed_args): compute_client = self.app.client_manager.compute - flavor = compute_client.flavors.find(name=parsed_args.flavor) + flavor = utils.find_resource(compute_client.flavors, + parsed_args.flavor) flavor.unset_keys(parsed_args.property) diff --git a/openstackclient/tests/compute/v2/test_flavor.py b/openstackclient/tests/compute/v2/test_flavor.py index 03ca880729..fa29111b34 100644 --- a/openstackclient/tests/compute/v2/test_flavor.py +++ b/openstackclient/tests/compute/v2/test_flavor.py @@ -288,8 +288,10 @@ class TestFlavorSet(TestFlavor): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) - - self.flavors_mock.find.assert_called_with(name='baremetal') + try: + self.flavors_mock.find.assert_called_with(name=parsed_args.flavor) + except Exception: + self.flavors_mock.get.assert_called_with(parsed_args.flavor) self.assertIsNone(result) @@ -382,6 +384,8 @@ class TestFlavorUnset(TestFlavor): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) - - self.flavors_mock.find.assert_called_with(name='baremetal') + try: + self.flavors_mock.find.assert_called_with(name=parsed_args.flavor) + except Exception: + self.flavors_mock.get.assert_called_with(parsed_args.flavor) self.assertIsNone(result) diff --git a/releasenotes/notes/bug-1575624-87957ff60ad661a6.yaml b/releasenotes/notes/bug-1575624-87957ff60ad661a6.yaml new file mode 100644 index 0000000000..950022020d --- /dev/null +++ b/releasenotes/notes/bug-1575624-87957ff60ad661a6.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - Fixed ``flavor set/unset`` command to properly find a + flavor to be set/unset by flavor id. + [Bug `1575624 `_]