feat: Implement vCenter management APIs, console ticket retrieval, password encryption, and background synchronization.
This commit is contained in:
@@ -91,14 +91,10 @@ class SyncDatacenter implements ShouldQueue
|
||||
continue; // skip malformed items
|
||||
}
|
||||
|
||||
$exists = ModuleDatacenter::where('datacenter_id', $_item['datacenter'])->first();
|
||||
if (!$exists) {
|
||||
ModuleDatacenter::create([
|
||||
'name' => $_item['name'],
|
||||
'datacenter_id' => $_item['datacenter'],
|
||||
'vcenter_id' => $item->id
|
||||
]);
|
||||
}
|
||||
ModuleDatacenter::updateOrCreate(
|
||||
['datacenter_id' => $_item['datacenter']],
|
||||
['name' => $_item['name'], 'vcenter_id' => $item->id]
|
||||
);
|
||||
}
|
||||
}
|
||||
// Notify success via Telegram
|
||||
|
||||
@@ -63,22 +63,26 @@ class SyncFolder implements ShouldQueue
|
||||
vCenter::where('id', $item->id)->update(['token' => $token]);
|
||||
$this->vCenter->token = $token;
|
||||
}
|
||||
}
|
||||
$folder = $this->vCenter->getAllFolder($_item['datacenter_id']);
|
||||
|
||||
if ($folder) {
|
||||
foreach ($folder as $_subItem) {
|
||||
if (!ModuleFolder::where('folder', $_subItem['folder'])->first()) {
|
||||
ModuleFolder::create([
|
||||
'name' => $_subItem['name'],
|
||||
'folder' => $_subItem['folder'],
|
||||
'type' => $_subItem['type'],
|
||||
'module_datacenter_id' => $_item['id']
|
||||
]);
|
||||
}
|
||||
}
|
||||
$folder = $this->vCenter->getAllFolder($_item['datacenter_id']);
|
||||
}
|
||||
|
||||
if (!is_array($folder)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$syncedFolderIds = [];
|
||||
foreach ($folder as $_subItem) {
|
||||
$record = ModuleFolder::updateOrCreate(
|
||||
['folder' => $_subItem['folder'], 'module_datacenter_id' => $_item['id']],
|
||||
['name' => $_subItem['name'], 'type' => $_subItem['type']]
|
||||
);
|
||||
$syncedFolderIds[] = $record->id;
|
||||
}
|
||||
|
||||
// Remove stale folders no longer in vCenter
|
||||
ModuleFolder::where('module_datacenter_id', $_item['id'])
|
||||
->whereNotIn('id', $syncedFolderIds)
|
||||
->delete();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -77,17 +77,15 @@ class SyncHost implements ShouldQueue
|
||||
// Use TemplateService
|
||||
$template = $templateService->getAllTemplate();
|
||||
|
||||
if ($host) {
|
||||
foreach ($host as $_subItem) {
|
||||
if (!ModuleHost::where('host_id', $_subItem['host'])->exists()) {
|
||||
ModuleHost::create([
|
||||
'name' => $_subItem['name'],
|
||||
'host_id' => $_subItem['host'],
|
||||
'module_datacenter_id' => $_item['id'],
|
||||
'template' => $template[0] ?? null,
|
||||
]);
|
||||
}
|
||||
}
|
||||
foreach ($host as $_subItem) {
|
||||
ModuleHost::updateOrCreate(
|
||||
['host_id' => $_subItem['host']],
|
||||
[
|
||||
'name' => $_subItem['name'],
|
||||
'module_datacenter_id' => $_item['id'],
|
||||
'template' => $template[0] ?? null,
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user