Initial
This commit is contained in:
@@ -426,9 +426,17 @@
|
||||
:error="vcenterImportError"
|
||||
:status="vcenterImportStatus"
|
||||
:diagnostics="vcenterImportDiagnostics"
|
||||
:trace-count="vcenterTraceEntries.length"
|
||||
@close="vcenterImportOpen = false"
|
||||
@preview="previewVCenterImport"
|
||||
@import="importVCenterHosts"
|
||||
@open-trace="vcenterTraceOpen = true"
|
||||
/>
|
||||
|
||||
<VCenterTraceModal
|
||||
:open="vcenterTraceOpen"
|
||||
:trace="vcenterTraceEntries"
|
||||
@close="vcenterTraceOpen = false"
|
||||
/>
|
||||
|
||||
<BaseModal
|
||||
@@ -936,6 +944,7 @@ import ScriptExplorer from './components/scripts/ScriptExplorer.vue';
|
||||
import ScriptTestRunModal from './components/scripts/ScriptTestRunModal.vue';
|
||||
import VariableEditorModal from './components/scripts/VariableEditorModal.vue';
|
||||
import VCenterImportModal from './components/hosts/VCenterImportModal.vue';
|
||||
import VCenterTraceModal from './components/hosts/VCenterTraceModal.vue';
|
||||
import DashboardView from './views/DashboardView.vue';
|
||||
import ErrorView from './views/ErrorView.vue';
|
||||
import LoginView from './views/LoginView.vue';
|
||||
@@ -982,6 +991,8 @@ const vcenterImportError = ref('');
|
||||
const vcenterPreviewRows = ref([]);
|
||||
const vcenterImportStatus = ref(null);
|
||||
const vcenterImportDiagnostics = ref(null);
|
||||
const vcenterTraceEntries = ref([]);
|
||||
const vcenterTraceOpen = ref(false);
|
||||
const credentialModalOpen = ref(false);
|
||||
const runPlanModalOpen = ref(false);
|
||||
const variableModalOpen = ref(false);
|
||||
@@ -2352,6 +2363,8 @@ async function openVCenterImport() {
|
||||
vcenterImportOpen.value = true;
|
||||
vcenterImportError.value = '';
|
||||
vcenterImportDiagnostics.value = null;
|
||||
vcenterTraceEntries.value = [];
|
||||
vcenterTraceOpen.value = false;
|
||||
try {
|
||||
vcenterImportStatus.value = await api.get('/api/hosts/import/vcenter/status');
|
||||
} catch (err) {
|
||||
@@ -2366,9 +2379,13 @@ async function previewVCenterImport(payload) {
|
||||
const result = await api.post('/api/hosts/import/vcenter/preview', payload);
|
||||
vcenterImportStatus.value = result.status;
|
||||
vcenterImportDiagnostics.value = result.diagnostics || null;
|
||||
vcenterTraceEntries.value = result.trace || [];
|
||||
vcenterPreviewRows.value = result.candidates || [];
|
||||
if (vcenterTraceEntries.value.length) vcenterTraceOpen.value = true;
|
||||
notify(`Found ${result.count || 0} vCenter host candidate(s) from ${result.diagnostics?.totalFromVCenter ?? 'unknown'} VM(s)`);
|
||||
} catch (err) {
|
||||
vcenterTraceEntries.value = err.payload?.trace || [];
|
||||
if (vcenterTraceEntries.value.length) vcenterTraceOpen.value = true;
|
||||
vcenterImportError.value = err.message;
|
||||
notify(err.message, 'error');
|
||||
} finally {
|
||||
@@ -2381,13 +2398,17 @@ async function importVCenterHosts(payload) {
|
||||
vcenterImportError.value = '';
|
||||
try {
|
||||
const result = await api.post('/api/hosts/import/vcenter', payload);
|
||||
vcenterTraceEntries.value = result.trace || vcenterTraceEntries.value;
|
||||
await refreshAll();
|
||||
vcenterPreviewRows.value = [];
|
||||
vcenterImportDiagnostics.value = null;
|
||||
vcenterTraceOpen.value = false;
|
||||
vcenterImportOpen.value = false;
|
||||
const skipped = result.skipped?.length || 0;
|
||||
notify(`Imported ${result.imported?.length || 0} host(s)${skipped ? `, skipped ${skipped} duplicate(s)` : ''}`);
|
||||
} catch (err) {
|
||||
vcenterTraceEntries.value = err.payload?.trace || [];
|
||||
if (vcenterTraceEntries.value.length) vcenterTraceOpen.value = true;
|
||||
vcenterImportError.value = err.message;
|
||||
notify(err.message, 'error');
|
||||
} finally {
|
||||
|
||||
Reference in New Issue
Block a user