Blame tools/ccfg-merge-debug

Packit Service 4d1eba
#!/usr/bin/python3
Packit bc9a3a
Packit bc9a3a
from cloudinit import handlers
Packit bc9a3a
from cloudinit.handlers import cloud_config as cc_part
Packit bc9a3a
from cloudinit import helpers
Packit bc9a3a
from cloudinit import log as logging
Packit bc9a3a
from cloudinit.settings import PER_INSTANCE
Packit bc9a3a
from cloudinit import user_data as ud
Packit bc9a3a
Packit bc9a3a
import argparse
Packit bc9a3a
import os
Packit bc9a3a
import shutil
Packit bc9a3a
import tempfile
Packit bc9a3a
Packit bc9a3a
Packit bc9a3a
def main():
Packit bc9a3a
    parser = argparse.ArgumentParser(
Packit bc9a3a
        description='test cloud-config merging')
Packit bc9a3a
    parser.add_argument("--output", "-o", metavar="file",
Packit bc9a3a
        help="specify output file", default="-")
Packit bc9a3a
    parser.add_argument('--verbose', '-v', action='count', default=0)
Packit bc9a3a
    parser.add_argument('files', nargs='+')
Packit bc9a3a
Packit bc9a3a
    args = parser.parse_args()
Packit bc9a3a
Packit bc9a3a
    if args.verbose:
Packit bc9a3a
        level = (logging.WARN, logging.INFO,
Packit bc9a3a
                 logging.DEBUG)[min(args.verbose, 2)]
Packit bc9a3a
        logging.setupBasicLogging(level)
Packit bc9a3a
Packit bc9a3a
    outfile = args.output
Packit bc9a3a
    if args.output == "-":
Packit bc9a3a
        outfile = "/dev/stdout"
Packit bc9a3a
Packit bc9a3a
    tempd = tempfile.mkdtemp()
Packit bc9a3a
    handler_dir = os.path.join(tempd, "hdir")
Packit bc9a3a
    data = None  # the 'init' object
Packit bc9a3a
    frequency = PER_INSTANCE
Packit bc9a3a
Packit bc9a3a
    paths = helpers.Paths({})
Packit bc9a3a
Packit bc9a3a
    # make a '#include <f1>' style
Packit bc9a3a
    udproc = ud.UserDataProcessor(paths=paths)
Packit bc9a3a
    user_data_msg = udproc.process("#include\n" +
Packit bc9a3a
      '\n'.join([os.path.abspath(f) for f in args.files]))
Packit bc9a3a
Packit bc9a3a
    ccph = cc_part.CloudConfigPartHandler(paths=paths)
Packit bc9a3a
    ccph.cloud_fn = outfile
Packit bc9a3a
Packit bc9a3a
    c_handlers = helpers.ContentHandlers()
Packit bc9a3a
    c_handlers.register(ccph)
Packit bc9a3a
Packit bc9a3a
    called = []
Packit bc9a3a
    for (_ctype, mod) in c_handlers.items():
Packit bc9a3a
        if mod in called:
Packit bc9a3a
            continue
Packit bc9a3a
        handlers.call_begin(mod, data, frequency)
Packit bc9a3a
        called.append(mod)
Packit bc9a3a
Packit bc9a3a
    # Walk the user data
Packit bc9a3a
    part_data = {
Packit bc9a3a
        'handlers': c_handlers,
Packit bc9a3a
        # Any new handlers that are encountered get writen here
Packit bc9a3a
        'handlerdir': handler_dir,
Packit bc9a3a
        'data': data,
Packit bc9a3a
        # The default frequency if handlers don't have one
Packit bc9a3a
        'frequency': frequency,
Packit bc9a3a
        # This will be used when new handlers are found
Packit bc9a3a
        # to help write there contents to files with numbered
Packit bc9a3a
        # names...
Packit bc9a3a
        'handlercount': 0,
Packit bc9a3a
        'excluded': [],
Packit bc9a3a
    }
Packit bc9a3a
Packit bc9a3a
    handlers.walk(user_data_msg, handlers.walker_callback, data=part_data)
Packit bc9a3a
Packit bc9a3a
    # Give callbacks opportunity to finalize
Packit bc9a3a
    called = []
Packit bc9a3a
    for (_ctype, mod) in c_handlers.items():
Packit bc9a3a
        if mod in called:
Packit bc9a3a
            continue
Packit bc9a3a
        handlers.call_end(mod, data, frequency)
Packit bc9a3a
        called.append(mod)
Packit bc9a3a
Packit bc9a3a
    shutil.rmtree(tempd)
Packit bc9a3a
Packit bc9a3a
if __name__ == "__main__":
Packit bc9a3a
    main()
Packit bc9a3a
Packit bc9a3a
# vi: ts=4 expandtab