]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commitdiff
Update rootwrap with code from oslo
authorZhongyue Luo <zhongyue.nah@intel.com>
Tue, 24 Sep 2013 01:39:45 +0000 (09:39 +0800)
committerZhongyue Luo <zhongyue.nah@intel.com>
Tue, 24 Sep 2013 08:26:46 +0000 (16:26 +0800)
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 [changed mode: 0755->0644]
cinder/openstack/common/rootwrap/wrapper.py

old mode 100755 (executable)
new mode 100644 (file)
index b2c69eb..ad9ee25
@@ -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,
index 38752b52429a3fff86c2c13cfc59254e4bbadb21..a96ba4d771a935a7a1f6794d69a033fd1838f4db 100644 (file)
 #    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(',')]