Example #1
0
def main():
    conf = cfg.ConfigOpts()
    common_config.parse(conf, sys.argv[1:], prog='kolla-build')

    retrieve_upstream_versions()
    retrieve_local_versions(conf)

    compare_versions()
Example #2
0
def main():
    conf = cfg.ConfigOpts()
    common_config.parse(conf, sys.argv[1:], prog='kolla-build')

    retrieve_local_versions()
    retrieve_upstream_versions()

    compare_versions()
Example #3
0
def run_build():
    """Build container images.

    :return: A 3-tuple containing bad, good, and unmatched container image
    status dicts, or None if no images were built.
    """
    conf = cfg.ConfigOpts()
    common_config.parse(conf, sys.argv[1:], prog='kolla-build')

    if conf.debug:
        LOG.setLevel(logging.DEBUG)

    kolla = KollaWorker(conf)
    kolla.setup_working_dir()
    kolla.find_dockerfiles()
    kolla.create_dockerfiles()

    if conf.template_only:
        LOG.info('Dockerfiles are generated in %s', kolla.working_dir)
        return

    # We set the atime and mtime to 0 epoch to preserve allow the Docker cache
    # to work like we want. A different size or hash will still force a rebuild
    kolla.set_time()

    queue = kolla.build_queue()
    push_queue = six.moves.queue.Queue()

    if conf.save_dependency:
        kolla.save_dependency(conf.save_dependency)
        LOG.info('Docker images dependency is saved in %s',
                 conf.save_dependency)
        return
    if conf.list_images:
        kolla.list_images()
        return
    if conf.list_dependencies:
        kolla.list_dependencies()
        return

    for x in six.moves.range(conf.threads):
        worker = WorkerThread(queue, push_queue, conf)
        worker.setDaemon(True)
        worker.start()

    for x in six.moves.range(conf.push_threads):
        push_thread = PushThread(conf, push_queue)
        push_thread.start()

    # sleep until queue is empty
    while queue.unfinished_tasks or push_queue.unfinished_tasks:
        time.sleep(3)

    kolla.summary()
    kolla.cleanup()

    return kolla.get_image_statuses()
Example #4
0
def main():
    conf = cfg.ConfigOpts()
    common_config.parse(conf, sys.argv[1:], prog='version-check')

    if conf.debug:
        LOG.setLevel(logging.DEBUG)

    retrieve_local_versions(conf)
    retrieve_upstream_versions()

    compare_versions()
Example #5
0
 def setUp(self):
     super(TestCase, self).setUp()
     self.conf = cfg.ConfigOpts()
     default_config_files = self.get_default_config_files()
     common_config.parse(self.conf, [],
                         default_config_files=default_config_files)
     # NOTE(jeffrey4l): mock the _get_image_dir method to return a fake
     # docker images dir
     self.useFixture(fixtures.MockPatch(
         'kolla.image.build.KollaWorker._get_images_dir',
         mock.Mock(return_value=os.path.join(TESTS_ROOT, 'docker'))))
Example #6
0
def main():
    conf = cfg.ConfigOpts()
    common_config.parse(conf, sys.argv[1:], prog='version-check')

    if conf.debug:
        LOG.setLevel(logging.DEBUG)

    retrieve_local_versions(conf)
    retrieve_upstream_versions()

    compare_versions()
Example #7
0
 def setUp(self):
     super(TestCase, self).setUp()
     self.conf = cfg.ConfigOpts()
     default_config_files = self.get_default_config_files()
     common_config.parse(self.conf, [],
                         default_config_files=default_config_files)
     # NOTE(jeffrey4l): mock the _get_image_dir method to return a fake
     # docker images dir
     self.useFixture(
         fixtures.MockPatch(
             'kolla.cmd.build.KollaWorker._get_images_dir',
             mock.Mock(return_value=os.path.join(TESTS_ROOT, 'docker'))))
Example #8
0
def main():
    conf = cfg.ConfigOpts()
    common_config.parse(conf, sys.argv[1:], prog='kolla-build')

    if conf.debug:
        LOG.setLevel(logging.DEBUG)

    kolla = KollaWorker(conf)
    kolla.setup_working_dir()
    kolla.find_dockerfiles()
    kolla.create_dockerfiles()

    if conf.template_only:
        LOG.info('Dockerfiles are generated in %s', kolla.working_dir)
        return

    # We set the atime and mtime to 0 epoch to preserve allow the Docker cache
    # to work like we want. A different size or hash will still force a rebuild
    kolla.set_time()

    queue = kolla.build_queue()
    push_queue = six.moves.queue.Queue()

    if conf.save_dependency:
        kolla.save_dependency(conf.save_dependency)
        LOG.info('Docker images dependency is saved in %s',
                 conf.save_dependency)
        return
    if conf.list_images:
        kolla.list_images()
        return
    if conf.list_dependencies:
        kolla.list_dependencies()
        return

    for x in six.moves.range(conf.threads):
        worker = WorkerThread(queue, push_queue, conf)
        worker.setDaemon(True)
        worker.start()

    for x in six.moves.range(conf.push_threads):
        push_thread = PushThread(conf, push_queue)
        push_thread.start()

    # block until queue is empty
    queue.join()
    push_queue.join()

    kolla.summary()
    kolla.cleanup()

    return kolla.get_image_statuses()
Example #9
0
def main():
    conf = cfg.ConfigOpts()
    common_config.parse(conf, sys.argv[1:], prog='kolla-build')

    if conf.debug:
        LOG.setLevel(logging.DEBUG)

    kolla = KollaWorker(conf)
    kolla.setup_working_dir()
    kolla.find_dockerfiles()
    kolla.create_dockerfiles()

    if conf.template_only:
        LOG.info('Dockerfiles are generated in %s', kolla.working_dir)
        return

    # We set the atime and mtime to 0 epoch to preserve allow the Docker cache
    # to work like we want. A different size or hash will still force a rebuild
    kolla.set_time()

    queue = kolla.build_queue()
    push_queue = six.moves.queue.Queue()

    if conf.save_dependency:
        kolla.save_dependency(conf.save_dependency)
        LOG.info('Docker images dependency is saved in %s',
                 conf.save_dependency)
        return
    if conf.list_images:
        kolla.list_images()
        return
    if conf.list_dependencies:
        kolla.list_dependencies()
        return

    for x in six.moves.range(conf.threads):
        worker = WorkerThread(queue, push_queue, conf)
        worker.setDaemon(True)
        worker.start()

    for x in six.moves.range(conf.push_threads):
        push_thread = PushThread(conf, push_queue)
        push_thread.start()

    # sleep until queue is empty
    while queue.unfinished_tasks or push_queue.unfinished_tasks:
        time.sleep(3)

    kolla.summary()
    kolla.cleanup()

    return kolla.get_image_statuses()
Example #10
0
def run_build():
    """Build container images.

    :return: A 4-tuple containing bad, good, unmatched and skipped container
    image status dicts, or None if no images were built.
    """
    conf = cfg.ConfigOpts()
    common_config.parse(conf, sys.argv[1:], prog='kolla-build')

    if conf.debug:
        LOG.setLevel(logging.DEBUG)

    if conf.squash:
        squash_version = utils.get_docker_squash_version()
        LOG.info('Image squash is enabled and "docker-squash" version is %s',
                 squash_version)

    kolla = KollaWorker(conf)
    kolla.setup_working_dir()
    kolla.find_dockerfiles()
    kolla.create_dockerfiles()

    if conf.template_only:
        LOG.info('Dockerfiles are generated in %s', kolla.working_dir)
        return

    # We set the atime and mtime to 0 epoch to preserve allow the Docker cache
    # to work like we want. A different size or hash will still force a rebuild
    kolla.set_time()

    if conf.save_dependency:
        kolla.build_image_list()
        kolla.find_parents()
        kolla.filter_images()
        kolla.save_dependency(conf.save_dependency)
        LOG.info('Docker images dependency are saved in %s',
                 conf.save_dependency)
        return
    if conf.list_images:
        kolla.build_image_list()
        kolla.find_parents()
        kolla.filter_images()
        kolla.list_images()
        return
    if conf.list_dependencies:
        kolla.build_image_list()
        kolla.find_parents()
        kolla.filter_images()
        kolla.list_dependencies()
        return

    push_queue = six.moves.queue.Queue()
    queue = kolla.build_queue(push_queue)
    workers = []

    with join_many(workers):
        try:
            for x in six.moves.range(conf.threads):
                worker = WorkerThread(conf, queue)
                worker.setDaemon(True)
                worker.start()
                workers.append(worker)

            for x in six.moves.range(conf.push_threads):
                worker = WorkerThread(conf, push_queue)
                worker.setDaemon(True)
                worker.start()
                workers.append(worker)

            # sleep until queue is empty
            while queue.unfinished_tasks or push_queue.unfinished_tasks:
                time.sleep(3)

            # ensure all threads exited happily
            push_queue.put(WorkerThread.tombstone)
            queue.put(WorkerThread.tombstone)
        except KeyboardInterrupt:
            for w in workers:
                w.should_stop = True
            push_queue.put(WorkerThread.tombstone)
            queue.put(WorkerThread.tombstone)
            raise

    results = kolla.summary()
    kolla.cleanup()
    if conf.format == 'json':
        print(json.dumps(results))
    return kolla.get_image_statuses()
Example #11
0
def run_build():
    """Build container images.

    :return: A 3-tuple containing bad, good, and unmatched container image
    status dicts, or None if no images were built.
    """
    conf = cfg.ConfigOpts()
    common_config.parse(conf, sys.argv[1:], prog='kolla-build')

    if conf.debug:
        LOG.setLevel(logging.DEBUG)

    kolla = KollaWorker(conf)
    kolla.setup_working_dir()
    kolla.find_dockerfiles()
    kolla.create_dockerfiles()

    if conf.template_only:
        LOG.info('Dockerfiles are generated in %s', kolla.working_dir)
        return

    # We set the atime and mtime to 0 epoch to preserve allow the Docker cache
    # to work like we want. A different size or hash will still force a rebuild
    kolla.set_time()

    if conf.save_dependency:
        kolla.build_image_list()
        kolla.find_parents()
        kolla.save_dependency(conf.save_dependency)
        LOG.info('Docker images dependency are saved in %s',
                 conf.save_dependency)
        return
    if conf.list_images:
        kolla.build_image_list()
        kolla.list_images()
        return
    if conf.list_dependencies:
        kolla.build_image_list()
        kolla.find_parents()
        kolla.filter_images()
        kolla.list_dependencies()
        return

    push_queue = six.moves.queue.Queue()
    queue = kolla.build_queue(push_queue)
    workers = []

    with join_many(workers):
        try:
            for x in six.moves.range(conf.threads):
                worker = WorkerThread(conf, queue)
                worker.setDaemon(True)
                worker.start()
                workers.append(worker)

            for x in six.moves.range(conf.push_threads):
                worker = WorkerThread(conf, push_queue)
                worker.start()
                workers.append(worker)

            # sleep until queue is empty
            while queue.unfinished_tasks or push_queue.unfinished_tasks:
                time.sleep(3)

            # ensure all threads exited happily
            push_queue.put(WorkerThread.tombstone)
            queue.put(WorkerThread.tombstone)
        except KeyboardInterrupt:
            for w in workers:
                w.should_stop = True
            push_queue.put(WorkerThread.tombstone)
            queue.put(WorkerThread.tombstone)
            raise

    kolla.summary()
    kolla.cleanup()

    return kolla.get_image_statuses()
Example #12
0
 def setUp(self):
     super(TestCase, self).setUp()
     self.conf = cfg.ConfigOpts()
     default_config_files = self.get_default_config_files()
     common_config.parse(self.conf, [],
                         default_config_files=default_config_files)
Example #13
0
 def setUp(self):
     super(TestCase, self).setUp()
     self.conf = cfg.ConfigOpts()
     default_config_files = self.get_default_config_files()
     common_config.parse(self.conf, [], default_config_files=default_config_files)