initial work
This commit is contained in:
parent
8c885b2b24
commit
81e55a2134
13 changed files with 335 additions and 0 deletions
49
hub/broker/serializers.py
Normal file
49
hub/broker/serializers.py
Normal file
|
@ -0,0 +1,49 @@
|
|||
from rest_framework import serializers
|
||||
from hub.services.models import ServiceOffering, Plan
|
||||
|
||||
|
||||
class ServiceUserSerializer(serializers.Serializer):
|
||||
email = serializers.EmailField()
|
||||
full_name = serializers.CharField()
|
||||
role = serializers.CharField()
|
||||
|
||||
|
||||
class ProvisioningContextSerializer(serializers.Serializer):
|
||||
platform = serializers.CharField()
|
||||
organization_guid = serializers.CharField()
|
||||
space_guid = serializers.CharField()
|
||||
organization_name = serializers.CharField()
|
||||
organization_display_name = serializers.CharField()
|
||||
|
||||
|
||||
class ProvisioningParametersSerializer(serializers.Serializer):
|
||||
users = ServiceUserSerializer(many=True)
|
||||
|
||||
|
||||
class ServiceInstanceProvisioningSerializer(serializers.Serializer):
|
||||
service_id = serializers.CharField() # This will now represent the offering_id
|
||||
plan_id = serializers.CharField()
|
||||
organization_guid = serializers.CharField()
|
||||
space_guid = serializers.CharField()
|
||||
parameters = ProvisioningParametersSerializer()
|
||||
context = ProvisioningContextSerializer()
|
||||
|
||||
def validate_service_id(self, value):
|
||||
"""Validate the service_id which now represents the offering_id"""
|
||||
try:
|
||||
return ServiceOffering.objects.get(pk=value)
|
||||
except ServiceOffering.DoesNotExist:
|
||||
raise serializers.ValidationError("Invalid offering_id")
|
||||
|
||||
def validate_plan_id(self, value):
|
||||
try:
|
||||
# Get the plan and ensure it belongs to the selected offering
|
||||
plan = Plan.objects.get(pk=value)
|
||||
offering = self.initial_data.get("service_id")
|
||||
if str(plan.offering.id) != offering:
|
||||
raise serializers.ValidationError(
|
||||
"Plan does not belong to the selected offering"
|
||||
)
|
||||
return plan
|
||||
except Plan.DoesNotExist:
|
||||
raise serializers.ValidationError("Invalid plan_id")
|
Loading…
Add table
Add a link
Reference in a new issue