summaryrefslogtreecommitdiffstats
path: root/func/overlord/cmd_modules/show.py
blob: 92b094e8e0b673004cd675f81a3a0a4ab831a5cb (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 base_command


class ShowHardware(base_command.BaseCommand):
    name = "hardware"
    usage = "show hardware details"
    summary = usage

    # 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 base_command.BaseCommand.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(base_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 base_command.BaseCommand.parse(self, argv)
        

    def do(self, args):
        pass