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';
_$pveQemuStatusModelSerializer;
PveHAMangerServiceStatusModel get ha;
- PveQemuStatusType get status;
+ String get status;
@nullable
bool get agent;
@nullable
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;
+ }
+ }
}
+