summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xheat/cloudinit/loguserdata.py15
-rw-r--r--heat/cloudinit/part_handler.py21
2 files changed, 26 insertions, 10 deletions
diff --git a/heat/cloudinit/loguserdata.py b/heat/cloudinit/loguserdata.py
index 38e443d5d..0378d757e 100755
--- a/heat/cloudinit/loguserdata.py
+++ b/heat/cloudinit/loguserdata.py
@@ -35,7 +35,7 @@ def init_logging():
LOG.setLevel(logging.INFO)
LOG.addHandler(logging.StreamHandler())
fh = logging.FileHandler("/var/log/heat-provision.log")
- os.chmod(fh.baseFilename, 0o600)
+ os.chmod(fh.baseFilename, int("600", 8))
LOG.addHandler(fh)
@@ -55,14 +55,16 @@ def call(args):
if data:
for x in data:
ls.write(x)
- except OSError as ex:
+ except OSError:
+ ex_type, ex, tb = sys.exc_info()
if ex.errno == errno.ENOEXEC:
LOG.error('Userdata empty or not executable: %s\n' % str(ex))
return os.EX_OK
else:
LOG.error('OS error running userdata: %s\n' % str(ex))
return os.EX_OSERR
- except Exception as ex:
+ except Exception:
+ ex_type, ex, tb = sys.exc_info()
LOG.error('Unknown error running userdata: %s\n' % str(ex))
return os.EX_SOFTWARE
return p.returncode
@@ -77,7 +79,7 @@ def main():
return -1
userdata_path = os.path.join(VAR_PATH, 'cfn-userdata')
- os.chmod(userdata_path, 0o700)
+ os.chmod(userdata_path, int("700", 8))
LOG.info('Provision began: %s\n' % datetime.datetime.now())
returncode = call([userdata_path])
@@ -96,5 +98,8 @@ if __name__ == '__main__':
provision_log = os.path.join(VAR_PATH, 'provision-finished')
# touch the file so it is timestamped with when finished
- with file(provision_log, 'a'):
+ pl = file(provision_log, 'a')
+ try:
os.utime(provision_log, None)
+ finally:
+ pl.close()
diff --git a/heat/cloudinit/part_handler.py b/heat/cloudinit/part_handler.py
index 64a24b470..5e8cc8461 100644
--- a/heat/cloudinit/part_handler.py
+++ b/heat/cloudinit/part_handler.py
@@ -15,6 +15,7 @@
import datetime
import errno
import os
+import sys
def list_types():
@@ -24,8 +25,9 @@ def list_types():
def handle_part(data, ctype, filename, payload):
if ctype == "__begin__":
try:
- os.makedirs('/var/lib/heat-cfntools', 0o700)
- except OSError as e:
+ os.makedirs('/var/lib/heat-cfntools', int("700", 8))
+ except OSError:
+ ex_type, e, tb = sys.exc_info()
if e.errno != errno.EEXIST:
raise
return
@@ -33,14 +35,23 @@ def handle_part(data, ctype, filename, payload):
if ctype == "__end__":
return
- with open('/var/log/part-handler.log', 'a') as log:
+ log = open('/var/log/part-handler.log', 'a')
+ try:
timestamp = datetime.datetime.now()
log.write('%s filename:%s, ctype:%s\n' % (timestamp, filename, ctype))
+ finally:
+ log.close()
if ctype == 'text/x-cfninitdata':
- with open('/var/lib/heat-cfntools/%s' % filename, 'w') as f:
+ f = open('/var/lib/heat-cfntools/%s' % filename, 'w')
+ try:
f.write(payload)
+ finally:
+ f.close()
# TODO(sdake) hopefully temporary until users move to heat-cfntools-1.3
- with open('/var/lib/cloud/data/%s' % filename, 'w') as f:
+ f = open('/var/lib/cloud/data/%s' % filename, 'w')
+ try:
f.write(payload)
+ finally:
+ f.close()