from django.contrib.auth import get_user_model from rest_framework import serializers from .models import VMHost, VMProduct, VMSnapshotProduct from uncloud_pay.models import RecurringPeriod class VMHostSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = VMHost fields = '__all__' class VMProductSerializer(serializers.HyperlinkedModelSerializer): # Custom field used at creation (= ordering) only. recurring_period = serializers.ChoiceField( choices=VMProduct.allowed_recurring_periods()) class Meta: model = VMProduct fields = ['uuid', 'order', 'owner', 'status', 'name', \ 'cores', 'ram_in_gb', 'recurring_period'] read_only_fields = ['uuid', 'order', 'owner', 'status'] class ManagedVMProductSerializer(serializers.ModelSerializer): """ Managed VM serializer used in ungleich_service app. """ class Meta: model = VMProduct fields = [ 'cores', 'ram_in_gb'] class VMSnapshotProductSerializer(serializers.ModelSerializer): class Meta: model = VMSnapshotProduct fields = '__all__' # verify that vm.owner == user.request def validate_vm(self, value): print(value) return True