diff --git a/subiquity/cmd/server.py b/subiquity/cmd/server.py index 24b8cb5d..ee46b029 100644 --- a/subiquity/cmd/server.py +++ b/subiquity/cmd/server.py @@ -17,8 +17,12 @@ import argparse import logging import os import sys +import time + +from cloudinit import atomic_helper, safeyaml, stages from subiquitycore.log import setup_logger +from subiquitycore.utils import run_command from .common import ( LOGDIR, @@ -104,6 +108,31 @@ def main(): logger.info("Starting Subiquity server revision {}".format(version)) logger.info("Arguments passed: {}".format(sys.argv)) + if not opts.dry_run: + ci_start = time.time() + status_txt = run_command(["cloud-init", "status", "--wait"]).stdout + logger.debug("waited %ss for cloud-init", time.time() - ci_start) + if "status: done" in status_txt: + logger.debug("loading cloud config") + init = stages.Init() + init.read_cfg() + init.fetch(existing="trust") + cloud = init.cloudify() + autoinstall_path = '/autoinstall.yaml' + if 'autoinstall' in cloud.cfg: + if not os.path.exists(autoinstall_path): + atomic_helper.write_file( + autoinstall_path, + safeyaml.dumps( + cloud.cfg['autoinstall']).encode('utf-8'), + mode=0o600) + if os.path.exists(autoinstall_path): + opts.autoinstall = autoinstall_path + else: + logger.debug( + "cloud-init status: %r, assumed disabled", + status_txt) + server = SubiquityServer(opts, block_log_dir) server.note_file_for_apport( diff --git a/subiquity/cmd/tui.py b/subiquity/cmd/tui.py index 78a691cb..33f55638 100755 --- a/subiquity/cmd/tui.py +++ b/subiquity/cmd/tui.py @@ -20,12 +20,8 @@ import os import fcntl import subprocess import sys -import time - -from cloudinit import atomic_helper, safeyaml, stages from subiquitycore.log import setup_logger -from subiquitycore.utils import run_command from .common import ( LOGDIR, @@ -122,31 +118,6 @@ def main(): logger.info("Starting Subiquity revision {}".format(version)) logger.info("Arguments passed: {}".format(sys.argv)) - if not opts.dry_run: - ci_start = time.time() - status_txt = run_command(["cloud-init", "status", "--wait"]).stdout - logger.debug("waited %ss for cloud-init", time.time() - ci_start) - if "status: done" in status_txt: - logger.debug("loading cloud config") - init = stages.Init() - init.read_cfg() - init.fetch(existing="trust") - cloud = init.cloudify() - autoinstall_path = '/autoinstall.yaml' - if 'autoinstall' in cloud.cfg: - if not os.path.exists(autoinstall_path): - atomic_helper.write_file( - autoinstall_path, - safeyaml.dumps( - cloud.cfg['autoinstall']).encode('utf-8'), - mode=0o600) - if os.path.exists(autoinstall_path): - opts.autoinstall = autoinstall_path - else: - logger.debug( - "cloud-init status: %r, assumed disabled", - status_txt) - if opts.ssh: from subiquity.ui.views.help import ( ssh_help_texts, get_installer_password)