TT#121955 decouple tasks and signals from models

* migrate to structlog on all of them

Change-Id: I6f89a5880c5d517b2c5525503d88b5b6d815797a
pull/5/head
Victor Seva 4 years ago committed by Víctor Seva
parent c8abcd38e6
commit a245cc8a8c

@ -15,19 +15,21 @@
from datetime import timedelta from datetime import timedelta
import structlog import structlog
from django.apps import apps
from django.db.models.signals import post_save from django.db.models.signals import post_save
from django.dispatch import receiver from django.dispatch import receiver
from django.utils import timezone from django.utils import timezone
from .conf import settings from .conf import settings
from .models import BuildRelease
from .tasks import build_release from .tasks import build_release
from .tasks import build_resume from .tasks import build_resume
logger = structlog.get_logger(__name__) 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): def br_manage(sender, **kwargs):
if kwargs["created"]: if kwargs["created"]:
instance = kwargs["instance"] instance = kwargs["instance"]
@ -51,6 +53,7 @@ def br_manage(sender, **kwargs):
dispatch_uid="build_jbi_manage", dispatch_uid="build_jbi_manage",
) )
def jbi_manage(sender, **kwargs): def jbi_manage(sender, **kwargs):
BuildRelease = apps.get_model("build", "BuildRelease")
if not kwargs["created"]: if not kwargs["created"]:
return return
jbi = kwargs["instance"] jbi = kwargs["instance"]

@ -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 # 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 # under the terms of the GNU General Public License as published by the Free
@ -14,18 +14,18 @@
# with this program. If not, see <http://www.gnu.org/licenses/>. # with this program. If not, see <http://www.gnu.org/licenses/>.
import structlog import structlog
from celery import shared_task from celery import shared_task
from django.apps import apps
from .conf import settings from .conf import settings
from .models import BuildRelease
from .utils import trigger_build from .utils import trigger_build
from .utils import trigger_copy_deps from .utils import trigger_copy_deps
from repoapi.celery import app
logger = structlog.get_logger(__name__) logger = structlog.get_logger(__name__)
@app.task(bind=True) @shared_task(bind=True)
def build_release(self, pk): def build_release(self, pk):
BuildRelease = apps.get_model("build", "BuildRelease")
log = logger.bind(pk=pk) log = logger.bind(pk=pk)
br = BuildRelease.objects br = BuildRelease.objects
try: try:
@ -47,6 +47,7 @@ def build_release(self, pk):
@shared_task(ignore_result=True) @shared_task(ignore_result=True)
def build_project(pk, project): def build_project(pk, project):
BuildRelease = apps.get_model("build", "BuildRelease")
log = logger.bind(project=project, pk=pk) log = logger.bind(project=project, pk=pk)
try: try:
br = BuildRelease.objects.get(id=pk) br = BuildRelease.objects.get(id=pk)
@ -66,6 +67,7 @@ def build_project(pk, project):
@shared_task(ignore_result=True) @shared_task(ignore_result=True)
def build_resume(pk): def build_resume(pk):
BuildRelease = apps.get_model("build", "BuildRelease")
log = logger.bind(pk=pk) log = logger.bind(pk=pk)
try: try:
br = BuildRelease.objects.get(id=pk) br = BuildRelease.objects.get(id=pk)

@ -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 # 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 # 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 # You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>. # with this program. If not, see <http://www.gnu.org/licenses/>.
import structlog
from celery import shared_task from celery import shared_task
from celery.utils.log import get_task_logger from django.apps import apps
from .utils import process_hotfix 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) @shared_task(ignore_result=True)
def hotfix_released(jbi_id, path): def hotfix_released(jbi_id, path):
JenkinsBuildInfo = apps.get_model("repoapi", "JenkinsBuildInfo")
jbi = JenkinsBuildInfo.objects.get(pk=jbi_id) jbi = JenkinsBuildInfo.objects.get(pk=jbi_id)
process_hotfix(str(jbi), jbi.projectname, path) process_hotfix(str(jbi), jbi.projectname, path)

@ -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 # 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 # under the terms of the GNU General Public License as published by the Free
@ -14,18 +14,17 @@
# with this program. If not, see <http://www.gnu.org/licenses/>. # with this program. If not, see <http://www.gnu.org/licenses/>.
import json import json
import structlog
from celery import shared_task from celery import shared_task
from celery.utils.log import get_task_logger
from django.apps import apps from django.apps import apps
from .models import ReleaseChanged logger = structlog.get_logger(__name__)
logger = get_task_logger(__name__)
@shared_task(ignore_result=True) @shared_task(ignore_result=True)
def process_result(jbi_id, path_envVars): def process_result(jbi_id, path_envVars):
JenkinsBuildInfo = apps.get_model("repoapi", "JenkinsBuildInfo") JenkinsBuildInfo = apps.get_model("repoapi", "JenkinsBuildInfo")
ReleaseChanged = apps.get_model("release_changed", "ReleaseChanged")
jbi = JenkinsBuildInfo.objects.get(id=jbi_id) jbi = JenkinsBuildInfo.objects.get(id=jbi_id)
with open(path_envVars) as data_file: with open(path_envVars) as data_file:
data = json.load(data_file) data = json.load(data_file)

@ -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 # 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 # 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 # You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>. # with this program. If not, see <http://www.gnu.org/licenses/>.
import structlog
from celery import shared_task from celery import shared_task
from celery.utils.log import get_task_logger from django.apps import apps
from .conf import settings from .conf import settings
from .models import DockerImage
from .models import DockerTag
from .models import Project
from .utils import build from .utils import build
from .utils import docker from .utils import docker
logger = get_task_logger(__name__) logger = structlog.get_logger(__name__)
@shared_task(ignore_result=True) @shared_task(ignore_result=True)
@ -38,6 +36,8 @@ def gerrit_fetch_all():
@shared_task(ignore_result=True) @shared_task(ignore_result=True)
def docker_fetch_info(imagename): 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) image = DockerImage.objects.get(name=imagename)
tags = docker.get_docker_tags(imagename) tags = docker.get_docker_tags(imagename)
for tagname in tags: for tagname in tags:
@ -50,6 +50,8 @@ def docker_fetch_info(imagename):
@shared_task(ignore_result=True) @shared_task(ignore_result=True)
def docker_fetch_project(projectname): 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() DockerImage.objects.filter(project__name=projectname).delete()
images = docker.get_docker_repositories() images = docker.get_docker_repositories()
project = Project.objects.get(name=projectname) project = Project.objects.get(name=projectname)
@ -61,6 +63,8 @@ def docker_fetch_project(projectname):
@shared_task(ignore_result=True) @shared_task(ignore_result=True)
def docker_fetch_all(): def docker_fetch_all():
DockerImage = apps.get_model("release_dashboard", "DockerImage")
Project = apps.get_model("release_dashboard", "Project")
DockerImage.objects.all().delete() DockerImage.objects.all().delete()
images = docker.get_docker_repositories() images = docker.get_docker_repositories()
logger.debug("images: %s" % images) logger.debug("images: %s" % images)
@ -74,6 +78,7 @@ def docker_fetch_all():
@shared_task(ignore_result=True) @shared_task(ignore_result=True)
def docker_remove_tag(image_name, tag_name): 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) tag = DockerTag.objects.get(name=tag_name, image__name=image_name)
docker.delete_tag(image_name, tag.reference, tag_name) docker.delete_tag(image_name, tag.reference, tag_name)
tag.delete() tag.delete()

Loading…
Cancel
Save