]>
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/Manager',
6 onlineHelp
: 'pve_ceph_monitors',
10 setNode: function(nodename
) {
13 me
.nodename
= nodename
;
14 me
.url
= "/nodes/" + nodename
+ "/ceph/mon";
17 initComponent : function() {
22 throw "no node name specified";
25 me
.setNode(me
.nodename
);
33 xtype
: 'pveNodeSelector',
35 fieldLabel
: gettext('Host'),
39 change: function(f
, value
) {
51 Ext
.define('PVE.node.CephMonList', {
52 extend
: 'Ext.grid.GridPanel',
53 alias
: ['widget.pveNodeCephMonList'],
55 onlineHelp
: 'chapter_pveceph',
58 stateId
: 'grid-ceph-monitor',
60 initComponent: function() {
63 var nodename
= me
.pveSelNode
.data
.node
;
65 throw "no node name specified";
68 var sm
= Ext
.create('Ext.selection.RowModel', {});
70 var rstore
= Ext
.create('Proxmox.data.UpdateStore', {
72 storeid
: 'ceph-mon-list' + nodename
,
73 model
: 'ceph-mon-list',
76 url
: "/api2/json/nodes/" + nodename
+ "/ceph/mon"
80 var store
= Ext
.create('PVE.data.DiffStore', {
82 sorters
: [{ property
: 'name'}]
85 PVE
.Utils
.monStoreErrors(me
, rstore
);
87 var service_cmd = function(cmd
) {
88 var rec
= sm
.getSelection()[0];
90 Ext
.Msg
.alert(gettext('Error'), "entry has no host");
93 PVE
.Utils
.API2Request({
94 url
: "/nodes/" + rec
.data
.host
+ "/ceph/" + cmd
,
96 params
: { service
: "mon." + rec
.data
.name
},
97 success: function(response
, options
) {
98 var upid
= response
.result
.data
;
99 var win
= Ext
.create('PVE.window.TaskProgress', { upid
: upid
});
102 failure: function(response
, opts
) {
103 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
108 var start_btn
= new PVE
.button
.Button({
109 text
: gettext('Start'),
113 service_cmd("start");
117 var stop_btn
= new PVE
.button
.Button({
118 text
: gettext('Stop'),
126 var create_btn
= new Ext
.Button({
127 text
: gettext('Create'),
129 var win
= Ext
.create('PVE.CephCreateMon', {
136 var remove_btn
= new PVE
.button
.Button({
137 text
: gettext('Remove'),
140 handler: function() {
141 var rec
= sm
.getSelection()[0];
143 if (!rec
.data
.host
) {
144 Ext
.Msg
.alert(gettext('Error'), "entry has no host");
148 PVE
.Utils
.API2Request({
149 url
: "/nodes/" + rec
.data
.host
+ "/ceph/mon/" +
152 success: function(response
, options
) {
153 var upid
= response
.result
.data
;
154 var win
= Ext
.create('PVE.window.TaskProgress', { upid
: upid
});
157 failure: function(response
, opts
) {
158 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
167 tbar
: [ start_btn
, stop_btn
, create_btn
, remove_btn
],
170 header
: gettext('Name'),
173 renderer: function(v
) { return "mon." + v
; },
177 header
: gettext('Host'),
180 renderer: function(v
) {
181 return v
|| 'unknown';
186 header
: gettext('Quorum'),
189 renderer
: PVE
.Utils
.format_boolean
,
193 header
: gettext('Address'),
200 activate
: rstore
.startUpdate
,
201 destroy
: rstore
.stopUpdate
209 Ext
.define('ceph-mon-list', {
210 extend
: 'Ext.data.Model',
211 fields
: [ 'addr', 'name', 'rank', 'host', 'quorum' ],