Skip to content

Commit 2a39a70

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "Added compute service support."
2 parents ed809e0 + 7266c69 commit 2a39a70

2 files changed

Lines changed: 115 additions & 0 deletions

File tree

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
# Copyright 2013 OpenStack, LLC.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License"); you may
4+
# not use this file except in compliance with the License. You may obtain
5+
# a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12+
# License for the specific language governing permissions and limitations
13+
# under the License.
14+
#
15+
16+
"""Service action implementations"""
17+
18+
import logging
19+
20+
from cliff import lister
21+
22+
from novaclient.v1_1 import services
23+
from openstackclient.common import utils
24+
25+
26+
class ListService(lister.Lister):
27+
"""List service command"""
28+
29+
api = "compute"
30+
log = logging.getLogger(__name__ + ".ListService")
31+
32+
def get_parser(self, prog_name):
33+
parser = super(ListService, self).get_parser(prog_name)
34+
parser.add_argument(
35+
"--host",
36+
metavar="<host>",
37+
help="Name of host")
38+
parser.add_argument(
39+
"--service",
40+
metavar="<service>",
41+
help="Name of service")
42+
return parser
43+
44+
def take_action(self, parsed_args):
45+
self.log.debug("take_action(%s)" % parsed_args)
46+
compute_client = self.app.client_manager.compute
47+
columns = (
48+
"Binary",
49+
"Host",
50+
"Zone",
51+
"Status",
52+
"State",
53+
"Updated At"
54+
)
55+
data = compute_client.services.list(parsed_args.host,
56+
parsed_args.service)
57+
return (columns,
58+
(utils.get_item_properties(
59+
s, columns,
60+
) for s in data))
61+
62+
63+
class SetService(lister.Lister):
64+
"""Set service command"""
65+
66+
api = "compute"
67+
log = logging.getLogger(__name__ + ".SetService")
68+
69+
def get_parser(self, prog_name):
70+
parser = super(SetService, self).get_parser(prog_name)
71+
parser.add_argument(
72+
"host",
73+
metavar="<host>",
74+
help="Name of host")
75+
parser.add_argument(
76+
"service",
77+
metavar="<service>",
78+
help="Name of service")
79+
enabled_group = parser.add_mutually_exclusive_group()
80+
enabled_group.add_argument(
81+
"--enable",
82+
dest="enabled",
83+
default=True,
84+
help="Enable a service",
85+
action="store_true")
86+
enabled_group.add_argument(
87+
"--disable",
88+
dest="enabled",
89+
help="Disable a service",
90+
action="store_false")
91+
return parser
92+
93+
def take_action(self, parsed_args):
94+
self.log.debug("take_action(%s)" % parsed_args)
95+
compute_client = self.app.client_manager.compute
96+
columns = (
97+
"Host",
98+
"Service",
99+
"Disabled"
100+
)
101+
102+
if parsed_args.enabled:
103+
action = compute_client.services.enable
104+
else:
105+
action = compute_client.services.disable
106+
107+
data = action(parsed_args.host, parsed_args.service)
108+
return (columns,
109+
(utils.get_item_properties(
110+
s, columns,
111+
) for s in data))

setup.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,12 +133,16 @@ def read(fname):
133133
'list_agent=openstackclient.compute.v2.agent:ListAgent',
134134
'list_flavor=openstackclient.compute.v2.flavor:ListFlavor',
135135
'list_server=openstackclient.compute.v2.server:ListServer',
136+
'list_compute-service=' +
137+
'openstackclient.compute.v2.service:ListService',
136138
'pause_server=openstackclient.compute.v2.server:PauseServer',
137139
'reboot_server=openstackclient.compute.v2.server:RebootServer',
138140
'rebuild_server=openstackclient.compute.v2.server:RebuildServer',
139141
'resume_server=openstackclient.compute.v2.server:ResumeServer',
140142
'set_agent=openstackclient.compute.v2.agent:SetAgent',
141143
'show_flavor=openstackclient.compute.v2.flavor:ShowFlavor',
144+
'set_compute-service=' +
145+
'openstackclient.compute.v2.service:SetService',
142146
'show_server=openstackclient.compute.v2.server:ShowServer',
143147
'suspend_server=openstackclient.compute.v2.server:SuspendServer',
144148
'unpause_server=openstackclient.compute.v2.server:UnpauseServer',

0 commit comments

Comments
 (0)