From b72d7ff9b5b983fe81fb82ecb4ccb2369ad80518 Mon Sep 17 00:00:00 2001 From: Zhongyue Luo Date: Tue, 24 Sep 2013 09:39:45 +0800 Subject: [PATCH] Update rootwrap with code from oslo These are all minor changes bringing cinder up to commit c03f247 c03f247 Skip hidden files while traversion rootwrap filters 3f4d1d5 Fix os.getlogin() problem with no tty fc04531 Send rootwrap exit error message to stderr 3663010 rootwrap: improve Python 3 compatibility 28395d9 Fixes files with wrong bitmode Change-Id: I3a37f23a2617a7c69bc4be422f3fdcab8833e498 --- cinder/openstack/common/rootwrap/cmd.py | 14 +++++++++++--- cinder/openstack/common/rootwrap/wrapper.py | 8 +++++--- 2 files changed, 16 insertions(+), 6 deletions(-) mode change 100755 => 100644 cinder/openstack/common/rootwrap/cmd.py diff --git a/cinder/openstack/common/rootwrap/cmd.py b/cinder/openstack/common/rootwrap/cmd.py old mode 100755 new mode 100644 index b2c69eb94..ad9ee2590 --- a/cinder/openstack/common/rootwrap/cmd.py +++ b/cinder/openstack/common/rootwrap/cmd.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python # vim: tabstop=4 shiftwidth=4 softtabstop=4 # Copyright (c) 2011 OpenStack Foundation. @@ -57,12 +56,21 @@ def _subprocess_setup(): def _exit_error(execname, message, errorcode, log=True): - print("%s: %s" % (execname, message)) + print("%s: %s" % (execname, message), file=sys.stderr) if log: logging.error(message) sys.exit(errorcode) +def _getlogin(): + try: + return os.getlogin() + except OSError: + return (os.getenv('USER') or + os.getenv('USERNAME') or + os.getenv('LOGNAME')) + + def main(): # Split arguments, require at least a command execname = sys.argv.pop(0) @@ -107,7 +115,7 @@ def main(): exec_dirs=config.exec_dirs) if config.use_syslog: logging.info("(%s > %s) Executing %s (filter match = %s)" % ( - os.getlogin(), pwd.getpwuid(os.getuid())[0], + _getlogin(), pwd.getpwuid(os.getuid())[0], command, filtermatch.name)) obj = subprocess.Popen(command, diff --git a/cinder/openstack/common/rootwrap/wrapper.py b/cinder/openstack/common/rootwrap/wrapper.py index 38752b524..a96ba4d77 100644 --- a/cinder/openstack/common/rootwrap/wrapper.py +++ b/cinder/openstack/common/rootwrap/wrapper.py @@ -16,12 +16,13 @@ # under the License. -import ConfigParser import logging import logging.handlers import os import string +from six import moves + from cinder.openstack.common.rootwrap import filters @@ -107,8 +108,9 @@ def load_filters(filters_path): for filterdir in filters_path: if not os.path.isdir(filterdir): continue - for filterfile in os.listdir(filterdir): - filterconfig = ConfigParser.RawConfigParser() + for filterfile in filter(lambda f: not f.startswith('.'), + os.listdir(filterdir)): + filterconfig = moves.configparser.RawConfigParser() filterconfig.read(os.path.join(filterdir, filterfile)) for (name, value) in filterconfig.items("Filters"): filterdefinition = [string.strip(s) for s in value.split(',')] -- 2.45.2