]> git.proxmox.com Git - flutter/pve_flutter_frontend.git/commitdiff
add standalone check for node services (corosync)
authorTim Marx <t.marx@proxmox.com>
Mon, 20 Apr 2020 17:20:13 +0000 (19:20 +0200)
committerTim Marx <t.marx@proxmox.com>
Mon, 20 Apr 2020 18:20:56 +0000 (20:20 +0200)
Signed-off-by: Tim Marx <t.marx@proxmox.com>
lib/main.dart
lib/states/pve_node_overview_state.dart
lib/states/pve_resource_state.dart

index 97829d88713c0f6786e6a25d86418d8b935b4cfe..6af53ca57e32833a20d8d398128f19eaf47c7483 100644 (file)
@@ -196,14 +196,16 @@ class MyApp extends StatelessWidget {
               return MaterialPageRoute(
                 fullscreenDialog: false,
                 settings: context,
-                builder: (_) {
+                builder: (context) {
+                  final rbloc = Provider.of<PveResourceBloc>(context);
                   return MultiProvider(
                     providers: [
                       Provider<PveNodeOverviewBloc>(
                         create: (context) => PveNodeOverviewBloc(
                           apiClient: state.apiClient,
                           nodeID: nodeID,
-                          init: PveNodeOverviewState.init(),
+                          init: PveNodeOverviewState.init(
+                              rbloc.latestState.isStandalone),
                         )..events.add(UpdateNodeStatus()),
                         dispose: (context, bloc) => bloc.dispose(),
                       ),
index a239a657a3b68331c3e9c5618cd015a031a059ec..1d3cbafc83025df6210e92746ab2096a40f82308 100644 (file)
@@ -20,21 +20,27 @@ abstract class PveNodeOverviewState
   BuiltList<PveNodeServicesModel> get services;
   BuiltList<PveNodesAptUpdateModel> get updates;
   BuiltList<PveNodesDisksListModel> get disks;
+  bool get standalone;
 
-  bool get allServicesRunning => !services.any((s) => s.state != 'running');
-  bool get allDisksHealthy => !disks.any((s) => s.health != 'OK');
+  bool get allServicesRunning => !services.any((s) {
+        if (s.name == 'corosync' && standalone) {
+          return false;
+        }
+        return s.state != 'running';
+      });
 
   PveNodeOverviewState._();
 
   factory PveNodeOverviewState(
           [void Function(PveNodeOverviewStateBuilder) updates]) =
       _$PveNodeOverviewState;
-  factory PveNodeOverviewState.init() => PveNodeOverviewState((b) => b
+  factory PveNodeOverviewState.init(bool standalone) =>
+      PveNodeOverviewState((b) => b
         //base
         ..errorMessage = ''
         ..isBlank = true
         ..isLoading = false
         ..isSuccess = false
-      //class
-      );
+        //class
+        ..standalone = standalone);
 }
index 42c9a2170d435314d89fc325414acd40ff36b716..3eed960a946f4b755f6822f5bbbb99a8b3d713e6 100644 (file)
@@ -55,6 +55,8 @@ abstract class PveResourceState
   PveClusterResourcesModel resourceByID(String id) =>
       resources.singleWhere((element) => element.id == id);
 
+  bool get isStandalone => nodes.length < 2;
+
   PveResourceState._();
 
   factory PveResourceState([void Function(PveResourceStateBuilder) updates]) =