Robert Schweikert has proposed merging ~rjschwei/cloud-init:systemdGenTmpl into cloud-init:master.
Commit message: The systemd generator used to generate the target file has a hard coded path for the location of systemd. This path does not apply to all distributions. Make the generator and template to have the path set during build time. Requested reviews: cloud-init commiters (cloud-init-dev) For more details, see: https://code.launchpad.net/~rjschwei/cloud-init/+git/cloud-init/+merge/356098 -- Your team cloud-init commiters is requested to review the proposed merge of ~rjschwei/cloud-init:systemdGenTmpl into cloud-init:master.
diff --git a/setup.py b/setup.py index 5ed8eae..90b897d 100755 --- a/setup.py +++ b/setup.py @@ -138,8 +138,10 @@ INITSYS_FILES = { 'systemd': [render_tmpl(f) for f in (glob('systemd/*.tmpl') + glob('systemd/*.service') + - glob('systemd/*.target')) if is_f(f)], - 'systemd.generators': [f for f in glob('systemd/*-generator') if is_f(f)], + glob('systemd/*.target')) + if (is_f(f) and 'generator' not in f)], + 'systemd.generators': [render_tmpl(f) + for f in glob('systemd/*-generator*') if is_f(f)], 'upstart': [f for f in glob('upstart/*') if is_f(f)], } INITSYS_ROOTS = { @@ -225,6 +227,10 @@ class InitsysInstallData(install): continue self.distribution.data_files.append( (INITSYS_ROOTS[k], INITSYS_FILES[k])) + #if 'generator' in k: + # for generator in INITSYS_FILES[k]: + # tiny_p(['chmod', '+x', generator]) + # Force that command to reinitalize (with new file list) self.distribution.reinitialize_command('install_data', True) diff --git a/systemd/cloud-init-generator b/systemd/cloud-init-generator.tmpl index bd9f267..cfa5eb5 100755 --- a/systemd/cloud-init-generator +++ b/systemd/cloud-init-generator.tmpl @@ -1,3 +1,4 @@ +## template:jinja #!/bin/sh set -f @@ -9,7 +10,11 @@ DISABLE="disabled" FOUND="found" NOTFOUND="notfound" RUN_ENABLED_FILE="$LOG_D/$ENABLE" +{% if variant in ["suse"] %} +CLOUD_SYSTEM_TARGET="/usr/lib/systemd/system/cloud-init.target" +{% else %} CLOUD_SYSTEM_TARGET="/lib/systemd/system/cloud-init.target" +{% endif %} CLOUD_TARGET_NAME="cloud-init.target" # lxc sets 'container', but lets make that explicitly a global CONTAINER="${container}" diff --git a/tools/render-cloudcfg b/tools/render-cloudcfg index 8b7cb87..8c7d8b7 100755 --- a/tools/render-cloudcfg +++ b/tools/render-cloudcfg @@ -2,6 +2,7 @@ import argparse import os +import stat import sys VARIANTS = ["bsd", "centos", "fedora", "rhel", "suse", "ubuntu", "unknown"] @@ -30,6 +31,9 @@ def main(): args = parser.parse_args() + file_info = os.stat(args.template) + mode = file_info.st_mode + with open(args.template, 'r') as fh: contents = fh.read() tpl_params = {'variant': args.variant} @@ -38,7 +42,7 @@ def main(): if args.output == "-": sys.stdout.write(contents) else: - write_file(args.output, contents, omode="w") + write_file(args.output, contents, mode=mode, omode="w") if __name__ == '__main__': main()
_______________________________________________ Mailing list: https://launchpad.net/~cloud-init-dev Post to : cloud-init-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~cloud-init-dev More help : https://help.launchpad.net/ListHelp