bfg-common 1.5.555 → 1.5.557

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