bfg-common 1.3.409 → 1.3.411
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.
- package/components/atoms/wizard/Wizard.vue +26 -176
- package/components/atoms/wizard/lib/utils/utils.ts +189 -1
- package/components/atoms/wizard/step/Step.vue +3 -29
- package/components/common/diagramMain/modals/migrateVmkernelAdapter/MigrateVmkernelAdapter.vue +190 -194
- package/components/common/vm/actions/add/Add.vue +598 -602
- package/components/common/vm/actions/clone/Clone.vue +514 -518
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/model/Model.vue +1 -0
- package/components/common/wizards/network/add/Add.vue +4 -11
- package/package.json +1 -1
package/components/common/diagramMain/modals/migrateVmkernelAdapter/MigrateVmkernelAdapter.vue
CHANGED
|
@@ -1,95 +1,92 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
:was-completed="wasCompleted"
|
|
10
|
-
:localization="localization"
|
|
11
|
-
:class="[
|
|
2
|
+
<atoms-wizard
|
|
3
|
+
v-model:show="props.show"
|
|
4
|
+
:wizard="wizard"
|
|
5
|
+
:selected-scheme="selectedScheme"
|
|
6
|
+
:title="title"
|
|
7
|
+
:localization="localization"
|
|
8
|
+
:class="[
|
|
12
9
|
'migrate-vm-kernel-modal',
|
|
13
10
|
{
|
|
14
11
|
'is-dark': props.isDarkMode,
|
|
15
12
|
},
|
|
16
13
|
]"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
14
|
+
@change-steps="onChangeSteps"
|
|
15
|
+
@hide="onHide"
|
|
16
|
+
@submit="onSubmit"
|
|
17
|
+
>
|
|
18
|
+
<template #modalBody="{ selectedStep }">
|
|
19
|
+
<common-diagram-main-modals-migrate-vmkernel-adapter-steps-select-vmkernel-adapter
|
|
20
|
+
v-if="selectedStep.id === 0"
|
|
21
|
+
:vmkernel-adapter="vmkernelAdapter"
|
|
22
|
+
:table-data="filteredNetworksList"
|
|
23
|
+
:alert-messages="alertMessages[0]"
|
|
24
|
+
@hide-alert="onHideAlert"
|
|
25
|
+
@change-vmkernel-adapter="onChangeMigrateVmkernelAdapter"
|
|
26
|
+
/>
|
|
27
|
+
<common-diagram-main-modals-migrate-vmkernel-adapter-steps-connection-settings
|
|
28
|
+
v-if="selectedStep.id === 1"
|
|
29
|
+
:connection-settings="connectionSettings"
|
|
30
|
+
:messages-fields="selectedStep.fields"
|
|
31
|
+
:alert-messages="alertMessages[1]"
|
|
32
|
+
:wizard="wizard"
|
|
33
|
+
@hide-alert="onHideAlert"
|
|
34
|
+
@change-connection-settings="onChangeConnectionSettings"
|
|
35
|
+
/>
|
|
36
|
+
<common-diagram-main-modals-migrate-vmkernel-adapter-steps-vmkernel-adapter-ready-complete
|
|
37
|
+
v-if="selectedStep.id === 2"
|
|
38
|
+
:data="readyCompleteData"
|
|
39
|
+
/>
|
|
40
|
+
</template>
|
|
41
|
+
</atoms-wizard>
|
|
45
42
|
</template>
|
|
46
43
|
|
|
47
44
|
<script setup lang="ts">
|
|
48
45
|
import { UI_I_Localization } from '~/lib/models/interfaces'
|
|
49
46
|
import {
|
|
50
|
-
|
|
51
|
-
|
|
47
|
+
UI_I_Network,
|
|
48
|
+
UI_I_VmkernelAdapterTableData,
|
|
52
49
|
} from '~/components/common/diagramMain/lib/models/interfaces'
|
|
53
50
|
import {
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
UI_I_ConnectionSettings,
|
|
52
|
+
UI_I_SelectVmkernelAdapter,
|
|
56
53
|
} from '~/components/common/wizards/network/add/lib/models/interfaces'
|
|
57
54
|
import {
|
|
58
|
-
|
|
59
|
-
|
|
55
|
+
UI_I_WizardStep,
|
|
56
|
+
UI_I_ValidationReturn,
|
|
60
57
|
} from '~/components/atoms/wizard/lib/models/interfaces'
|
|
61
58
|
import {
|
|
62
|
-
|
|
63
|
-
|
|
59
|
+
UI_I_MigrateVmkernelAdapterEmits,
|
|
60
|
+
UI_I_MigrationVmkernelAdapterReadyComplete,
|
|
64
61
|
} from '~/components/common/diagramMain/lib/models/interfaces'
|
|
65
62
|
import { UI_E_MigrationValidationFields } from '~/components/common/diagramMain/lib/models/enums'
|
|
66
63
|
import {
|
|
67
|
-
|
|
68
|
-
|
|
64
|
+
stepsFunc,
|
|
65
|
+
stepsSchemeInitial,
|
|
69
66
|
} from '~/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps'
|
|
70
67
|
import {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
68
|
+
checkNetworkAsync,
|
|
69
|
+
checkConnectionSettingsSync,
|
|
70
|
+
checkSelectedVmSync,
|
|
74
71
|
} from '~/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations'
|
|
75
72
|
import Wizard from '~/components/atoms/wizard/lib/utils/utils'
|
|
76
73
|
import { readyCompleteInitial } from '~/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps'
|
|
77
74
|
|
|
78
75
|
const props = withDefaults(
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
76
|
+
defineProps<{
|
|
77
|
+
show: boolean
|
|
78
|
+
switchName?: string
|
|
79
|
+
networksList?: UI_I_Network[]
|
|
80
|
+
switchNetworks?: UI_I_Network[]
|
|
81
|
+
isDarkMode: boolean
|
|
82
|
+
isMigrateAdapterLoading?: boolean
|
|
83
|
+
}>(),
|
|
84
|
+
{
|
|
85
|
+
switchName: '',
|
|
86
|
+
networksList: () => [],
|
|
87
|
+
switchNetworks: () => [],
|
|
88
|
+
isMigrateAdapterLoading: false,
|
|
89
|
+
}
|
|
93
90
|
)
|
|
94
91
|
|
|
95
92
|
const emits = defineEmits<UI_I_MigrateVmkernelAdapterEmits>()
|
|
@@ -97,201 +94,200 @@ const emits = defineEmits<UI_I_MigrateVmkernelAdapterEmits>()
|
|
|
97
94
|
const localization = computed<UI_I_Localization>(() => useLocal())
|
|
98
95
|
|
|
99
96
|
const wizard: Wizard = new Wizard(
|
|
100
|
-
|
|
101
|
-
|
|
97
|
+
stepsFunc(localization.value),
|
|
98
|
+
stepsSchemeInitial
|
|
102
99
|
)
|
|
103
|
-
const wasCompleted = computed<boolean>(() => wizard.wasCompleted())
|
|
104
100
|
const selectedScheme = computed<number[]>(() => wizard.selectedScheme.value)
|
|
105
101
|
const alertMessages = computed<string[][]>(() => wizard.alertMessages.value)
|
|
106
102
|
|
|
107
103
|
const hostname = ref<string>('')
|
|
108
104
|
const title = computed<string>(
|
|
109
|
-
|
|
110
|
-
|
|
105
|
+
() =>
|
|
106
|
+
`${hostname.value} - ${localization.value.migrateVmKernelNetworkAdapterTo} ${props.switchName}`
|
|
111
107
|
)
|
|
112
108
|
|
|
113
109
|
const connectionSettings = ref<UI_I_ConnectionSettings>({
|
|
114
|
-
|
|
115
|
-
|
|
110
|
+
networkLabel: 'VM Network',
|
|
111
|
+
vlanId: 'None (0)',
|
|
116
112
|
})
|
|
117
113
|
|
|
118
114
|
const vmkernelAdapter = ref<UI_I_SelectVmkernelAdapter>({
|
|
119
|
-
|
|
115
|
+
vm: '',
|
|
120
116
|
})
|
|
121
117
|
|
|
122
118
|
const readyCompleteData =
|
|
123
|
-
|
|
119
|
+
ref<UI_I_MigrationVmkernelAdapterReadyComplete>(readyCompleteInitial)
|
|
124
120
|
|
|
125
121
|
const validationFunc = async (
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
122
|
+
value: UI_I_WizardStep[],
|
|
123
|
+
currentStep: UI_I_WizardStep,
|
|
124
|
+
nextStep: UI_I_WizardStep
|
|
129
125
|
): Promise<UI_I_ValidationReturn> => {
|
|
130
|
-
|
|
126
|
+
let stepHasError = false
|
|
131
127
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
128
|
+
if (wizard.isValidateForStep(0, currentStep.id, nextStep.id)) {
|
|
129
|
+
const selectVmkernelAdapterValidation = checkSelectedVmSync(
|
|
130
|
+
localization.value,
|
|
131
|
+
vmkernelAdapter.value,
|
|
132
|
+
wizard,
|
|
133
|
+
value
|
|
134
|
+
)
|
|
139
135
|
|
|
140
|
-
|
|
136
|
+
value = selectVmkernelAdapterValidation.newValue
|
|
141
137
|
|
|
142
|
-
|
|
143
|
-
|
|
138
|
+
stepHasError = stepHasError || selectVmkernelAdapterValidation.stepHasError
|
|
139
|
+
}
|
|
144
140
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
141
|
+
if (wizard.isValidateForStep(1, currentStep.id, nextStep.id)) {
|
|
142
|
+
const labelValidation = await checkNetworkAsync(
|
|
143
|
+
value,
|
|
144
|
+
connectionSettings.value.networkLabel,
|
|
145
|
+
1,
|
|
146
|
+
UI_E_MigrationValidationFields.CONNECTION_SETTINGS_NETWORK,
|
|
147
|
+
emits,
|
|
148
|
+
localization.value,
|
|
149
|
+
wizard
|
|
150
|
+
)
|
|
151
|
+
|
|
152
|
+
value = labelValidation.newValue
|
|
153
|
+
|
|
154
|
+
const connectionSettingsValidation = checkConnectionSettingsSync(
|
|
155
|
+
localization.value,
|
|
156
|
+
connectionSettings.value,
|
|
157
|
+
wizard,
|
|
158
|
+
value
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
value = connectionSettingsValidation.newValue
|
|
162
|
+
|
|
163
|
+
stepHasError =
|
|
164
|
+
stepHasError ||
|
|
165
|
+
labelValidation.stepHasError ||
|
|
166
|
+
connectionSettingsValidation.stepHasError
|
|
167
|
+
}
|
|
172
168
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
169
|
+
return {
|
|
170
|
+
newValue: value,
|
|
171
|
+
stepHasError,
|
|
172
|
+
}
|
|
177
173
|
}
|
|
178
174
|
|
|
179
175
|
const finalValidationFunc = async (
|
|
180
|
-
|
|
176
|
+
value: UI_I_WizardStep[]
|
|
181
177
|
): Promise<UI_I_ValidationReturn> => {
|
|
182
|
-
|
|
178
|
+
let stepHasError = false
|
|
183
179
|
|
|
184
|
-
|
|
180
|
+
// wizard.setLoader(true)
|
|
185
181
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
182
|
+
// wizard.setLoader(false)
|
|
183
|
+
return {
|
|
184
|
+
stepHasError,
|
|
185
|
+
newValue: value,
|
|
186
|
+
}
|
|
191
187
|
}
|
|
192
188
|
|
|
193
189
|
const onChangeSteps = async (value: UI_I_WizardStep[]): Promise<void> =>
|
|
194
|
-
|
|
190
|
+
wizard.changeSteps(value, validationFunc, finalValidationFunc)
|
|
195
191
|
|
|
196
192
|
const filteredNetworksList = ref<UI_I_VmkernelAdapterTableData[]>([])
|
|
197
193
|
|
|
198
194
|
watch(
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
}
|
|
195
|
+
() => wizard.selectedStepId,
|
|
196
|
+
(newSelectedStepId: number) => {
|
|
197
|
+
if (newSelectedStepId !== 2) return
|
|
198
|
+
|
|
199
|
+
const from = filteredNetworksList.value.find(
|
|
200
|
+
(network) => network.name === vmkernelAdapter.value.vm
|
|
201
|
+
)
|
|
202
|
+
|
|
203
|
+
readyCompleteData.value = {
|
|
204
|
+
vm: vmkernelAdapter.value.vm,
|
|
205
|
+
currentSettings: {
|
|
206
|
+
switch: from?.switch || '',
|
|
207
|
+
network: from?.networkLabel || '',
|
|
208
|
+
},
|
|
209
|
+
newSettings: {
|
|
210
|
+
switch: props.switchName,
|
|
211
|
+
network: connectionSettings.value.networkLabel,
|
|
212
|
+
},
|
|
213
|
+
vlanId: connectionSettings.value.vlanId,
|
|
219
214
|
}
|
|
215
|
+
}
|
|
220
216
|
)
|
|
221
217
|
|
|
222
218
|
watch(
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
219
|
+
() => props.switchNetworks,
|
|
220
|
+
(netsOnSwitch: UI_I_Network[]) => {
|
|
221
|
+
const vmKernelNetworksIdOnSwitch = netsOnSwitch
|
|
222
|
+
.filter((net: UI_I_Network) => net.networkType === '1')
|
|
223
|
+
.map((net: UI_I_Network) => net.id)
|
|
224
|
+
|
|
225
|
+
filteredNetworksList.value = props.networksList
|
|
226
|
+
.filter(
|
|
227
|
+
(net: UI_I_Network) =>
|
|
228
|
+
net.networkType === '1' &&
|
|
229
|
+
!vmKernelNetworksIdOnSwitch.includes(net.id)
|
|
230
|
+
)
|
|
231
|
+
.map((net: UI_I_Network, index: number) => ({
|
|
232
|
+
name: net.sysx?.id || '',
|
|
233
|
+
networkLabel: net.title,
|
|
234
|
+
switch: net.switchName || '',
|
|
235
|
+
ipAddress: net.sysx?.ipv4_settings.ipv4 || '--',
|
|
236
|
+
tcp: net.sysx?.tcp_stack
|
|
237
|
+
? localization.value[net.sysx?.tcp_stack]
|
|
238
|
+
: '--',
|
|
239
|
+
id: `${net.sysx?.id || ''}-${index}`,
|
|
240
|
+
}))
|
|
241
|
+
},
|
|
242
|
+
{ deep: true, immediate: true }
|
|
247
243
|
)
|
|
248
244
|
|
|
249
245
|
const onChangeConnectionSettings = (
|
|
250
|
-
|
|
246
|
+
newFields: UI_I_ConnectionSettings
|
|
251
247
|
): void => {
|
|
252
|
-
|
|
248
|
+
connectionSettings.value = newFields
|
|
253
249
|
}
|
|
254
250
|
|
|
255
251
|
const onChangeMigrateVmkernelAdapter = (
|
|
256
|
-
|
|
252
|
+
newFields: UI_I_SelectVmkernelAdapter
|
|
257
253
|
): void => {
|
|
258
|
-
|
|
254
|
+
vmkernelAdapter.value = newFields
|
|
259
255
|
}
|
|
260
256
|
|
|
261
257
|
const reset = (): void => {
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
258
|
+
wizard.reset()
|
|
259
|
+
connectionSettings.value = {
|
|
260
|
+
networkLabel: 'VM Network',
|
|
261
|
+
vlanId: 'None (0)',
|
|
262
|
+
}
|
|
263
|
+
vmkernelAdapter.value = {
|
|
264
|
+
vm: '',
|
|
265
|
+
}
|
|
270
266
|
}
|
|
271
267
|
|
|
272
268
|
const onHideAlert = (stepId: number): void => {
|
|
273
|
-
|
|
269
|
+
wizard.hideAlertMessagesByStepId(stepId)
|
|
274
270
|
}
|
|
275
271
|
|
|
276
272
|
const onHide = (): void => {
|
|
277
|
-
|
|
278
|
-
|
|
273
|
+
emits('hide')
|
|
274
|
+
reset()
|
|
279
275
|
}
|
|
280
276
|
|
|
281
277
|
const onSubmit = (): void => {
|
|
282
|
-
|
|
278
|
+
onHide()
|
|
283
279
|
}
|
|
284
280
|
|
|
285
281
|
watch(
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
282
|
+
() => props.isMigrateAdapterLoading,
|
|
283
|
+
(newValue: boolean) => {
|
|
284
|
+
wizard.setLoader(newValue)
|
|
285
|
+
},
|
|
286
|
+
{ immediate: true }
|
|
291
287
|
)
|
|
292
288
|
|
|
293
289
|
onMounted(() => {
|
|
294
|
-
|
|
290
|
+
hostname.value = location.hostname
|
|
295
291
|
})
|
|
296
292
|
</script>
|
|
297
293
|
|