]>
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 onlineHelp
: 'chapter_pveceph',
57 stateId
: 'grid-ceph-monitor',
59 initComponent: function() {
62 var nodename
= me
.pveSelNode
.data
.node
;
64 throw "no node name specified";
67 var sm
= Ext
.create('Ext.selection.RowModel', {});
69 var rstore
= Ext
.create('PVE.data.UpdateStore', {
71 storeid
: 'ceph-mon-list' + nodename
,
72 model
: 'ceph-mon-list',
75 url
: "/api2/json/nodes/" + nodename
+ "/ceph/mon"
79 var store
= Ext
.create('PVE.data.DiffStore', {
81 sorters
: [{ property
: 'name'}]
84 PVE
.Utils
.monStoreErrors(me
, rstore
);
86 var service_cmd = function(cmd
) {
87 var rec
= sm
.getSelection()[0];
89 Ext
.Msg
.alert(gettext('Error'), "entry has no host");
92 PVE
.Utils
.API2Request({
93 url
: "/nodes/" + rec
.data
.host
+ "/ceph/" + cmd
,
95 params
: { service
: "mon." + rec
.data
.name
},
96 success: function(response
, options
) {
97 var upid
= response
.result
.data
;
98 var win
= Ext
.create('PVE.window.TaskProgress', { upid
: upid
});
101 failure: function(response
, opts
) {
102 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
107 var start_btn
= new PVE
.button
.Button({
108 text
: gettext('Start'),
112 service_cmd("start");
116 var stop_btn
= new PVE
.button
.Button({
117 text
: gettext('Stop'),
125 var create_btn
= new Ext
.Button({
126 text
: gettext('Create'),
128 var win
= Ext
.create('PVE.CephCreateMon', {
135 var remove_btn
= new PVE
.button
.Button({
136 text
: gettext('Remove'),
139 handler: function() {
140 var rec
= sm
.getSelection()[0];
142 if (!rec
.data
.host
) {
143 Ext
.Msg
.alert(gettext('Error'), "entry has no host");
147 PVE
.Utils
.API2Request({
148 url
: "/nodes/" + rec
.data
.host
+ "/ceph/mon/" +
151 success: function(response
, options
) {
152 var upid
= response
.result
.data
;
153 var win
= Ext
.create('PVE.window.TaskProgress', { upid
: upid
});
156 failure: function(response
, opts
) {
157 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
166 tbar
: [ start_btn
, stop_btn
, create_btn
, remove_btn
],
169 header
: gettext('Name'),
172 renderer: function(v
) { return "mon." + v
; },
176 header
: gettext('Host'),
179 renderer: function(v
) {
180 return v
|| 'unknown';
185 header
: gettext('Quorum'),
188 renderer
: PVE
.Utils
.format_boolean
,
192 header
: gettext('Address'),
199 activate
: rstore
.startUpdate
,
200 destroy
: rstore
.stopUpdate
208 Ext
.define('ceph-mon-list', {
209 extend
: 'Ext.data.Model',
210 fields
: [ 'addr', 'name', 'rank', 'host', 'quorum' ],