]> git.proxmox.com Git - pve-manager.git/commitdiff
ui: ceph: factor out installation mask store monitoring
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Sat, 24 Apr 2021 16:43:07 +0000 (18:43 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Sat, 24 Apr 2021 16:43:07 +0000 (18:43 +0200)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
www/manager6/Utils.js
www/manager6/ceph/FS.js
www/manager6/ceph/Pool.js
www/manager6/ceph/ServiceList.js
www/manager6/ceph/Status.js

index c8ed098ad32e2979d808587e49a9ac54a08d7dbb..3adbfefebfdd072be1958e146ea3bf593fe482b2 100644 (file)
@@ -1577,8 +1577,7 @@ Ext.define('PVE.Utils', {
     },
 
     showCephInstallOrMask: function(container, msg, nodename, callback) {
-       var regex = new RegExp("not (installed|initialized)", "i");
-       if (msg.match(regex)) {
+       if (msg.match(/not (installed|initialized)/i)) {
            if (Proxmox.UserName === 'root@pam') {
                container.el.mask();
                if (!container.down('pveCephInstallWindow')) {
@@ -1601,6 +1600,23 @@ Ext.define('PVE.Utils', {
        }
     },
 
+    monitor_ceph_installed: function(view, rstore, nodename, maskOwnerCt) {
+       PVE.Utils.handleStoreErrorOrMask(
+           view,
+           rstore,
+           /not (installed|initialized)/i,
+           (_, error) => {
+               nodename = nodename || 'localhost';
+               let maskTarget = maskOwnerCt ? view.ownerCt : view;
+               rstore.stopUpdate();
+               PVE.Utils.showCephInstallOrMask(maskTarget, error.statusText, nodename, win => {
+                   view.mon(win, 'cephInstallWindowClosed', () => rstore.startUpdate());
+               });
+           },
+       );
+    },
+
+
     propertyStringSet: function(target, source, name, value) {
        if (source) {
            if (value === undefined) {
index 31f0b582e75fa80d5d3b7b60b0c8c3793a8573d9..57863c485966397005fd135222cf2b6135bef3ee 100644 (file)
@@ -123,17 +123,8 @@ Ext.define('PVE.NodeCephFSPanel', {
                            order: 'DESC',
                        },
                    }));
-                   var regex = new RegExp("not (installed|initialized)", "i");
-                   PVE.Utils.handleStoreErrorOrMask(view, view.rstore, regex, function(me, error) {
-                       me.rstore.stopUpdate();
-                       PVE.Utils.showCephInstallOrMask(me.ownerCt, error.statusText, view.nodename,
-                           function(win) {
-                               me.mon(win, 'cephInstallWindowClosed', function() {
-                                   me.rstore.startUpdate();
-                               });
-                           },
-                       );
-                   });
+                   // manages the "install ceph?" overlay
+                   PVE.Utils.monitor_ceph_installed(view, view.rstore, view.nodename, true);
                    view.rstore.on('load', this.onLoad, this);
                    view.on('destroy', view.rstore.stopUpdate);
                },
index fe8aa7bcb26ba813c91b8bdfb3a69bae592af36a..a60ec13a983c34bd25e452af98f33e3bede7d0b4 100644 (file)
@@ -343,17 +343,8 @@ Ext.define('PVE.node.CephPoolList', {
        });
        let store = Ext.create('Proxmox.data.DiffStore', { rstore: rstore });
 
-       PVE.Utils.handleStoreErrorOrMask(
-           me,
-           rstore,
-           /not (installed|initialized)/i,
-           (_, error) => {
-               rstore.stopUpdate();
-               PVE.Utils.showCephInstallOrMask(me, error.statusText, nodename, win => {
-                   me.mon(win, 'cephInstallWindowClosed', () => rstore.startUpdate());
-               });
-           },
-       );
+       // manages the "install ceph?" overlay
+       PVE.Utils.monitor_ceph_installed(me, rstore, nodename);
 
        var run_editor = function() {
            let rec = sm.getSelection()[0];
index 7effc01ee5dd1f11a30cfafe5fbd509ed6fca3c0..42b1d56fb6140840224f06142015e519704db79a 100644 (file)
@@ -155,17 +155,7 @@ Ext.define('PVE.node.CephServiceList', {
            view.on('destroy', view.rstore.stopUpdate);
 
            if (view.showCephInstallMask) {
-               var regex = new RegExp("not (installed|initialized)", "i");
-               PVE.Utils.handleStoreErrorOrMask(view, view.rstore, regex, function(me, error) {
-                   view.rstore.stopUpdate();
-                   PVE.Utils.showCephInstallOrMask(view.ownerCt, error.statusText, view.nodename,
-                       function(win) {
-                           me.mon(win, 'cephInstallWindowClosed', function() {
-                               view.rstore.startUpdate();
-                           });
-                       },
-                   );
-               });
+               PVE.Utils.monitor_ceph_installed(view, view.rstore, view.nodename, true);
            }
        },
 
index c3545d3738265d79e4b431b8a9cf6a316aae1d9c..93cde4c32545bac7cac334713adc855f67714044 100644 (file)
@@ -389,17 +389,8 @@ Ext.define('PVE.node.CephStatus', {
        me.reads = me.down('#reads');
        me.writes = me.down('#writes');
 
-       var regex = new RegExp("not (installed|initialized)", "i");
-       PVE.Utils.handleStoreErrorOrMask(me, me.store, regex, function(me, error) {
-           me.store.stopUpdate();
-           PVE.Utils.showCephInstallOrMask(me, error.statusText, nodename || 'localhost',
-               function(win) {
-                   me.mon(win, 'cephInstallWindowClosed', function() {
-                       me.store.startUpdate();
-                   });
-               },
-           );
-       });
+       // manages the "install ceph?" overlay
+       PVE.Utils.monitor_ceph_installed(me, me.store, nodename);
 
        me.mon(me.store, 'load', me.updateAll, me);
        me.mon(me.metadatastore, 'load', function(store, records, success) {