# Generated by Django 2.2.12 on 2020-05-23 12:05

from django.db import migrations


def add_default_settings(apps, schema_editor):

    setting = apps.get_model("appsettings", "AppSettings")
    db_alias = schema_editor.connection.alias
    setting.objects.using(db_alias).bulk_create([
        setting(1, "Theme", "BOOTSTRAP_THEME", "flaty",
                "", "Bootstrap CSS & Bootswatch Theme"),
        setting(2, "Theme SASS Path", "SASS_DIR", "dev/scss/",
                "", "Bootstrap SASS & Bootswatch SASS Directory"),
        setting(3, "All Instances View Style", "VIEW_INSTANCES_LIST_STYLE",
                "grouped", "grouped,nongrouped", "All instances list style"),
        setting(4, "Logs per Page", "LOGS_PER_PAGE",
                "100", "", "Pagination for logs"),
        setting(5, "Multiple Owner for VM ", "ALLOW_INSTANCE_MULTIPLE_OWNER",
                "True", "True,False", "Allow to have multiple owner for instance"),
        setting(6, "Quota Debug", "QUOTA_DEBUG", "True",
                "True,False", "Debug for user quotas"),
        setting(7, "Disk Format", "INSTANCE_VOLUME_DEFAULT_FORMAT",
                "qcow2", "raw,qcow,qcow2", "Instance disk format"),
        setting(8, "Disk Bus", "INSTANCE_VOLUME_DEFAULT_BUS", "virtio",
                "virtio,scsi,ide,usb,sata", "Instance disk bus type"),
        setting(9, "Disk SCSI Controller", "INSTANCE_VOLUME_DEFAULT_SCSI_CONTROLLER",
                "virtio-scsi", "virtio-scsi, lsilogic, virtio-blk", "SCSI controller type"),
        setting(10, "Disk Cache", "INSTANCE_VOLUME_DEFAULT_CACHE", "directsync",
                "default,directsync,none,unsafe,writeback,writethrough", "Disk volume cache type"),
        setting(11, "Disk IO Type", "INSTANCE_VOLUME_DEFAULT_IO",
                "default", "default,native,threads", "Volume io modes"),
        setting(12, "Disk Detect Zeroes", "INSTANCE_VOLUME_DEFAULT_DETECT_ZEROES",
                "default", "default,on,off,unmap", "Volume detect zeroes mode"),
        setting(13, "Disk Discard", "INSTANCE_VOLUME_DEFAULT_DISCARD",
                "default", "default,unmap,ignore", "Volume discard mode"),
        setting(14, "Disk Owner UID", "INSTANCE_VOLUME_DEFAULT_OWNER_UID", "0",
                "", "Owner UID: up to os, 0=root, 107=qemu or libvirt-bin(for ubuntu)"),
        setting(15, "Disk Owner GID", "INSTANCE_VOLUME_DEFAULT_OWNER_GID", "0",
                "", "Owner GID: up to os, 0=root, 107=qemu or libvirt-bin(for ubuntu)"),
        setting(16, "VM CPU Mode", "INSTANCE_CPU_DEFAULT_MODE", "host-model",
                "no-model,host-model,host-passthrough,custom", "Cpu modes"),
        setting(17, "VM Machine Type", "INSTANCE_MACHINE_DEFAULT_TYPE",
                "q35", "q35,x86_64", "Chipset/Machine type"),
        setting(18, "VM Firmware Type", "INSTANCE_FIRMWARE_DEFAULT_TYPE",
                "BIOS", "BIOS,UEFI", "Firmware type for x86_64"),
        setting(19, "VM Architecture Type", "INSTANCE_ARCH_DEFAULT_TYPE",
                "x86_64", "x86_64,i686", "Architecture type: x86_64, i686, etc"),
        setting(20, "VM Console Type", "QEMU_CONSOLE_DEFAULT_TYPE",
                "vnc", "vnc,spice", "Default console type"),
        setting(21, "VM Clone Name Prefix", "CLONE_INSTANCE_DEFAULT_PREFIX",
                "instance", "True,False", "Prefix for cloned instance name"),
        setting(22, "VM Clone Auto Name", "CLONE_INSTANCE_AUTO_NAME",
                "False", "True,False", "Generated name for cloned instance"),
        setting(23, "VM Clone Auto Migrate", "CLONE_INSTANCE_AUTO_MIGRATE",
                "False", "True,False", "Auto migrate instance after clone"),
        setting(24, "VM Bottom Bar", "VIEW_INSTANCE_DETAIL_BOTTOM_BAR",
                "True", "True,False", "Bottom navbar for instance details"),
        setting(25, "Show Access Root Pass", "SHOW_ACCESS_ROOT_PASSWORD",
                "False", "True,False", "Show access root password"),
        setting(26, "Show Access SSH Keys", "SHOW_ACCESS_SSH_KEYS",
                "False", "True,False", "Show access ssh keys"),
    ])


def del_default_settings(apps, schema_editor):
    setting = apps.get_model("appsettings", "AppSettings")
    db_alias = schema_editor.connection.alias
    setting.objects.using(db_alias).filter(key="QEMU_CONSOLE_DEFAULT_TYPE").delete()
    setting.objects.using(db_alias).filter(key="ALLOW_INSTANCE_MULTIPLE_OWNER").delete()
    setting.objects.using(db_alias).filter(key="CLONE_INSTANCE_DEFAULT_PREFIX").delete()
    setting.objects.using(db_alias).filter(key="CLONE_INSTANCE_AUTO_NAME").delete()
    setting.objects.using(db_alias).filter(key="CLONE_INSTANCE_AUTO_MIGRATE").delete()
    setting.objects.using(db_alias).filter(key="LOGS_PER_PAGE").delete()
    setting.objects.using(db_alias).filter(key="QUOTA_DEBUG").delete()
    setting.objects.using(db_alias).filter(key="VIEW_INSTANCES_LIST_STYLE").delete()
    setting.objects.using(db_alias).filter(key="VIEW_INSTANCE_DETAIL_BOTTOM_BAR").delete()
    setting.objects.using(db_alias).filter(key="INSTANCE_VOLUME_DEFAULT_FORMAT").delete()
    setting.objects.using(db_alias).filter(key="INSTANCE_VOLUME_DEFAULT_BUS").delete()
    setting.objects.using(db_alias).filter(key="INSTANCE_VOLUME_DEFAULT_SCSI_CONTROLLER").delete()
    setting.objects.using(db_alias).filter(key="INSTANCE_VOLUME_DEFAULT_CACHE").delete()
    setting.objects.using(db_alias).filter(key="INSTANCE_VOLUME_DEFAULT_IO").delete()
    setting.objects.using(db_alias).filter(key="INSTANCE_VOLUME_DEFAULT_DETECT_ZEROES").delete()
    setting.objects.using(db_alias).filter(key="INSTANCE_VOLUME_DEFAULT_DISCARD").delete()
    setting.objects.using(db_alias).filter(key="INSTANCE_VOLUME_DEFAULT_OWNER_UID").delete()
    setting.objects.using(db_alias).filter(key="INSTANCE_VOLUME_DEFAULT_OWNER_GID").delete()
    setting.objects.using(db_alias).filter(key="INSTANCE_CPU_DEFAULT_MODE").delete()
    setting.objects.using(db_alias).filter(key="INSTANCE_MACHINE_DEFAULT_TYPE").delete()
    setting.objects.using(db_alias).filter(key="INSTANCE_FIRMWARE_DEFAULT_TYPE").delete()
    setting.objects.using(db_alias).filter(key="INSTANCE_ARCH_DEFAULT_TYPE").delete()
    setting.objects.using(db_alias).filter(key="BOOTSTRAP_THEME").delete()
    setting.objects.using(db_alias).filter(key="SASS_DIR").delete()
    setting.objects.using(db_alias).filter(key="SHOW_ACCESS_ROOT_PASSWORD").delete()
    setting.objects.using(db_alias).filter(key="SHOW_ACCESS_SSH_KEYS").delete()


class Migration(migrations.Migration):

    dependencies = [
        ('appsettings', '0001_initial'),
    ]

    operations = [
        migrations.RunPython(add_default_settings, del_default_settings),
    ]