]> git.proxmox.com Git - pve-manager.git/blobdiff - www/manager6/ceph/FS.js
drop jslint lines
[pve-manager.git] / www / manager6 / ceph / FS.js
index 4e8dc9f970c459fe821ed068d138810f10867c35..3b8e1cafa9c8c1faf6a34c2288b255fe8777965f 100644 (file)
@@ -1,10 +1,9 @@
-/*jslint confusion: true */
 Ext.define('PVE.CephCreateFS', {
     extend: 'Proxmox.window.Edit',
     alias: 'widget.pveCephCreateFS',
 
     showTaskViewer: true,
-    //onlineHelp: 'pve_ceph_fs',
+    onlineHelp: 'pveceph_fs_create',
 
     subject: 'Ceph FS',
     isCreate: true,
@@ -36,19 +35,23 @@ Ext.define('PVE.CephCreateFS', {
        },
        {
            xtype: 'proxmoxintegerfield',
-           fieldLabel: 'pg_num',
+           fieldLabel: 'Placement Groups',
            name: 'pg_num',
-           value: 64,
-           emptyText: 64,
+           value: 128,
+           emptyText: 128,
            minValue: 8,
            maxValue: 32768,
            allowBlank: false
        },
        {
            xtype: 'proxmoxcheckbox',
-           fieldLabel: gettext('Add Storage'),
+           fieldLabel: gettext('Add as Storage'),
            value: true,
-           name: 'add_storage'
+           name: 'add-storage',
+           autoEl: {
+               tag: 'div',
+                'data-qtip': gettext('Add the new CephFS to the cluster storage configuration.'),
+           },
        }
     ],
 
@@ -64,58 +67,13 @@ Ext.define('PVE.CephCreateFS', {
     }
 });
 
-Ext.define('PVE.CephCreateMDS', {
-    extend: 'Proxmox.window.Edit',
-    alias: 'widget.pveCephCreateMDS',
-
-    showProgress: true,
-    //onlineHelp: 'pve_ceph_mds',
-
-    subject: 'Ceph MDS',
-    isCreate: true,
-    method: 'POST',
-
-    setNode: function(nodename) {
-       var me = this;
-
-       me.nodename = nodename;
-       me.url = "/nodes/" + nodename + "/ceph/mds/" + nodename;
-    },
-
-    items: [
-       {
-           xtype: 'pveNodeSelector',
-           fieldLabel: gettext('Node'),
-           selectCurNode: true,
-           submitValue: false,
-           allowBlank: false,
-           listeners: {
-               change: function(f, value) {
-                   this.up('pveCephCreateMDS').setNode(value);
-               }
-           }
-       }
-    ],
-
-    initComponent : function() {
-       var me = this;
-
-       if (!me.nodename) {
-           throw "no node name specified";
-       }
-       me.setNode(me.nodename);
-
-       me.callParent();
-    }
-});
-
 Ext.define('PVE.NodeCephFSPanel', {
     extend: 'Ext.panel.Panel',
     xtype: 'pveNodeCephFSPanel',
     mixins: ['Proxmox.Mixin.CBind'],
 
     title: gettext('CephFS'),
-    onlineHelp: 'chapter_pvecm',
+    onlineHelp: 'pveceph_fs',
 
     border: false,
     defaults: {
@@ -152,6 +110,10 @@ Ext.define('PVE.NodeCephFSPanel', {
                        interval: 5 * 1000,
                        autoStart: true,
                        storeid: 'pve-ceph-fs',
+                       proxy: {
+                           type: 'proxmox',
+                           url: '/api2/json/nodes/' + view.nodename + '/ceph/fs'
+                       },
                        model: 'pve-ceph-fs'
                    });
                    view.setStore(Ext.create('Proxmox.data.DiffStore', {
@@ -161,7 +123,17 @@ Ext.define('PVE.NodeCephFSPanel', {
                            order: 'DESC'
                        }
                    }));
-                   Proxmox.Utils.monStoreErrors(view, view.rstore);
+                   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();
+                               });
+                           }
+                       );
+                   });
                    view.rstore.on('load', this.onLoad, this);
                    view.on('destroy', view.rstore.stopUpdate);
                },
@@ -222,118 +194,24 @@ Ext.define('PVE.NodeCephFSPanel', {
            }
        },
        {
-           xtype: 'grid',
+           xtype: 'pveNodeCephServiceList',
            title: gettext('Metadata Servers'),
-           emptyText: Ext.String.format(gettext('No {0} configured.'), 'MDS'),
-           controller: {
-               xclass: 'Ext.app.ViewController',
-
-               init: function(view) {
-                   view.rstore = Ext.create('Proxmox.data.UpdateStore', {
-                       autoLoad: true,
-                       xtype: 'update',
-                       interval: 3 * 1000,
-                       autoStart: true,
-                       storeid: 'pve-ceph-mds',
-                       model: 'pve-ceph-mds'
-                   });
-                   view.setStore(Ext.create('Proxmox.data.DiffStore', {
-                       rstore: view.rstore,
-                       sorters: {
-                           property: 'id',
-                           order: 'DESC'
-                       }
-                   }));
-                   Proxmox.Utils.monStoreErrors(view, view.rstore);
-                   view.rstore.on('load', this.onLoad, this);
-                   view.on('destroy', view.rstore.stopUpdate);
-               },
-               onLoad: function(store, records, success) {
-                   var vm = this.getViewModel();
-                   if (!success || !records) {
-                       vm.set('mdsCount', 0);
-                       return;
-                   }
-                   vm.set('mdsCount', records.length);
-               },
-               onCreateMDS: function() {
-                   var view = this.getView();
-                   view.rstore.stopUpdate();
-                   var win = Ext.create('PVE.CephCreateMDS', {
-                       autoShow: true,
-                       nodename: view.nodename,
-                       listeners: {
-                           destroy: function() {
-                               view.rstore.startUpdate();
-                           }
-                       }
-                   });
+           stateId: 'grid-ceph-mds',
+           type: 'mds',
+           storeLoadCallback: function(store, records, success) {
+               var vm = this.getViewModel();
+               if (!success || !records) {
+                   vm.set('mdsCount', 0);
+                   return;
                }
+               vm.set('mdsCount', records.length);
            },
-           tbar: [
-               {
-                   text: gettext('Create MDS'),
-                   reference: 'createButton',
-                   handler: 'onCreateMDS'
-               },
-               {
-                   text: gettext('Destroy MDS'),
-                   xtype: 'proxmoxStdRemoveButton',
-                   getUrl: function(rec) {
-                       if (!rec.data.host) {
-                           Ext.Msg.alert(gettext('Error'), "entry has no host");
-                           return;
-                       }
-                       return "/nodes/" + rec.data.host + "/ceph/mds/" + rec.data.name;
-                   },
-                   callback: function(options, success, response) {
-                       if (!success) {
-                           Ext.Msg.alert(gettext('Error'), response.htmlStatus);
-                           return;
-                       }
-                       var upid = response.result.data;
-                       var win = Ext.create('Proxmox.window.TaskProgress', { upid: upid });
-                       win.show();
-                   }
-               }
-           ],
-           columns: [
-               {
-                   header: gettext('Name'),
-                   flex: 1,
-                   dataIndex: 'name'
-               },
-               {
-                   header: gettext('Host'),
-                   flex: 1,
-                   dataIndex: 'host'
-               },
-               {
-                   header: gettext('Address'),
-                   flex: 1,
-                   dataIndex: 'addr'
-               },
-               {
-                   header: gettext('State'),
-                   flex: 1,
-                   dataIndex: 'state'
-               }
-           ],
            cbind: {
                nodename: '{nodename}'
            }
        }
     ]
 }, function() {
-    Ext.define('pve-ceph-mds', {
-       extend: 'Ext.data.Model',
-       fields: [ 'name', 'host', 'addr', 'state' ],
-       proxy: {
-           type: 'proxmox',
-           url: "/api2/json/nodes/localhost/ceph/mds"
-       },
-       idProperty: 'name'
-    });
     Ext.define('pve-ceph-fs', {
        extend: 'Ext.data.Model',
        fields: [ 'name', 'data_pool', 'metadata_pool' ],