]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/ceph/Monitor.js
1 Ext
.define('PVE.CephCreateMon', {
2 extend
: 'PVE.window.Edit',
3 alias
: ['widget.pveCephCreateMon'],
5 subject
: 'Ceph Monitor',
9 setNode: function(nodename
) {
12 me
.nodename
= nodename
;
13 me
.url
= "/nodes/" + nodename
+ "/ceph/mon";
16 initComponent : function() {
17 /*jslint confusion: true */
21 throw "no node name specified";
24 me
.setNode(me
.nodename
);
32 xtype
: 'pveNodeSelector',
34 fieldLabel
: gettext('Host'),
38 change: function(f
, value
) {
50 Ext
.define('PVE.node.CephMonList', {
51 extend
: 'Ext.grid.GridPanel',
52 alias
: ['widget.pveNodeCephMonList'],
54 initComponent: function() {
57 var nodename
= me
.pveSelNode
.data
.node
;
59 throw "no node name specified";
62 var sm
= Ext
.create('Ext.selection.RowModel', {});
64 var rstore
= Ext
.create('PVE.data.UpdateStore', {
66 storeid
: 'ceph-mon-list' + nodename
,
67 model
: 'ceph-mon-list',
70 url
: "/api2/json/nodes/" + nodename
+ "/ceph/mon"
74 var store
= Ext
.create('PVE.data.DiffStore', { rstore
: rstore
});
76 PVE
.Utils
.monStoreErrors(me
, rstore
);
78 var service_cmd = function(cmd
) {
79 var rec
= sm
.getSelection()[0];
81 Ext
.Msg
.alert(gettext('Error'), "entry has no host");
84 PVE
.Utils
.API2Request({
85 url
: "/nodes/" + rec
.data
.host
+ "/ceph/" + cmd
,
87 params
: { service
: "mon." + rec
.data
.name
},
88 success: function(response
, options
) {
89 var upid
= response
.result
.data
;
90 var win
= Ext
.create('PVE.window.TaskProgress', { upid
: upid
});
93 failure: function(response
, opts
) {
94 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
99 var start_btn
= new PVE
.button
.Button({
100 text
: gettext('Start'),
104 service_cmd("start");
108 var stop_btn
= new PVE
.button
.Button({
109 text
: gettext('Stop'),
117 var create_btn
= new Ext
.Button({
118 text
: gettext('Create'),
120 var win
= Ext
.create('PVE.CephCreateMon', {
127 var remove_btn
= new PVE
.button
.Button({
128 text
: gettext('Remove'),
131 handler: function() {
132 var rec
= sm
.getSelection()[0];
134 if (!rec
.data
.host
) {
135 Ext
.Msg
.alert(gettext('Error'), "entry has no host");
139 PVE
.Utils
.API2Request({
140 url
: "/nodes/" + rec
.data
.host
+ "/ceph/mon/" +
143 success: function(response
, options
) {
144 var upid
= response
.result
.data
;
145 var win
= Ext
.create('PVE.window.TaskProgress', { upid
: upid
});
148 failure: function(response
, opts
) {
149 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
159 tbar
: [ start_btn
, stop_btn
, create_btn
, remove_btn
],
162 header
: gettext('Name'),
165 renderer: function(v
) { return "mon." + v
; },
169 header
: gettext('Host'),
172 renderer: function(v
) {
173 return v
|| 'unknown';
178 header
: gettext('Quorum'),
181 renderer
: PVE
.Utils
.format_boolean
,
185 header
: gettext('Address'),
192 activate
: rstore
.startUpdate
,
193 destroy
: rstore
.stopUpdate
201 Ext
.define('ceph-mon-list', {
202 extend
: 'Ext.data.Model',
203 fields
: [ 'addr', 'name', 'rank', 'host', 'quorum' ],