[pve-devel] [PATCH manager 3/3] ui: cephfs: only allow CephFS creation if MDS is configured

Dominik Csapak d.csapak at proxmox.com
Tue Nov 27 14:06:39 CET 2018


Reviewed-by: Dominik Csapak <d.csapak at proxmox.com>
Tested-by: Dominik Csapak <d.csapak at proxmox.com>

On 11/26/18 6:22 PM, Thomas Lamprecht wrote:
> Introduce the mdsCount again, I know remember again why I had it in
> v3 of my CephFS series.. Use this to disable the CephFS create button
> if we have no MDS configured, as this is a requirement.
> Further change the gettext for 'No XY configure' to a format string
> so that it can be reused.
> 
> Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
> ---
> 
> while the latter is not directly related it can be seen as 'notify
> the user about no configured MDS' a bit better, so all in one patch.
> 
>   www/manager6/ceph/FS.js | 37 ++++++++++++++++++++++++++-----------
>   1 file changed, 26 insertions(+), 11 deletions(-)
> 
> diff --git a/www/manager6/ceph/FS.js b/www/manager6/ceph/FS.js
> index d67eec37..4e8dc9f9 100644
> --- a/www/manager6/ceph/FS.js
> +++ b/www/manager6/ceph/FS.js
> @@ -114,7 +114,7 @@ Ext.define('PVE.NodeCephFSPanel', {
>       xtype: 'pveNodeCephFSPanel',
>       mixins: ['Proxmox.Mixin.CBind'],
>   
> -    title: gettext('Cluster Administration'),
> +    title: gettext('CephFS'),
>       onlineHelp: 'chapter_pvecm',
>   
>       border: false,
> @@ -125,17 +125,23 @@ Ext.define('PVE.NodeCephFSPanel', {
>   	}
>       },
>   
> +    viewModel: {
> +	parent: null,
> +	data: {
> +	    cephfsConfigured: false,
> +	    mdsCount: 0
> +	},
> +	formulas: {
> +	    canCreateFS: function(get) {
> +		return (!get('cephfsConfigured') && get('mdsCount') > 0);
> +	    }
> +	}
> +    },
> +
>       items: [
>   	{
>   	    xtype: 'grid',
> -	    title: gettext('CephFS'),
> -	    viewModel: {
> -		parent: null,
> -		data: {
> -		    cephfsConfigured: false
> -		}
> -	    },
> -	    emptyText: gettext('No CephFS configured.'),
> +	    emptyText: Ext.String.format(gettext('No {0} configured.'), 'CephFS'),
>   	    controller: {
>   		xclass: 'Ext.app.ViewController',
>   
> @@ -190,7 +196,7 @@ Ext.define('PVE.NodeCephFSPanel', {
>   		    handler: 'onCreate',
>   		    bind: {
>   			// only one CephFS per Ceph cluster makes sense for now
> -			disabled: '{cephfsConfigured}'
> +			disabled: '{!canCreateFS}'
>   		    }
>   		}
>   	    ],
> @@ -218,6 +224,7 @@ Ext.define('PVE.NodeCephFSPanel', {
>   	{
>   	    xtype: 'grid',
>   	    title: gettext('Metadata Servers'),
> +	    emptyText: Ext.String.format(gettext('No {0} configured.'), 'MDS'),
>   	    controller: {
>   		xclass: 'Ext.app.ViewController',
>   
> @@ -238,9 +245,17 @@ Ext.define('PVE.NodeCephFSPanel', {
>   			}
>   		    }));
>   		    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();
> 





More information about the pve-devel mailing list