Revert "Replace part_handler.py with write-files cloudinit mechanism"
Ubuntu has 0.6 of cloudinit, and write-files doesn't work on that
distro. Ubuntu does not intend to update cloudinit in their LTS release
to 0.7.
This reverts commit 621f5bfdba.
Fixes: Bug #1207088
Change-Id: If80863883afee28bdde6dd506826ec5710cc0308
This commit is contained in:
committed by
Jason Dunsmore
parent
255d65ebd0
commit
715e5d4f51
@@ -2,7 +2,6 @@
|
||||
setenforce 0
|
||||
useradd -m @INSTANCE_USER@
|
||||
echo -e '@INSTANCE_USER@\tALL=(ALL)\tNOPASSWD: ALL' >> /etc/sudoers
|
||||
mkdir /var/lib/heat-cfntools
|
||||
|
||||
# Do not remove - the cloud boothook should always return success
|
||||
exit 0
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
#cloud-config
|
||||
user: @INSTANCE_USER@
|
||||
|
||||
cloud_config_modules:
|
||||
@@ -7,7 +6,6 @@ cloud_config_modules:
|
||||
- timezone
|
||||
- update_etc_hosts
|
||||
- update_hostname
|
||||
- write-files
|
||||
|
||||
# Capture all subprocess output into a logfile
|
||||
# Useful for troubleshooting cloud-init issues
|
||||
|
||||
@@ -78,6 +78,7 @@ def main():
|
||||
return -1
|
||||
|
||||
userdata_path = os.path.join(VAR_PATH, 'cfn-userdata')
|
||||
os.chmod(userdata_path, 0o700)
|
||||
|
||||
LOG.info('Provision began: %s\n' % datetime.datetime.now())
|
||||
returncode = call([userdata_path])
|
||||
|
||||
46
heat/cloudinit/part_handler.py
Normal file
46
heat/cloudinit/part_handler.py
Normal file
@@ -0,0 +1,46 @@
|
||||
#part-handler
|
||||
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import datetime
|
||||
import errno
|
||||
import os
|
||||
|
||||
|
||||
def list_types():
|
||||
return(["text/x-cfninitdata"])
|
||||
|
||||
|
||||
def handle_part(data, ctype, filename, payload):
|
||||
if ctype == "__begin__":
|
||||
try:
|
||||
os.makedirs('/var/lib/heat-cfntools', 0o700)
|
||||
except OSError as e:
|
||||
if e.errno != errno.EEXIST:
|
||||
raise
|
||||
return
|
||||
|
||||
if ctype == "__end__":
|
||||
return
|
||||
|
||||
with open('/var/log/part-handler.log', 'a') as log:
|
||||
timestamp = datetime.datetime.now()
|
||||
log.write('%s filename:%s, ctype:%s\n' % (timestamp, filename, ctype))
|
||||
|
||||
if ctype == 'text/x-cfninitdata':
|
||||
with open('/var/lib/heat-cfntools/%s' % filename, 'w') as f:
|
||||
f.write(payload)
|
||||
|
||||
# TODO(sdake) hopefully temporary until users move to heat-cfntools-1.3
|
||||
with open('/var/lib/cloud/data/%s' % filename, 'w') as f:
|
||||
f.write(payload)
|
||||
Reference in New Issue
Block a user