uncloud/uncloud_django_based/uncloud/uncloud_net/models.py

39 lines
1.1 KiB
Python
Raw Normal View History

from django.db import models
from django.contrib.auth import get_user_model
from django.core.validators import MinValueValidator, MaxValueValidator
from uncloud_pay.models import Product, RecurringPeriod
from uncloud.models import UncloudModel, UncloudStatus
2020-04-06 20:30:01 +00:00
class MACAdress(models.Model):
default_prefix = 0x420000000000
class VPNPool(UncloudModel):
"""
Network address pools from which VPNs can be created
"""
2020-04-06 20:30:01 +00:00
network = models.GenericIPAddressField(primary_key=True)
network_size = models.IntegerField(validators=[MinValueValidator(0),
MaxValueValidator(128)])
2020-04-06 20:30:01 +00:00
vpn_hostname = models.CharField(max_length=256)
wireguard_private_key = models.CharField(max_length=48)
class VPNNetwork(Product):
"""
A selected network. Used for tracking reservations / used networks
"""
vpnpool = models.ForeignKey(VPNPool,
on_delete=models.CASCADE)
2020-04-06 20:30:01 +00:00
network = models.GenericIPAddressField(editable=False,
unique=True)
2020-04-06 20:30:01 +00:00
wireguard_public_key = models.CharField(max_length=48)