vm template prefix
This commit is contained in:
parent
cba53e0fe3
commit
a4ca17e2ed
6 changed files with 58 additions and 10 deletions
|
@ -2,7 +2,7 @@ from django.contrib import admin
|
|||
from cms.admin.placeholderadmin import PlaceholderAdminMixin
|
||||
from cms.extensions import PageExtensionAdmin
|
||||
from .cms_models import CMSIntegration, CMSFaviconExtension
|
||||
from .models import VMPricing
|
||||
from .models import VMPricing, VMTemplate
|
||||
|
||||
|
||||
class CMSIntegrationAdmin(PlaceholderAdminMixin, admin.ModelAdmin):
|
||||
|
@ -16,3 +16,4 @@ class CMSFaviconExtensionAdmin(PageExtensionAdmin):
|
|||
admin.site.register(CMSIntegration, CMSIntegrationAdmin)
|
||||
admin.site.register(CMSFaviconExtension, CMSFaviconExtensionAdmin)
|
||||
admin.site.register(VMPricing)
|
||||
admin.site.register(VMTemplate)
|
||||
|
|
|
@ -9,7 +9,7 @@ from djangocms_text_ckeditor.fields import HTMLField
|
|||
from filer.fields.file import FilerFileField
|
||||
from filer.fields.image import FilerImageField
|
||||
|
||||
from datacenterlight.models import VMPricing
|
||||
from datacenterlight.models import VMPricing, VMTemplate
|
||||
|
||||
|
||||
class CMSIntegration(models.Model):
|
||||
|
@ -299,3 +299,7 @@ class DCLCalculatorPluginModel(CMSPlugin):
|
|||
help_text='Choose a pricing that will be associated with this '
|
||||
'Calculator'
|
||||
)
|
||||
vm_type = models.CharField(
|
||||
max_length=50, choices=VMTemplate.VM_TYPE_CHOICES,
|
||||
default=VMTemplate.PUBLIC
|
||||
)
|
||||
|
|
|
@ -88,7 +88,9 @@ class DCLCalculatorPlugin(CMSPluginBase):
|
|||
context = super(DCLCalculatorPlugin, self).render(
|
||||
context, instance, placeholder
|
||||
)
|
||||
context['templates'] = VMTemplate.objects.all()
|
||||
context['templates'] = VMTemplate.objects.filter(
|
||||
vm_type=instance.vm_type
|
||||
)
|
||||
return context
|
||||
|
||||
|
||||
|
|
25
datacenterlight/migrations/0023_auto_20180524_0349.py
Normal file
25
datacenterlight/migrations/0023_auto_20180524_0349.py
Normal file
|
@ -0,0 +1,25 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.9.4 on 2018-05-23 22:19
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('datacenterlight', '0022_auto_20180506_1950'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='dclcalculatorpluginmodel',
|
||||
name='vm_type',
|
||||
field=models.CharField(choices=[('public', 'Public'), ('ipv6only', 'Ipv6Only')], default='public', max_length=50),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='vmtemplate',
|
||||
name='vm_type',
|
||||
field=models.CharField(choices=[('public', 'Public'), ('ipv6only', 'Ipv6Only')], default='public', max_length=50),
|
||||
),
|
||||
]
|
|
@ -6,13 +6,29 @@ logger = logging.getLogger(__name__)
|
|||
|
||||
|
||||
class VMTemplate(models.Model):
|
||||
PUBLIC = 'public'
|
||||
IPV6 = 'ipv6only'
|
||||
VM_TYPE_CHOICES = (
|
||||
(PUBLIC, PUBLIC.title()),
|
||||
(IPV6, IPV6.title()),
|
||||
)
|
||||
name = models.CharField(max_length=50)
|
||||
opennebula_vm_template_id = models.IntegerField()
|
||||
vm_type = models.CharField(
|
||||
max_length=50, choices=VM_TYPE_CHOICES, default=PUBLIC
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
return '%s - %s - %s' % (
|
||||
self.opennebula_vm_template_id, self.vm_type, self.name
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def create(cls, name, opennebula_vm_template_id):
|
||||
def create(cls, name, opennebula_vm_template_id, vm_type):
|
||||
vm_template = cls(
|
||||
name=name, opennebula_vm_template_id=opennebula_vm_template_id)
|
||||
name=name, opennebula_vm_template_id=opennebula_vm_template_id,
|
||||
vm_type=vm_type
|
||||
)
|
||||
return vm_template
|
||||
|
||||
|
||||
|
|
|
@ -362,12 +362,12 @@ class OpenNebulaManager():
|
|||
except:
|
||||
raise ConnectionRefusedError
|
||||
|
||||
def get_templates(self):
|
||||
def get_templates(self, prefix='public-'):
|
||||
try:
|
||||
public_templates = [
|
||||
template
|
||||
for template in self._get_template_pool()
|
||||
if template.name.startswith('public-')
|
||||
if template.name.startswith(prefix)
|
||||
]
|
||||
return public_templates
|
||||
except ConnectionRefusedError:
|
||||
|
|
Loading…
Reference in a new issue