mirror of
https://github.com/ansible/awx.git
synced 2026-03-21 19:07:39 -02:30
Merge pull request #2490 from AlanCoding/2413_allow_orphan_jobs
Allow launching an orphaned job
This commit is contained in:
@@ -743,8 +743,10 @@ class Job(UnifiedJob, JobOptions):
|
|||||||
|
|
||||||
def copy(self):
|
def copy(self):
|
||||||
presets = {}
|
presets = {}
|
||||||
for kw in self.job_template._get_unified_job_field_names():
|
for kw in JobTemplate._get_unified_job_field_names():
|
||||||
presets[kw] = getattr(self, kw)
|
presets[kw] = getattr(self, kw)
|
||||||
|
if not self.job_template:
|
||||||
|
self.job_template = JobTemplate(name='temporary')
|
||||||
return self.job_template.create_unified_job(**presets)
|
return self.job_template.create_unified_job(**presets)
|
||||||
|
|
||||||
# Job Credential required
|
# Job Credential required
|
||||||
|
|||||||
@@ -309,7 +309,8 @@ class UnifiedJobTemplate(PolymorphicModel, CommonModelNameNotUnique, Notificatio
|
|||||||
kwargs.pop('%s_id' % parent_field_name, None)
|
kwargs.pop('%s_id' % parent_field_name, None)
|
||||||
create_kwargs = {}
|
create_kwargs = {}
|
||||||
m2m_fields = {}
|
m2m_fields = {}
|
||||||
create_kwargs[parent_field_name] = self
|
if self.pk:
|
||||||
|
create_kwargs[parent_field_name] = self
|
||||||
for field_name in self._get_unified_job_field_names():
|
for field_name in self._get_unified_job_field_names():
|
||||||
# Foreign keys can be specified as field_name or field_name_id.
|
# Foreign keys can be specified as field_name or field_name_id.
|
||||||
id_field_name = '%s_id' % field_name
|
id_field_name = '%s_id' % field_name
|
||||||
|
|||||||
@@ -35,3 +35,11 @@ def test_job_blocking_allow_simul(get, post, job_template, inventory):
|
|||||||
job_template.allow_simultaneous = False
|
job_template.allow_simultaneous = False
|
||||||
assert j1.is_blocked_by(j2)
|
assert j1.is_blocked_by(j2)
|
||||||
assert j2.is_blocked_by(j1)
|
assert j2.is_blocked_by(j1)
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_orphan_unified_job_creation(instance, inventory):
|
||||||
|
job = Job.objects.create(job_template=None, inventory=inventory, name='hi world')
|
||||||
|
job2 = job.copy()
|
||||||
|
assert job2.job_template is None
|
||||||
|
assert job2.inventory == inventory
|
||||||
|
assert job2.name == 'hi world'
|
||||||
|
|||||||
Reference in New Issue
Block a user