Skip to content

Commit 198dc54

Browse files
authored
Merge pull request #13 from irabbi360/dev
node storage api
2 parents ae13672 + 5ea3aab commit 198dc54

File tree

1 file changed

+122
-0
lines changed

1 file changed

+122
-0
lines changed

src/ProxmoxNodeVm.php

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3007,6 +3007,45 @@ public function configureVMCloudInitNetwork(string $node, int $vmid, $ip, $gatew
30073007
return ResponseHelper::generate(false,'Network configure fail!', $response['data']);
30083008
}
30093009

3010+
/**
3011+
* @throws Exception
3012+
*/
3013+
public function updateVmConfig(string $node, int $vmid, $params)
3014+
{
3015+
$response = $this->makeRequest('PUT', "nodes/{$node}/qemu/{$vmid}/config", $params);
3016+
3017+
if (!isset($response['data'])){
3018+
$successResponse = [
3019+
'node' => $node,
3020+
'vmid' => $vmid,
3021+
];
3022+
return ResponseHelper::generate(true,'Config updated successfully', $successResponse);
3023+
}
3024+
return ResponseHelper::generate(false,'Config update failed!', $response['data']);
3025+
}
3026+
3027+
/**
3028+
* @throws Exception
3029+
*/
3030+
public function resizeVm(string $node, int $vmid, $params)
3031+
{
3032+
// Disk resize parameters
3033+
$resizeParams = [
3034+
'disk' => 'scsi0', // Disk you want to resize (e.g., scsi0, virtio0)
3035+
'size' => '+10G', // Size to add (e.g., +10G for 10GB)
3036+
];
3037+
$response = $this->makeRequest('POST', "nodes/{$node}/qemu/{$vmid}/config", $params);
3038+
3039+
if (!isset($response['data'])){
3040+
$successResponse = [
3041+
'node' => $node,
3042+
'vmid' => $vmid,
3043+
];
3044+
return ResponseHelper::generate(true,'Config updated successfully', $successResponse);
3045+
}
3046+
return ResponseHelper::generate(false,'Config update failed!', $response['data']);
3047+
}
3048+
30103049
/**
30113050
* @throws Exception
30123051
*/
@@ -3199,4 +3238,87 @@ public function rebuildCloudInit($node, $vmid)
31993238
echo "Error: " . $e->getMessage();
32003239
}*/
32013240
}
3241+
3242+
/**
3243+
* Node index.
3244+
* @throws Exception
3245+
*/
3246+
public function diskList(string $node)
3247+
{
3248+
$response = $this->makeRequest('GET', "nodes/{$node}/disks");
3249+
3250+
if (!isset($response['data'])){
3251+
return ResponseHelper::generate(false,'Disk list failed!', $response['data']);
3252+
}
3253+
3254+
$successResponse = [
3255+
'node' => $node,
3256+
'data' => $response['data']
3257+
];
3258+
3259+
return ResponseHelper::generate(true,'Disk list successfully', $successResponse);
3260+
}
3261+
3262+
/**
3263+
* PVE Managed storages..
3264+
* $type directory, lvm, lvmthin, zfs,
3265+
* @throws Exception
3266+
*/
3267+
public function diskTypeList(string $node, string $type)
3268+
{
3269+
$response = $this->makeRequest('GET', "nodes/{$node}/disks/{$type}");
3270+
3271+
if (!isset($response['data'])){
3272+
return ResponseHelper::generate(false,'Disk fetch failed!', $response['data']);
3273+
}
3274+
3275+
$successResponse = [
3276+
'node' => $node,
3277+
'data' => $response['data']
3278+
];
3279+
3280+
return ResponseHelper::generate(true,'Disk fetch successfully', $successResponse);
3281+
}
3282+
3283+
/**
3284+
* PVE Managed storages..
3285+
* $type directory, lvm, lvmthin, zfs,
3286+
* @throws Exception
3287+
*/
3288+
public function createDiskType(string $node, string $type, array $params)
3289+
{
3290+
$response = $this->makeRequest('POST', "nodes/{$node}/disks/{$type}", $params);
3291+
3292+
if (!isset($response['data'])){
3293+
return ResponseHelper::generate(false,'Disk fetch failed!', $response['data']);
3294+
}
3295+
3296+
$successResponse = [
3297+
'node' => $node,
3298+
'data' => $response['data']
3299+
];
3300+
3301+
return ResponseHelper::generate(true,'Disk fetch successfully', $successResponse);
3302+
}
3303+
3304+
/**
3305+
* PVE Managed storages..
3306+
* $type directory, lvm, lvmthin, zfs,
3307+
* @throws Exception
3308+
*/
3309+
public function deleteDiskType(string $node, string $type, $name)
3310+
{
3311+
$response = $this->makeRequest('DELETE', "nodes/{$node}/disks/{$type}/{$name}");
3312+
3313+
if (!isset($response['data'])){
3314+
return ResponseHelper::generate(false,'Disk delete failed!', $response['data']);
3315+
}
3316+
3317+
$successResponse = [
3318+
'node' => $node,
3319+
'data' => $response['data']
3320+
];
3321+
3322+
return ResponseHelper::generate(true,'Disk deleted successfully', $successResponse);
3323+
}
32023324
}

0 commit comments

Comments
 (0)