From faf0b8000054846c5d43f18ff6c2e1ce16ab9590 Mon Sep 17 00:00:00 2001 From: Tomasz Ziarko Date: Tue, 25 Jun 2019 11:06:03 +0200 Subject: [PATCH] Cloud images - support duplicated names --- src/ralph/virtual/admin.py | 2 +- src/ralph/virtual/api.py | 5 ++-- .../migrations/0013_auto_20190625_1239.py | 23 +++++++++++++++++++ src/ralph/virtual/models.py | 7 ++---- 4 files changed, 29 insertions(+), 8 deletions(-) create mode 100644 src/ralph/virtual/migrations/0013_auto_20190625_1239.py diff --git a/src/ralph/virtual/admin.py b/src/ralph/virtual/admin.py index 28fba4d1dc..811d94394f 100644 --- a/src/ralph/virtual/admin.py +++ b/src/ralph/virtual/admin.py @@ -514,7 +514,7 @@ class CloudProviderAdmin(RalphAdmin): @register(CloudImage) class CloudImageAdmin(RalphAdmin): list_display = ['name', 'image_id'] - list_filter = ['name', 'image_id'] + list_filter = ['name'] fieldsets = ( ('Cloud Image', { diff --git a/src/ralph/virtual/api.py b/src/ralph/virtual/api.py index 214d7b08ae..ed683359d7 100644 --- a/src/ralph/virtual/api.py +++ b/src/ralph/virtual/api.py @@ -22,7 +22,7 @@ from ralph.data_center.models import DCHost from ralph.security.api import SecurityScanSerializer from ralph.security.models import SecurityScan -from ralph.virtual.admin import CloudFlavorAdmin, VirtualServerAdmin +from ralph.virtual.admin import VirtualServerAdmin from ralph.virtual.models import ( CloudFlavor, CloudHost, @@ -178,7 +178,7 @@ class CloudFlavorViewSet(RalphAPIViewSet): serializer_class = CloudFlavorSerializer save_serializer_class = SaveCloudFlavorSerializer prefetch_related = ['tags', 'virtualcomponent_set__model'] - list_filter = CloudFlavorAdmin.list_filter + ['flavor_id'] + filter_fields = ['flavor_id'] class CloudProviderViewSet(RalphAPIViewSet): @@ -189,6 +189,7 @@ class CloudProviderViewSet(RalphAPIViewSet): class CloudImageViewSet(RalphAPIViewSet): queryset = CloudImage.objects.all() serializer_class = CloudImageSerializer + filter_fields = ['image_id'] class CloudHostViewSet(BaseObjectViewSetMixin, RalphAPIViewSet): diff --git a/src/ralph/virtual/migrations/0013_auto_20190625_1239.py b/src/ralph/virtual/migrations/0013_auto_20190625_1239.py new file mode 100644 index 0000000000..953b52b8cf --- /dev/null +++ b/src/ralph/virtual/migrations/0013_auto_20190625_1239.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('virtual', '0012_cloudimage'), + ] + + operations = [ + migrations.AlterModelOptions( + name='cloudimage', + options={}, + ), + migrations.AlterField( + model_name='cloudimage', + name='name', + field=models.CharField(max_length=200), + ), + ] diff --git a/src/ralph/virtual/models.py b/src/ralph/virtual/models.py index 92b8fb0b32..99fcaff4fe 100644 --- a/src/ralph/virtual/models.py +++ b/src/ralph/virtual/models.py @@ -164,16 +164,13 @@ def __str__(self): return 'Cloud Project: {}'.format(self.name) -class CloudImage(AdminAbsoluteUrlMixin, NamedMixin): - class Meta: - verbose_name = _('Cloud image') - verbose_name_plural = _('Cloud images') - +class CloudImage(AdminAbsoluteUrlMixin, models.Model): image_id = models.CharField( verbose_name=_('image ID'), unique=True, max_length=100 ) + name = models.CharField(max_length=200, unique=False) def __str__(self): return 'Cloud Image: {}'.format(self.name)