Ejemplo n.º 1
0
    def delete_all_deployments(self):
        docker_utils = DockerUtils()
        try:
            active_deployments = docker_utils.get_active_deployments()
            for deployment in active_deployments:
                depl_id = deployment.get('id')
                depl_folder = f"{EnvInit.init.get(EnvConstants.DEPLOY_PATH)}/{depl_id}"
                status = docker_utils.down(f"{depl_folder}/docker-compose.yml")
                if "Cannot connect to the Docker daemon".lower() in status.get(
                        'err').lower():
                    raise Exception(status.get('err'))
                app.logger.debug({"msg": status})
                DeploymentMetadataSingleton.get_instance(
                ).delete_metadata_for_deployment(depl_id)

            DockerUtils.folder_clean_up()
            result = docker_utils.get_active_deployments()
        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 cleanup_inactive_deployments(self):
        """ ! can be executed only after /deployments DELETE ! """
        try:
            deleted_folders = DockerUtils.folder_clean_up()
        except Exception as e:
            raise ApiExceptionDocker(
                ApiCode.DEPLOYMENTS_FOLDER_CLEANUP_FAILURE.value,
                ErrorMessage.HTTP_CODE.get(
                    ApiCode.DEPLOYMENTS_FOLDER_CLEANUP_FAILURE.value), e)

        return Response(json.dumps(HttpResponse().response(
            ApiCode.SUCCESS.value,
            ErrorMessage.HTTP_CODE.get(ApiCode.SUCCESS.value),
            deleted_folders)),
                        200,
                        mimetype="application/json")