Merge "Support to set server state"
This commit is contained in:
commit
416550fd3d
doc/source/command-objects
openstackclient
releasenotes/notes
@ -559,6 +559,7 @@ Set server properties
|
|||||||
--property <key=value>
|
--property <key=value>
|
||||||
[--property <key=value>] ...
|
[--property <key=value>] ...
|
||||||
--root-password
|
--root-password
|
||||||
|
--state <state>
|
||||||
<server>
|
<server>
|
||||||
|
|
||||||
.. option:: --name <new-name>
|
.. option:: --name <new-name>
|
||||||
@ -574,6 +575,10 @@ Set server properties
|
|||||||
Property to add/change for this server
|
Property to add/change for this server
|
||||||
(repeat option to set multiple properties)
|
(repeat option to set multiple properties)
|
||||||
|
|
||||||
|
.. option:: --state <state>
|
||||||
|
|
||||||
|
New server state (valid value: active, error)
|
||||||
|
|
||||||
.. describe:: <server>
|
.. describe:: <server>
|
||||||
|
|
||||||
Server (name or ID)
|
Server (name or ID)
|
||||||
|
@ -1370,6 +1370,12 @@ class SetServer(command.Command):
|
|||||||
help=_('Property to add/change for this server '
|
help=_('Property to add/change for this server '
|
||||||
'(repeat option to set multiple properties)'),
|
'(repeat option to set multiple properties)'),
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--state',
|
||||||
|
metavar='<state>',
|
||||||
|
choices=['active', 'error'],
|
||||||
|
help=_('New server state (valid value: active, error)'),
|
||||||
|
)
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
def take_action(self, parsed_args):
|
||||||
@ -1389,6 +1395,9 @@ class SetServer(command.Command):
|
|||||||
parsed_args.property,
|
parsed_args.property,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if parsed_args.state:
|
||||||
|
server.reset_state(state=parsed_args.state)
|
||||||
|
|
||||||
if parsed_args.root_password:
|
if parsed_args.root_password:
|
||||||
p1 = getpass.getpass(_('New password: '))
|
p1 = getpass.getpass(_('New password: '))
|
||||||
p2 = getpass.getpass(_('Retype new password: '))
|
p2 = getpass.getpass(_('Retype new password: '))
|
||||||
|
@ -1213,6 +1213,67 @@ class TestServerResume(TestServer):
|
|||||||
self.run_method_with_servers('resume', 3)
|
self.run_method_with_servers('resume', 3)
|
||||||
|
|
||||||
|
|
||||||
|
class TestServerSet(TestServer):
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
super(TestServerSet, self).setUp()
|
||||||
|
|
||||||
|
self.methods = {
|
||||||
|
'update': None,
|
||||||
|
'reset_state': None,
|
||||||
|
'change_password': None,
|
||||||
|
}
|
||||||
|
|
||||||
|
self.fake_servers = self.setup_servers_mock(2)
|
||||||
|
|
||||||
|
# Get the command object to test
|
||||||
|
self.cmd = server.SetServer(self.app, None)
|
||||||
|
|
||||||
|
def test_server_set_no_option(self):
|
||||||
|
arglist = [
|
||||||
|
'foo_vm'
|
||||||
|
]
|
||||||
|
verifylist = [
|
||||||
|
('server', 'foo_vm')
|
||||||
|
]
|
||||||
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||||
|
result = self.cmd.take_action(parsed_args)
|
||||||
|
self.assertNotCalled(self.fake_servers[0].update)
|
||||||
|
self.assertNotCalled(self.fake_servers[0].reset_state)
|
||||||
|
self.assertNotCalled(self.fake_servers[0].change_password)
|
||||||
|
self.assertNotCalled(self.servers_mock.set_meta)
|
||||||
|
self.assertIsNone(result)
|
||||||
|
|
||||||
|
def test_server_set_with_state(self):
|
||||||
|
for index, state in enumerate(['active', 'error']):
|
||||||
|
arglist = [
|
||||||
|
'--state', state,
|
||||||
|
'foo_vm',
|
||||||
|
]
|
||||||
|
verifylist = [
|
||||||
|
('state', state),
|
||||||
|
('server', 'foo_vm'),
|
||||||
|
]
|
||||||
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||||
|
result = self.cmd.take_action(parsed_args)
|
||||||
|
self.fake_servers[index].reset_state.assert_called_once_with(
|
||||||
|
state=state)
|
||||||
|
self.assertIsNone(result)
|
||||||
|
|
||||||
|
def test_server_set_with_invalid_state(self):
|
||||||
|
arglist = [
|
||||||
|
'--state', 'foo_state',
|
||||||
|
'foo_vm',
|
||||||
|
]
|
||||||
|
verifylist = [
|
||||||
|
('state', 'foo_state'),
|
||||||
|
('server', 'foo_vm'),
|
||||||
|
]
|
||||||
|
self.assertRaises(utils.ParserException,
|
||||||
|
self.check_parser,
|
||||||
|
self.cmd, arglist, verifylist)
|
||||||
|
|
||||||
|
|
||||||
class TestServerShelve(TestServer):
|
class TestServerShelve(TestServer):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Add ``--state`` option to ``server set`` command to set the server to
|
||||||
|
active or error state.
|
||||||
|
[Blueprint `server-reset-state <https://blueprints.launchpad.net/python-openstackclient/+spec/server-reset-state>`_]
|
Loading…
x
Reference in New Issue
Block a user