@@ -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