Added Flake8 lib and fixed PEP8 violations
This commit is contained in:
parent
0cbd3aa666
commit
edcfd3e9f4
65 changed files with 340 additions and 387 deletions
|
|
@ -1,20 +1,19 @@
|
|||
import oca
|
||||
import ipaddress
|
||||
|
||||
from rest_framework import serializers
|
||||
|
||||
from oca import OpenNebulaException
|
||||
from oca.template import VmTemplate
|
||||
|
||||
from .models import OpenNebulaManager
|
||||
|
||||
|
||||
class VirtualMachineTemplateSerializer(serializers.Serializer):
|
||||
"""Serializer to map the virtual machine template instance into JSON format."""
|
||||
id = serializers.IntegerField(read_only=True)
|
||||
name = serializers.SerializerMethodField()
|
||||
cores = serializers.SerializerMethodField()
|
||||
disk_size = serializers.SerializerMethodField()
|
||||
memory = serializers.SerializerMethodField()
|
||||
id = serializers.IntegerField(read_only=True)
|
||||
name = serializers.SerializerMethodField()
|
||||
cores = serializers.SerializerMethodField()
|
||||
disk_size = serializers.SerializerMethodField()
|
||||
memory = serializers.SerializerMethodField()
|
||||
|
||||
def get_cores(self, obj):
|
||||
if hasattr(obj.template, 'vcpu'):
|
||||
|
|
@ -28,7 +27,7 @@ class VirtualMachineTemplateSerializer(serializers.Serializer):
|
|||
try:
|
||||
for disk in template.disks:
|
||||
disk_size += int(disk.size)
|
||||
return disk_size / 1024
|
||||
return disk_size / 1024
|
||||
except:
|
||||
return 0
|
||||
|
||||
|
|
@ -39,30 +38,28 @@ class VirtualMachineTemplateSerializer(serializers.Serializer):
|
|||
return obj.name.strip('public-')
|
||||
|
||||
|
||||
|
||||
class VirtualMachineSerializer(serializers.Serializer):
|
||||
"""Serializer to map the virtual machine instance into JSON format."""
|
||||
|
||||
name = serializers.SerializerMethodField()
|
||||
cores = serializers.IntegerField(source='template.vcpu')
|
||||
disk = serializers.IntegerField(write_only=True)
|
||||
set_memory = serializers.IntegerField(write_only=True, label='Memory')
|
||||
memory = serializers.SerializerMethodField()
|
||||
|
||||
cores = serializers.IntegerField(source='template.vcpu')
|
||||
disk = serializers.IntegerField(write_only=True)
|
||||
set_memory = serializers.IntegerField(write_only=True, label='Memory')
|
||||
memory = serializers.SerializerMethodField()
|
||||
|
||||
disk_size = serializers.SerializerMethodField()
|
||||
ipv4 = serializers.SerializerMethodField()
|
||||
ipv6 = serializers.SerializerMethodField()
|
||||
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)
|
||||
disk_size = serializers.SerializerMethodField()
|
||||
ipv4 = serializers.SerializerMethodField()
|
||||
ipv6 = serializers.SerializerMethodField()
|
||||
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)
|
||||
configuration = serializers.SerializerMethodField()
|
||||
|
||||
template_id = serializers.ChoiceField(
|
||||
choices=[(key.id, key.name) for key in
|
||||
OpenNebulaManager().try_get_templates()
|
||||
],
|
||||
OpenNebulaManager().try_get_templates()
|
||||
],
|
||||
source='template.template_id',
|
||||
write_only=True,
|
||||
default=[]
|
||||
|
|
@ -77,12 +74,11 @@ class VirtualMachineSerializer(serializers.Serializer):
|
|||
|
||||
template_id = validated_data['template']['template_id']
|
||||
specs = {
|
||||
'cpu' : cores,
|
||||
'disk_size' : disk,
|
||||
'memory' : memory,
|
||||
'cpu': cores,
|
||||
'disk_size': disk,
|
||||
'memory': memory,
|
||||
}
|
||||
|
||||
|
||||
try:
|
||||
manager = OpenNebulaManager(email=owner.email,
|
||||
password=owner.password,
|
||||
|
|
@ -92,7 +88,7 @@ class VirtualMachineSerializer(serializers.Serializer):
|
|||
specs=specs)
|
||||
except OpenNebulaException as err:
|
||||
raise serializers.ValidationError("OpenNebulaException occured. {0}".format(err))
|
||||
|
||||
|
||||
return manager.get_vm(opennebula_id)
|
||||
|
||||
def get_memory(self, obj):
|
||||
|
|
@ -112,6 +108,7 @@ class VirtualMachineSerializer(serializers.Serializer):
|
|||
for disk in template.disks:
|
||||
price += int(disk.size)/1024 * 0.6
|
||||
return price
|
||||
|
||||
def get_configuration(self, obj):
|
||||
template_id = obj.template.template_id
|
||||
template = OpenNebulaManager().get_template(template_id)
|
||||
|
|
@ -123,7 +120,7 @@ class VirtualMachineSerializer(serializers.Serializer):
|
|||
return str(v4_from_mac(nic.mac))
|
||||
else:
|
||||
return '-'
|
||||
|
||||
|
||||
def get_ipv6(self, obj):
|
||||
nic = obj.template.nics[0]
|
||||
return nic.ip6_global
|
||||
|
|
@ -131,12 +128,15 @@ class VirtualMachineSerializer(serializers.Serializer):
|
|||
def get_name(self, obj):
|
||||
return obj.name.strip('public-')
|
||||
|
||||
|
||||
def hexstr2int(string):
|
||||
return int(string.replace(':', ''), 16)
|
||||
|
||||
|
||||
FIRST_MAC = hexstr2int('02:00:b3:39:79:4d')
|
||||
FIRST_V4 = ipaddress.ip_address('185.203.112.2')
|
||||
COUNT = 1000
|
||||
FIRST_V4 = ipaddress.ip_address('185.203.112.2')
|
||||
COUNT = 1000
|
||||
|
||||
|
||||
def v4_from_mac(mac):
|
||||
"""Calculates the IPv4 address from a MAC address.
|
||||
|
|
@ -146,5 +146,6 @@ def v4_from_mac(mac):
|
|||
"""
|
||||
return FIRST_V4 + (hexstr2int(mac) - FIRST_MAC)
|
||||
|
||||
|
||||
def is_in_v4_range(mac):
|
||||
return FIRST_MAC <= hexstr2int(mac) < FIRST_MAC + 1000
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue