mirror of
https://github.com/ansible/awx.git
synced 2026-01-13 02:50:02 -03:30
fully link up source_project_update to inventory update
This commit is contained in:
parent
d826c45ac6
commit
35ae13f498
@ -1629,7 +1629,7 @@ class InventoryUpdateSerializer(UnifiedJobSerializer, InventorySourceOptionsSeri
|
||||
|
||||
class Meta:
|
||||
model = InventoryUpdate
|
||||
fields = ('*', 'inventory_source', 'license_error')
|
||||
fields = ('*', 'inventory_source', 'license_error', 'source_project_update')
|
||||
|
||||
def get_related(self, obj):
|
||||
res = super(InventoryUpdateSerializer, self).get_related(obj)
|
||||
@ -1638,6 +1638,9 @@ class InventoryUpdateSerializer(UnifiedJobSerializer, InventorySourceOptionsSeri
|
||||
cancel = self.reverse('api:inventory_update_cancel', kwargs={'pk': obj.pk}),
|
||||
notifications = self.reverse('api:inventory_update_notifications_list', kwargs={'pk': obj.pk}),
|
||||
))
|
||||
if obj.source_project_update_id:
|
||||
res['source_project_update'] = self.reverse('api:project_update_detail',
|
||||
kwargs={'pk': obj.source_project_update.pk})
|
||||
return res
|
||||
|
||||
|
||||
|
||||
@ -1128,7 +1128,7 @@ class RunJob(BaseTask):
|
||||
job_request_id = '' if self.request.id is None else self.request.id
|
||||
local_project_sync = job.project.create_project_update(
|
||||
launch_type="sync",
|
||||
_eager_params=dict(
|
||||
_eager_fields=dict(
|
||||
job_type='run',
|
||||
status='running',
|
||||
celery_task_id=job_request_id))
|
||||
@ -1367,11 +1367,11 @@ class RunProjectUpdate(BaseTask):
|
||||
'another update is already active.'.format(inv.name))
|
||||
continue
|
||||
local_inv_update = inv_src.create_inventory_update(
|
||||
source_project_update_id=project_update.id,
|
||||
launch_type='scm',
|
||||
_eager_fields=dict(
|
||||
status='running',
|
||||
celery_task_id=str(project_request_id)))
|
||||
celery_task_id=str(project_request_id),
|
||||
source_project_update=project_update))
|
||||
inv_update_task = local_inv_update._get_task_class()
|
||||
try:
|
||||
task_instance = inv_update_task()
|
||||
@ -1443,7 +1443,7 @@ class RunProjectUpdate(BaseTask):
|
||||
# Update any inventories that depend on this project
|
||||
if len(dependent_inventory_sources) > 0:
|
||||
if status == 'successful' and instance.launch_type != 'sync':
|
||||
self._update_dependent_inventories(p, dependent_inventory_sources)
|
||||
self._update_dependent_inventories(instance, dependent_inventory_sources)
|
||||
|
||||
|
||||
class RunInventoryUpdate(BaseTask):
|
||||
@ -1810,7 +1810,7 @@ class RunInventoryUpdate(BaseTask):
|
||||
request_id = '' if self.request.id is None else self.request.id
|
||||
local_project_sync = source_project.create_project_update(
|
||||
launch_type="sync",
|
||||
_eager_params=dict(
|
||||
_eager_fields=dict(
|
||||
job_type='run',
|
||||
status='running',
|
||||
celery_task_id=request_id))
|
||||
|
||||
@ -24,7 +24,7 @@ class TestDependentInventoryUpdate:
|
||||
proj_update = ProjectUpdate.objects.create(project=scm_inventory_source.source_project)
|
||||
with mock.patch.object(RunProjectUpdate, '_update_dependent_inventories') as inv_update_mck:
|
||||
task.post_run_hook(proj_update, 'successful')
|
||||
inv_update_mck.assert_called_once_with(scm_inventory_source.source_project, mock.ANY)
|
||||
inv_update_mck.assert_called_once_with(proj_update, mock.ANY)
|
||||
|
||||
def test_no_unwanted_dependent_inventory_updates(self, project, scm_revision_file):
|
||||
task = RunProjectUpdate()
|
||||
@ -36,8 +36,10 @@ class TestDependentInventoryUpdate:
|
||||
|
||||
def test_dependent_inventory_updates(self, scm_inventory_source):
|
||||
task = RunProjectUpdate()
|
||||
proj_update = ProjectUpdate.objects.create(project=scm_inventory_source.source_project)
|
||||
with mock.patch.object(RunInventoryUpdate, 'run') as iu_run_mock:
|
||||
task._update_dependent_inventories(scm_inventory_source.source_project, [scm_inventory_source])
|
||||
task._update_dependent_inventories(proj_update, [scm_inventory_source])
|
||||
assert InventoryUpdate.objects.count() == 1
|
||||
inv_update = InventoryUpdate.objects.first()
|
||||
iu_run_mock.assert_called_once_with(inv_update.id)
|
||||
assert inv_update.source_project_update_id == proj_update.pk
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user