diff options
| author | jichenjc <jichenjc@cn.ibm.com> | 2016-02-19 22:52:38 +0800 |
|---|---|---|
| committer | jichenjc <jichenjc@cn.ibm.com> | 2016-02-26 05:05:46 +0800 |
| commit | ff3a1d3780486d98bd3205c8329576b396e8161f (patch) | |
| tree | 69a9371806db5e347c1112c033dd66dd2707c360 /openstackclient/compute | |
| parent | 8787ad2b49cdb1043a6c5c5b6bad10e54068aeaf (diff) | |
| download | python-openstackclient-ff3a1d3780486d98bd3205c8329576b396e8161f.tar.gz | |
[compute] Add set host command
set host command is missing, add it as SetHost class.
Change-Id: I7acb94150718b7150598632cbebc3d85018a0d59
Diffstat (limited to 'openstackclient/compute')
| -rw-r--r-- | openstackclient/compute/v2/host.py | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/openstackclient/compute/v2/host.py b/openstackclient/compute/v2/host.py index f2257d12..5af25310 100644 --- a/openstackclient/compute/v2/host.py +++ b/openstackclient/compute/v2/host.py @@ -44,6 +44,63 @@ class ListHost(command.Lister): ) for s in data)) +class SetHost(command.Command): + """Set host properties""" + def get_parser(self, prog_name): + parser = super(SetHost, self).get_parser(prog_name) + parser.add_argument( + "host", + metavar="<host>", + help="The host to modify (name or ID)" + ) + status = parser.add_mutually_exclusive_group() + status.add_argument( + '--enable', + action='store_true', + help='Enable the host' + ) + status.add_argument( + '--disable', + action='store_true', + help='Disable the host' + ) + maintenance = parser.add_mutually_exclusive_group() + maintenance.add_argument( + '--enable-maintenance', + action='store_true', + help='Enable maintenance mode for the host' + ) + maintenance.add_argument( + '--disable-maintenance', + action='store_true', + help='Disable maintenance mode for the host', + ) + return parser + + def take_action(self, parsed_args): + kwargs = {} + + if parsed_args.enable: + kwargs['status'] = True + if parsed_args.disable: + kwargs['status'] = False + if parsed_args.enable_maintenance: + kwargs['maintenance_mode'] = True + if parsed_args.disable_maintenance: + kwargs['maintenance_mode'] = False + + compute_client = self.app.client_manager.compute + foundhost = utils.find_resource( + compute_client.hosts, + parsed_args.host + ) + + compute_client.hosts.update( + foundhost.id, + kwargs + ) + + class ShowHost(command.Lister): """Show host command""" |
