Merge pull request 'convert instance names to lowercase' (#70) from dachary/dashboard:wip-lowercase into master
ci/woodpecker/push/woodpecker Pipeline failed Details

Reviewed-on: https://gitea.gna.org/Hostea/dashboard/pulls/70
pull/72/head
Aravinth Manivannan 2022-10-04 04:39:04 -04:00
commit 2e36a186ee
3 changed files with 28 additions and 13 deletions

View File

@ -30,7 +30,7 @@ from payments import get_payment_model, RedirectNeeded, PaymentStatus
from accounts.tests import login_util, register_util
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):
@ -198,11 +198,21 @@ class CreateInstance(TestCase):
register_util(t=self, username="createinstance_user")
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(
HOSTEA=infra_custom_config(test_name="test_create_instance_util")
)
def test_create_instance_util(self):
vm_name = "test_create_instance_renders"
configuration = self.instance_config[0].name
with self.assertRaises(VmException):
@ -212,13 +222,6 @@ class CreateInstance(TestCase):
user=self.user,
)
with self.assertRaises(VmException):
create_instance(
vm_name="122342$#34234",
configuration_name=configuration,
user=self.user,
)
@override_settings(
HOSTEA=infra_custom_config(test_name="test_create_instance_renders")
)

View File

@ -43,11 +43,13 @@ class VmException(Exception):
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:
raise VmException(code=VmErrors.NAME_TOO_LONG)
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():
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():
raise VmException(code=VmErrors.NO_CONFIG)

View File

@ -44,8 +44,8 @@ PAYMENT_VARIANTS = {
"stripe": (
"payments.stripe.StripeProvider", # please don't change this
{
"secret_key": env.get_value("STRIPE_SECRET_KEY"),
"public_key": env.get_value("STRIPE_PUBLIC_KEY"),
"secret_key": env.get_value("STRIPE_SECRET_KEY", default="UNSET"),
"public_key": env.get_value("STRIPE_PUBLIC_KEY", default="UNSET"),
},
)
}