]> git.proxmox.com Git - flutter/proxmox_dart_api_client.git/commitdiff
add deleteNodeStorageContent api call
authorTim Marx <t.marx@proxmox.com>
Wed, 17 Jun 2020 12:39:51 +0000 (14:39 +0200)
committerTim Marx <t.marx@proxmox.com>
Wed, 17 Jun 2020 12:39:51 +0000 (14:39 +0200)
Signed-off-by: Tim Marx <t.marx@proxmox.com>
lib/src/client.dart

index e310d84e65ae87d20498c64eab71c5723e70865a..60fc952adbded3f096f3b9d92ec465fd625f8a72 100644 (file)
@@ -142,6 +142,21 @@ class ProxmoxApiClient extends http.BaseClient {
     return (await post(url)).validate(extensiveResponseValidation);
   }
 
+  Future<http.Response> _deleteWithValidation(
+      String path, Map<String, dynamic> queryParameters,
+      {bool extensiveResponseValidation = false}) async {
+    if (!path.startsWith("/api2/json")) {
+      path = "/api2/json" + path;
+    }
+    final baseUrl = Uri.parse(await getPlatformAwareOrigin());
+
+    queryParameters?.removeWhere((key, value) => value == null);
+
+    var url = baseUrl.replace(path: path, queryParameters: queryParameters);
+
+    return (await delete(url)).validate(extensiveResponseValidation);
+  }
+
   Future<String> getNextFreeID({String id}) async {
     final path = '/api2/json/cluster/nextid';
     var queryParameters = {'vmid': id};
@@ -257,6 +272,18 @@ class ProxmoxApiClient extends http.BaseClient {
     return data.toList();
   }
 
+  Future<void> deleteNodeStorageContent(
+    String targetNode,
+    String storageId,
+    String volume, {
+    int delay,
+  }) async {
+    final path =
+        '/api2/json/nodes/$targetNode/storage/$storageId/content/$volume';
+    var queryParameters = {'delay': delay?.toString()};
+    await _deleteWithValidation(path, queryParameters);
+  }
+
   Future<List<PveGuestRRDdataModel>> getNodeQemuRRDdata(
     String targetNode,
     String guestId,