bfg-common 1.5.580 → 1.5.581

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/components/common/vm/actions/add/Add.vue +120 -46
  2. package/components/common/vm/actions/add/New.vue +54 -16
  3. package/components/common/vm/actions/add/Old.vue +55 -16
  4. package/components/common/vm/actions/clone/Clone.vue +116 -44
  5. package/components/common/vm/actions/clone/new/New.vue +50 -14
  6. package/components/common/vm/actions/clone/old/Old.vue +52 -16
  7. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +81 -14
  8. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +56 -7
  9. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +56 -8
  10. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +206 -211
  11. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +120 -225
  12. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +118 -220
  13. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +53 -66
  14. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +159 -139
  15. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +15 -8
  16. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuOld.vue +13 -8
  17. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +75 -62
  18. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +149 -241
  19. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +4 -3
  20. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +3 -2
  21. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +100 -62
  22. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbController.vue +17 -6
  23. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +3 -6
  24. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerOld.vue +3 -6
  25. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +39 -17
  26. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +5 -6
  27. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +5 -6
  28. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/lib/config/options.ts +4 -4
  29. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +93 -6
  30. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +60 -8
  31. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsOld.vue +58 -8
  32. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptions.vue +69 -5
  33. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +32 -12
  34. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsOld.vue +33 -12
  35. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +132 -114
  36. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +6 -41
  37. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderOld.vue +6 -44
  38. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +23 -8
  39. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +31 -21
  40. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsOld.vue +34 -26
  41. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +34 -28
  42. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/Old.vue +30 -24
  43. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +112 -8
  44. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +3 -3
  45. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/{New.vue → KeymapNew.vue} +6 -6
  46. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/{Old.vue → KeymapOld.vue} +5 -5
  47. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +7 -6
  48. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/Tools.vue +27 -9
  49. package/components/common/vm/actions/common/lib/models/interfaces.ts +25 -58
  50. package/components/common/vm/actions/editSettings/EditSettings.vue +90 -32
  51. package/components/common/vm/actions/editSettings/EditSettingsOld.vue +41 -14
  52. package/components/common/vm/actions/editSettings/new/New.vue +41 -14
  53. package/components/common/vm/actions/lib/models/interfaces.ts +29 -4
  54. package/components/common/vm/actions/lib/utils.ts +36 -64
  55. package/package.json +1 -1
  56. /package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/{New.vue → PasswordNew.vue} +0 -0
  57. /package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/{Old.vue → PasswordOld.vue} +0 -0
@@ -1,8 +1,7 @@
1
1
  <template>
2
2
  <common-vm-actions-add-new
3
3
  v-if="isNewView"
4
- v-model="model"
5
- v-model:computed-resource="computeResource"
4
+ v-model:vm-form="vmForm"
6
5
  v-model:selected-create-type="selectedCreateType"
7
6
  v-model:is-power-on-by-default="isPowerOnByDefault"
8
7
  :project="props.project"
@@ -32,6 +31,10 @@
32
31
  :guestOsFamilies="guestOsFamilies"
33
32
  :guestOsVersions="guestOsVersions"
34
33
  :machineTypes="machineTypes"
34
+ :virtual-hardware-hard-disks-local="virtualHardwareHardDisksLocal"
35
+ :virtual-hardware-cd-dvd-drives-local="virtualHardwareCdDvdDrivesLocal"
36
+ :virtual-hardware-networks-local="virtualHardwareNetworksLocal"
37
+ :max-cpus="maxCpus"
35
38
  :max-memory="maxMemory"
36
39
  :cpu-models="cpuModels"
37
40
  :selected-nav-item="selectedNavItem"
@@ -70,13 +73,14 @@
70
73
  @change-select-options="onChangeSelectOptions"
71
74
  @change-clone-count="cloneCount = $event"
72
75
  @change-compatibility="onChangeCompatibility"
76
+ @change-boot-order="onChangeBootOrder"
77
+ @change-customize-hardware="onChangeCustomizeHardware"
73
78
  @finish="onFinish"
74
79
  @hide="onHideModal"
75
80
  />
76
81
  <common-vm-actions-add-old
77
82
  v-else
78
- v-model="model"
79
- v-model:compute-resource="computeResource"
83
+ v-model:vm-form="vmForm"
80
84
  v-model:selected-create-type="selectedCreateType"
81
85
  v-model:is-power-on-by-default="isPowerOnByDefault"
82
86
  :project="props.project"
@@ -106,6 +110,10 @@
106
110
  :guestOsFamilies="guestOsFamilies"
107
111
  :guestOsVersions="guestOsVersions"
108
112
  :machineTypes="machineTypes"
113
+ :virtual-hardware-hard-disks-local="virtualHardwareHardDisksLocal"
114
+ :virtual-hardware-cd-dvd-drives-local="virtualHardwareCdDvdDrivesLocal"
115
+ :virtual-hardware-networks-local="virtualHardwareNetworksLocal"
116
+ :max-cpus="maxCpus"
109
117
  :max-memory="maxMemory"
110
118
  :cpu-models="cpuModels"
111
119
  :selected-nav-item="selectedNavItem"
@@ -142,6 +150,8 @@
142
150
  @change-select-options="onChangeSelectOptions"
143
151
  @change-clone-count="cloneCount = $event"
144
152
  @change-compatibility="onChangeCompatibility"
153
+ @change-boot-order="onChangeBootOrder"
154
+ @change-customize-hardware="onChangeCustomizeHardware"
145
155
  @finish="onFinish"
146
156
  @hide="onHideModal"
147
157
  />
@@ -177,11 +187,19 @@ import type {
177
187
  import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
178
188
  import type {
179
189
  UI_I_Capabilities,
180
- UI_I_CreateVmData,
181
190
  UI_I_VmForm,
182
- // UI_I_VmFormCash,
191
+ UI_I_VmFormCash,
183
192
  } from '~/components/common/vm/actions/common/lib/models/interfaces'
193
+ import type { UI_I_SendDataCustomizeHardware } from '~/components/common/vm/actions/common/customizeHardware/lib/models/interfaces'
194
+ import type {
195
+ UI_I_SendDataCpu,
196
+ UI_I_SendDataMemory,
197
+ UI_I_SendDataNewCdDvdDrive,
198
+ UI_I_SendDataNewHardDisk,
199
+ UI_I_SendDataNewNetwork,
200
+ } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
184
201
  import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
202
+ import type { UI_T_ChangeBootOrder } from '~/components/common/vm/actions/lib/models/types'
185
203
  import type {
186
204
  UI_I_MediatedDevice,
187
205
  UI_I_PciDevice,
@@ -197,8 +215,6 @@ import {
197
215
  } from '~/components/common/vm/actions/add/lib/config/steps'
198
216
  import { mapCapabilities } from '~/components/common/vm/actions/common/lib/utils/capabilities'
199
217
 
200
- const model = defineModel<UI_I_CreateVmData>({ required: true })
201
-
202
218
  const props = withDefaults(
203
219
  defineProps<{
204
220
  project: UI_T_Project
@@ -253,6 +269,7 @@ const emits = defineEmits<{
253
269
  (event: 'remove-error-by-title', value: string): void
254
270
  (event: 'get-networks-table', value: UI_I_TablePayload): void
255
271
  (event: 'get-pci-devices'): void
272
+ (event: 'get-pci-devices'): void
256
273
  (event: 'hide'): void
257
274
  (event: 'select-template', value: string): void
258
275
  (
@@ -497,7 +514,9 @@ const onCheckName = async (
497
514
  })
498
515
  }
499
516
  const compatibilityText = computed<[UI_T_CompatibilityStatus, string]>(() => {
500
- if (!computeResource.value)
517
+ const { computeResource } = vmForm.value
518
+
519
+ if (!computeResource)
501
520
  return [
502
521
  'none',
503
522
  localization.value.vmWizard.noDestinationComputeResourceSelected,
@@ -508,23 +527,21 @@ const compatibilityText = computed<[UI_T_CompatibilityStatus, string]>(() => {
508
527
  localization.value.common.compatibilityChecksSucceeded,
509
528
  ]
510
529
 
511
- if (
512
- !['cluster', 'host', 'resource_pool'].includes(computeResource.value?.type)
513
- ) {
530
+ if (!['cluster', 'host', 'resource_pool'].includes(computeResource?.type)) {
514
531
  res = [
515
532
  'error',
516
533
  localization.value.common.selectValidClusterOrHostDestination,
517
534
  ]
518
535
  }
519
- if (computeResource.value?.type === 'cluster') {
520
- const hasHost = !!computeResource.value.nodes.length
536
+ if (computeResource?.type === 'cluster') {
537
+ const hasHost = !!computeResource.nodes.length
521
538
  if (!hasHost) {
522
539
  res = ['error', localization.value.common.clusterNotContainAnyHosts]
523
540
  }
524
541
  }
525
542
 
526
- if (computeResource.value?.type === 'host') {
527
- if (computeResource.value.state === 'Error') {
543
+ if (computeResource?.type === 'host') {
544
+ if (computeResource.state === 'Error') {
528
545
  // TODO check Maintenance Mode
529
546
  res = [
530
547
  'error',
@@ -541,13 +558,14 @@ const checkComputeResource = (
541
558
  ): UI_I_ValidationReturn => {
542
559
  let stepHasError = false
543
560
 
561
+ const { computeResource } = vmForm.value
562
+
544
563
  if (
545
- !computeResource.value ||
564
+ !computeResource ||
546
565
  // compatibilityText.value[0] !== 1 ||
547
- computeResource.value.type === 'datacenter' ||
548
- computeResource.value.type === 'folder' ||
549
- (computeResource.value.type === 'cluster' &&
550
- !computeResource.value.nodes.length)
566
+ computeResource.type === 'datacenter' ||
567
+ computeResource.type === 'folder' ||
568
+ (computeResource.type === 'cluster' && !computeResource.nodes.length)
551
569
  ) {
552
570
  computeResourceAlert.value = [
553
571
  localization.value.common.specifyValidClusterOrHostDestination,
@@ -688,15 +706,22 @@ const checkCustomizeHardwareForTemplate = async (
688
706
  })
689
707
  }
690
708
 
691
- const computeResource = ref<UI_I_TreeNode | null>(props.computeResource)
709
+ const storageIdCash = ref<string | null>(null)
692
710
  const vmForm = ref<UI_I_VmForm>({
711
+ name: '',
712
+ compatibility: '',
713
+ guestMachineType: null,
714
+ guestOsFamily: null,
715
+ guestOsVersion: null,
716
+ computeResource: props.computeResource,
717
+ storage: null,
693
718
  locationPath: '',
694
719
  dataCenter: null,
695
720
  })
696
721
 
697
722
  const isLoadingComputeTree = ref<boolean>(false)
698
- const onChangeName = (_name: string, node: UI_I_TreeNode | null): void => {
699
- // vmForm.value.name = name // TODO уже нету смысла
723
+ const onChangeName = (name: string, node: UI_I_TreeNode | null): void => {
724
+ vmForm.value.name = name // TODO уже нету смысла
700
725
  if (isSphere.value) {
701
726
  vmForm.value.locationPath = node.id
702
727
  vmForm.value.dataCenter = $recursion.findParentByValue(
@@ -721,7 +746,7 @@ const onSelectComputeResourceTree = (node: UI_I_TreeNode): void => {
721
746
  computeResourcePath.value = node.id
722
747
  }
723
748
  watch(
724
- computeResource,
749
+ () => vmForm.value.computeResource,
725
750
  (newValue, oldValue) => {
726
751
  if (newValue && newValue.id !== oldValue?.id) {
727
752
  onSelectComputeResourceTree(newValue)
@@ -733,17 +758,49 @@ watch(
733
758
  const onChangeStorage = (storage: UI_I_DatastoreTableItem | null): void => {
734
759
  if (!storage) return
735
760
 
736
- // vmForm.value.storage = storage
737
- model.value.storage = storage
761
+ vmForm.value.storage = storage
762
+ storageIdCash.value = storage.id
738
763
  }
739
764
  const compatibilityInfo = ref<string>('')
740
765
  const onChangeCompatibility = (compatibility: UI_I_OptionItem): void => {
741
- // vmForm.value.compatibility = compatibility.value
742
- model.value.compatibility = compatibility.value
766
+ vmForm.value.compatibility = compatibility.value
743
767
 
744
768
  const version = compatibility.value.split('-')[1]
745
769
  compatibilityInfo.value = `${localization.value.common.compatibility}: ${compatibility.text} (${localization.value.common.vmVersion} ${version})`
746
770
  }
771
+ const customizeHardware = ref<UI_I_SendDataCustomizeHardware | null>(null)
772
+ const onChangeCustomizeHardware = (
773
+ data: UI_I_SendDataCustomizeHardware
774
+ ): void => {
775
+ customizeHardware.value = data
776
+ }
777
+
778
+ const virtualHardwareHardDisksLocal = computed<
779
+ UI_I_SendDataNewHardDisk[] | null
780
+ >(() => customizeHardware.value?.virtualHardware?.hardDisks || null)
781
+ const virtualHardwareNetworksLocal = computed<UI_I_SendDataNewNetwork[] | null>(
782
+ () => customizeHardware.value?.virtualHardware?.networks || null
783
+ )
784
+ const virtualHardwareCdDvdDrivesLocal = computed<
785
+ UI_I_SendDataNewCdDvdDrive[] | null
786
+ >(() => customizeHardware.value?.virtualHardware?.cdDvdDrives || null)
787
+
788
+ const virtualHardwareCpu = computed<UI_I_SendDataCpu | null>(
789
+ () => customizeHardware.value?.virtualHardware?.cpu || null
790
+ )
791
+ const virtualHardwareMemory = computed<UI_I_SendDataMemory | null>(
792
+ () => customizeHardware.value?.virtualHardware?.memory || null
793
+ )
794
+ const virtualHardwareHardDisks = ref<UI_I_SendDataNewHardDisk[] | null>(null)
795
+ const virtualHardwareCdDvdDrives = ref<UI_I_SendDataNewCdDvdDrive[] | null>(
796
+ null
797
+ )
798
+ const virtualHardwareNetworks = ref<UI_I_SendDataNewNetwork[] | null>(null)
799
+ const onChangeBootOrder = (data: UI_T_ChangeBootOrder): void => {
800
+ virtualHardwareHardDisks.value = data[0]
801
+ virtualHardwareCdDvdDrives.value = data[1]
802
+ virtualHardwareNetworks.value = data[2]
803
+ }
747
804
 
748
805
  const isPowerOnByDefault = ref<boolean>(true)
749
806
  const isCreateLinkedClone = ref<boolean>(false)
@@ -751,8 +808,7 @@ const isCreateLinkedClone = ref<boolean>(false)
751
808
  watch(
752
809
  () => props.vmNameInWizard,
753
810
  (newValue) => {
754
- // vmForm.value.name = newValue
755
- model.value.name = newValue
811
+ vmForm.value.name = newValue
756
812
  }
757
813
  )
758
814
 
@@ -764,7 +820,13 @@ const validateSendData = async (
764
820
  isLoading.value = true
765
821
 
766
822
  const data = await props.validateSendDataFunc(
767
- model.value,
823
+ vmForm.value,
824
+ virtualHardwareCpu.value,
825
+ virtualHardwareMemory.value,
826
+ customizeHardware.value,
827
+ virtualHardwareNetworks.value,
828
+ virtualHardwareHardDisks.value,
829
+ virtualHardwareCdDvdDrives.value,
768
830
  isPowerOnByDefault.value,
769
831
  localization.value,
770
832
  vmForm.value.locationPath, // для сферы
@@ -792,7 +854,13 @@ const onFinish = (): void => {
792
854
  wizard.setLoader(false)
793
855
  props
794
856
  .finishFunc(
795
- model.value,
857
+ vmForm.value,
858
+ virtualHardwareCpu.value,
859
+ virtualHardwareMemory.value,
860
+ customizeHardware.value,
861
+ virtualHardwareNetworks.value,
862
+ virtualHardwareHardDisks.value,
863
+ virtualHardwareCdDvdDrives.value,
796
864
  isPowerOnByDefault.value,
797
865
  localization.value,
798
866
  vmForm.value.locationPath, // для сферы
@@ -826,7 +894,7 @@ const guestOsVersions = ref<UI_I_ArbitraryObject<UI_I_OptionItem[]>>(
826
894
  )
827
895
  const machineTypes = ref<UI_I_OptionItem[]>(capabilities.value.machineTypes)
828
896
  const cpuModels = ref<UI_I_OptionItem[]>(capabilities.value.cpuModels)
829
- model.value.cpu.max_vcpus = capabilities.value.maxCpus
897
+ const maxCpus = ref<number>(capabilities.value.maxCpus)
830
898
  const maxMemory = ref<number>(capabilities.value.maxMemory)
831
899
 
832
900
  const selectedTemplate = ref<string>('')
@@ -863,18 +931,24 @@ watch(
863
931
  () => props.vmtSettings,
864
932
  (newValue) => {
865
933
  if (newValue) {
866
- // vmForm.value.name = newValue.name
867
- // vmForm.value.compatibility =
868
- // newValue.compatibility || vmForm.value.compatibility
869
- // vmForm.value.storage = newValue.storage
870
- // TODO remove
871
- model.value.name = newValue.name
872
- model.value.compatibility =
873
- newValue.compatibility || model.value.compatibility
874
- model.value.storage = newValue.storage
875
- // TODO remove end
876
-
877
- capabilities.value.maxCpus = newValue.cpu.max_vcpus
934
+ vmForm.value.name = newValue.name
935
+ vmForm.value.compatibility =
936
+ newValue.compatibility || vmForm.value.compatibility
937
+ vmForm.value.storage = newValue.storage
938
+ if (customizeHardware.value?.virtualHardware) {
939
+ customizeHardware.value.virtualHardware.cdDvdDrives =
940
+ newValue.cdDvdDrives
941
+ customizeHardware.value.virtualHardware.hardDisks = newValue.hardDisks
942
+ customizeHardware.value.virtualHardware.networks = newValue.networks
943
+ customizeHardware.value.virtualHardware.cpu = newValue.cpu
944
+ customizeHardware.value.virtualHardware.memory = newValue.memory
945
+ customizeHardware.value.virtualHardware.videoCard = newValue.videoCard
946
+ customizeHardware.value.virtualHardware.usbController =
947
+ newValue.usbController
948
+ customizeHardware.value.virtualHardware.pciDevices = newValue.pciDevices
949
+ customizeHardware.value.vmOptions = newValue.options
950
+ }
951
+ maxCpus.value = newValue.cpu.max_vcpus
878
952
  // cpuModels.value = newValue.cpu.model
879
953
  isPowerOnByDefault.value = false
880
954
  isCreateLinkedClone.value = false
@@ -66,7 +66,7 @@
66
66
  </template>
67
67
  <template #content>
68
68
  <common-wizards-common-steps-name
69
- v-model:name="model.name"
69
+ v-model:name="vmForm.name"
70
70
  v-model:location="location"
71
71
  :show="
72
72
  selectedStep.id === dynamicSteps.selectName ||
@@ -118,7 +118,7 @@
118
118
  <common-wizards-common-steps-compute-resource
119
119
  v-if="props.isSphere"
120
120
  v-show="selectedStep.id === dynamicSteps.selectComputeResource"
121
- v-model="computeResource"
121
+ v-model="vmForm.computeResource"
122
122
  :node="computeResourceTreeLocal"
123
123
  :alert-messages="props.computeResourceAlert"
124
124
  :is-loading="props.isLoadingComputeTree"
@@ -228,9 +228,9 @@
228
228
  <template #content>
229
229
  <div class="select-block-wrap overflow-auto pb-4">
230
230
  <common-vm-actions-common-select-os
231
- v-model:guest-os-family="model.guest_os_family"
232
- v-model:guest-os-version="model.guest_os_version"
233
- v-model:machine-type="model.machine_type"
231
+ v-model:machine-type="vmForm.guestMachineType"
232
+ v-model:guest-os-family="vmForm.guestOsFamily"
233
+ v-model:guest-os-version="vmForm.guestOsVersion"
234
234
  :families-options="props.guestOsFamilies"
235
235
  :versions-options="props.guestOsVersions"
236
236
  :machine-types-options="props.machineTypes"
@@ -251,11 +251,21 @@
251
251
  <template #content>
252
252
  <div class="select-block-wrap customize-hardware flex flex-col">
253
253
  <common-vm-actions-common-customize-hardware
254
- v-model="model"
255
254
  :project="props.project"
256
255
  :is-vmt="props.isVmt"
257
- :storage="model.storage"
256
+ :vm-name="vmForm.name"
257
+ :guest-machine-type="vmForm.guestMachineType"
258
+ :guest-os-family="vmForm.guestOsFamily"
259
+ :guest-os-version="vmForm.guestOsVersion"
260
+ :storage="vmForm.storage"
261
+ :hard-disks-for-boot-options="props.virtualHardwareHardDisksLocal"
262
+ :cd-dvd-drives-for-boot-options="
263
+ props.virtualHardwareCdDvdDrivesLocal
264
+ "
265
+ :networks-for-boot-options="props.virtualHardwareNetworksLocal"
266
+ :cd-dvd-drives="props.virtualHardwareCdDvdDrivesLocal"
258
267
  :customize-hardware-submit="props.customizeHardwareSubmit"
268
+ :max-cpus="props.maxCpus"
259
269
  :max-memory="props.maxMemory"
260
270
  :cpu-models="props.cpuModels"
261
271
  :selected-nav-item="props.selectedNavItem"
@@ -269,8 +279,10 @@
269
279
  :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
270
280
  :passthrough-devices="props.passthroughDevices"
271
281
  :mediated-devices="props.mediatedDevices"
272
- :compute-resource="computeResource"
282
+ :compute-resource="vmForm.computeResource"
273
283
  :compatibility-info="props.compatibilityInfo"
284
+ @change-boot-order="emits('change-boot-order', $event)"
285
+ @send-data="emits('change-customize-hardware', $event)"
274
286
  @get-storage="emits('get-storage', $event)"
275
287
  @get-folders-or-files="emits('get-folders-or-files', $event)"
276
288
  @get-active-device-child="
@@ -302,19 +314,31 @@
302
314
  class="select-block-wrap overflow-auto h-full flex flex-col pr-8"
303
315
  >
304
316
  <common-vm-actions-common-customize-hardware
305
- v-model="model"
306
317
  :project="props.project"
307
318
  :is-vmt="props.isVmt"
308
- :storage="model.storage"
319
+ :vm-name="vmForm.name"
320
+ :guest-machine-type="vmForm.guestMachineType"
321
+ :guest-os-family="vmForm.guestOsFamily"
322
+ :guest-os-version="vmForm.guestOsVersion"
323
+ :storage="vmForm.storage"
324
+ :hard-disks-for-boot-options="props.virtualHardwareHardDisksLocal"
325
+ :cd-dvd-drives-for-boot-options="
326
+ props.virtualHardwareCdDvdDrivesLocal
327
+ "
328
+ :networks-for-boot-options="props.virtualHardwareNetworksLocal"
309
329
  :cd-dvd-drives="props.vmtSettings.cdDvdDrives || []"
310
330
  :hard-disks="props.vmtSettings.hardDisks || []"
311
331
  :networks="props.vmtSettings.networks || []"
312
332
  :customize-hardware-submit="
313
333
  props.customizeHardwareForTemplateSubmit
314
334
  "
335
+ :max-cpus="props.maxCpus"
315
336
  :max-memory="props.maxMemory"
316
337
  :cpu-models="props.cpuModels"
338
+ :cpu="props.vmtSettings.cpu"
339
+ :memory="props.vmtSettings.memory"
317
340
  :video-card="props.vmtSettings.videoCard"
341
+ :usb-controller="props.vmtSettings.usbController"
318
342
  :pci-devices="props.vmtSettings.pciDevices"
319
343
  :hard-disks-for-edit="props.vmtSettings.hardDisks || []"
320
344
  :options="props.vmtSettings.options"
@@ -329,9 +353,11 @@
329
353
  :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
330
354
  :passthrough-devices="props.passthroughDevices"
331
355
  :mediated-devices="props.mediatedDevices"
332
- :compute-resource="computeResource"
356
+ :compute-resource="vmForm.computeResource"
333
357
  :compatibility-info="props.compatibilityInfo"
334
358
  is-clone
359
+ @change-boot-order="emits('change-boot-order', $event)"
360
+ @send-data="emits('change-customize-hardware', $event)"
335
361
  @get-storage="emits('get-storage', $event)"
336
362
  @get-folders-or-files="emits('get-folders-or-files', $event)"
337
363
  @get-active-device-child="
@@ -419,11 +445,17 @@ import type {
419
445
  } from '~/components/common/vm/actions/common/lib/models/types'
420
446
  import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
421
447
  import type {
422
- UI_I_CreateVmData,
423
448
  // UI_I_Capabilities,
424
449
  UI_I_VmForm,
425
450
  } from '~/components/common/vm/actions/common/lib/models/interfaces'
451
+ import type { UI_I_SendDataCustomizeHardware } from '~/components/common/vm/actions/common/customizeHardware/lib/models/interfaces'
452
+ import type {
453
+ UI_I_SendDataNewCdDvdDrive,
454
+ UI_I_SendDataNewHardDisk,
455
+ UI_I_SendDataNewNetwork,
456
+ } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
426
457
  import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
458
+ import type { UI_T_ChangeBootOrder } from '~/components/common/vm/actions/lib/models/types'
427
459
  import type {
428
460
  UI_I_MediatedDevice,
429
461
  UI_I_PciDevice,
@@ -433,10 +465,7 @@ import type { UI_I_NameTestIds } from '~/components/common/wizards/common/steps/
433
465
  import type { UI_T_CompatibilityStatus } from '~/components/common/wizards/common/compatibility/lib/models/types'
434
466
  import { dynamicSteps } from '~/components/common/vm/actions/add/lib/config/steps'
435
467
 
436
- const model = defineModel<UI_I_CreateVmData>({
437
- required: true,
438
- })
439
- const computeResource = defineModel<UI_I_TreeNode | null>('computeResource', {
468
+ const vmForm = defineModel<UI_I_VmForm>('vmForm', {
440
469
  required: true,
441
470
  })
442
471
  const selectedCreateType = defineModel<string>('selectedCreateType', {
@@ -475,6 +504,10 @@ const props = withDefaults(
475
504
  guestOsFamilies: UI_I_OptionItem[]
476
505
  guestOsVersions: UI_I_ArbitraryObject<UI_I_OptionItem[]>
477
506
  machineTypes: UI_I_OptionItem[]
507
+ virtualHardwareHardDisksLocal: UI_I_SendDataNewHardDisk[] | null
508
+ virtualHardwareCdDvdDrivesLocal: UI_I_SendDataNewCdDvdDrive[] | null
509
+ virtualHardwareNetworksLocal: UI_I_SendDataNewNetwork[] | null
510
+ maxCpus: number
478
511
  maxMemory: number
479
512
  cpuModels: UI_I_OptionItem[]
480
513
  selectedNavItem: UI_T_SelectedNavItem
@@ -528,6 +561,11 @@ const emits = defineEmits<{
528
561
  (event: 'change-select-options', value: string[]): void
529
562
  (event: 'change-clone-count', value: number): void
530
563
  (event: 'change-compatibility', value: UI_I_OptionItem): void
564
+ (event: 'change-boot-order', value: UI_T_ChangeBootOrder): void
565
+ (
566
+ event: 'change-customize-hardware',
567
+ value: UI_I_SendDataCustomizeHardware
568
+ ): void
531
569
  (event: 'hide'): void
532
570
  }>()
533
571
 
@@ -34,7 +34,7 @@
34
34
  selectedStep.id === dynamicSteps.selectName ||
35
35
  selectedStep.id === dynamicSteps.selectNameFolder
36
36
  "
37
- v-model:name="model.name"
37
+ v-model:name="vmForm.name"
38
38
  v-model:location="location"
39
39
  :show="
40
40
  selectedStep.id === dynamicSteps.selectName ||
@@ -55,7 +55,7 @@
55
55
  <common-wizards-common-steps-compute-resource
56
56
  v-if="props.isSphere"
57
57
  v-show="selectedStep.id === dynamicSteps.selectComputeResource"
58
- v-model="computeResource"
58
+ v-model="vmForm.computeResource"
59
59
  :node="computeResourceTreeLocal"
60
60
  :alert-messages="props.computeResourceAlert"
61
61
  :is-loading="props.isLoadingComputeTree"
@@ -91,9 +91,9 @@
91
91
  selectedStep.id === dynamicSteps.selectGuestOSMachineType ||
92
92
  selectedStep.id === dynamicSteps.selectGuestOS
93
93
  "
94
- v-model:guest-os-family="model.guest_os_family"
95
- v-model:guest-os-version="model.guest_os_version"
96
- v-model:machine-type="model.machine_type"
94
+ v-model:machine-type="vmForm.guestMachineType"
95
+ v-model:guest-os-family="vmForm.guestOsFamily"
96
+ v-model:guest-os-version="vmForm.guestOsVersion"
97
97
  :families-options="props.guestOsFamilies"
98
98
  :versions-options="props.guestOsVersions"
99
99
  :machine-types-options="props.machineTypes"
@@ -102,11 +102,21 @@
102
102
  />
103
103
  <common-vm-actions-common-customize-hardware
104
104
  v-show="selectedStep.id === dynamicSteps.customizeHardware"
105
- v-model="model"
106
105
  :project="props.project"
107
106
  :is-vmt="props.isVmt"
108
- :storage="model.storage"
107
+ :vm-name="vmForm.name"
108
+ :guest-machine-type="vmForm.guestMachineType"
109
+ :guest-os-family="vmForm.guestOsFamily"
110
+ :guest-os-version="vmForm.guestOsVersion"
111
+ :storage="vmForm.storage"
112
+ :hard-disks-for-boot-options="props.virtualHardwareHardDisksLocal"
113
+ :cd-dvd-drives-for-boot-options="
114
+ props.virtualHardwareCdDvdDrivesLocal
115
+ "
116
+ :networks-for-boot-options="props.virtualHardwareNetworksLocal"
117
+ :cd-dvd-drives="props.virtualHardwareCdDvdDrivesLocal"
109
118
  :customize-hardware-submit="props.customizeHardwareSubmit"
119
+ :max-cpus="props.maxCpus"
110
120
  :max-memory="props.maxMemory"
111
121
  :cpu-models="props.cpuModels"
112
122
  :selected-nav-item="props.selectedNavItem"
@@ -120,7 +130,9 @@
120
130
  :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
121
131
  :passthrough-devices="props.passthroughDevices"
122
132
  :mediated-devices="props.mediatedDevices"
123
- :compute-resource="computeResource"
133
+ :compute-resource="vmForm.computeResource"
134
+ @change-boot-order="emits('change-boot-order', $event)"
135
+ @send-data="emits('change-customize-hardware', $event)"
124
136
  @get-storage="emits('get-storage', $event)"
125
137
  @get-folders-or-files="emits('get-folders-or-files', $event)"
126
138
  @get-active-device-child="emits('get-active-device-child', $event)"
@@ -132,21 +144,34 @@
132
144
  <common-vm-actions-common-customize-hardware
133
145
  v-if="props.vmtSettings"
134
146
  v-show="selectedStep.id === dynamicSteps.customizeHardwareTemplate"
135
- v-model="model"
136
147
  :is-vmt="props.isVmt"
137
148
  :project="props.project"
138
- :storage="model.storage"
149
+ :vm-name="vmForm.name"
150
+ :guest-machine-type="vmForm.guestMachineType"
151
+ :guest-os-family="vmForm.guestOsFamily"
152
+ :guest-os-version="vmForm.guestOsVersion"
153
+ :storage="vmForm.storage"
154
+ :hard-disks-for-boot-options="props.virtualHardwareHardDisksLocal"
155
+ :cd-dvd-drives-for-boot-options="
156
+ props.virtualHardwareCdDvdDrivesLocal
157
+ "
158
+ :networks-for-boot-options="props.virtualHardwareNetworksLocal"
139
159
  :cd-dvd-drives="props.vmtSettings.cdDvdDrives || []"
140
160
  :hard-disks="props.vmtSettings.hardDisks || []"
141
161
  :networks="props.vmtSettings.networks || []"
142
162
  :customize-hardware-submit="
143
163
  props.customizeHardwareForTemplateSubmit
144
164
  "
165
+ :max-cpus="props.maxCpus"
145
166
  :max-memory="props.maxMemory"
146
167
  :cpu-models="props.cpuModels"
168
+ :cpu="props.vmtSettings.cpu"
169
+ :memory="props.vmtSettings.memory"
147
170
  :video-card="props.vmtSettings.videoCard"
171
+ :usb-controller="props.vmtSettings.usbController"
148
172
  :pci-devices="props.vmtSettings.pciDevices"
149
173
  :hard-disks-for-edit="props.vmtSettings.hardDisks || []"
174
+ :options="props.vmtSettings.options"
150
175
  :selected-nav-item="props.selectedNavItem"
151
176
  :nodes="props.nodes"
152
177
  :files="props.files"
@@ -158,8 +183,10 @@
158
183
  :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
159
184
  :passthrough-devices="props.passthroughDevices"
160
185
  :mediated-devices="props.mediatedDevices"
161
- :compute-resource="computeResource"
186
+ :compute-resource="vmForm.computeResource"
162
187
  is-clone
188
+ @change-boot-order="emits('change-boot-order', $event)"
189
+ @send-data="emits('change-customize-hardware', $event)"
163
190
  @get-storage="emits('get-storage', $event)"
164
191
  @get-folders-or-files="emits('get-folders-or-files', $event)"
165
192
  @get-active-device-child="emits('get-active-device-child', $event)"
@@ -220,11 +247,17 @@ import type {
220
247
  } from '~/components/common/vm/actions/common/lib/models/types'
221
248
  import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
222
249
  import type {
223
- UI_I_CreateVmData,
224
250
  // UI_I_Capabilities,
225
251
  UI_I_VmForm,
226
252
  } from '~/components/common/vm/actions/common/lib/models/interfaces'
253
+ import type { UI_I_SendDataCustomizeHardware } from '~/components/common/vm/actions/common/customizeHardware/lib/models/interfaces'
254
+ import type {
255
+ UI_I_SendDataNewCdDvdDrive,
256
+ UI_I_SendDataNewHardDisk,
257
+ UI_I_SendDataNewNetwork,
258
+ } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
227
259
  import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
260
+ import type { UI_T_ChangeBootOrder } from '~/components/common/vm/actions/lib/models/types'
228
261
  import type {
229
262
  UI_I_MediatedDevice,
230
263
  UI_I_PciDevice,
@@ -234,10 +267,7 @@ import type { UI_I_NameTestIds } from '~/components/common/wizards/common/steps/
234
267
  import type { UI_T_CompatibilityStatus } from '~/components/common/wizards/common/compatibility/lib/models/types'
235
268
  import { dynamicSteps } from '~/components/common/vm/actions/add/lib/config/steps'
236
269
 
237
- const model = defineModel<UI_I_CreateVmData>({
238
- required: true,
239
- })
240
- const computeResource = defineModel<UI_I_TreeNode | null>('computeResource', {
270
+ const vmForm = defineModel<UI_I_VmForm>('vmForm', {
241
271
  required: true,
242
272
  })
243
273
  const selectedCreateType = defineModel<string>('selectedCreateType', {
@@ -276,6 +306,10 @@ const props = withDefaults(
276
306
  guestOsFamilies: UI_I_OptionItem[]
277
307
  guestOsVersions: UI_I_ArbitraryObject<UI_I_OptionItem[]>
278
308
  machineTypes: UI_I_OptionItem[]
309
+ virtualHardwareHardDisksLocal: UI_I_SendDataNewHardDisk[] | null
310
+ virtualHardwareCdDvdDrivesLocal: UI_I_SendDataNewCdDvdDrive[] | null
311
+ virtualHardwareNetworksLocal: UI_I_SendDataNewNetwork[] | null
312
+ maxCpus: number
279
313
  maxMemory: number
280
314
  cpuModels: UI_I_OptionItem[]
281
315
  selectedNavItem: UI_T_SelectedNavItem
@@ -326,6 +360,11 @@ const emits = defineEmits<{
326
360
  (event: 'change-select-options', value: string[]): void
327
361
  (event: 'change-clone-count', value: number): void
328
362
  (event: 'change-compatibility', value: UI_I_OptionItem): void
363
+ (event: 'change-boot-order', value: UI_T_ChangeBootOrder): void
364
+ (
365
+ event: 'change-customize-hardware',
366
+ value: UI_I_SendDataCustomizeHardware
367
+ ): void
329
368
  (event: 'hide'): void
330
369
  }>()
331
370