mirror of
https://github.com/ansible/awx.git
synced 2026-05-20 23:37:39 -02:30
AAP-17690 Inventory variables sourced from git project are not getting deleted after being removed from source (#15928) (#6946)
* Delete existing all-group vars on inventory sync (with overwrite-vars=True) instead of merging them. * Implementation of inv var handling with file as db. * Improve serialization to file of inv vars for src update * Include inventory-level variable editing into inventory source update handling * Add group vars to inventory source update handling * Add support for overwrite_vars to new inventory source handling * Persist inventory var history in the database instead of a file. * Remove logging which was needed during development. * Remove further debugging code and improve comments * Move special handling for user edits of variables into serializers * Relate the inventory variable history model to its inventory * Allow for inventory variables to have the value 'None' * Fix KeyError in new inventory variable handling * Add unique-together constraint for new model InventoryGroupVariablesWithHistory * Use only one special invsrc_id for initial update and manual updates * Fix internal server error when creating a new inventory * Print the empty string for a variable with value 'None' * Fix comment which incorrectly states old behaviour * Fix inventory_group_variables_update tests which did not take the new handling of None into account * Allow any type for Ansible-core variable values * Refactor misleading method names * Fix internal server error when savig vars from group form * Remove superfluous json conversion in front of JSONField * Call variable update from create/update instead from validate * Use group_id instead of group_name in model InventoryGroupVariablesWithHistory * Disable new variable update handling for all regular (non-'all') groups * Add live test to verify AAP-17690 (inv var deleted from source) * Add functional tests to verify inventory variables update logic * Fix migration which was corrupted by a rebase * Add a more complex live test and resolve linter complaints * Force overwrite_vars=False for updates from source on all-group * Change behavior with respect to overwrite_vars
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
# Generated by Django 4.2.20 on 2025-04-24 09:08
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('main', '0198_alter_inventorysource_source_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='InventoryGroupVariablesWithHistory',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('variables', models.JSONField()),
|
||||
('group', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='inventory_group_variables', to='main.group')),
|
||||
(
|
||||
'inventory',
|
||||
models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='inventory_group_variables', to='main.inventory'),
|
||||
),
|
||||
],
|
||||
),
|
||||
migrations.AddConstraint(
|
||||
model_name='inventorygroupvariableswithhistory',
|
||||
constraint=models.UniqueConstraint(
|
||||
fields=('inventory', 'group'), name='unique_inventory_group', violation_error_message='Inventory/Group combination must be unique.'
|
||||
),
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user