feat: Implement vCenter management APIs, console ticket retrieval, password encryption, and background synchronization.
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user