[sos-devel] [PATCH v3] sosreport does not accept commas, period and alphas in the case

Aruna Balakrishnaiah aruna at linux.vnet.ibm.com
Mon Sep 15 05:39:19 UTC 2014


id, the patch fixes the same.

Change the ticket number field to case id as it now accepts
alpha numerals as well.

Signed-off-by: Aruna Balakrishnaiah <aruna at linux.vnet.ibm.com>
---
	Changes from v2:
		Rebase the patch

	Changes from v1:
                Update documentation


 man/en/sosreport.1       |    6 +++---
 sos/policies/__init__.py |   21 ++++++++++-----------
 sos/sosreport.py         |   20 ++++++++++----------
 3 files changed, 23 insertions(+), 24 deletions(-)

diff --git a/man/en/sosreport.1 b/man/en/sosreport.1
index 8471dfb..3714da0 100644
--- a/man/en/sosreport.1
+++ b/man/en/sosreport.1
@@ -9,7 +9,7 @@ sosreport \- Collect and package diagnostic and support data
           [-o|--only-plugins plugin-names]\fR
           [-a|--alloptions] [-v|--verbose]\fR
           [--report] [--config-file conf] [--batch]\fR
-          [--build] [--name name] [--ticket-number number]
+          [--build] [--name name] [--case-id id]
           [--debug] [--tmp-dir directory]\fR
           [-z|--compression-type method]\fR
           [--help]\fR
@@ -78,8 +78,8 @@ Generate archive without prompting for interactive input.
 .B \--name NAME
 Specify a name to be used for the archive.
 .TP
-.B \--ticket-number NUMBER
-Specify a ticket number to be used for archive
+.B \--case-id NUMBER
+Specify a case id to be used for archive
 .TP
 .B \--build
 Do not archive copied data. Causes sosreport to leave an uncompressed
diff --git a/sos/policies/__init__.py b/sos/policies/__init__.py
index 89bc676..0722ee9 100644
--- a/sos/policies/__init__.py
+++ b/sos/policies/__init__.py
@@ -152,7 +152,7 @@ No changes will be made to system configuration.
         modifying PATH in their own initializer."""
         self._parse_uname()
         self.report_name = self.hostname
-        self.ticket_number = None
+        self.case_id = None
         self.package_manager = PackageManager()
         self._valid_subclasses = []
         self.set_exec_path()
@@ -198,8 +198,8 @@ No changes will be made to system configuration.
         This function should return the filename of the archive without the
         extension.
         """
-        if self.ticket_number:
-            self.report_name += "." + self.ticket_number
+        if self.case_id:
+            self.report_name += "." + self.case_id
         return "sosreport-%s-%s" % (self.report_name,
                                     time.strftime("%Y%m%d%H%M%S"))
 
@@ -395,8 +395,8 @@ class LinuxPolicy(Policy):
     def sanitize_report_name(self, report_name):
         return re.sub(r"[^-a-zA-Z.0-9]", "", report_name)
 
-    def sanitize_ticket_number(self, ticket_number):
-        return re.sub(r"[^0-9]", "", ticket_number)
+    def sanitize_case_id(self, case_id):
+        return re.sub(r"[^-a-z,A-Z.0-9]", "", case_id)
 
     def pre_work(self):
         # this method will be called before the gathering begins
@@ -409,7 +409,7 @@ class LinuxPolicy(Policy):
                 self.report_name = input(_("Please enter your first initial "
                                          "and last name [%s]: ") % localname)
 
-                self.ticket_number = input(_("Please enter the case number "
+                self.case_id = input(_("Please enter the case id "
                                              "that you are generating this "
                                              "report for: "))
                 self._print()
@@ -423,13 +423,12 @@ class LinuxPolicy(Policy):
         if self.commons['cmdlineopts'].customer_name:
             self.report_name = self.commons['cmdlineopts'].customer_name
 
-        if self.commons['cmdlineopts'].ticket_number:
-            self.ticket_number = self.commons['cmdlineopts'].ticket_number
+        if self.commons['cmdlineopts'].case_id:
+            self.case_id = self.commons['cmdlineopts'].case_id
 
         self.report_name = self.sanitize_report_name(self.report_name)
-        if self.ticket_number:
-            self.ticket_number = self.sanitize_ticket_number(
-                self.ticket_number)
+        if self.case_id:
+            self.case_id = self.sanitize_case_id(self.case_id)
 
         if (self.report_name == ""):
             self.report_name = "default"
diff --git a/sos/sosreport.py b/sos/sosreport.py
index 95da037..84b5e54 100644
--- a/sos/sosreport.py
+++ b/sos/sosreport.py
@@ -217,7 +217,7 @@ class SoSOptions(object):
     _verify = False
     _quiet = False
     _debug = False
-    _ticket_number = ""
+    _case_id = ""
     _customer_name = ""
     _config_file = ""
     _tmp_dir = ""
@@ -415,15 +415,15 @@ class SoSOptions(object):
         self._debug = value
 
     @property
-    def ticket_number(self):
+    def case_id(self):
         if self._options is not None:
-            return self._options.ticket_number
-        return self._ticket_number
+            return self._options.case_id
+        return self._case_id
 
-    @ticket_number.setter
-    def ticket_number(self, value):
+    @case_id.setter
+    def case_id(self, value):
         self._check_options_initialized()
-        self._ticket_number = value
+        self._case_id = value
 
     @property
     def customer_name(self):
@@ -532,9 +532,9 @@ class SoSOptions(object):
                           dest="debug",
                           help="enable interactive debugging using the python "
                                "debugger")
-        parser.add_option("--ticket-number", action="store",
-                          dest="ticket_number",
-                          help="specify ticket number")
+        parser.add_option("--case-id", action="store",
+                          dest="case_id",
+                          help="specify case id")
         parser.add_option("--name", action="store",
                           dest="customer_name",
                           help="specify report name")




More information about the sos-devel mailing list