From 9a72c09d92e3ae0ae488323298c07c93d0672e2f Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Fri, 1 Apr 2016 10:04:24 -0700 Subject: [PATCH] Autoimage working nicely. --- server/build_image.py | 3 +-- server/modules/autoimage.py | 17 +++++++++++++---- server/publish_manifest.py | 2 ++ 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/server/build_image.py b/server/build_image.py index f85dfbd..f0127c0 100755 --- a/server/build_image.py +++ b/server/build_image.py @@ -3,7 +3,6 @@ import argparse import os import shutil -import stat import subprocess import sys import tempfile @@ -171,7 +170,7 @@ class ImageBuilder(object): with open(os.path.join(chroot_path, 'usr', 'sbin', 'policy-rc.d'), 'w') as fh: fh.write('#!/bin/sh\n') fh.write('exit 101\n') - os.fchmod(fh.fileno(), stat.S_IRWXU) + os.fchmod(fh.fileno(), 0o744) def _InstallPackages(self, chroot_path): os.environ['DEBIAN_FRONTEND'] = 'noninteractive' diff --git a/server/modules/autoimage.py b/server/modules/autoimage.py index 7d9f64f..8f8d24c 100755 --- a/server/modules/autoimage.py +++ b/server/modules/autoimage.py @@ -71,15 +71,24 @@ def main(): fh.write(""" description "AutoImage" -start on net-device-up +start on stopped rc RUNLEVEL=[2345] + +stop on runlevel [!2345] script chvt 7 - /autoimage/imager/wait_for_service.py --host=%(host)s --service=%(service)s /dev/tty7 - /autoimage/imager/image.py --device=%(device)s --persistent-percent=%(persistent_percent)d --ca-cert=/autoimage/config/ca.cert.pem --base-url=%(base_url)s /dev/tty7 + /autoimage/imager/wait_for_service.py --host=%(host)s --service=%(service)s /dev/tty7 2>&1 + chvt 7 + /autoimage/imager/image.py --device=%(device)s --persistent-percent=%(persistent_percent)d --ca-cert=/autoimage/config/ca.cert.pem --base-url=%(base_url)s /dev/tty7 2>&1 + chvt 7 + + echo >/dev/tty7 + echo "==================" >/dev/tty7 + echo "autoimage complete" >/dev/tty7 + echo "==================" >/dev/tty7 end script """ % { - 'host': parsed.host, + 'host': parsed.hostname, 'service': parsed.port or parsed.scheme, 'device': FLAGS.device, 'persistent_percent': FLAGS.persistent_percent, diff --git a/server/publish_manifest.py b/server/publish_manifest.py index d10e8fa..17c19db 100755 --- a/server/publish_manifest.py +++ b/server/publish_manifest.py @@ -75,9 +75,11 @@ def main(): *args, stdin=fh_in, stdout=fh) + os.fchmod(fh.fileno(), 0o644) os.rename(fh.name, signed_manifest) except: os.unlink(fh.name) + raise if __name__ == '__main__':