# HG changeset patch # User Vincent Hatakeyama <vincent.hatakeyama@xcg-consulting.fr> # Date 1626164633 -7200 # Tue Jul 13 10:23:53 2021 +0200 # Node ID b79256b2eefd00ebe05462f6e1b610a7ab4a75f4 # Parent 8ffb3e012ba702063757813a24b29a0c0ea27606 🚑 fix start-py3o The code was still using old API, updated it. diff --git a/NEWS.rst b/NEWS.rst --- a/NEWS.rst +++ b/NEWS.rst @@ -11,6 +11,8 @@ Changed following base image changes. +Make start-py3o option work again. + 8.0.1 ----- diff --git a/odoo_scripts/docker_py3o.py b/odoo_scripts/docker_py3o.py --- a/odoo_scripts/docker_py3o.py +++ b/odoo_scripts/docker_py3o.py @@ -33,33 +33,34 @@ fusion_name = "py3o_fusion" fusion_image = "{}:{}".format(fusion_repository, fusion_version) try: - docker_client.pull(repository=fusion_repository, tag=fusion_version) + _logger.debug("Pulling %s", fusion_repository) + docker_client.images.pull( + repository=fusion_repository, tag=fusion_version + ) except Exception as e: _logger.warning("Exception when trying to pull: %s", e) if any( - "/{}".format(fusion_name) in container["Names"] - for container in docker_client.containers() + fusion_name == container.name + for container in docker_client.containers.list() ): _logger.debug("%s Container already running", fusion_name) remove_and_stop(docker_client, fusion_name) # TODO handle --host-network option port_bindings = {8765: host_fusion_port} - host_config = docker_client.create_host_config( - binds=[], port_bindings=port_bindings - ) _logger.debug("Starting %s container", fusion_name) - fusion = docker_client.create_container( - image=fusion_image, host_config=host_config, name=fusion_name + fusion = docker_client.containers.create( + image=fusion_image, ports=port_bindings, name=fusion_name ) _logger.debug("Starting %s container", fusion_name) - docker_client.start(container=fusion.get("Id")) + fusion.start() def stop_py3o(): - # TODO test if still exists - _logger.info("Stopping fusion") - docker_client.stop(fusion.get("Id")) - _logger.info("Removing containers") - docker_client.remove_container(fusion.get("Id")) + # TODO test if still exists (no error if already stopped) + _logger.info("Stopping fusion container") + fusion.stop() + fusion.wait() + _logger.info("Removing fusion container") + fusion.remove() if stop_at_exit: atexit.register(stop_py3o)