-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Allows cobbler report to show output w/o headers.
AS
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iEYEARECAAYFAkj4Di4ACgkQECmX3C4JWKgiyQCgkbSn7VGlrO2KO4pbGbUeO8Sf
7PEAn1MnUMb/qADWohX8KQ8RB89CkCBA
=+Gjv
-----END PGP SIGNATURE-----
>From 3500f77b36d6b8cf0ba05b4b28bba3f6da1df14f Mon Sep 17 00:00:00 2001
From: Anderson Silva <[EMAIL PROTECTED]>
Date: Thu, 16 Oct 2008 16:04:35 -0400
Subject: [PATCH] add --noheaders to cobbler report
---
cobbler/action_report.py | 61 ++++++++++++++++++++++++++---------------
cobbler/api.py | 5 ++-
cobbler/modules/cli_report.py | 15 ++++++----
3 files changed, 51 insertions(+), 30 deletions(-)
diff --git a/cobbler/action_report.py b/cobbler/action_report.py
index e57946d..4f2e0d7 100644
--- a/cobbler/action_report.py
+++ b/cobbler/action_report.py
@@ -34,8 +34,9 @@ class Report:
self.report_what = None
self.report_name = None
self.report_fields = None
+ self.report_noheaders = None
- def reporting_csv(self, info, order):
+ def reporting_csv(self, info, order, noheaders):
"""
Formats data on 'info' for csv output
"""
@@ -60,9 +61,13 @@ class Report:
outputbody += '\n'
outputheaders += '\n'
+
+ if noheaders:
+ outputheaders = '';
+
return outputheaders + outputbody
- def reporting_trac(self, info, order):
+ def reporting_trac(self, info, order, noheaders):
"""
Formats data on 'info' for trac wiki table output
"""
@@ -88,9 +93,13 @@ class Report:
outputbody += '||\n'
outputheaders += '||\n'
+
+ if noheaders:
+ outputheaders = '';
+
return outputheaders + outputbody
- def reporting_doku(self, info, order):
+ def reporting_doku(self, info, order, noheaders):
"""
Formats data on 'info' for doku wiki table output
"""
@@ -117,9 +126,13 @@ class Report:
outputbody += sep2 + '\n'
outputheaders += sep1 + '\n'
+
+ if noheaders:
+ outputheaders = '';
+
return outputheaders + outputbody
- def reporting_mediawiki(self, info, order):
+ def reporting_mediawiki(self, info, order, noheaders):
"""
Formats data on 'info' for mediawiki table output
"""
@@ -154,20 +167,24 @@ class Report:
outputbody += '\n' + sep3 + '\n'
outputheaders += '\n' + sep3 + '\n'
+
+ if noheaders:
+ outputheaders = '';
+
return opentable + outputheaders + outputbody + closetable
- def print_formatted_data(self, data, order, report_type):
+ def print_formatted_data(self, data, order, report_type, noheaders):
"""
Used for picking the correct format to output data as
"""
if report_type == "csv":
- print self.reporting_csv(data, order)
+ print self.reporting_csv(data, order, noheaders)
if report_type == "mediawiki":
- print self.reporting_mediawiki(data, order)
+ print self.reporting_mediawiki(data, order, noheaders)
if report_type == "trac":
- print self.reporting_trac(data, order)
+ print self.reporting_trac(data, order, noheaders)
if report_type == "doku":
- print self.reporting_doku(data, order)
+ print self.reporting_doku(data, order, noheaders)
return True
@@ -196,7 +213,7 @@ class Report:
print obj.printable()
return True
- def reporting_print_all_fields(self, collection, report_type):
+ def reporting_print_all_fields(self, collection, report_type,
report_noheaders):
"""
Prints all fields in a collection as a table given the report type
"""
@@ -229,11 +246,11 @@ class Report:
data.append(item)
- self.print_formatted_data(data = data, order = out_order, report_type
= report_type)
+ self.print_formatted_data(data = data, order = out_order, report_type
= report_type, noheaders = report_noheaders)
return True
- def reporting_print_x_fields(self, collection, report_type, report_fields):
+ def reporting_print_x_fields(self, collection, report_type, report_fields,
report_noheaders):
"""
Prints specific fields in a collection as a table given the report type
"""
@@ -260,13 +277,13 @@ class Report:
data.append(item)
- self.print_formatted_data(data = data, order = fields_list,
report_type = report_type)
+ self.print_formatted_data(data = data, order = fields_list,
report_type = report_type, noheaders = report_noheaders)
return True
# -------------------------------------------------------
- def run(self, report_what = None, report_name = None, report_type = None,
report_fields = None):
+ def run(self, report_what = None, report_name = None, report_type = None,
report_fields = None, report_noheaders = None):
"""
Get remote profiles and distros and sync them locally
"""
@@ -310,27 +327,27 @@ class Report:
elif report_type != 'text' and report_fields == 'all':
if report_what in [ "all", "distros", "distro" ]:
- self.reporting_print_all_fields(self.api.distros(),
report_type)
+ self.reporting_print_all_fields(self.api.distros(),
report_type, report_noheaders)
if report_what in [ "all", "profiles", "profile" ]:
- self.reporting_print_all_fields(self.api.profiles(),
report_type)
+ self.reporting_print_all_fields(self.api.profiles(),
report_type, report_noheaders)
if report_what in [ "all", "systems", "system" ]:
- self.reporting_print_all_fields(self.api.systems(),
report_type)
+ self.reporting_print_all_fields(self.api.systems(),
report_type, report_noheaders)
if report_what in [ "all", "repos", "repo" ]:
- self.reporting_print_all_fields(self.api.repos(), report_type)
+ self.reporting_print_all_fields(self.api.repos(), report_type,
report_noheaders)
else:
if report_what in [ "all", "distros", "distro" ]:
- self.reporting_print_x_fields(self.api.distros(), report_type,
report_fields)
+ self.reporting_print_x_fields(self.api.distros(), report_type,
report_fields, report_noheaders)
if report_what in [ "all", "profiles", "profile" ]:
- self.reporting_print_x_fields(self.api.profiles(),
report_type, report_fields)
+ self.reporting_print_x_fields(self.api.profiles(),
report_type, report_fields, report_noheaders)
if report_what in [ "all", "systems", "system" ]:
- self.reporting_print_x_fields(self.api.systems(), report_type,
report_fields)
+ self.reporting_print_x_fields(self.api.systems(), report_type,
report_fields, report_noheaders)
if report_what in [ "all", "repos", "repo" ]:
- self.reporting_print_x_fields(self.api.repos(), report_type,
report_fields)
+ self.reporting_print_x_fields(self.api.repos(), report_type,
report_fields, report_noheaders)
diff --git a/cobbler/api.py b/cobbler/api.py
index cb9ddc7..a50b969 100644
--- a/cobbler/api.py
+++ b/cobbler/api.py
@@ -538,13 +538,14 @@ class BootAPI:
include_systems = systems
)
- def report(self, report_what = None, report_name = None, report_type =
None, report_fields = None):
+ def report(self, report_what = None, report_name = None, report_type =
None, report_fields = None, report_noheaders = None):
"""
Report functionality for cobbler
"""
reporter = action_report.Report(self._config)
return reporter.run(report_what = report_what, report_name =
report_name,\
- report_type = report_type, report_fields =
report_fields)
+ report_type = report_type, report_fields =
report_fields,\
+ report_noheaders = report_noheaders)
def get_kickstart_templates(self):
return utils.get_kickstar_templates(self)
diff --git a/cobbler/modules/cli_report.py b/cobbler/modules/cli_report.py
index 328337a..9c94e25 100644
--- a/cobbler/modules/cli_report.py
+++ b/cobbler/modules/cli_report.py
@@ -34,10 +34,11 @@ class ReportFunction(commands.CobblerFunction):
return "report"
def add_options(self, p, args):
- p.add_option("--what", dest="what", default="all",
help="distros/profiles/systems/repos")
- p.add_option("--name", dest="name",
help="report on just this object")
- p.add_option("--format", dest="type", default="text",
help="text/csv/trac/doku/mediawiki")
- p.add_option("--fields", dest="fields", default="all" ,
help="what fields to display")
+ p.add_option("--what", dest="what", default="all",
help="distros/profiles/systems/repos")
+ p.add_option("--name", dest="name",
help="report on just this object")
+ p.add_option("--format", dest="type", default="text",
help="text/csv/trac/doku/mediawiki")
+ p.add_option("--fields", dest="fields", default="all" ,
help="what fields to display")
+ p.add_option("--noheaders", dest="noheaders", help="don't
output headers", action='store_true', default=False)
def run(self):
@@ -45,9 +46,11 @@ class ReportFunction(commands.CobblerFunction):
raise CX(_("Invalid value for --what"))
if self.options.type not in ["text", "csv", "trac", "doku",
"mediawiki" ]:
raise CX(_("Invalid vavlue for --type"))
-
+
+
return self.api.report(report_what = self.options.what, report_name =
self.options.name, \
- report_type = self.options.type, report_fields
= self.options.fields)
+ report_type = self.options.type, report_fields
= self.options.fields, \
+ report_noheaders = self.options.noheaders)
########################################################
# MODULE HOOKS
--
1.5.4.1
_______________________________________________
cobbler mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/cobbler