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
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"]

@ -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 <http://www.gnu.org/licenses/>.
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)

@ -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 <http://www.gnu.org/licenses/>.
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)

@ -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 <http://www.gnu.org/licenses/>.
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)

@ -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 <http://www.gnu.org/licenses/>.
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()

Loading…
Cancel
Save