import subprocess
import datetime
import pkg_resources
+import errno
path = '/var/lib/cloud/data'
' cloud-init\n')
sys.exit(0)
-os.chmod(path + '/cfn-userdata', stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH)
+os.chmod(os.path.join(path, 'cfn-userdata'),
+ stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH)
with open('/var/log/heat-provision.log', 'w') as log:
log.write('Provision began: %s\n' % datetime.datetime.now())
log.flush()
- p = subprocess.Popen(path + '/cfn-userdata', stdout=log, stderr=log)
+ p = subprocess.Popen(os.path.join(path, 'cfn-userdata'),
+ stdout=log, stderr=log)
p.wait()
log.write('Provision done: %s\n' % datetime.datetime.now())
if p.returncode:
sys.exit(p.returncode)
-with open(cloudinit.get_ipath_cur() + '/provision-finished', 'w') as log:
+try:
+ os.makedirs('/var/lib/heat')
+except OSError as e:
+ if e.errno != errno.EEXIST:
+ raise
+
+with open('/var/lib/heat/provision-finished', 'w') as log:
log.write('%s\n' % datetime.datetime.now())
tries = 0
while True:
try:
- self.sftp.stat('/var/lib/cloud/instance/provision-finished')
+ self.sftp.stat('/var/lib/heat/provision-finished')
except paramiko.SSHException as e:
print e
except IOError as e:
t_data = t_data['UserData']['Fn::Base64']['Fn::Join'].pop()
joined_t_data = ''.join(t_data)
t_data_list = joined_t_data.split('\n')
- # must match user data injection
- t_data_list.insert(len(t_data_list) - 1,
- u'touch /var/lib/cloud/instance/provision-finished')
self.testcase.assertEqual(t_data_list, remote_file_list_u)