Finalizado INFATEC MANAGER

parent 9a1aa47d
import digitalocean
from django import forms
from django.contrib import admin
from django.conf import settings
......@@ -14,10 +16,18 @@ from .models import Sistema
class ClienteForm(forms.ModelForm):
droplets_size = forms.ChoiceField()
class Meta:
model = Cliente
fields = "__all__"
def __init__(self, *args, **kwargs):
super(ClienteForm, self).__init__(*args, **kwargs)
manager = digitalocean.Manager(token = Configuracao.get_solo().token)
self.fields['droplets_size'].choices = [(val, val) for val in manager.get_all_sizes()]
def clean_subdomain_name(self):
data = self.cleaned_data['subdomain_name']
self.username_subdomain_name_clean(data)
......
# Generated by Django 2.0.1 on 2018-02-20 20:12
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('core', '0013_auto_20180220_1910'),
]
operations = [
migrations.RemoveField(
model_name='configuracao',
name='droplets_backups',
),
migrations.RemoveField(
model_name='configuracao',
name='droplets_image',
),
migrations.RemoveField(
model_name='configuracao',
name='droplets_ipv6',
),
migrations.RemoveField(
model_name='configuracao',
name='droplets_size',
),
migrations.AddField(
model_name='cliente',
name='droplets_backups',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='cliente',
name='droplets_image',
field=models.CharField(default='ubuntu-16-04-x64', max_length=50, verbose_name='Imagem/SO dos Droplets'),
),
migrations.AddField(
model_name='cliente',
name='droplets_ipv6',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='cliente',
name='droplets_size',
field=models.CharField(default='s-1vcpu-1gb', max_length=50, verbose_name='Tamanho dos Droplets'),
),
]
......@@ -9,7 +9,6 @@ import django_rq
class Cliente(models.Model):
"""Model definition for Cliente."""
# Informações do cliente
nome = models.CharField(max_length=50)
subdomain_name = models.CharField(_('Subdomínio'), max_length=50, unique=True)
......@@ -17,12 +16,17 @@ class Cliente(models.Model):
username = models.CharField(max_length=50)
password = models.CharField(max_length=50)
sistema = models.ForeignKey('Sistema', models.PROTECT, related_name='clientes')
# Informações do droplet
droplet_id = models.CharField(_('ID do droplet'), max_length=50, blank=True, null=True)
droplet_ip = models.CharField(_('IP do droplet'), max_length=50, blank=True, null=True)
droplet_status = models.CharField(max_length=255, blank=True, null=True)
droplet_logs = models.TextField(blank=True, default='')
droplets_image = models.CharField(_('Imagem/SO dos Droplets'), max_length=50, default="ubuntu-16-04-x64")
droplets_size = models.CharField(_('Tamanho dos Droplets'), max_length=50, default="512mb")
droplets_backups = models.BooleanField(default=False)
droplets_ipv6 = models.BooleanField(default=False)
class Meta:
"""Meta definition for Cliente."""
......
......@@ -11,10 +11,10 @@ class Configuracao(SingletonModel):
token = models.CharField(max_length=255)
droplets_region = models.CharField(_('Região dos Droplets'), max_length=50, default="nyc1")
droplets_image = models.CharField(_('Imagem/SO dos Droplets'), max_length=50, default="ubuntu-16-04-x64")
droplets_size = models.CharField(_('Tamanho dos Droplets'), max_length=50, default="s-1vcpu-1gb")
droplets_backups = models.BooleanField(default=False)
droplets_ipv6 = models.BooleanField(default=False)
#droplets_image = models.CharField(_('Imagem/SO dos Droplets'), max_length=50, default="ubuntu-16-04-x64")
#droplets_size = models.CharField(_('Tamanho dos Droplets'), max_length=50, default="s-1vcpu-1gb")
#droplets_backups = models.BooleanField(default=False)
#droplets_ipv6 = models.BooleanField(default=False)
#droplets_user_data = models.TextField(blank=True) movido para o model de Sistema
def __str__(self):
......
......@@ -34,10 +34,10 @@ def criar_droplet(cliente):
cliente.username, cliente.subdomain_name
).replace('_', '-'),
region=configuracoes.droplets_region,
image=configuracoes.droplets_image,
size_slug=configuracoes.droplets_size,
backups=configuracoes.droplets_backups,
ipv6=configuracoes.droplets_ipv6,
image=cliente.droplets_image,
size_slug=cliente.droplets_size,
backups=cliente.droplets_backups,
ipv6=cliente.droplets_ipv6,
user_data=cliente.user_data,
ssh_keys=configuracoes.ssh_keys
)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment