mirror of
https://github.com/ansible/awx.git
synced 2026-05-18 06:47:41 -02:30
Add scm revision to the job model
This also cleans up flake8 issues
This commit is contained in:
@@ -1930,7 +1930,7 @@ class JobSerializer(UnifiedJobSerializer, JobOptionsSerializer):
|
|||||||
fields = ('*', 'job_template', 'passwords_needed_to_start', 'ask_variables_on_launch',
|
fields = ('*', 'job_template', 'passwords_needed_to_start', 'ask_variables_on_launch',
|
||||||
'ask_limit_on_launch', 'ask_tags_on_launch', 'ask_skip_tags_on_launch',
|
'ask_limit_on_launch', 'ask_tags_on_launch', 'ask_skip_tags_on_launch',
|
||||||
'ask_job_type_on_launch', 'ask_inventory_on_launch', 'ask_credential_on_launch',
|
'ask_job_type_on_launch', 'ask_inventory_on_launch', 'ask_credential_on_launch',
|
||||||
'allow_simultaneous', 'artifacts',)
|
'allow_simultaneous', 'artifacts', 'scm_revision',)
|
||||||
|
|
||||||
def get_related(self, obj):
|
def get_related(self, obj):
|
||||||
res = super(JobSerializer, self).get_related(obj)
|
res = super(JobSerializer, self).get_related(obj)
|
||||||
|
|||||||
@@ -21,4 +21,10 @@ class Migration(migrations.Migration):
|
|||||||
name='job_type',
|
name='job_type',
|
||||||
field=models.CharField(default=b'check', max_length=64, choices=[(b'run', 'Run'), (b'check', 'Check')]),
|
field=models.CharField(default=b'check', max_length=64, choices=[(b'run', 'Run'), (b'check', 'Check')]),
|
||||||
),
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='job',
|
||||||
|
name='scm_revision',
|
||||||
|
field=models.CharField(default=b'', editable=False, max_length=1024, blank=True, help_text='The SCM Revision from the Project used for this job, if available', verbose_name='SCM Revision'),
|
||||||
|
),
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -559,6 +559,15 @@ class Job(UnifiedJob, JobOptions, JobNotificationMixin):
|
|||||||
default={},
|
default={},
|
||||||
editable=False,
|
editable=False,
|
||||||
)
|
)
|
||||||
|
scm_revision = models.CharField(
|
||||||
|
max_length=1024,
|
||||||
|
blank=True,
|
||||||
|
default='',
|
||||||
|
editable=False,
|
||||||
|
verbose_name=_('SCM Revision'),
|
||||||
|
help_text=_('The SCM Revision from the Project used for this job, if available'),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _get_parent_field_name(cls):
|
def _get_parent_field_name(cls):
|
||||||
|
|||||||
@@ -7,9 +7,6 @@ import os
|
|||||||
import re
|
import re
|
||||||
import urlparse
|
import urlparse
|
||||||
|
|
||||||
# Celery
|
|
||||||
from celery import group, chord
|
|
||||||
|
|
||||||
# Django
|
# Django
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|||||||
@@ -919,7 +919,7 @@ class RunJob(BaseTask):
|
|||||||
if job.project:
|
if job.project:
|
||||||
extra_vars.update({
|
extra_vars.update({
|
||||||
'tower_project_revision': job.project.scm_revision,
|
'tower_project_revision': job.project.scm_revision,
|
||||||
})
|
})
|
||||||
if job.job_template:
|
if job.job_template:
|
||||||
extra_vars.update({
|
extra_vars.update({
|
||||||
'tower_job_template_id': job.job_template.pk,
|
'tower_job_template_id': job.job_template.pk,
|
||||||
@@ -1004,6 +1004,8 @@ class RunJob(BaseTask):
|
|||||||
project_update_task = local_project_sync._get_task_class()
|
project_update_task = local_project_sync._get_task_class()
|
||||||
try:
|
try:
|
||||||
project_update_task().run(local_project_sync.id)
|
project_update_task().run(local_project_sync.id)
|
||||||
|
job.scm_revision = job.project.scm_revision
|
||||||
|
job.save()
|
||||||
except Exception:
|
except Exception:
|
||||||
job.status = 'failed'
|
job.status = 'failed'
|
||||||
job.job_explanation = 'Previous Task Failed: {"job_type": "%s", "job_name": "%s", "job_id": "%s"}' % \
|
job.job_explanation = 'Previous Task Failed: {"job_type": "%s", "job_name": "%s", "job_id": "%s"}' % \
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import djcelery
|
|||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
|
||||||
from kombu import Queue, Exchange
|
from kombu import Queue, Exchange
|
||||||
from kombu.common import Broadcast
|
|
||||||
|
|
||||||
# Update this module's local settings from the global settings module.
|
# Update this module's local settings from the global settings module.
|
||||||
from django.conf import global_settings
|
from django.conf import global_settings
|
||||||
@@ -361,20 +360,20 @@ CELERY_QUEUES = (
|
|||||||
)
|
)
|
||||||
CELERY_ROUTES = {'awx.main.tasks.run_job': {'queue': 'jobs',
|
CELERY_ROUTES = {'awx.main.tasks.run_job': {'queue': 'jobs',
|
||||||
'routing_key': 'jobs'},
|
'routing_key': 'jobs'},
|
||||||
'awx.main.tasks.run_project_update': {'queue': 'jobs',
|
'awx.main.tasks.run_project_update': {'queue': 'jobs',
|
||||||
'routing_key': 'jobs'},
|
'routing_key': 'jobs'},
|
||||||
'awx.main.tasks.run_inventory_update': {'queue': 'jobs',
|
'awx.main.tasks.run_inventory_update': {'queue': 'jobs',
|
||||||
'routing_key': 'jobs'},
|
'routing_key': 'jobs'},
|
||||||
'awx.main.tasks.run_ad_hoc_command': {'queue': 'jobs',
|
'awx.main.tasks.run_ad_hoc_command': {'queue': 'jobs',
|
||||||
'routing_key': 'jobs'},
|
'routing_key': 'jobs'},
|
||||||
'awx.main.tasks.run_system_job': {'queue': 'jobs',
|
'awx.main.tasks.run_system_job': {'queue': 'jobs',
|
||||||
'routing_key': 'jobs'},
|
'routing_key': 'jobs'},
|
||||||
'awx.main.scheduler.tasks.run_job_launch': {'queue': 'scheduler',
|
'awx.main.scheduler.tasks.run_job_launch': {'queue': 'scheduler',
|
||||||
'routing_key': 'scheduler.job.launch'},
|
'routing_key': 'scheduler.job.launch'},
|
||||||
'awx.main.scheduler.tasks.run_job_complete': {'queue': 'scheduler',
|
'awx.main.scheduler.tasks.run_job_complete': {'queue': 'scheduler',
|
||||||
'routing_key': 'scheduler.job.complete'},
|
'routing_key': 'scheduler.job.complete'},
|
||||||
'awx.main.tasks.cluster_node_heartbeat': {'queue': 'default',
|
'awx.main.tasks.cluster_node_heartbeat': {'queue': 'default',
|
||||||
'routing_key': 'cluster.heartbeat'},
|
'routing_key': 'cluster.heartbeat'},
|
||||||
}
|
}
|
||||||
|
|
||||||
CELERYBEAT_SCHEDULE = {
|
CELERYBEAT_SCHEDULE = {
|
||||||
|
|||||||
Reference in New Issue
Block a user