mirror of
https://github.com/ansible/awx.git
synced 2026-05-20 07:17:40 -02:30
Reconstitute migration file
Do the things as a proper 3-step process -- add new stuff, copy the data, drop the old.
This commit is contained in:
committed by
Seth Foster
parent
4c5ac1d3da
commit
82323390a7
@@ -1,39 +1,36 @@
|
|||||||
# Generated by Django 4.2.6 on 2024-01-19 03:13
|
# Generated by Django 4.2.6 on 2024-01-19 19:24
|
||||||
|
|
||||||
import django.core.validators
|
import django.core.validators
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
import django.db.models.deletion
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
def create_receptor_address(apps, schema_editor):
|
def create_receptor_addresses(apps, schema_editor):
|
||||||
"""
|
"""
|
||||||
if listener_port was defined on an instance, create a receptor address for it
|
If listener_port was defined on an instance, create a receptor address for it
|
||||||
"""
|
"""
|
||||||
Instance = apps.get_model('main', 'Instance')
|
Instance = apps.get_model('main', 'Instance')
|
||||||
ReceptorAddress = apps.get_model('main', 'ReceptorAddress')
|
ReceptorAddress = apps.get_model('main', 'ReceptorAddress')
|
||||||
for instance in Instance.objects.all():
|
for instance in Instance.objects.exclude(listener_port=None):
|
||||||
if instance.listener_port:
|
ReceptorAddress.objects.create(
|
||||||
instance.peers_from.all()
|
instance=instance,
|
||||||
ReceptorAddress.objects.create(
|
address=instance.hostname,
|
||||||
instance=instance,
|
port=instance.listener_port,
|
||||||
address=instance.hostname,
|
peers_from_control_nodes=instance.peers_from_control_nodes,
|
||||||
port=instance.listener_port,
|
protocol='tcp',
|
||||||
peers_from_control_nodes=instance.peers_from_control_nodes,
|
is_internal=False,
|
||||||
protocol='tcp',
|
canonical=True,
|
||||||
is_internal=False,
|
)
|
||||||
canonical=True,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def link_to_receptor_address(apps, schema_editor):
|
def link_to_receptor_addresses(apps, schema_editor):
|
||||||
"""
|
"""
|
||||||
modify each InstanceLink to point to the newly created
|
Modify each InstanceLink to point to the newly created
|
||||||
ReceptorAddresses, through the target_new field
|
ReceptorAddresses, using the new target field
|
||||||
target_new will be renamed to target in an operation below
|
|
||||||
"""
|
"""
|
||||||
InstanceLink = apps.get_model('main', 'InstanceLink')
|
InstanceLink = apps.get_model('main', 'InstanceLink')
|
||||||
for link in InstanceLink.objects.all():
|
for link in InstanceLink.objects.all():
|
||||||
link.target_new = link.target.receptor_addresses.get()
|
link.target = link.target_old.receptor_addresses.get()
|
||||||
link.save()
|
link.save()
|
||||||
|
|
||||||
|
|
||||||
@@ -78,6 +75,11 @@ class Migration(migrations.Migration):
|
|||||||
model_name='instancelink',
|
model_name='instancelink',
|
||||||
name='source_and_target_can_not_be_equal',
|
name='source_and_target_can_not_be_equal',
|
||||||
),
|
),
|
||||||
|
migrations.RenameField(
|
||||||
|
model_name='instancelink',
|
||||||
|
old_name='target',
|
||||||
|
new_name='target_old',
|
||||||
|
),
|
||||||
migrations.AlterUniqueTogether(
|
migrations.AlterUniqueTogether(
|
||||||
name='instancelink',
|
name='instancelink',
|
||||||
unique_together=set(),
|
unique_together=set(),
|
||||||
@@ -87,9 +89,10 @@ class Migration(migrations.Migration):
|
|||||||
name='managed',
|
name='managed',
|
||||||
field=models.BooleanField(default=False, editable=False, help_text='If True, this instance is managed by the control plane.'),
|
field=models.BooleanField(default=False, editable=False, help_text='If True, this instance is managed by the control plane.'),
|
||||||
),
|
),
|
||||||
migrations.AddConstraint(
|
migrations.AlterField(
|
||||||
model_name='instancelink',
|
model_name='instancelink',
|
||||||
constraint=models.UniqueConstraint(fields=('source', 'target'), name='source_target_unique_together'),
|
name='source',
|
||||||
|
field=models.ForeignKey(help_text='The source instance of this peer link.', on_delete=django.db.models.deletion.CASCADE, to='main.instance'),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='receptoraddress',
|
model_name='receptoraddress',
|
||||||
@@ -101,46 +104,34 @@ class Migration(migrations.Migration):
|
|||||||
name='receptor_address',
|
name='receptor_address',
|
||||||
field=models.ManyToManyField(blank=True, to='main.receptoraddress'),
|
field=models.ManyToManyField(blank=True, to='main.receptoraddress'),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
|
||||||
model_name='instancelink',
|
|
||||||
name='target_new',
|
|
||||||
field=models.ForeignKey(
|
|
||||||
help_text='The target receptor address of this peer link.', null=True, on_delete=django.db.models.deletion.CASCADE, to='main.receptoraddress'
|
|
||||||
),
|
|
||||||
),
|
|
||||||
migrations.AddConstraint(
|
migrations.AddConstraint(
|
||||||
model_name='receptoraddress',
|
model_name='receptoraddress',
|
||||||
constraint=models.UniqueConstraint(fields=('address',), name='unique_receptor_address', violation_error_message='Receptor address must be unique.'),
|
constraint=models.UniqueConstraint(fields=('address',), name='unique_receptor_address', violation_error_message='Receptor address must be unique.'),
|
||||||
),
|
),
|
||||||
migrations.RunPython(create_receptor_address),
|
migrations.AddField(
|
||||||
migrations.RunPython(link_to_receptor_address),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='instancelink',
|
|
||||||
name='target_new',
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='instance',
|
|
||||||
name='peers',
|
|
||||||
field=models.ManyToManyField(related_name='peers_from', through='main.InstanceLink', to='main.receptoraddress'),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='instancelink',
|
model_name='instancelink',
|
||||||
name='target',
|
name='target',
|
||||||
field=models.ForeignKey(
|
field=models.ForeignKey(
|
||||||
help_text='The target receptor address of this peer link.', on_delete=django.db.models.deletion.CASCADE, to='main.receptoraddress'
|
help_text='The target receptor address of this peer link.', null=True, on_delete=django.db.models.deletion.CASCADE, to='main.receptoraddress'
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
migrations.AlterField(
|
migrations.RunPython(create_receptor_addresses),
|
||||||
model_name='instancelink',
|
migrations.RunPython(link_to_receptor_addresses),
|
||||||
name='source',
|
migrations.RemoveField(
|
||||||
field=models.ForeignKey(help_text='The source instance of this peer link.', on_delete=django.db.models.deletion.CASCADE, to='main.instance'),
|
model_name='instance',
|
||||||
|
name='peers_from_control_nodes',
|
||||||
),
|
),
|
||||||
migrations.RemoveField(
|
migrations.RemoveField(
|
||||||
model_name='instance',
|
model_name='instance',
|
||||||
name='listener_port',
|
name='listener_port',
|
||||||
),
|
),
|
||||||
migrations.RemoveField(
|
migrations.RemoveField(
|
||||||
|
model_name='instancelink',
|
||||||
|
name='target_old',
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
model_name='instance',
|
model_name='instance',
|
||||||
name='peers_from_control_nodes',
|
name='peers',
|
||||||
|
field=models.ManyToManyField(related_name='peers_from', through='main.InstanceLink', to='main.receptoraddress'),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -67,10 +67,9 @@ class HasPolicyEditsMixin(HasEditsMixin):
|
|||||||
class InstanceLink(BaseModel):
|
class InstanceLink(BaseModel):
|
||||||
class Meta:
|
class Meta:
|
||||||
ordering = ("id",)
|
ordering = ("id",)
|
||||||
constraints = [models.UniqueConstraint(fields=['source', 'target'], name='source_target_unique_together')]
|
|
||||||
|
|
||||||
source = models.ForeignKey('Instance', on_delete=models.CASCADE, help_text=_("The source instance of this peer link."))
|
source = models.ForeignKey('Instance', on_delete=models.CASCADE, help_text=_("The source instance of this peer link."))
|
||||||
target = models.ForeignKey('ReceptorAddress', on_delete=models.CASCADE, help_text=_("The target receptor address of this peer link."))
|
target = models.ForeignKey('ReceptorAddress', null=True, on_delete=models.CASCADE, help_text=_("The target receptor address of this peer link."))
|
||||||
|
|
||||||
class States(models.TextChoices):
|
class States(models.TextChoices):
|
||||||
ADDING = 'adding', _('Adding')
|
ADDING = 'adding', _('Adding')
|
||||||
|
|||||||
Reference in New Issue
Block a user