[pve-devel] [PATCH manager] ui: remove ceph-mgr pools from rbd pool selection

Stefan Sterz s.sterz at proxmox.com
Fri Oct 14 10:01:01 CEST 2022


On 10/13/22 16:11, Alwin Antreich wrote:
> On October 12, 2022 3:22:18 PM GMT+02:00, Stefan Sterz <s.sterz at proxmox.com> wrote:
>> when using a hyper-converged cluster it was previously possible to add
>> the pool used by the ceph-mgr modules (".mgr" since quincy or
>> "device_health_metrics" previously) as an RBD storage. this would lead
>> to all kinds of errors when that storage was used (e.g.: VMs missing
>> their disks after a migration). hence, filter these pools from the
>> list of available pools.
>>
>> Signed-off-by: Stefan Sterz <s.sterz at proxmox.com>
>> ---
>> www/manager6/form/CephPoolSelector.js | 14 ++++++++++++--
>> 1 file changed, 12 insertions(+), 2 deletions(-)
>>
>> diff --git a/www/manager6/form/CephPoolSelector.js b/www/manager6/form/CephPoolSelector.js
>> index 5b96398d..eabb04ef 100644
>> --- a/www/manager6/form/CephPoolSelector.js
>> +++ b/www/manager6/form/CephPoolSelector.js
>> @@ -15,9 +15,17 @@ Ext.define('PVE.form.CephPoolSelector', {
>> 	    throw "no nodename given";
>> 	}
>>
>> +	let filterCephMgrPools = (item) => {
>> +	    let name = item.data.pool_name;
>> +	    return name !== ".mgr" && name !== "device_health_metrics";
>> +	};
>> +
>> 	var store = Ext.create('Ext.data.Store', {
>> 	    fields: ['name'],
>> 	    sorters: 'name',
>> +	    filters: [
>> +		filterCephMgrPools,
>> +	    ],
>> 	    proxy: {
>> 		type: 'proxmox',
>> 		url: '/api2/json/nodes/' + me.nodename + '/ceph/pools',
>> @@ -32,8 +40,10 @@ Ext.define('PVE.form.CephPoolSelector', {
>>
>> 	store.load({
>> 	    callback: function(rec, op, success) {
>> -		if (success && rec.length > 0) {
>> -		    me.select(rec[0]);
>> +		let filteredRec = rec.filter(filterCephMgrPools);
>> +
>> +		if (success && filteredRec.length > 0) {
>> +		    me.select(filteredRec[0]);
>> 		}
>> 	    },
>> 	});
> A thought, each ceph pool has an application associated (eg. rbd/cephfs). You could use these to create an inclusion filter. You can see them with `ceph osd pool application get`.

Ah thanks! :) I was looking for something like that. Sadly the API
endpoint used here does not return this information. I'll check how much
work it is to extend it and start working on a v2 of this patch!

> From the voice from the off. :⁠-⁠)
> 
> Cheers,
> Alwin
> Hi,
> 






More information about the pve-devel mailing list