forked from Hostea/dashboard
convert instance names to lowercase
Fixes: https://gitea.gna.org/Hostea/dashboard/issues/69 Signed-off-by: Loïc Dachary <loic@dachary.org>wip-lowercase
parent
2725b9b1f6
commit
ad925cddfc
|
@ -30,7 +30,7 @@ from payments import get_payment_model, RedirectNeeded, PaymentStatus
|
||||||
from accounts.tests import login_util, register_util
|
from accounts.tests import login_util, register_util
|
||||||
|
|
||||||
from .models import InstanceConfiguration, Instance
|
from .models import InstanceConfiguration, Instance
|
||||||
from .utils import create_instance, VmErrors, VmException
|
from .utils import create_instance, sanitize_vm_name, VmErrors, VmException
|
||||||
|
|
||||||
|
|
||||||
def create_configurations(t: TestCase):
|
def create_configurations(t: TestCase):
|
||||||
|
@ -198,11 +198,21 @@ class CreateInstance(TestCase):
|
||||||
register_util(t=self, username="createinstance_user")
|
register_util(t=self, username="createinstance_user")
|
||||||
create_configurations(t=self)
|
create_configurations(t=self)
|
||||||
|
|
||||||
|
|
||||||
|
def test_sanitize_vm_name(self):
|
||||||
|
self.assertEqual(sanitize_vm_name(vm_name="LOWERname"), "lowername")
|
||||||
|
|
||||||
|
with self.assertRaises(VmException):
|
||||||
|
sanitize_vm_name(vm_name="12345452131324234234234234")
|
||||||
|
|
||||||
|
with self.assertRaises(VmException):
|
||||||
|
sanitize_vm_name(vm_name="122342$#34234")
|
||||||
|
|
||||||
|
|
||||||
@override_settings(
|
@override_settings(
|
||||||
HOSTEA=infra_custom_config(test_name="test_create_instance_util")
|
HOSTEA=infra_custom_config(test_name="test_create_instance_util")
|
||||||
)
|
)
|
||||||
def test_create_instance_util(self):
|
def test_create_instance_util(self):
|
||||||
vm_name = "test_create_instance_renders"
|
|
||||||
configuration = self.instance_config[0].name
|
configuration = self.instance_config[0].name
|
||||||
|
|
||||||
with self.assertRaises(VmException):
|
with self.assertRaises(VmException):
|
||||||
|
@ -212,13 +222,6 @@ class CreateInstance(TestCase):
|
||||||
user=self.user,
|
user=self.user,
|
||||||
)
|
)
|
||||||
|
|
||||||
with self.assertRaises(VmException):
|
|
||||||
create_instance(
|
|
||||||
vm_name="122342$#34234",
|
|
||||||
configuration_name=configuration,
|
|
||||||
user=self.user,
|
|
||||||
)
|
|
||||||
|
|
||||||
@override_settings(
|
@override_settings(
|
||||||
HOSTEA=infra_custom_config(test_name="test_create_instance_renders")
|
HOSTEA=infra_custom_config(test_name="test_create_instance_renders")
|
||||||
)
|
)
|
||||||
|
|
|
@ -43,11 +43,13 @@ class VmException(Exception):
|
||||||
return self.error
|
return self.error
|
||||||
|
|
||||||
|
|
||||||
def create_instance(vm_name: str, configuration_name: str, user: User) -> Instance:
|
def sanitize_vm_name(vm_name: str) -> str:
|
||||||
"""
|
"""
|
||||||
Create instance view
|
Sanity checks and normalization of the vm name
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
vm_name = vm_name.lower()
|
||||||
|
|
||||||
if len(vm_name) > 20:
|
if len(vm_name) > 20:
|
||||||
raise VmException(code=VmErrors.NAME_TOO_LONG)
|
raise VmException(code=VmErrors.NAME_TOO_LONG)
|
||||||
if not str.isalnum(vm_name):
|
if not str.isalnum(vm_name):
|
||||||
|
@ -56,6 +58,16 @@ def create_instance(vm_name: str, configuration_name: str, user: User) -> Instan
|
||||||
if Instance.objects.filter(name=vm_name).exists():
|
if Instance.objects.filter(name=vm_name).exists():
|
||||||
raise VmException(code=VmErrors.NAME_EXISTS)
|
raise VmException(code=VmErrors.NAME_EXISTS)
|
||||||
|
|
||||||
|
return vm_name
|
||||||
|
|
||||||
|
|
||||||
|
def create_instance(vm_name: str, configuration_name: str, user: User) -> Instance:
|
||||||
|
"""
|
||||||
|
Create instance view
|
||||||
|
"""
|
||||||
|
|
||||||
|
vm_name = sanitize_vm_name(vm_name)
|
||||||
|
|
||||||
if not InstanceConfiguration.objects.filter(name=configuration_name).exists():
|
if not InstanceConfiguration.objects.filter(name=configuration_name).exists():
|
||||||
raise VmException(code=VmErrors.NO_CONFIG)
|
raise VmException(code=VmErrors.NO_CONFIG)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue