From bfa4b70ed3ba4a2c41cb16afb43916e79e6ee07e Mon Sep 17 00:00:00 2001 From: Bugclerk Date: Wed, 5 Mar 2025 11:11:33 +0000 Subject: [PATCH 1/2] Empty commit to create PR on github. You should reset it From cb186e4588df5fb683799f18dfc8b550b9b6478c Mon Sep 17 00:00:00 2001 From: Alex Karpov Date: Wed, 5 Mar 2025 13:11:14 +0200 Subject: [PATCH 2/2] NAS-134393: PR update --- src/app/enums/virtualization.enum.ts | 12 ++++++ src/app/helptext/virtualization/containers.ts | 5 +++ .../interfaces/virtualization.interface.ts | 5 +++ .../change-root-disk-setup.component.html} | 10 ++++- .../change-root-disk-setup.component.scss} | 0 .../change-root-disk-setup.component.spec.ts} | 16 ++++--- .../change-root-disk-setup.component.ts} | 43 ++++++++++++++++--- .../instance-disk-form.component.html | 9 ++++ .../instance-disk-form.component.spec.ts | 39 ++++++++++++++++- .../instance-disk-form.component.ts | 18 ++++++-- .../instance-disks.component.html | 20 ++++++--- .../instance-disks.component.spec.ts | 10 ++--- .../instance-disks.component.ts | 13 ++++-- .../instance-general-info.component.spec.ts | 3 +- .../instance-wizard.component.html | 32 +++++++++++--- .../instance-wizard.component.spec.ts | 8 ++++ .../instance-wizard.component.ts | 18 ++++++-- src/assets/i18n/af.json | 6 ++- src/assets/i18n/ar.json | 6 ++- src/assets/i18n/ast.json | 6 ++- src/assets/i18n/az.json | 6 ++- src/assets/i18n/be.json | 6 ++- src/assets/i18n/bg.json | 6 ++- src/assets/i18n/bn.json | 6 ++- src/assets/i18n/br.json | 6 ++- src/assets/i18n/bs.json | 6 ++- src/assets/i18n/ca.json | 6 ++- src/assets/i18n/cs.json | 6 ++- src/assets/i18n/cy.json | 6 ++- src/assets/i18n/da.json | 6 ++- src/assets/i18n/de.json | 6 ++- src/assets/i18n/dsb.json | 6 ++- src/assets/i18n/el.json | 6 ++- src/assets/i18n/en-au.json | 6 ++- src/assets/i18n/en-gb.json | 6 ++- src/assets/i18n/en.json | 6 ++- src/assets/i18n/eo.json | 6 ++- src/assets/i18n/es-ar.json | 6 ++- src/assets/i18n/es-co.json | 6 ++- src/assets/i18n/es-mx.json | 6 ++- src/assets/i18n/es-ni.json | 6 ++- src/assets/i18n/es-ve.json | 6 ++- src/assets/i18n/es.json | 6 ++- src/assets/i18n/et.json | 6 ++- src/assets/i18n/eu.json | 6 ++- src/assets/i18n/fa.json | 6 ++- src/assets/i18n/fi.json | 6 ++- src/assets/i18n/fr.json | 6 ++- src/assets/i18n/fy.json | 6 ++- src/assets/i18n/ga.json | 6 ++- src/assets/i18n/gd.json | 6 ++- src/assets/i18n/gl.json | 6 ++- src/assets/i18n/he.json | 6 ++- src/assets/i18n/hi.json | 6 ++- src/assets/i18n/hr.json | 6 ++- src/assets/i18n/hsb.json | 6 ++- src/assets/i18n/hu.json | 6 ++- src/assets/i18n/ia.json | 6 ++- src/assets/i18n/id.json | 6 ++- src/assets/i18n/io.json | 6 ++- src/assets/i18n/is.json | 6 ++- src/assets/i18n/it.json | 6 ++- src/assets/i18n/ja.json | 6 ++- src/assets/i18n/ka.json | 6 ++- src/assets/i18n/kk.json | 6 ++- src/assets/i18n/km.json | 6 ++- src/assets/i18n/kn.json | 6 ++- src/assets/i18n/ko.json | 6 ++- src/assets/i18n/lb.json | 6 ++- src/assets/i18n/lt.json | 6 ++- src/assets/i18n/lv.json | 6 ++- src/assets/i18n/mk.json | 6 ++- src/assets/i18n/ml.json | 6 ++- src/assets/i18n/mn.json | 6 ++- src/assets/i18n/mr.json | 6 ++- src/assets/i18n/my.json | 6 ++- src/assets/i18n/nb.json | 6 ++- src/assets/i18n/ne.json | 6 ++- src/assets/i18n/nl.json | 6 ++- src/assets/i18n/nn.json | 6 ++- src/assets/i18n/os.json | 6 ++- src/assets/i18n/pa.json | 6 ++- src/assets/i18n/pl.json | 6 ++- src/assets/i18n/pt-br.json | 6 ++- src/assets/i18n/pt.json | 6 ++- src/assets/i18n/ro.json | 6 ++- src/assets/i18n/ru.json | 6 ++- src/assets/i18n/sk.json | 6 ++- src/assets/i18n/sl.json | 6 ++- src/assets/i18n/sq.json | 6 ++- src/assets/i18n/sr-latn.json | 6 ++- src/assets/i18n/sr.json | 6 ++- src/assets/i18n/strings.json | 6 ++- src/assets/i18n/sv.json | 6 ++- src/assets/i18n/sw.json | 6 ++- src/assets/i18n/ta.json | 6 ++- src/assets/i18n/te.json | 6 ++- src/assets/i18n/th.json | 6 ++- src/assets/i18n/tr.json | 6 ++- src/assets/i18n/tt.json | 6 ++- src/assets/i18n/udm.json | 6 ++- src/assets/i18n/uk.json | 6 ++- src/assets/i18n/vi.json | 6 ++- src/assets/i18n/zh-hans.json | 6 ++- src/assets/i18n/zh-hant.json | 6 ++- 105 files changed, 571 insertions(+), 218 deletions(-) rename src/app/pages/instances/components/all-instances/instance-details/instance-disks/{increase-root-disk-size/increase-root-disk-size.component.html => change-root-disk-setup/change-root-disk-setup.component.html} (68%) rename src/app/pages/instances/components/all-instances/instance-details/instance-disks/{increase-root-disk-size/increase-root-disk-size.component.scss => change-root-disk-setup/change-root-disk-setup.component.scss} (100%) rename src/app/pages/instances/components/all-instances/instance-details/instance-disks/{increase-root-disk-size/increase-root-disk-size.component.spec.ts => change-root-disk-setup/change-root-disk-setup.component.spec.ts} (85%) rename src/app/pages/instances/components/all-instances/instance-details/instance-disks/{increase-root-disk-size/increase-root-disk-size.component.ts => change-root-disk-setup/change-root-disk-setup.component.ts} (63%) diff --git a/src/app/enums/virtualization.enum.ts b/src/app/enums/virtualization.enum.ts index 072e3ef0870..07cac243973 100644 --- a/src/app/enums/virtualization.enum.ts +++ b/src/app/enums/virtualization.enum.ts @@ -11,6 +11,18 @@ export const virtualizationTypeLabels = new Map([ [VirtualizationType.Vm, T('VM')], ]); +export enum DiskIoBus { + Nvme = 'NVME', + VirtioBlk = 'VIRTIO-BLK', + VirtioScsi = 'VIRTIO-SCSI', +} + +export const diskIoBusLabels = new Map([ + [DiskIoBus.Nvme, 'NVMe'], + [DiskIoBus.VirtioBlk, 'Virtio-BLK'], + [DiskIoBus.VirtioScsi, 'Virtio-SCSI'], +]); + export const virtualizationTypeIcons = [ { value: VirtualizationType.Container, diff --git a/src/app/helptext/virtualization/containers.ts b/src/app/helptext/virtualization/containers.ts index 9f927b08e63..129a950fc20 100644 --- a/src/app/helptext/virtualization/containers.ts +++ b/src/app/helptext/virtualization/containers.ts @@ -46,6 +46,11 @@ Choose a VM for full OS isolation, kernel independence, and running diverse OS t host_port_placeholder: T('Host Port'), host_port_tooltip: T('Specify the host port to be mapped to the container\'s port.'), + io_bus_tooltip: T('Choose the disk I/O bus type that best suits your system’s needs:\ +

• NVMe – Ideal for high-performance storage with faster read and write speeds.\ +

• Virtio-BLK – Efficient for virtualized environments, offering direct block device access with lower overhead.\ +

• Virtio-SCSI – Flexible and scalable, supporting advanced features like hot-swapping and multiple devices.'), + instance_protocol_placeholder: T('Instance Protocol'), instance_protocol_tooltip: T('Select the protocol for the instance\'s network connection.'), instance_port_placeholder: T('Instance Port'), diff --git a/src/app/interfaces/virtualization.interface.ts b/src/app/interfaces/virtualization.interface.ts index d20706bafc3..152861632f6 100644 --- a/src/app/interfaces/virtualization.interface.ts +++ b/src/app/interfaces/virtualization.interface.ts @@ -1,6 +1,7 @@ import { FormControl, FormGroup } from '@angular/forms'; import { NetworkInterfaceAliasType } from 'app/enums/network-interface.enum'; import { + DiskIoBus, VirtualizationDeviceType, VirtualizationGlobalState, VirtualizationGpuType, @@ -41,6 +42,7 @@ export interface VirtualizationInstance { vnc_port: number | null; vnc_password: string | null; secure_boot: boolean; + root_disk_io_bus: DiskIoBus; root_disk_size: number | null; userns_idmap?: UserNsIdmap; } @@ -61,6 +63,7 @@ export interface CreateVirtualizationInstance { * Value in GBs. */ root_disk_size?: number; + root_disk_io_bus?: DiskIoBus; source_type?: VirtualizationSource; environment?: Record; autostart?: boolean; @@ -89,6 +92,7 @@ export interface UpdateVirtualizationInstance { enable_vnc?: boolean; vnc_port?: number | null; secure_boot?: boolean; + root_disk_io_bus?: DiskIoBus; vnc_password?: string | null; root_disk_size?: number; } @@ -110,6 +114,7 @@ export interface VirtualizationDisk { source: string | null; destination: string | null; product_id: string; + io_bus: DiskIoBus; boot_priority?: number; } diff --git a/src/app/pages/instances/components/all-instances/instance-details/instance-disks/increase-root-disk-size/increase-root-disk-size.component.html b/src/app/pages/instances/components/all-instances/instance-details/instance-disks/change-root-disk-setup/change-root-disk-setup.component.html similarity index 68% rename from src/app/pages/instances/components/all-instances/instance-details/instance-disks/increase-root-disk-size/increase-root-disk-size.component.html rename to src/app/pages/instances/components/all-instances/instance-details/instance-disks/change-root-disk-setup/change-root-disk-setup.component.html index b017b81d095..856f3026c8b 100644 --- a/src/app/pages/instances/components/all-instances/instance-details/instance-disks/increase-root-disk-size/increase-root-disk-size.component.html +++ b/src/app/pages/instances/components/all-instances/instance-details/instance-disks/change-root-disk-setup/change-root-disk-setup.component.html @@ -1,5 +1,5 @@

- {{ 'Increase Root Disk Size' | translate }} + {{ 'Change Root Disk Setup' | translate }}

@@ -10,6 +10,14 @@

[required]="true" > + +