diff --git a/neutron/openstack/common/rootwrap/cmd.py b/neutron/openstack/common/rootwrap/cmd.py index 3ac8c5b23f6..aa47507162c 100644 --- a/neutron/openstack/common/rootwrap/cmd.py +++ b/neutron/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/neutron/openstack/common/rootwrap/wrapper.py b/neutron/openstack/common/rootwrap/wrapper.py index 16e3fbb3900..5786ac37777 100644 --- a/neutron/openstack/common/rootwrap/wrapper.py +++ b/neutron/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 neutron.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(',')]