sos/0055-Remove-sub-parameter-from-Plugin.add_copy_spec.patch
Bryn M. Reeves 5261563507 Update sos to 3.1
Update sos to the 3.1 upstream release and add post-release patches
from the development tree.
2014-04-01 12:25:00 +01:00

165 lines
6.4 KiB
Diff

From a09090ab98b10e2eca363a4919397545d64f1c85 Mon Sep 17 00:00:00 2001
From: "Bryn M. Reeves" <bmr@redhat.com>
Date: Thu, 27 Mar 2014 16:09:35 +0000
Subject: [PATCH 55/61] Remove 'sub' parameter from Plugin.add_copy_spec*()
The 'sub' parameter to these functions allowed substituting part
of the path in the generated archive. E.g. transforming 'etc/'
into 'configs/'. This has never been used and seems to serve no
real purpose today. Simplify the parameter passing and copy_spec
lists by removing this support.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
---
sos/plugins/__init__.py | 49 +++++++++++++++++--------------------------------
1 file changed, 17 insertions(+), 32 deletions(-)
diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py
index 807bd3f..de278d0 100644
--- a/sos/plugins/__init__.py
+++ b/sos/plugins/__init__.py
@@ -197,7 +197,7 @@ class Plugin(object):
def _path_in_path_list(self, path, path_list):
return any(p in path for p in path_list)
- def copy_symlink(self, srcpath, sub=None):
+ def copy_symlink(self, srcpath):
# the target stored in the original symlink
linkdest = os.readlink(srcpath)
# absolute path to the link target
@@ -213,18 +213,14 @@ class Plugin(object):
reldest = linkdest
self.soslog.debug(
- "copying link %s pointing to %s with sub=%s, isdir=%s"
- % (srcpath, linkdest, sub, os.path.isdir(absdest)))
+ "copying link %s pointing to %s with isdir=%s"
+ % (srcpath, linkdest, os.path.isdir(absdest)))
if os.path.isdir(absdest):
self.soslog.debug("link %s is a directory, skipping..."
% linkdest)
return
- if sub:
- old, new = sub
- reldest = srcpath.replace(old, new)
-
# use the relative target path in the tarball
self.archive.add_link(reldest,srcpath)
@@ -240,9 +236,9 @@ class Plugin(object):
'symlink':"yes",
'pointsto':linkdest})
- def copy_dir(self, srcpath, sub=None):
+ def copy_dir(self, srcpath):
for afile in os.listdir(srcpath):
- self.do_copy_path(os.path.join(srcpath, afile), dest=None, sub=sub)
+ self.do_copy_path(os.path.join(srcpath, afile), dest=None)
def _get_dest_for_srcpath(self, srcpath):
for copied in self.copied_files:
@@ -251,16 +247,12 @@ class Plugin(object):
return None
# Methods for copying files and shelling out
- def do_copy_path(self, srcpath, dest=None, sub=None):
+ def do_copy_path(self, srcpath, dest=None):
# pylint: disable-msg = R0912
# pylint: disable-msg = R0915
'''Copy file or directory to the destination tree. If a directory, then
everything below it is recursively copied. A list of copied files are
- saved for use later in preparing a report. sub can be used to rename
- the destination of the file, sub should be a two-tuple of (old,new).
- For example if you passed in ("etc","configurations") for use against
- /etc/my_file.conf the file would end up at
- /configurations/my_file.conf.
+ saved for use later in preparing a report.
'''
if self._path_in_path_list(srcpath, self.forbidden_paths):
self.soslog.debug("%s is in the forbidden path list" % srcpath)
@@ -273,16 +265,12 @@ class Plugin(object):
if not dest:
dest = srcpath
- if sub:
- old, new = sub
- dest = srcpath.replace(old, new)
-
if os.path.islink(srcpath):
- self.copy_symlink(srcpath, sub=sub)
+ self.copy_symlink(srcpath)
return
else:
if os.path.isdir(srcpath):
- self.copy_dir(srcpath, sub=sub)
+ self.copy_dir(srcpath)
return
# if we get here, it's definitely a regular file (not a symlink or dir)
@@ -370,7 +358,7 @@ class Plugin(object):
except Exception:
return default
- def add_copy_spec_limit(self, copyspec, sizelimit=None, sub=None):
+ def add_copy_spec_limit(self, copyspec, sizelimit=None):
"""Add a file or glob but limit it to sizelimit megabytes. If fname is
a single file the file will be tailed to meet sizelimit. If the first
file in a glob is too large it will be tailed to meet the sizelimit.
@@ -392,14 +380,11 @@ class Plugin(object):
if sizelimit and current_size > sizelimit:
limit_reached = True
break
- self.add_copy_spec(_file, sub)
+ self.add_copy_spec(_file)
if limit_reached:
file_name = _file
- if sub:
- old, new = sub
- file_name = _file.replace(old, new)
if file_name[0] == os.sep:
file_name = file_name.lstrip(os.sep)
strfile = file_name.replace(os.path.sep, ".") + ".tailed"
@@ -408,11 +393,11 @@ class Plugin(object):
os.path.relpath('/', os.path.dirname(_file)), 'sos_strings',
self.name(), strfile), _file)
- def add_copy_specs(self, copyspecs, sub=None):
+ def add_copy_specs(self, copyspecs):
for copyspec in copyspecs:
- self.add_copy_spec(copyspec, sub)
+ self.add_copy_spec(copyspec)
- def add_copy_spec(self, copyspec, sub=None):
+ def add_copy_spec(self, copyspec):
"""Add a file specification (can be file, dir,or shell glob) to be
copied into the sosreport by this module.
"""
@@ -421,7 +406,7 @@ class Plugin(object):
% self.name())
return False
if copyspec not in self.copy_specs:
- self.copy_specs.append((copyspec, sub))
+ self.copy_specs.append(copyspec)
def get_command_output(self, prog, timeout=300):
(status, output, runtime) = sos_get_command_output(prog, timeout)
@@ -539,9 +524,9 @@ class Plugin(object):
def collect_copy_specs(self):
# Glob case handling is such that a valid non-glob is a reduced glob
- for spec, sub in self.copy_specs:
+ for spec in self.copy_specs:
for path in self.expand_copy_spec(spec):
- self.do_copy_path(path, sub=sub)
+ self.do_copy_path(path)
def collect_cmd_output(self):
for progs in zip(self.collect_cmds):
--
1.7.11.7