141 lines
7.3 KiB
PHP
141 lines
7.3 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\Api\Admin\InfraManagement\InfraManagementController;
|
|
use App\Http\Controllers\Api\Admin\IpPool\IpPoolController;
|
|
use App\Http\Controllers\Api\Admin\OsManager\OsController;
|
|
use App\Http\Controllers\Api\Admin\OsManager\OsGroupController;
|
|
use App\Http\Controllers\Api\Admin\Rebuild\AdminReinstallLogController;
|
|
use App\Http\Controllers\Api\Admin\VCenter\VCenterController;
|
|
use App\Http\Controllers\Api\Admin\VPS\VPSController;
|
|
use App\Http\Controllers\admin\VCenterManagerController;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
// OS Groups & OS Entries (module: module-vcenter)
|
|
Route::prefix('os-groups')
|
|
->controller(OsGroupController::class)
|
|
->as('os-groups.')
|
|
->group(function () {
|
|
Route::get('/', 'index')->middleware('perm:module-vcenter.manager')->name('index');
|
|
Route::post('/', 'store')->middleware('perm:module-vcenter.manager')->name('store');
|
|
Route::get('{id}', 'show')->middleware('perm:module-vcenter.manager')->name('show');
|
|
Route::put('{id}', 'update')->middleware('perm:module-vcenter.manager')->name('update');
|
|
Route::delete('{id}', 'destroy')->middleware('perm:module-vcenter.manager')->name('destroy');
|
|
});
|
|
|
|
Route::prefix('os')
|
|
->controller(OsController::class)
|
|
->as('os.')
|
|
->group(function () {
|
|
Route::post('/', 'store')->middleware('perm:module-vcenter.manager')->name('store');
|
|
Route::put('{id}', 'update')->middleware('perm:module-vcenter.manager')->name('update');
|
|
Route::delete('{id}', 'destroy')->middleware('perm:module-vcenter.manager')->name('destroy');
|
|
});
|
|
|
|
// VPS (module: module-vcenter)
|
|
Route::prefix('vps')
|
|
->controller(VPSController::class)
|
|
->group(function () {
|
|
Route::get('/', 'index')->middleware('perm:module-vcenter.view');
|
|
Route::get('{id}', 'show')->middleware('perm:module-vcenter.view');
|
|
Route::put('{id}', 'update')->middleware('perm:module-vcenter.edit');
|
|
Route::post('{id}/power-on', 'powerOn')->middleware('perm:module-vcenter.edit');
|
|
Route::post('{id}/power-off', 'powerOff')->middleware('perm:module-vcenter.edit');
|
|
Route::post('{id}/restart', 'restart')->middleware('perm:module-vcenter.edit');
|
|
Route::get('{id}/console-ticket', 'getConsoleTicket')->middleware('perm:module-vcenter.view');
|
|
});
|
|
|
|
// vCenter (module: module-vcenter)
|
|
Route::prefix('vcenter')
|
|
->controller(VCenterController::class)
|
|
->group(function () {
|
|
Route::get('tree', 'tree')->middleware('perm:module-vcenter.view');
|
|
Route::get('console-ticket', 'consoleTicket')->middleware('perm:module-vcenter.view');
|
|
Route::post('/', 'store')->middleware('perm:module-vcenter.create');
|
|
Route::post('sync', 'sync')->middleware('perm:module-vcenter.edit');
|
|
Route::post('node/{type}', 'storeNode')->middleware('perm:module-vcenter.create');
|
|
Route::put('node/{type}/{id}', 'updateNode')->middleware('perm:module-vcenter.edit');
|
|
Route::delete('node/{type}/{id}', 'destroyNode')->middleware('perm:module-vcenter.destroy');
|
|
});
|
|
|
|
// InfraManagement (jumphost, vcenter config)
|
|
Route::prefix('infra-management')
|
|
->controller(InfraManagementController::class)
|
|
->group(function () {
|
|
Route::get('/', 'index')->middleware('perm:module-vcenter.manager');
|
|
Route::post('/', 'store')->middleware('perm:module-vcenter.manager');
|
|
Route::get('{id}', 'show')->middleware('perm:module-vcenter.manager');
|
|
Route::put('{id}', 'update')->middleware('perm:module-vcenter.manager');
|
|
Route::delete('{id}', 'destroy')->middleware('perm:module-vcenter.manager');
|
|
});
|
|
|
|
// Provider (active vCenter chain + provider settings — module: module-vcenter)
|
|
Route::prefix('provider')->group(function () {
|
|
Route::get('active-chain', [
|
|
\App\Http\Controllers\Api\Admin\Provider\ActiveInfraController::class,
|
|
'chain',
|
|
])->middleware('perm:module-vcenter.view');
|
|
Route::post('{type}/{id}/activate', [
|
|
\App\Http\Controllers\Api\Admin\Provider\ActiveInfraController::class,
|
|
'activate',
|
|
])
|
|
->whereIn('type', ['vcenter', 'datacenter', 'host', 'datastore', 'network'])
|
|
->middleware('perm:module-vcenter.edit');
|
|
Route::post('{type}/{id}/deactivate', [
|
|
\App\Http\Controllers\Api\Admin\Provider\ActiveInfraController::class,
|
|
'deactivate',
|
|
])
|
|
->whereIn('type', ['vcenter', 'datacenter', 'host', 'datastore', 'network'])
|
|
->middleware('perm:module-vcenter.edit');
|
|
|
|
Route::get('settings', [
|
|
\App\Http\Controllers\Api\Admin\Provider\ProviderSettingController::class,
|
|
'index',
|
|
])->middleware('perm:module-vcenter.view');
|
|
Route::put('settings', [
|
|
\App\Http\Controllers\Api\Admin\Provider\ProviderSettingController::class,
|
|
'update',
|
|
])->middleware('perm:module-vcenter.edit');
|
|
});
|
|
|
|
// IP Pool (module: module-vcenter)
|
|
Route::prefix('ip-pool')
|
|
->controller(IpPoolController::class)
|
|
->group(function () {
|
|
Route::get('networks', 'networks')->middleware('perm:module-vcenter.view');
|
|
Route::get('used-services', 'usedServices')->middleware('perm:module-vcenter.view');
|
|
Route::get('/', 'index')->middleware('perm:module-vcenter.view');
|
|
Route::post('/', 'store')->middleware('perm:module-vcenter.manager');
|
|
Route::post('sync', 'sync')->middleware('perm:module-vcenter.manager');
|
|
Route::post('import', 'import')->middleware('perm:module-vcenter.manager');
|
|
Route::delete('bulk', 'bulkDelete')->middleware('perm:module-vcenter.manager');
|
|
Route::post('bulk-update-gateway', 'bulkUpdateGateway')->middleware('perm:module-vcenter.manager');
|
|
Route::get('{id}', 'show')->middleware('perm:module-vcenter.view');
|
|
Route::put('{id}', 'update')->middleware('perm:module-vcenter.manager');
|
|
Route::delete('{id}', 'destroy')->middleware('perm:module-vcenter.manager');
|
|
});
|
|
|
|
// vCenter Manager Power Operations (module: module-vcenter)
|
|
Route::prefix('vcenter-manager')
|
|
->controller(VCenterManagerController::class)
|
|
->group(function () {
|
|
Route::post('vm/power-on', 'powerOn')->middleware('perm:module-vcenter.edit');
|
|
Route::post('vm/power-off', 'powerOff')->middleware('perm:module-vcenter.edit');
|
|
Route::post('vm/restart', 'restart')->middleware('perm:module-vcenter.edit');
|
|
Route::post('vm/snapshot', 'snapshot')->middleware('perm:module-vcenter.edit');
|
|
Route::post('vm/suspend', 'suspend')->middleware('perm:module-vcenter.edit');
|
|
Route::post('vm/update-config', 'updateConfig')->middleware('perm:module-vcenter.edit');
|
|
Route::post('vm/delete', 'deleteVM')->middleware('perm:module-vcenter.edit');
|
|
Route::get('vm/stats', 'stats')->middleware('perm:module-vcenter.view');
|
|
Route::get('vm/power-state', 'powerState')->middleware('perm:module-vcenter.view');
|
|
Route::get('vms/powered-off', 'getPoweredOffVms')->middleware('perm:module-vcenter.view');
|
|
});
|
|
|
|
// VM Rebuild Logs — who rebuilt, which OS, post-rebuild password
|
|
Route::prefix('rebuild-logs')
|
|
->controller(AdminReinstallLogController::class)
|
|
->group(function () {
|
|
Route::get('/', 'index')->middleware('perm:vps.view');
|
|
Route::get('stats', 'stats')->middleware('perm:vps.view');
|
|
Route::get('{id}', 'show')->middleware('perm:vps.view')->whereNumber('id');
|
|
});
|