@@ -819,7 +819,7 @@ public function attachDisk(string $node, int $vmid, array $params)
819819 $ result = $ this ->makeRequest ('POST ' , "nodes/ {$ node }/qemu/ {$ vmid }/config " , $ diskParams );
820820
821821 if (!isset ($ result ['data ' ])) {
822- throw new Exception ( ' Failed to attach disk: No response data received ' );
822+ return ResponseHelper:: generate ( false , " Failed to attach disk: No response data received " );
823823 }
824824
825825 $ successResponse = [
@@ -835,14 +835,33 @@ public function attachDisk(string $node, int $vmid, array $params)
835835 }
836836 }
837837
838- public function detachDisk ($ node , $ vmid , $ disk )
838+ /**
839+ * @throws Exception
840+ */
841+ public function detachDisk (string $ node , int $ vmid , string $ disk , bool $ type = false )
839842 {
840- // API endpoint to remove a disk
841- $ result = $ this ->makeRequest ('DELETE ' , "nodes/ {$ node }/qemu/ {$ vmid }/config " , [
842- 'delete ' => $ disk , // Specify the disk to delete (e.g., 'scsi0')
843- ]);
843+ try {
844+ // API endpoint to remove a disk
845+ $ result = $ this ->makeRequest ('POST ' , "nodes/ {$ node }/qemu/ {$ vmid }/config " , [
846+ 'delete ' => $ disk , // Specify the disk to delete (e.g., 'scsi0')
847+ 'force ' => $ type
848+ ]);
849+
850+ if (!isset ($ result ['data ' ])) {
851+ return ResponseHelper::generate (false ,"Failed to detach disk " );
852+ }
844853
845- return $ result ;
854+ $ successResponse = [
855+ 'node ' => $ node ,
856+ 'vmid ' => $ vmid ,
857+ 'disk ' => $ disk ,
858+ 'data ' => $ result ['data ' ]
859+ ];
860+
861+ return ResponseHelper::generate (true , 'Disk attach success ' , $ successResponse );
862+ } catch (Exception $ e ) {
863+ return ResponseHelper::generate (false ,"Failed to detach disk: " . $ e ->getMessage ());
864+ }
846865 }
847866
848867 /**
0 commit comments