On Tue, 2007-12-04 at 10:52 -0500, Michael DeHaan wrote: > James Antill wrote: > > Well there's a _lot_ of info. that is returned by "show hardware" that > > isn't one of the three options it currently has. Maybe changing the > > interface to: > > > > func '*' show hardware os > > func '*' show hardware systemMemory > > func '*' show hardware systemSwap > > > > ...etc. to get specific information, if you want I can do a patch for > > that today? > > > > > If you like, sure! Here you go, I also changed the func.pod but obviously the Wiki is still wrong, usage is: func * show hardware func * show hardware systemMemory func * show hardware os selinux_enabled selinux_enforce blah ...note that "blah" is just ignored. -- James Antill <james@xxxxxxxxxxxxxxxxx>
diff --git a/docs/func.pod b/docs/func.pod index 7d5684a..ead976d 100644 --- a/docs/func.pod +++ b/docs/func.pod @@ -74,9 +74,9 @@ not going through the Python API (where you would not care). func "*.example.org" show hardware --help -func "*.example.org" show hardware --memory +func "*.example.org" show hardware systemMemory -func "*.example.org" show hardware --os +func "*.example.org" show hardware os Another useful helper command module is copyfile, which allows func to work like scp from the shell, though it can address multiple systems at the same time. diff --git a/func/overlord/cmd_modules/show.py b/func/overlord/cmd_modules/show.py index 22bac95..9582e0d 100644 --- a/func/overlord/cmd_modules/show.py +++ b/func/overlord/cmd_modules/show.py @@ -35,12 +35,6 @@ class ShowHardware(client.command.Command): self.parser.add_option("-v", "--verbose", dest="verbose", action="store_true") self.parser.add_option("-p", "--port", dest="port") - self.parser.add_option("", "--platform", dest="platform", - action="store_true") - self.parser.add_option("", "--memory", dest="memory", - action="store_true") - self.parser.add_option("","--os", dest="os", - action="store_true") def handleOptions(self, options): @@ -67,35 +61,17 @@ class ShowHardware(client.command.Command): # if the user top_options = ["port","verbose"] - # figure out of the user set any options we care about - options_set = False - - #ugh, cant find a better way to do this. Look for args - # that specify a "mode", if we set them, then don't - # do the big dump - - # also, optparse is annoying -akl - opt_list = ["--platform", "--memory", "--os"] - for opt in opt_list: - if self.parser.has_option(opt): - options_set = True - - for minion in results: print "%s:" % minion minion_data = results[minion] - if not options_set: + # if user set no args + if not args: pprint.pprint(minion_data) continue - if self.options.platform: - print minion_data['platform'] - - if self.options.memory: - print minion_data["systemMemory"] - - if self.options.os: - print minion_data["os"] + for arg in args: + if arg in minion_data: + print minion_data[arg] class Show(client.command.Command): name = "show"