Update open_api/vms to include ssh_key and specs
This commit is contained in:
parent
beb0a8926c
commit
cee507e34f
1 changed files with 19 additions and 3 deletions
|
@ -70,16 +70,19 @@ class VirtualMachineSerializer(serializers.Serializer):
|
|||
"""Serializer to map the virtual machine instance into JSON format."""
|
||||
|
||||
name = serializers.CharField(read_only=True)
|
||||
cores = serializers.IntegerField(read_only=True, source='template.vcpu')
|
||||
cores = serializers.IntegerField(source='template.vcpu')
|
||||
disk = serializers.IntegerField(write_only=True)
|
||||
memory = serializers.IntegerField(source='template.memory')
|
||||
|
||||
|
||||
disk_size = serializers.SerializerMethodField()
|
||||
memory = serializers.SerializerMethodField()
|
||||
ip = serializers.CharField(read_only=True,
|
||||
source='user_template.ungleich_public_ip',
|
||||
default='-')
|
||||
vm_id = serializers.IntegerField(read_only=True, source='id')
|
||||
state = serializers.CharField(read_only=True, source='str_state')
|
||||
price = serializers.SerializerMethodField()
|
||||
ssh_key = serializers.CharField(write_only=True)
|
||||
|
||||
template_id = serializers.ChoiceField(
|
||||
choices=[(key.id, key.name) for key in
|
||||
|
@ -90,13 +93,26 @@ class VirtualMachineSerializer(serializers.Serializer):
|
|||
|
||||
def create(self, validated_data):
|
||||
owner = validated_data['owner']
|
||||
ssh_key = validated_data['ssh_key']
|
||||
cores = validated_data['template']['vcpu']
|
||||
memory = validated_data['template']['memory']
|
||||
disk = validated_data['disk']
|
||||
|
||||
template_id = validated_data['template']['template_id']
|
||||
specs = {
|
||||
'cpu' : cores,
|
||||
'disk_size' : disk,
|
||||
'memory' : memory,
|
||||
}
|
||||
|
||||
|
||||
try:
|
||||
manager = OpenNebulaManager(email=owner.email,
|
||||
password=owner.password,
|
||||
)
|
||||
opennebula_id = manager.create_vm(template_id)
|
||||
opennebula_id = manager.create_vm(template_id=template_id,
|
||||
ssh_key=ssh_key,
|
||||
specs=specs)
|
||||
except OpenNebulaException as err:
|
||||
raise serializers.ValidationError("OpenNebulaException occured. {0}".format(err))
|
||||
|
||||
|
|
Loading…
Reference in a new issue