Fix issue when updating a template

This commit is contained in:
grossmj committed 2021-10-23 16:23:19 +10:30
1 parent 45738f262b
commit 7ce5e19a6e
13 files changed
+151 -25

No files matched your search

@@ -50,9 +50,6 @@ class TemplateBase(BaseModel):
compute_id: Optional[str] = None
usage: Optional[str] = ""
class Config:
extra = "allow"
class TemplateCreate(TemplateBase):
"""
@@ -63,10 +60,14 @@ class TemplateCreate(TemplateBase):
template_type: NodeType
compute_id: str
class Config:
extra = "allow"
class TemplateUpdate(TemplateBase):
pass
class Config:
extra = "allow"
class Template(DateTimeModelMixin, TemplateBase):
@@ -80,6 +81,7 @@ class Template(DateTimeModelMixin, TemplateBase):
compute_id: Union[str, None]
class Config:
extra = "allow"
orm_mode = True
@@ -37,3 +37,8 @@ class CloudTemplate(TemplateBase):
remote_console_port: Optional[int] = Field(23, gt=0, le=65535, description="Remote console TCP port")
remote_console_type: Optional[CloudConsoleType] = Field("none", description="Remote console type")
remote_console_http_path: Optional[str] = Field("/", description="Path of the remote web interface")
class CloudTemplateUpdate(CloudTemplate):
pass
@@ -51,3 +51,8 @@ class DockerTemplate(TemplateBase):
memory: Optional[int] = Field(0, description="Maximum amount of memory the container can use in MB")
cpus: Optional[int] = Field(0, description="Maximum amount of CPU resources the container can use")
custom_adapters: Optional[List[CustomAdapter]] = Field(default_factory=list, description="Custom adapters")
class DockerTemplateUpdate(DockerTemplate):
image: Optional[str] = Field(None, description="Docker image name")
@@ -77,6 +77,12 @@ class C7200DynamipsTemplate(DynamipsTemplate):
sparsemem: Optional[bool] = Field(True, description="Sparse memory feature")
class C7200DynamipsTemplateUpdate(C7200DynamipsTemplate):
platform: Optional[DynamipsPlatform] = Field(None, description="Cisco router platform")
image: Optional[str] = Field(None, description="Path to the IOS image")
class C3725DynamipsTemplate(DynamipsTemplate):
ram: Optional[int] = Field(128, description="Amount of RAM in MB")
@@ -85,6 +91,12 @@ class C3725DynamipsTemplate(DynamipsTemplate):
sparsemem: Optional[bool] = Field(True, description="Sparse memory feature")
class C3725DynamipsTemplateUpdate(C3725DynamipsTemplate):
platform: Optional[DynamipsPlatform] = Field(None, description="Cisco router platform")
image: Optional[str] = Field(None, description="Path to the IOS image")
class C3745DynamipsTemplate(DynamipsTemplate):
ram: Optional[int] = Field(256, description="Amount of RAM in MB")
@@ -93,6 +105,12 @@ class C3745DynamipsTemplate(DynamipsTemplate):
sparsemem: Optional[bool] = Field(True, description="Sparse memory feature")
class C3745DynamipsTemplateUpdate(C3745DynamipsTemplate):
platform: Optional[DynamipsPlatform] = Field(None, description="Cisco router platform")
image: Optional[str] = Field(None, description="Path to the IOS image")
class C3600ChassisType(str, Enum):
chassis_3620 = "3620"
@@ -109,6 +127,12 @@ class C3600DynamipsTemplate(DynamipsTemplate):
sparsemem: Optional[bool] = Field(True, description="Sparse memory feature")
class C3600DynamipsTemplateUpdate(C3600DynamipsTemplate):
platform: Optional[DynamipsPlatform] = Field(None, description="Cisco router platform")
image: Optional[str] = Field(None, description="Path to the IOS image")
class C2691DynamipsTemplate(DynamipsTemplate):
ram: Optional[int] = Field(192, description="Amount of RAM in MB")
@@ -117,6 +141,12 @@ class C2691DynamipsTemplate(DynamipsTemplate):
sparsemem: Optional[bool] = Field(True, description="Sparse memory feature")
class C2691DynamipsTemplateUpdate(C2691DynamipsTemplate):
platform: Optional[DynamipsPlatform] = Field(None, description="Cisco router platform")
image: Optional[str] = Field(None, description="Path to the IOS image")
class C2600ChassisType(str, Enum):
chassis_2610 = "2610"
@@ -139,6 +169,12 @@ class C2600DynamipsTemplate(DynamipsTemplate):
sparsemem: Optional[bool] = Field(True, description="Sparse memory feature")
class C2600DynamipsTemplateUpdate(C2600DynamipsTemplate):
platform: Optional[DynamipsPlatform] = Field(None, description="Cisco router platform")
image: Optional[str] = Field(None, description="Path to the IOS image")
class C1700ChassisType(str, Enum):
chassis_1720 = "1720"
@@ -155,3 +191,9 @@ class C1700DynamipsTemplate(DynamipsTemplate):
nvram: Optional[int] = Field(128, description="Amount of NVRAM in KB")
iomem: Optional[int] = Field(15, ge=0, le=100, description="I/O memory percentage")
sparsemem: Optional[bool] = Field(False, description="Sparse memory feature")
class C1700DynamipsTemplateUpdate(C1700DynamipsTemplate):
platform: Optional[DynamipsPlatform] = Field(None, description="Cisco router platform")
image: Optional[str] = Field(None, description="Path to the IOS image")
@@ -39,3 +39,8 @@ class EthernetHubTemplate(TemplateBase):
default_name_format: Optional[str] = "Hub{0}"
symbol: Optional[str] = ":/symbols/hub.svg"
ports_mapping: Optional[List[EthernetHubPort]] = Field(DEFAULT_PORTS, description="Ports")
class EthernetHubTemplateUpdate(EthernetHubTemplate):
pass
@@ -50,3 +50,8 @@ class EthernetSwitchTemplate(TemplateBase):
symbol: Optional[str] = ":/symbols/ethernet_switch.svg"
ports_mapping: Optional[List[EthernetSwitchPort]] = Field(DEFAULT_PORTS, description="Ports")
console_type: Optional[ConsoleType] = Field("none", description="Console type")
class EthernetSwitchTemplateUpdate(EthernetSwitchTemplate):
pass
@@ -40,3 +40,8 @@ class IOUTemplate(TemplateBase):
console_auto_start: Optional[bool] = Field(
False, description="Automatically start the console when the node has started"
)
class IOUTemplateUpdate(IOUTemplate):
path: Optional[str] = Field(None, description="Path of IOU executable")
@@ -85,3 +85,8 @@ class QemuTemplate(TemplateBase):
process_priority: Optional[QemuProcessPriority] = Field("normal", description="Process priority for QEMU")
options: Optional[str] = Field("", description="Additional QEMU options")
custom_adapters: Optional[List[CustomAdapter]] = Field(default_factory=list, description="Custom adapters")
class QemuTemplateUpdate(QemuTemplate):
pass
@@ -58,3 +58,8 @@ class VirtualBoxTemplate(TemplateBase):
False, description="Automatically start the console when the node has started"
)
custom_adapters: Optional[List[CustomAdapter]] = Field(default_factory=list, description="Custom adapters")
class VirtualBoxTemplateUpdate(VirtualBoxTemplate):
vmname: Optional[str] = Field(None, description="VirtualBox VM name (in VirtualBox itself)")
@@ -54,3 +54,8 @@ class VMwareTemplate(TemplateBase):
False, description="Automatically start the console when the node has started"
)
custom_adapters: Optional[List[CustomAdapter]] = Field(default_factory=list, description="Custom adapters")
class VMwareTemplateUpdate(VMwareTemplate):
vmx_path: Optional[str] = Field(None, description="Path to the vmx file")
@@ -32,3 +32,8 @@ class VPCSTemplate(TemplateBase):
console_auto_start: Optional[bool] = Field(
False, description="Automatically start the console when the node has started"
)
class VPCSTemplateUpdate(VPCSTemplate):
pass