summaryrefslogtreecommitdiffstats
path: root/func/overlord/cmd_modules/show.py
blob: 5c4875f650cbc529ff16bba0f235be2bc4a69346 (plain)
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
"""
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


class ShowHardware(client.command.BaseCommand):
    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")
    

    def handleOptions(self, options):
        pass
    
    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
        self.getOverlord()
        
        results = self.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.BaseCommand):
    name = "show"
    usage = "various simple report stuff"
    subCommandClasses = [ShowHardware]
    def addOptions(self):
        self.parser.add_option("-v", "--verbose", dest="verbose",
                               action="store_true")

    def handleOptions(self, options):
        self.options = options

        self.verbose = options.verbose


    def parse(self, argv):
        self.argv = argv

        return command.Command.parse(self, argv)
        

    def do(self, args):
        pass