Make SetAgent inherit from cliff.Command
set/unset command classes should inherit from cliff.Command class. Also, this patch adds functional tests for compute agent. Change-Id: I25eafffd1167f82aa0d430628c22dee7516b1e19 Partial-Bug: 1546065
This commit is contained in:
parent
859bfaf875
commit
9c91c1df41
doc/source
functional/tests/compute/v2
openstackclient/compute/v2
releasenotes/notes
@ -138,6 +138,18 @@ List of Backwards Incompatible Changes
|
|||||||
* Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1546065
|
* Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1546065
|
||||||
* Commit: https://review.openstack.org/#/c/281087/
|
* Commit: https://review.openstack.org/#/c/281087/
|
||||||
|
|
||||||
|
11. `compute agent set` commands will no longer return the modified resource
|
||||||
|
|
||||||
|
Previously, modifying an agent would result in the new agent being displayed
|
||||||
|
to the user. To keep things consistent with other `set` commands, we will
|
||||||
|
no longer be showing the modified resource.
|
||||||
|
|
||||||
|
* In favor of: Use `set` then `show`
|
||||||
|
* As of: NA
|
||||||
|
* Removed in: NA
|
||||||
|
* Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1546065
|
||||||
|
* Commit: https://review.openstack.org/#/c/281088/
|
||||||
|
|
||||||
For Developers
|
For Developers
|
||||||
==============
|
==============
|
||||||
|
|
||||||
|
76
functional/tests/compute/v2/test_agent.py
Normal file
76
functional/tests/compute/v2/test_agent.py
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
import hashlib
|
||||||
|
|
||||||
|
from functional.common import test
|
||||||
|
|
||||||
|
|
||||||
|
class ComputeAgentTests(test.TestCase):
|
||||||
|
"""Functional tests for compute agent. """
|
||||||
|
|
||||||
|
ID = None
|
||||||
|
MD5HASH = hashlib.md5().hexdigest()
|
||||||
|
URL = "http://localhost"
|
||||||
|
VER = "v1"
|
||||||
|
OS = "TEST_OS"
|
||||||
|
ARCH = "x86_64"
|
||||||
|
HYPER = "kvm"
|
||||||
|
|
||||||
|
HEADERS = ['agent_id', 'md5hash']
|
||||||
|
FIELDS = ['agent_id', 'md5hash']
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls):
|
||||||
|
opts = cls.get_show_opts(cls.HEADERS)
|
||||||
|
raw_output = cls.openstack('compute agent create '
|
||||||
|
+ cls.OS + ' ' + cls.ARCH + ' '
|
||||||
|
+ cls.VER + ' ' + cls.URL + ' '
|
||||||
|
+ cls.MD5HASH + ' ' + cls.HYPER + ' '
|
||||||
|
+ opts)
|
||||||
|
|
||||||
|
# Get agent id because agent can only be deleted by ID
|
||||||
|
output_list = raw_output.split('\n', 1)
|
||||||
|
cls.ID = output_list[0]
|
||||||
|
|
||||||
|
cls.assertOutput(cls.MD5HASH + '\n', output_list[1])
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def tearDownClass(cls):
|
||||||
|
raw_output = cls.openstack('compute agent delete ' + cls.ID)
|
||||||
|
cls.assertOutput('', raw_output)
|
||||||
|
|
||||||
|
def test_agent_list(self):
|
||||||
|
raw_output = self.openstack('compute agent list')
|
||||||
|
self.assertIn(self.ID, raw_output)
|
||||||
|
self.assertIn(self.OS, raw_output)
|
||||||
|
self.assertIn(self.ARCH, raw_output)
|
||||||
|
self.assertIn(self.VER, raw_output)
|
||||||
|
self.assertIn(self.URL, raw_output)
|
||||||
|
self.assertIn(self.MD5HASH, raw_output)
|
||||||
|
self.assertIn(self.HYPER, raw_output)
|
||||||
|
|
||||||
|
def test_agent_set(self):
|
||||||
|
ver = 'v2'
|
||||||
|
url = "http://openstack"
|
||||||
|
md5hash = hashlib.md5().hexdigest()
|
||||||
|
|
||||||
|
raw_output = self.openstack('compute agent set '
|
||||||
|
+ self.ID + ' ' + ver + ' '
|
||||||
|
+ url + ' ' + md5hash)
|
||||||
|
self.assertEqual('', raw_output)
|
||||||
|
|
||||||
|
raw_output = self.openstack('compute agent list')
|
||||||
|
self.assertIn(self.ID, raw_output)
|
||||||
|
self.assertIn(ver, raw_output)
|
||||||
|
self.assertIn(url, raw_output)
|
||||||
|
self.assertIn(md5hash, raw_output)
|
@ -112,7 +112,7 @@ class ListAgent(command.Lister):
|
|||||||
) for s in data))
|
) for s in data))
|
||||||
|
|
||||||
|
|
||||||
class SetAgent(command.ShowOne):
|
class SetAgent(command.Command):
|
||||||
"""Set compute agent command"""
|
"""Set compute agent command"""
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
@ -143,5 +143,4 @@ class SetAgent(command.ShowOne):
|
|||||||
parsed_args.url,
|
parsed_args.url,
|
||||||
parsed_args.md5hash
|
parsed_args.md5hash
|
||||||
)
|
)
|
||||||
agent = compute_client.agents.update(*args)._info.copy()
|
compute_client.agents.update(*args)
|
||||||
return zip(*sorted(six.iteritems(agent)))
|
|
||||||
|
@ -4,3 +4,5 @@ fixes:
|
|||||||
[Bug `1546065 <https://bugs.launchpad.net/python-openstackclient/+bug/1546065>`_]
|
[Bug `1546065 <https://bugs.launchpad.net/python-openstackclient/+bug/1546065>`_]
|
||||||
- Command ``security group set`` now outputs nothing.
|
- Command ``security group set`` now outputs nothing.
|
||||||
[Bug `1546065 <https://bugs.launchpad.net/python-openstackclient/+bug/1546065>`_]
|
[Bug `1546065 <https://bugs.launchpad.net/python-openstackclient/+bug/1546065>`_]
|
||||||
|
- Command ``compute agent set`` now outputs nothing.
|
||||||
|
[Bug `1546065 <https://bugs.launchpad.net/python-openstackclient/+bug/1546065>`_]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user