from rest_framework import serializers from instances.models import Flavor, Instance, MigrateInstance, CreateInstance class InstanceSerializer(serializers.ModelSerializer): class Meta: model = Instance fields = ['id', 'compute', 'name', 'uuid', 'is_template', 'created', 'drbd'] class InstanceDetailsSerializer(serializers.ModelSerializer): class Meta: model = Instance fields = [ 'id', 'compute', 'status', 'uuid', 'name', 'title', 'description', 'is_template', 'created', 'drbd', 'arch', 'machine', 'vcpu', 'memory', 'firmware', 'nvram', 'bootmenu', 'boot_order', 'disks', 'media', 'media_iso', 'snapshots', 'networks', 'console_type', 'console_port', 'console_keymap', 'console_listener_address', 'video_model', 'guest_agent_ready', 'autostart'] class FlavorSerializer(serializers.ModelSerializer): class Meta: model = Flavor fields = ['label', 'memory', 'vcpu', 'disk'] class CreateInstanceSerializer(serializers.ModelSerializer): firmware_choices = ( ('', 'BIOS'), #('UEFI', 'UEFI'), ) firmware = serializers.ChoiceField(choices = firmware_choices) graphics = serializers.CharField(initial='vnc') video = serializers.CharField(initial='vga') storage = serializers.CharField(initial='default') cache_mode = serializers.CharField(initial='none') virtio = serializers.BooleanField(initial=True) qemu_ga = serializers.BooleanField(initial=True) class Meta: model = CreateInstance fields = [ 'name', 'firmware', 'vcpu', 'vcpu_mode', 'memory', 'networks', 'mac', 'nwfilter', 'storage', 'hdd_size', 'cache_mode', 'meta_prealloc', 'virtio', 'qemu_ga', 'console_pass', 'graphics', 'video', 'listener_addr' ] class MigrateSerializer(serializers.ModelSerializer): instance = Instance.objects.all().prefetch_related("userinstance_set") live = serializers.BooleanField(initial=True) xml_del = serializers.BooleanField(initial=True) class Meta: model = MigrateInstance fields = ['instance', 'target_compute', 'live', 'xml_del', 'offline', 'autoconverge', 'compress', 'postcopy', 'unsafe']