[pve-devel] [PATCH v3 manager 3/3] added basic ability to install ceph via gui

Tim Marx t.marx at proxmox.com
Wed Jan 23 09:43:01 CET 2019


> Dominik Csapak <d.csapak at proxmox.com> hat am 22. Januar 2019 um 14:22 geschrieben:
> 
> 
> one comment inline, otherwise looks good
> 
> On 1/22/19 12:22 PM, Tim Marx wrote:
> > Signed-off-by: Tim Marx <t.marx at proxmox.com>
> > ---
> > changed since v2:
> > * whitespace fix
> > 
> >   www/manager6/Makefile              |  1 +
> >   www/manager6/ceph/Status.js        | 19 ++++++++++++++++-
> >   www/manager6/window/CephInstall.js | 42 ++++++++++++++++++++++++++++++++++++++
> >   3 files changed, 61 insertions(+), 1 deletion(-)
> >   create mode 100644 www/manager6/window/CephInstall.js
> > 
> > diff --git a/www/manager6/Makefile b/www/manager6/Makefile
> > index e75f0de6..c4dcb786 100644
> > --- a/www/manager6/Makefile
> > +++ b/www/manager6/Makefile
> > @@ -83,6 +83,7 @@ JSSRC= 				                 	\
> >   	window/BackupConfig.js				\
> >   	window/Settings.js				\
> >   	window/StartupEdit.js				\
> > +	window/CephInstall.js				\
> >   	panel/NotesView.js				\
> >   	grid/ResourceGrid.js				\
> >   	grid/PoolMembers.js				\
> > diff --git a/www/manager6/ceph/Status.js b/www/manager6/ceph/Status.js
> > index 78fa1cf8..45702c20 100644
> > --- a/www/manager6/ceph/Status.js
> > +++ b/www/manager6/ceph/Status.js
> > @@ -308,7 +308,24 @@ Ext.define('PVE.node.CephStatus', {
> >   	me.version = me.sp.get('ceph-version');
> >   	me.change_version(me.version);
> >   
> > -	Proxmox.Utils.monStoreErrors(me,me.store);
> > +	me.mon(me.store.proxy, 'exception', function (proxy, response) {
> > +
> > +	    if (response.statusText.match(/not installed/i)) {
> > +		if (Proxmox.UserName === 'root at pam') {
> > +		    me.store.stopUpdate();
> > +		    me.el.mask(gettext("Ceph not installed"), ['pve-static-mask']);
> > +
> > +		    var win = Ext.create('PVE.ceph.Install', {
> > +			nodename: nodename
> > +		    });
> > +		    win.show();
> > +		} else {
> > +		    me.store.stopUpdate();
> > +		    me.el.mask(gettext("Ceph not installed. Log in as root to install."), ['pve-static-mask']);
> > +		}
> > +	    }
> 
> withouth having tested that code, i think we
> should show all errors here like with monStoreErrors
> (e.g. 403/401/500 etc.)
> 
> as i read the code now, we simply ignore all other errors,
> or am i missing something?

Thanks for that, forgot to add the general check again after testing.

> > +	});
> > +
> >   	me.mon(me.store, 'load', me.updateAll, me);
> >   	me.on('destroy', me.store.stopUpdate);
> >   	me.store.startUpdate();
> > diff --git a/www/manager6/window/CephInstall.js b/www/manager6/window/CephInstall.js
> > new file mode 100644
> > index 00000000..9152c44f
> > --- /dev/null
> > +++ b/www/manager6/window/CephInstall.js
> > @@ -0,0 +1,42 @@
> > +Ext.define('PVE.ceph.Install', {
> > +    extend: 'Ext.window.Window',
> > +
> > +    width: 300,
> > +    title: gettext('Install Ceph'),
> > +
> > +    nodename: undefined,
> > +    cephVersion: 'luminous',
> > +
> > +    initComponent: function () {
> > +	var me = this;
> > +	if (!me.nodename) {
> > +	    throw "no node name specified";
> > +	}
> > +
> > +	me.items = [
> > +	    {
> > +		html: '<p>' + gettext('Ceph is not installed on this node. ') +
> > +		gettext('Would you like to install it now?')+'</p>',
> > +		border: false,
> > +		padding: 5
> > +	    }
> > +	];
> > +
> > +	me.buttons = [
> > +	    {
> > +		xtype: 'pveConsoleButton',
> > +		disabled: Proxmox.UserName !== 'root at pam',
> > +		text: gettext('Install Ceph-') + me.cephVersion,
> > +		consoleType: 'cmd',
> > +		cmd: "ceph_install",
> > +		nodename: me.nodename
> > +	    }
> > +	];
> > +
> > +	Ext.applyIf(me, {
> > +		modal: true,
> > +		border: false
> > +	});
> > +	me.callParent();
> > +    }
> > +});
> > 
> 
> 
> _______________________________________________
> pve-devel mailing list
> pve-devel at pve.proxmox.com
> https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel




More information about the pve-devel mailing list