import { action, observable, set } from 'mobx';
import MonitorBase from 'stores/prometheus/monitor-base';
export class StorageClusterStore extends MonitorBase {
@observable
storageClusterUsage = {
isLoading: false,
data: {
used: 0,
total: 0,
},
};
@action
getStorageClusterUsage = async (query = '') => {
set(this.storageClusterUsage, {
isLoading: true,
data: {
used: 0,
total: 0,
},
});
const query1 = 'ceph_cluster_total_used_bytes';
const query2 = 'ceph_cluster_total_bytes';
const [used, total] = await Promise.all([
await this.buildRequest(query1 + query, 'current'),
await this.buildRequest(query2 + query, 'current'),
]);
set(this.storageClusterUsage, {
isLoading: false,
data: {
used:
used.data.result.length === 0
? 0
: this.formatToGiB(used.data.result[0].value[1]),
total:
total.data.result.length === 0
? 0
: this.formatToGiB(total.data.result[0].value[1]),
},
});
};
}
const globalStorageClusterStore = new StorageClusterStore();
export default globalStorageClusterStore;