Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Debian User (http://www.linux-archive.org/debian-user/)
-   -   Make our resetFileContext loop truly recursive (#681494). (http://www.linux-archive.org/debian-user/499334-make-our-resetfilecontext-loop-truly-recursive-681494-a.html)

David Cantrell 03-09-2011 07:06 PM

Make our resetFileContext loop truly recursive (#681494).
 
Ack.

Chris Lumens <clumens@redhat.com> wrote:

> Before, it really just supported traversing the contents of a directory
> that was one level deep. Now, it'll set context on everything in an entire
> subtree which is the behavior we always wanted anyway.
> ---
> packages.py | 34 ++++++++++++++++++++--------------
> 1 files changed, 20 insertions(+), 14 deletions(-)
>
> diff --git a/packages.py b/packages.py
> index 86b2a47..a866e0d 100644
> --- a/packages.py
> +++ b/packages.py
> @@ -218,6 +218,14 @@ def setupTimezone(anaconda):
> # FIXME: this is a huge gross hack. hard coded list of files
> # created by anaconda so that we can not be killed by selinux
> def setFileCons(anaconda):
> + def lst(root):
> + rc = [root]
> + for (root, dirs, files) in os.walk(root):
> + rc.extend(map(lambda d: root+"/"+d, dirs))
> + rc.extend(map(lambda d: root+"/"+d, files))
> +
> + return rc
> +
> if flags.selinux:
> log.info("setting SELinux contexts for anaconda created files")
>
> @@ -237,22 +245,20 @@ def setFileCons(anaconda):
> vgs = ["/dev/%s" % vg.name for vg in anaconda.id.storage.vgs]
>
> # ugh, this is ugly
> - for dir in ["/etc/sysconfig/network-scripts", "/var/lib/rpm", "/var/lib/yum", "/etc/lvm", "/dev/mapper", "/etc/iscsi", "/var/lib/iscsi", "/root", "/var/log", "/etc/modprobe.d", "/etc/sysconfig" ] + vgs:
> - def addpath(x): return dir + "/" + x
> -
> - if not os.path.isdir(anaconda.rootPath + dir):
> + for d in ["/etc/sysconfig/network-scripts", "/var/cache/yum", "/var/lib/rpm", "/var/lib/yum", "/etc/lvm", "/dev/mapper", "/etc/iscsi", "/var/lib/iscsi", "/root", "/var/log", "/etc/modprobe.d", "/etc/sysconfig" ] + vgs:
> + if not os.path.isdir(anaconda.rootPath + d):
> continue
> - dirfiles = os.listdir(anaconda.rootPath + dir)
> - files.extend(map(addpath, dirfiles))
> - files.append(dir)
>
> - for f in files:
> - if not os.access("%s/%s" %(anaconda.rootPath, f), os.R_OK):
> - log.warning("%s doesn't exist" %(f,))
> - continue
> - ret = isys.resetFileContext(os.path.normpath(f),
> - anaconda.rootPath)
> - log.info("set fc of %s to %s" %(f, ret))
> + # This is stupid, but resetFileContext expects to get the path
> + # without "/mnt/sysimage" in front, whereas everything else needs
> + # it there. So we add it to get the list of files, then
> + # immediately remove it, then pass it back to resetFileContext
> + # anyway.
> + for f in map(lambda f: f.replace(anaconda.rootPath, ""),
> + filter(lambda f: os.access(f, os.R_OK),
> + lst(anaconda.rootPath+d))):
> + ret = isys.resetFileContext(os.path.normpath(f),
> + anaconda.rootPath)
>
> return
>
> --
> 1.7.4.1
>
> _______________________________________________
> Anaconda-devel-list mailing list
> Anaconda-devel-list@redhat.com
> https://www.redhat.com/mailman/listinfo/anaconda-devel-list

--
David Cantrell <dcantrell@redhat.com>
Supervisor, Installer Engineering Team
Red Hat, Inc. | Honolulu, HI | UTC-10

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list

"Brian C. Lane" 03-09-2011 07:13 PM

Make our resetFileContext loop truly recursive (#681494).
 
On Wed, Mar 09, 2011 at 02:52:44PM -0500, Chris Lumens wrote:
> Before, it really just supported traversing the contents of a directory
> that was one level deep. Now, it'll set context on everything in an entire
> subtree which is the behavior we always wanted anyway.
> ---
> packages.py | 34 ++++++++++++++++++++--------------
> 1 files changed, 20 insertions(+), 14 deletions(-)
>

Ack

--
Brian C. Lane | Anaconda Team | IRC: bcl #anaconda | Port Orchard, WA (PST8PDT)
_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list


All times are GMT. The time now is 03:34 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.