Re-run nova-manage under sudo if unable to read conffile

Having to manually sudo to the nova user to make things work is
tedious. Make it so that if we can't read the conffile, we just
re-exec under sudo.

Fixes bug 805695

Change-Id: I322cece80ca757c69147fb3f8474ad137d9bff82
This commit is contained in:
Soren Hansen
2012-02-04 00:02:41 +01:00
parent e05a04614c
commit 1f0b5c88d3

View File

@@ -2307,7 +2307,16 @@ def methods_of(obj):
def main():
"""Parse options and call the appropriate class/method."""
utils.default_flagfile()
flagfile = utils.default_flagfile()
if flagfile and not os.access(flagfile, os.R_OK):
st = os.stat(flagfile)
print "Could not read %s. Re-running with sudo" % flagfile
try:
os.execvp('sudo', ['sudo', '-u', '#%s' % st.st_uid] + sys.argv)
except:
print 'sudo failed, continuing as if nothing happened'
argv = FLAGS(sys.argv)
logging.setup()