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")
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')}))