Ejemplo n.º 1
0
    def delete_deployment_id(self, depl_id):
        depl_id = depl_id.strip()
        docker_utils = DockerUtils()
        depl_folder = f"{EnvInit.init.get(EnvConstants.DEPLOY_PATH)}/{depl_id}"
        file = f"{depl_folder}/docker-compose.yml"
        try:
            status = docker_utils.down(file)
            if "Cannot connect to the Docker daemon".lower() in status.get(
                    'err').lower():
                raise Exception(status.get('err'))
            app.logger.debug({"msg": status})
            status = docker_utils.ps(depl_id)
            result = status.get('out').split("\n")[1:]
            DeploymentMetadataSingleton.get_instance(
            ).delete_metadata_for_deployment(depl_id)
            IOUtils.remove_directory(f"{depl_folder}")
        except Exception as e:
            raise ApiExceptionDocker(
                ApiCode.DEPLOY_STOP_FAILURE.value,
                ErrorMessage.HTTP_CODE.get(ApiCode.DEPLOY_STOP_FAILURE.value),
                e)

        return Response(json.dumps(HttpResponse().response(
            ApiCode.SUCCESS.value,
            ErrorMessage.HTTP_CODE.get(ApiCode.SUCCESS.value), result)),
                        200,
                        mimetype="application/json")
Ejemplo n.º 2
0
    def env_clean_up(fluentd_utils, path=EnvInit.init.get(EnvConstants.DEPLOY_PATH), env_expire_in=1440):  # 1 day
        fluentd_tag = 'docker_env_clean_up'
        message_dumper = MessageDumper()
        active_deployments = [item.get('id') for item in DockerUtils.get_active_deployments()]

        for item in active_deployments:
            directory = f"{path}/{item}"
            if (datetime.datetime.now() - datetime.datetime.fromtimestamp(
                    os.path.getmtime(directory))) > datetime.timedelta(minutes=env_expire_in):
                result = DockerUtils.down(f"{directory}/docker-compose.yml")
                IOUtils.remove_directory(directory)
                fluentd_utils.emit(tag=fluentd_tag,
                                   msg=message_dumper.dump_message(
                                       {"action": f"{fluentd_tag}", "out": result.get('out'),
                                        "err": result.get('err')}))