1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
"""
show introspection commandline
Copyright 2007, Red Hat, Inc
see AUTHORS
This software may be freely redistributed under the terms of the GNU
general public license.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
"""
import optparse
import pprint
import xmlrpclib
from func.overlord import command
from func.overlord import client
DEFAULT_PORT = 51234
class ShowHardware(client.command.Command):
name = "hardware"
usage = "show hardware details"
# FIXME: we might as well make verbose be in the subclass
# and probably an inc variable while we are at it
def addOptions(self):
self.parser.add_option("-v", "--verbose", dest="verbose",
action="store_true")
self.parser.add_option("-p", "--port", dest="port")
def handleOptions(self, options):
self.port = DEFAULT_PORT
if self.options.port:
self.port = self.options.port
def parse(self, argv):
self.argv = argv
return command.Command.parse(self,argv)
def do(self,args):
self.server_spec = self.parentCommand.parentCommand.server_spec
overlord_obj = client.Overlord(self.server_spec,
port=self.port,
interactive=False,
verbose=self.options.verbose,
config=self.config)
results = overlord_obj.run("hardware", "info", [])
# if the user
top_options = ["port","verbose"]
for minion in results:
print "%s:" % minion
minion_data = results[minion]
# if user set no args
if not args:
pprint.pprint(minion_data)
continue
for arg in args:
if arg in minion_data:
print minion_data[arg]
class Show(client.command.Command):
name = "show"
usage = "various simple report stuff"
subCommandClasses = [ShowHardware]
def addOptions(self):
self.parser.add_option("-v", "--verbose", dest="verbose",
action="store_true")
self.parser.add_option("-p", "--port", dest="port",
default=DEFAULT_PORT)
def handleOptions(self, options):
self.options = options
self.verbose = options.verbose
self.port = options.port
def parse(self, argv):
self.argv = argv
return command.Command.parse(self, argv)
def do(self, args):
pass
|