Resource Class update (validation, list of flavors)
- List of flavors fixed, according to tzumains latest patch - Validation of uniquenes of ResourceClass name added - Test fixed for unique validation Change-Id: Ibfaae64c126c4af00cdc32813d290189c25c255e
This commit is contained in:
committed by
Tomas Sedovic
parent
50ea6f89af
commit
b3312a97d0
@@ -89,16 +89,31 @@ class ResourceClassesTable(tables.DataTable):
|
||||
class FlavorsTable(tables.DataTable):
|
||||
name = tables.Column("name",
|
||||
verbose_name=_("Name"))
|
||||
vcpus = tables.Column("vcpus",
|
||||
verbose_name=_("Vcpus"))
|
||||
ram = tables.Column("ram",
|
||||
verbose_name=_("RAM (MB)"))
|
||||
root_disk = tables.Column("root_disk",
|
||||
verbose_name=_("Root Disk (GB)"))
|
||||
ephem_d = tables.Column("ephem_d",
|
||||
verbose_name=_("Ephem. D. (GB)"))
|
||||
swap_disk = tables.Column("swap_disk",
|
||||
verbose_name=_("Swap Disk (GB)"))
|
||||
vcpu = tables.Column(
|
||||
"vcpu",
|
||||
verbose_name=_('VCPU'),
|
||||
filters=(lambda x: getattr(x, 'value', ''),)
|
||||
)
|
||||
ram = tables.Column(
|
||||
"ram",
|
||||
verbose_name=_('RAM (MB)'),
|
||||
filters=(lambda x: getattr(x, 'value', ''),)
|
||||
)
|
||||
root_disk = tables.Column(
|
||||
"root_disk",
|
||||
verbose_name=_('Root Disk (GB)'),
|
||||
filters=(lambda x: getattr(x, 'value', ''),)
|
||||
)
|
||||
ephemeral_disk = tables.Column(
|
||||
"ephemeral_disk",
|
||||
verbose_name=_('Ephemeral Disk (GB)'),
|
||||
filters=(lambda x: getattr(x, 'value', ''),)
|
||||
)
|
||||
swap_disk = tables.Column(
|
||||
"swap_disk",
|
||||
verbose_name=_('Swap Disk (MB)'),
|
||||
filters=(lambda x: getattr(x, 'value', ''),)
|
||||
)
|
||||
max_vms = tables.Column("max_vms",
|
||||
auto='form_widget',
|
||||
verbose_name=_("Max. VMs"),
|
||||
|
||||
@@ -34,6 +34,7 @@ class ResourceClassesTests(test.BaseAdminViewTests):
|
||||
)})
|
||||
def test_create_resource_class(self):
|
||||
new_resource_class = self.management_resource_classes.first()
|
||||
new_unique_name = "unique_name_for_sure"
|
||||
|
||||
all_flavors = self.management_flavors.list()
|
||||
all_racks = self.management_racks.list()
|
||||
@@ -54,7 +55,7 @@ class ResourceClassesTests(test.BaseAdminViewTests):
|
||||
# post
|
||||
api.management.ResourceClass.create(
|
||||
IsA(http.HttpRequest),
|
||||
name=new_resource_class.name,
|
||||
name=new_unique_name,
|
||||
service_type=new_resource_class.service_type).\
|
||||
AndReturn(new_resource_class)
|
||||
api.management.ResourceClass.set_resources(
|
||||
@@ -72,7 +73,7 @@ class ResourceClassesTests(test.BaseAdminViewTests):
|
||||
res = self.client.get(url)
|
||||
self.assertEqual(res.status_code, 200)
|
||||
|
||||
form_data = {'name': new_resource_class.name,
|
||||
form_data = {'name': new_unique_name,
|
||||
'service_type': new_resource_class.service_type}
|
||||
res = self.client.post(url, form_data)
|
||||
self.assertNoFormErrors(res)
|
||||
|
||||
@@ -46,6 +46,32 @@ class ResourceClassInfoAndFlavorsAction(workflows.Action):
|
||||
attrs={'class': 'switchable'})
|
||||
)
|
||||
|
||||
def clean(self):
|
||||
cleaned_data = super(ResourceClassInfoAndFlavorsAction,
|
||||
self).clean()
|
||||
|
||||
name = cleaned_data.get('name')
|
||||
resource_class_id = self.initial.get('resource_class_id', None)
|
||||
try:
|
||||
resource_classes = api.management.ResourceClass.list(self.request)
|
||||
except:
|
||||
resource_classes = []
|
||||
msg = _('Unable to get resource class list')
|
||||
exceptions.check_message(["Connection", "refused"], msg)
|
||||
raise
|
||||
if resource_classes is not None:
|
||||
for resource_class in resource_classes:
|
||||
if resource_class.name == name and (
|
||||
resource_class_id is None or
|
||||
resource_class_id != resource_class.id):
|
||||
raise forms.ValidationError(
|
||||
_('The name "%s" is already used by'
|
||||
' another resource class.')
|
||||
% name
|
||||
)
|
||||
|
||||
return cleaned_data
|
||||
|
||||
class Meta:
|
||||
name = _("Class Settings")
|
||||
help_text = _("From here you can fill the class "
|
||||
|
||||
Reference in New Issue
Block a user