def gen_host_files(cf, tmpldirs, workdir, force): """ Generate files for libvirt host. :param cf: An instance of miniascape.config.ConfFiles :param tmpldirs: Template search paths :param workdir: Working dir to save generated XML files :param force: Existing ones may be overwritten if True """ conf = cf.load_host_confs() gen_vnet_files(cf, tmpldirs, workdir, force) conf["timestamp"] = G.timestamp() T.compile_conf_templates(conf, tmpldirs, workdir, "host_templates")
def gen_host_files(cf, tmpldirs, workdir, force): """ Generate files for libvirt host. :param cf: An instance of miniascape.config.ConfFiles :param tmpldirs: Template search paths :param workdir: Working dir to save generated XML files :param force: Existing ones may be overwritten if True """ conf = cf.load_host_confs() gen_vnet_files(cf, tmpldirs, workdir, force) conf["timestamp"] = G.timestamp() miniascape.template.compile_conf_templates(conf, tmpldirs, workdir, "host_templates")
def _add_special_confs(conf): """ :param conf: Configurations :: dict >>> conf = _add_special_confs(dict()) >>> assert "miniascape" in conf, str(conf) >>> assert "build" in conf["miniascape"], str(conf) >>> assert "user" in conf["miniascape"]["build"], str(conf) >>> assert "host" in conf["miniascape"]["build"], str(conf) >>> assert "time" in conf["miniascape"]["build"], str(conf) >>> assert "builder" in conf["miniascape"], str(conf) """ diff = dict(build=dict(user=U.get_username(), host=U.get_hostname(fqdn=False), time=G.timestamp("%Y%m%d_%H%M%S"))) diff["builder"] = "{user}s@{host}".format(**diff["build"]) conf["miniascape"] = diff return conf
def gen_all(cf, tmpldirs, workdir): """ Generate files to build VM for all VMs. :param conffiles: config.ConfFiles object :param tmpldirs: Template dirs :: [path] :param workdir: Working top dir """ guests = cf.list_guest_names() for name in guests: gen_guest_files(name, cf, tmpldirs, _workdir(workdir, name)) conf = cf.load_host_confs() conf["guests_build_datadir"] = G.M_GUESTS_BUILDDATA_TOPDIR conf["timestamp"] = G.timestamp() conf["distdata"] = list(mk_distdata_g(guests)) logging.debug("Generating guests common build aux files...") T.compile_conf_templates(conf, tmpldirs, _guests_workdir(workdir), "guests_templates")
def gen_all(cf, tmpldirs, workdir): """ Generate files to build VM for all VMs. :param conffiles: config.ConfFiles object :param tmpldirs: Template dirs :: [path] :param workdir: Working top dir """ guests = cf.list_guest_names() for name in guests: gen_guest_files(name, cf, tmpldirs, _workdir(workdir, name)) conf = cf.load_host_confs() conf["guests_build_datadir"] = G.M_GUESTS_BUILDDATA_TOPDIR conf["timestamp"] = G.timestamp() conf["distdata"] = list(mk_distdata_g(guests)) logging.debug("Generating common aux files...") miniascape.template.compile_conf_templates(conf, tmpldirs, _guests_workdir(workdir), "guests_templates")
import os import subprocess import sys curdir = os.getcwd() sys.path.append(curdir) from miniascape.globals import PACKAGE, VERSION, M_CONF_TOPDIR from miniascape.utils import concat # For daily snapshot versioning mode: if os.environ.get("_SNAPSHOT_BUILD", None) is not None: from miniascape.globals import timestamp VERSION = VERSION + timestamp(".%Y%m%d") def list_files(tdir): return [f for f in glob(os.path.join(tdir, '*')) if os.path.isfile(f)] def list_data_files_g(prefix, srcdir, offset=None): for root, dirs, _files in os.walk(srcdir): for d in dirs: reldir = os.path.join(root, d) files = list_files(reldir) if not files: continue