Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects

:bug: Fix Domain names string bug

Merged Frederico SEQUEIRA requested to merge domain_names_string_bug into main
+ 18
3
@@ -284,6 +284,19 @@ class CreateVmForm(NetBoxModelForm):
@@ -284,6 +284,19 @@ class CreateVmForm(NetBoxModelForm):
object_id=obj.pk
object_id=obj.pk
)
)
 
@staticmethod
 
def clean_json(json_data):
 
"""Clean JSON field"""
 
try:
 
import json
 
data = json.loads(json_data)
 
except (TypeError,ValueError) as e:
 
raise ValueError("Invalid JSON format: Please provide a valid JSON object")
 
 
cleaned_data = {k.strip(): v.strip() for k, v in data.items() if isinstance(v,str)}
 
return cleaned_data
 
 
@staticmethod
@staticmethod
def create_virtual_machine(data, cluster):
def create_virtual_machine(data, cluster):
"""Create and save a VirtualMachine object."""
"""Create and save a VirtualMachine object."""
@@ -402,12 +415,14 @@ class CreateVmForm(NetBoxModelForm):
@@ -402,12 +415,14 @@ class CreateVmForm(NetBoxModelForm):
def create_domain_names(data, vm):
def create_domain_names(data, vm):
"""Create and save DomainNames objects for the virtual machine."""
"""Create and save DomainNames objects for the virtual machine."""
domain_names_data = data.get('domainnames_new-domain_names', None)
domain_names_data = data.get('domainnames_new-domain_names', None)
if not domain_names_data:
cleaned_domain_names_data = CreateVmForm.clean_json(domain_names_data)
 
 
if not cleaned_domain_names_data:
return None
return None
domain_names_object = DomainNames(
domain_names_object = DomainNames(
domain_names=domain_names_data,
domain_names=cleaned_domain_names_data,
assigned_object_type=ContentType.objects.get_for_model(vm),
assigned_object_type=ContentType.objects.get_for_model(vm),
assigned_object_id=vm.id,
assigned_object_id=vm.id,
)
)
Loading