]> git.proxmox.com Git - flutter/proxmox_dart_api_client.git/commitdiff
add getQemuStatus method
authorTim Marx <t.marx@proxmox.com>
Tue, 14 Apr 2020 21:24:38 +0000 (23:24 +0200)
committerTim Marx <t.marx@proxmox.com>
Tue, 14 Apr 2020 21:31:22 +0000 (23:31 +0200)
Signed-off-by: Tim Marx <t.marx@proxmox.com>
lib/src/models/pve_nodes_qemu_status_model.dart

index f54970eaa2b6415db67e6461e1102705e4c0c1ff..00cbf571c86dae507d317a48ff0611fd1c27b3b7 100644 (file)
@@ -1,6 +1,7 @@
 import 'package:built_collection/built_collection.dart';
 import 'package:built_value/built_value.dart';
 import 'package:built_value/serializer.dart';
+import 'package:proxmox_dart_api_client/proxmox_dart_api_client.dart';
 import 'package:proxmox_dart_api_client/src/models/pve_ha_manger_service_status_model.dart';
 
 part 'pve_nodes_qemu_status_model.g.dart';
@@ -11,7 +12,7 @@ abstract class PveQemuStatusModel
       _$pveQemuStatusModelSerializer;
 
   PveHAMangerServiceStatusModel get ha;
-  PveQemuStatusType get status;
+  String get status;
   @nullable
   bool get agent;
   @nullable
@@ -40,22 +41,44 @@ abstract class PveQemuStatusModel
   int get maxcpu;
   @nullable
   int get disk;
+  @nullable
+  String get qmpstatus;
+  @nullable
+  String get lock;
+  @nullable
+  String get template;
 
   PveQemuStatusModel._();
   factory PveQemuStatusModel(
           [void Function(PveQemuStatusModelBuilder) updates]) =
       _$PveQemuStatusModel;
-}
 
-class PveQemuStatusType extends EnumClass {
-  static const PveQemuStatusType stopped = _$stopped;
-  static const PveQemuStatusType running = _$running;
+  PveResourceStatusType getQemuStatus() {
+    if (status == 'running') {
+      switch (qmpstatus) {
+        case 'running':
+          return PveResourceStatusType.running;
+          break;
+        case 'paused':
+          return PveResourceStatusType.paused;
+          break;
+        default:
+          if (lock == 'suspending') {
+            return PveResourceStatusType.suspending;
+          }
+          if (lock == 'suspended') {
+            return PveResourceStatusType.suspended;
+          }
+          return PveResourceStatusType.running;
+      }
+    }
 
-  const PveQemuStatusType._(String name) : super(name);
-
-  static BuiltSet<PveQemuStatusType> get values => _$pqsTValues;
-  static PveQemuStatusType valueOf(String name) => _$pqsTValueOf(name);
-
-  static Serializer<PveQemuStatusType> get serializer =>
-      _$pveQemuStatusTypeSerializer;
+    if (status == 'stopped') {
+      if (lock == 'suspended') {
+        return PveResourceStatusType.suspended;
+      }
+      return PveResourceStatusType.stopped;
+    }
+  }
 }
+