import django.db.models.deletion
-def genTempVlanNetwork(apps, editor):
+def pairVlanPhysicalNetworks(apps, editor):
+ PhysicalNetwork = apps.get_model("resource_inventory", "PhysicalNetwork")
Vlan = apps.get_model("resource_inventory", "Vlan")
- Network = apps.get_model("resource_inventory", "Network")
- tempVlanNetwork = apps.get_model("resource_inventory", "tempVlanNetwork")
for vlan in Vlan.objects.filter(network__isnull=False):
- tempVlanNetwork.objects.create(network=vlan.network, vlan=vlan)
+ if PhysicalNetwork.objects.filter(id=vlan.network.id).exists():
+ continue
+ PhysicalNetwork.objects.create(id=vlan.network.id, vlan_id=vlan.vlan_id, generic_network=vlan.network)
-def deleteTempVlanNetworks(apps, editor):
- tempVlanNetwork = apps.get_model("resource_inventory", "tempVlanNetwork")
- tempVlanNetwork.objects.all().delete()
-
-
-def pairVlanPhysicalNetworks(apps, editor):
- PhysicalNetwork = apps.get_model("resource_inventory", "PhysicalNetwork")
- tempVlanPair = apps.get_model("resource_inventory", "tempVlanNetwork")
- for pair in tempVlanPair.objects.all():
- physicalNetwork = PhysicalNetwork.objects.create(vlan_id=vlan.vlan_id,
- generic_network=pair.network)
- pair.vlan.network = physicalNetwork
def deletePhysicalNetworks(apps, editor):
+ Vlan = apps.get_model("resource_inventory", "Vlan")
+ for vlan in Vlan.objects.all():
+ vlan.network = None
PhysicalNetwork = apps.get_model("resource_inventory", "PhysicalNetwork")
PhysicalNetwork.objects.all().delete()
+
class Migration(migrations.Migration):
dependencies = [
name='id',
field=models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
- migrations.CreateModel(
- name='tempVlanNetwork',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('vlan', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='resource_inventory.vlan')),
- ('network', models.ForeignKey(null=True, to='resource_inventory.network', on_delete=django.db.models.deletion.CASCADE)),
- ]
- ),
- migrations.RunPython(genTempVlanNetwork, deleteTempVlanNetworks),
+ migrations.RunPython(pairVlanPhysicalNetworks, deletePhysicalNetworks),
migrations.AlterField(
model_name='vlan',
name='network',
field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING,
to='resource_inventory.PhysicalNetwork', null=True),
),
- migrations.RunPython(pairVlanPhysicalNetworks, deletePhysicalNetworks),
- migrations.DeleteModel("tempVlanNetwork")
]
import resource_inventory.models
+def clear_resource_bundles(apps, schema_editor):
+ ResourceBundle = apps.get_model('resource_inventory', 'ResourceBundle')
+ for rb in ResourceBundle.objects.all():
+ rb.template = None
+ rb.save()
+
+
+def create_default_template(apps, schema_editor):
+ ResourceTemplate = apps.get_model('resource_inventory', 'ResourceTemplate')
+ ResourceTemplate.objects.create(id=1, name="Default Template")
+
+
def populate_servers(apps, schema_editor):
"""Convert old Host models to Server Resources."""
Host = apps.get_model('resource_inventory', 'Host')
Server = apps.get_model('resource_inventory', 'Server')
+ ResourceProfile = apps.get_model('resource_inventory', 'ResourceProfile')
for h in Host.objects.all():
+ rp = ResourceProfile.objects.get(id=h.profile.id)
Server.objects.create(
working=h.working,
vendor=h.vendor,
labid=h.labid,
booked=h.booked,
- name=h.labid
+ name=h.labid,
+ lab=h.lab,
+ profile=rp
)
HostProfile = apps.get_model('resource_inventory', 'HostProfile')
ResourceProfile = apps.get_model('resource_inventory', 'ResourceProfile')
for hp in HostProfile.objects.all():
- rp = ResourceProfile.objects.create(name=hp.name, description=hp.description)
+ rp = ResourceProfile.objects.create(id=hp.id, name=hp.name, description=hp.description)
rp.labs.add(*list(hp.labs.all()))
+ """
+ TODO: link these models together
rp.interfaceprofile = hp.interfaceprofile
rp.storageprofile = hp.storageprofile
rp.cpuprofile = hp.cpuprofile
rp.ramprofile = hp.ramprofile
rp.save()
- rp.interfaceprofile.host = rp
+ hp.interfaceprofile.host = rp
rp.storageprofile.host = rp
rp.cpuprofile.host = rp
rp.ramprofile.host = rp
rp.storageprofile.save()
rp.cpuprofile.save()
rp.ramprofile.save()
+ """
class Migration(migrations.Migration):
- """TODO: Creation of the following models.
-
- - Server
- - ResourceTemplate
- - ResourceProfile
- - ResourceConfiguration (?)
- - InterfaceConfiguration (?)
-
- And set the correct defaults for the following fields:
- - Interface.profile
- - OpnfvConfig.template (?)
- - physicalnetwork.lab
- - physicalnetwork.profile
- """
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('booking', '0007_remove_booking_config_bundle'),
('account', '0004_downtime'),
- ('api', '0011_auto_20200218_1536'),
- ('resource_inventory', '0012_auto_20200103_1850'),
+ ('api', '0013_manual_20200218_1536'),
+ ('resource_inventory', '0012_manual_20200218_1536'),
]
operations = [
'abstract': False,
},
),
+ migrations.AddField(
+ model_name='server',
+ name='bundle',
+ field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='resource_inventory.ResourceBundle'),
+ ),
+ migrations.AddField(
+ model_name='server',
+ name='config',
+ field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='resource_inventory.ResourceConfiguration'),
+ ),
+ migrations.AddField(
+ model_name='server',
+ name='interfaces',
+ field=models.ManyToManyField(to='resource_inventory.Interface'),
+ ),
+ migrations.AddField(
+ model_name='server',
+ name='lab',
+ field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='account.Lab'),
+ ),
+ migrations.AddField(
+ model_name='server',
+ name='profile',
+ field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='resource_inventory.ResourceProfile'),
+ ),
+ migrations.AddField(
+ model_name='server',
+ name='remote_management',
+ field=models.ForeignKey(default=resource_inventory.models.get_default_remote_info, on_delete=models.SET(resource_inventory.models.get_default_remote_info), to='resource_inventory.RemoteInfo'),
+ ),
migrations.RunPython(populate_servers),
migrations.RemoveField(
model_name='generichost',
name='order',
field=models.IntegerField(default=-1),
),
- migrations.AddField(
- model_name='physicalnetwork',
- name='bundle',
- field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='resource_inventory.ResourceBundle'),
- ),
- migrations.AddField(
- model_name='physicalnetwork',
- name='interfaces',
- field=models.ManyToManyField(to='resource_inventory.Interface'),
- ),
- migrations.AddField(
- model_name='physicalnetwork',
- name='lab',
- field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='account.Lab'),
- preserve_default=False,
- ),
- migrations.AddField(
- model_name='physicalnetwork',
- name='labid',
- field=models.CharField(default='default_id', max_length=200, unique=True),
- ),
- migrations.AddField(
- model_name='physicalnetwork',
- name='model',
- field=models.CharField(default='unknown', max_length=150),
- ),
- migrations.AddField(
- model_name='physicalnetwork',
- name='remote_management',
- field=models.ForeignKey(default=resource_inventory.models.get_default_remote_info, on_delete=models.SET(resource_inventory.models.get_default_remote_info), to='resource_inventory.RemoteInfo'),
- ),
- migrations.AddField(
- model_name='physicalnetwork',
- name='vendor',
- field=models.CharField(default='unknown', max_length=100),
- ),
- migrations.AddField(
- model_name='physicalnetwork',
- name='working',
- field=models.BooleanField(default=True),
- ),
migrations.AlterField(
model_name='cpuprofile',
name='host',
name='host',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ramprofile', to='resource_inventory.ResourceProfile'),
),
+ migrations.RunPython(clear_resource_bundles),
migrations.AlterField(
model_name='resourcebundle',
name='template',
migrations.DeleteModel(
name='GenericResourceBundle',
),
- migrations.DeleteModel(
- name='Host',
- ),
migrations.DeleteModel(
name='HostConfiguration',
),
migrations.DeleteModel(
name='HostProfile',
),
- migrations.AddField(
- model_name='server',
- name='bundle',
- field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='resource_inventory.ResourceBundle'),
- ),
- migrations.AddField(
- model_name='server',
- name='config',
- field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='resource_inventory.ResourceConfiguration'),
- ),
- migrations.AddField(
- model_name='server',
- name='interfaces',
- field=models.ManyToManyField(to='resource_inventory.Interface'),
- ),
- migrations.AddField(
- model_name='server',
- name='lab',
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='account.Lab'),
- ),
- migrations.AddField(
- model_name='server',
- name='profile',
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='resource_inventory.ResourceProfile'),
- ),
- migrations.AddField(
- model_name='server',
- name='remote_management',
- field=models.ForeignKey(default=resource_inventory.models.get_default_remote_info, on_delete=models.SET(resource_inventory.models.get_default_remote_info), to='resource_inventory.RemoteInfo'),
+ migrations.DeleteModel(
+ name='Host',
),
migrations.AddField(
model_name='resourceopnfvconfig',
name='acts_as',
field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.SET_NULL, to='resource_inventory.InterfaceConfiguration'),
),
+ migrations.RunPython(create_default_template),
migrations.AddField(
model_name='opnfvconfig',
name='template',
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, related_name='opnfv_config', to='resource_inventory.ResourceTemplate'),
preserve_default=False,
),
- migrations.AddField(
- model_name='physicalnetwork',
- name='config',
- field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='resource_inventory.ResourceConfiguration'),
- ),
- migrations.AddField(
- model_name='physicalnetwork',
- name='profile',
- field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='resource_inventory.ResourceProfile'),
- preserve_default=False,
- ),
]