From ff3a1d3780486d98bd3205c8329576b396e8161f Mon Sep 17 00:00:00 2001 From: jichenjc Date: Fri, 19 Feb 2016 22:52:38 +0800 Subject: [compute] Add set host command set host command is missing, add it as SetHost class. Change-Id: I7acb94150718b7150598632cbebc3d85018a0d59 --- openstackclient/compute/v2/host.py | 57 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) (limited to 'openstackclient/compute') 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="", + 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""" -- cgit v1.2.1