From a245cc8a8c16d3c5d91096a1b7b6659628f4929a Mon Sep 17 00:00:00 2001 From: Victor Seva Date: Mon, 24 Jan 2022 15:30:05 +0100 Subject: [PATCH] TT#121955 decouple tasks and signals from models * migrate to structlog on all of them Change-Id: I6f89a5880c5d517b2c5525503d88b5b6d815797a --- build/signals.py | 7 +++++-- build/tasks.py | 10 ++++++---- hotfix/tasks.py | 9 +++++---- release_changed/tasks.py | 9 ++++----- release_dashboard/tasks.py | 17 +++++++++++------ 5 files changed, 31 insertions(+), 21 deletions(-) diff --git a/build/signals.py b/build/signals.py index a690108..fa8d742 100644 --- a/build/signals.py +++ b/build/signals.py @@ -15,19 +15,21 @@ from datetime import timedelta import structlog +from django.apps import apps from django.db.models.signals import post_save from django.dispatch import receiver from django.utils import timezone from .conf import settings -from .models import BuildRelease from .tasks import build_release from .tasks import build_resume logger = structlog.get_logger(__name__) -@receiver(post_save, sender=BuildRelease, dispatch_uid="build_br_manage") +@receiver( + post_save, sender="build.BuildRelease", dispatch_uid="build_br_manage" +) def br_manage(sender, **kwargs): if kwargs["created"]: instance = kwargs["instance"] @@ -51,6 +53,7 @@ def br_manage(sender, **kwargs): dispatch_uid="build_jbi_manage", ) def jbi_manage(sender, **kwargs): + BuildRelease = apps.get_model("build", "BuildRelease") if not kwargs["created"]: return jbi = kwargs["instance"] diff --git a/build/tasks.py b/build/tasks.py index 578df4d..6da47cd 100644 --- a/build/tasks.py +++ b/build/tasks.py @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2020 The Sipwise Team - http://sipwise.com +# Copyright (C) 2017-2022 The Sipwise Team - http://sipwise.com # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the Free @@ -14,18 +14,18 @@ # with this program. If not, see . import structlog from celery import shared_task +from django.apps import apps from .conf import settings -from .models import BuildRelease from .utils import trigger_build from .utils import trigger_copy_deps -from repoapi.celery import app logger = structlog.get_logger(__name__) -@app.task(bind=True) +@shared_task(bind=True) def build_release(self, pk): + BuildRelease = apps.get_model("build", "BuildRelease") log = logger.bind(pk=pk) br = BuildRelease.objects try: @@ -47,6 +47,7 @@ def build_release(self, pk): @shared_task(ignore_result=True) def build_project(pk, project): + BuildRelease = apps.get_model("build", "BuildRelease") log = logger.bind(project=project, pk=pk) try: br = BuildRelease.objects.get(id=pk) @@ -66,6 +67,7 @@ def build_project(pk, project): @shared_task(ignore_result=True) def build_resume(pk): + BuildRelease = apps.get_model("build", "BuildRelease") log = logger.bind(pk=pk) try: br = BuildRelease.objects.get(id=pk) diff --git a/hotfix/tasks.py b/hotfix/tasks.py index 4536a49..bc50a96 100644 --- a/hotfix/tasks.py +++ b/hotfix/tasks.py @@ -1,4 +1,4 @@ -# Copyright (C) 2016-2020 The Sipwise Team - http://sipwise.com +# Copyright (C) 2016-2022 The Sipwise Team - http://sipwise.com # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the Free @@ -12,16 +12,17 @@ # # You should have received a copy of the GNU General Public License along # with this program. If not, see . +import structlog from celery import shared_task -from celery.utils.log import get_task_logger +from django.apps import apps from .utils import process_hotfix -from repoapi.models import JenkinsBuildInfo -logger = get_task_logger(__name__) +logger = structlog.get_logger(__name__) @shared_task(ignore_result=True) def hotfix_released(jbi_id, path): + JenkinsBuildInfo = apps.get_model("repoapi", "JenkinsBuildInfo") jbi = JenkinsBuildInfo.objects.get(pk=jbi_id) process_hotfix(str(jbi), jbi.projectname, path) diff --git a/release_changed/tasks.py b/release_changed/tasks.py index 8ac9941..2d5f1db 100644 --- a/release_changed/tasks.py +++ b/release_changed/tasks.py @@ -1,4 +1,4 @@ -# Copyright (C) 2020 The Sipwise Team - http://sipwise.com +# Copyright (C) 2020-2022 The Sipwise Team - http://sipwise.com # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the Free @@ -14,18 +14,17 @@ # with this program. If not, see . import json +import structlog from celery import shared_task -from celery.utils.log import get_task_logger from django.apps import apps -from .models import ReleaseChanged - -logger = get_task_logger(__name__) +logger = structlog.get_logger(__name__) @shared_task(ignore_result=True) def process_result(jbi_id, path_envVars): JenkinsBuildInfo = apps.get_model("repoapi", "JenkinsBuildInfo") + ReleaseChanged = apps.get_model("release_changed", "ReleaseChanged") jbi = JenkinsBuildInfo.objects.get(id=jbi_id) with open(path_envVars) as data_file: data = json.load(data_file) diff --git a/release_dashboard/tasks.py b/release_dashboard/tasks.py index 158b7fb..5d48c98 100644 --- a/release_dashboard/tasks.py +++ b/release_dashboard/tasks.py @@ -1,4 +1,4 @@ -# Copyright (C) 2016-2020 The Sipwise Team - http://sipwise.com +# Copyright (C) 2016-2022 The Sipwise Team - http://sipwise.com # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the Free @@ -12,17 +12,15 @@ # # You should have received a copy of the GNU General Public License along # with this program. If not, see . +import structlog from celery import shared_task -from celery.utils.log import get_task_logger +from django.apps import apps from .conf import settings -from .models import DockerImage -from .models import DockerTag -from .models import Project from .utils import build from .utils import docker -logger = get_task_logger(__name__) +logger = structlog.get_logger(__name__) @shared_task(ignore_result=True) @@ -38,6 +36,8 @@ def gerrit_fetch_all(): @shared_task(ignore_result=True) def docker_fetch_info(imagename): + DockerImage = apps.get_model("release_dashboard", "DockerImage") + DockerTag = apps.get_model("release_dashboard", "DockerTag") image = DockerImage.objects.get(name=imagename) tags = docker.get_docker_tags(imagename) for tagname in tags: @@ -50,6 +50,8 @@ def docker_fetch_info(imagename): @shared_task(ignore_result=True) def docker_fetch_project(projectname): + DockerImage = apps.get_model("release_dashboard", "DockerImage") + Project = apps.get_model("release_dashboard", "Project") DockerImage.objects.filter(project__name=projectname).delete() images = docker.get_docker_repositories() project = Project.objects.get(name=projectname) @@ -61,6 +63,8 @@ def docker_fetch_project(projectname): @shared_task(ignore_result=True) def docker_fetch_all(): + DockerImage = apps.get_model("release_dashboard", "DockerImage") + Project = apps.get_model("release_dashboard", "Project") DockerImage.objects.all().delete() images = docker.get_docker_repositories() logger.debug("images: %s" % images) @@ -74,6 +78,7 @@ def docker_fetch_all(): @shared_task(ignore_result=True) def docker_remove_tag(image_name, tag_name): + DockerTag = apps.get_model("release_dashboard", "DockerTag") tag = DockerTag.objects.get(name=tag_name, image__name=image_name) docker.delete_tag(image_name, tag.reference, tag_name) tag.delete()