def del_pool(self, cluster_id, pool_id): if not cluster_id: raise exc.CommandError( 'no valid cluster id is provided to delete pool!') if not pool_id: raise exc.CommandError('no valid id is provided to delete pool!') return self._delete(self.base_url.clusters(cluster_id).pools(pool_id))
def get_networks(self, cluster_id, server_id, **kwargs): if cluster_id is None: raise exc.CommandError('must specify cluster id!') if server_id is None: raise exc.CommandError('must specify ceph server id!') networks_path = self.base_url.clusters(cluster_id).servers( server_id).networks return self._list(networks_path)
def del_group(self, cluster_id, group_id): if not cluster_id: raise exc.CommandError( 'no valid cluster id is provided to delete group!') if not group_id: raise exc.CommandError( 'no valid group id is provided to delete group!') self._delete(self.base_url.clusters(cluster_id).groups(group_id))
def get_server_monitors(self, cluster_id, server_id): if not cluster_id: raise exc.CommandError('Must specify cluster id!') if not server_id: raise exc.CommandError('Must specify server id!') return self._list( self.base_url.clusters(cluster_id).servers(server_id).mons, None, None)
def get_ceph_disks(self, cluster_id, server_id): if not cluster_id: raise exc.CommandError( 'no valid cluster id is provided to retrieve ceph disks!') if not server_id: raise exc.CommandError( 'no valid server id is provided to retrieve ceph disks!') return self._list( self.base_url.clusters(cluster_id).servers(server_id).cephdisks)
def delete_dir(self, cluster_id, fs_id, inode): if not cluster_id: raise exc.CommandError('Must provide cluster id!') if not fs_id: raise exc.CommandError('Must provide file system id!') if not inode: raise exc.CommandError('Must provide directory inode!') self._delete( self.base_url.clusters(cluster_id).fses(fs_id).dirs(inode))
def delete_backup_rb(self, cluster_id, rbtask_id): if cluster_id is None: raise exc.CommandError('must provide cluster id ' 'to delete backup rbtask') if rbtask_id is None: raise exc.CommandError('must provide rbtask id ' 'to delete backup rbtask') self._delete( self.base_url.clusters(cluster_id).backup.rbtasks(rbtask_id))
def modify_pool(self, cluster_id, pool_id, **kwargs): if not cluster_id: raise exc.CommandError( 'no valid cluster id is provided to modify pool!') if not pool_id: raise exc.CommandError('no valid id is provided to modify pool!') entity = dict() entity.update(kwargs) return self._update( self.base_url.clusters(cluster_id).pools(pool_id), entity)
def manipulate_cluster(self, cluster_id, operation): if cluster_id is None: raise exc.CommandError('must specify cluster id to update!') if operation not in CLUSTER_OPERATTION: raise exc.CommandError( 'must specify valid operation to manipulate cluster') entity = {'entity': {'operation': operation}} return self._update(self.base_url.clusters(cluster_id), entity)
def modify_server(self, cluster_id, server_id, **kwargs): if cluster_id is None: raise exc.CommandError('must specify ceph cluster id to update!') if server_id is None: raise exc.CommandError('must specify ceph server id to update!') _body = dict(operation='move') entity = {'entity': _body} return self._update( self.base_url.clusters(cluster_id).servers(server_id), entity)
def delete_rb_policy(self, cluster_id, pool_id): if cluster_id is None: raise exc.CommandError( 'must specify cluster id to delete backup policy') if pool_id is None: raise exc.CommandError( 'must specify pool id to delete backup policy') self._delete( self.base_url.clusters(cluster_id).pools(pool_id).rbpolicy)
def modify_emailnotification(self, id, **kwargs): if id is None: raise exc.CommandError('must specify mail id to update!') allowed = ["receiver", "severity_mask", "enabled"] for key in kwargs.keys(): if key not in allowed: raise exc.CommandError('%s is not a valid parameter' % key) entity = dict() entity.update(kwargs) return self._update(self.base_url.notification.emails(id), entity)
def delete_bucket(self, cluster_id, group_id, bucket_id): if not cluster_id: raise exc.CommandError('Cluster id should be provided!') if not group_id: raise exc.CommandError('Group id should be provided!') if not bucket_id: raise exc.CommandError('Bucket id should be provided!') return self._delete( self.base_url.clusters(cluster_id).groups(group_id).buckets( bucket_id))
def get_rbd_detail(self, cluster_id, pool_id, rbd_id): if not cluster_id: raise exc.CommandError('must specify cluster id!') if not pool_id: raise exc.CommandError('must specify server id!') if not rbd_id: raise exc.CommandError('must specify osd id!') return self._get( self.base_url.clusters(cluster_id).pools(pool_id).rbds(rbd_id), None, None)
def modify_alert(self, alert_id, **kwargs): if alert_id is None: raise exc.CommandError('must specify alert id to update!') allowed = ["threshold", "period", "status", "severity"] for key in kwargs.keys(): if key not in allowed: raise exc.CommandError('%s is not a valid parameter' % key) entity = dict() entity.update(kwargs) return self._update(self.base_url.alerts(alert_id), entity)
def add_mon(self, cluster_id, server_id): if not cluster_id: raise exc.CommandError( 'no valid cluster id provided to add monitor!') if not server_id: raise exc.CommandError( 'no valid server id is provided to add monitor!') entity = dict() return self._create( self.base_url.clusters(cluster_id).servers(server_id).mons, entity)
def get_rb_policy(self, cluster_id, pool_id): if cluster_id is None: raise exc.CommandError( 'must specify cluster id to query backup policy') if pool_id is None: raise exc.CommandError( 'must specify pool id to query backup policy') return self._get( self.base_url.clusters(cluster_id).pools(pool_id).rbpolicy)
def add_osd(self, cluster_id, server_id, disks): if not cluster_id: raise exc.CommandError( 'no valid cluster id is provided to add disks!') if not server_id: raise exc.CommandError( 'no valid server id is provided to add disks!') entity = dict(uuids=disks) return self._create( self.base_url.clusters(cluster_id).servers(server_id).osds, entity)
def get_osd_detail(self, cluster_id, server_id, osd_id): if not cluster_id: raise exc.CommandError('must specify cluster id!') if not server_id: raise exc.CommandError('must specify server id!') if not osd_id: raise exc.CommandError('must specify osd id!') return self._get( self.base_url.clusters(cluster_id).servers(server_id).osds(osd_id), None, None)
def modify_cluster(self, cluster_id, name, addr, **kwargs): if cluster_id is None: raise exc.CommandError('must specify ceph cluster id to update!') _body = dict(name=name, addr=addr, operation='modify') entity = {'entity': _body} if not entity: raise exc.CommandError('no valid information is provided to ' 'update ceph cluster %s: %s!' % (cluster_id, kwargs)) return self._update(self.base_url.clusters(cluster_id), entity)
def add_bucket(self, cluster_id, group_id, parent_id, **kwargs): if not cluster_id: raise exc.CommandError('Cluster id should be provided!') if not group_id: raise exc.CommandError('Group id should be provided!') if parent_id is None: parent_id = -1 kwargs.update({'parent_id': parent_id}) return self._create( self.base_url.clusters(cluster_id).groups(group_id).buckets, kwargs)
def get_osds_capacity(self, cluster_id, server_id): if not cluster_id: raise exc.CommandError( 'no valid cluster id is provided to retrieve osds!') if not server_id: raise exc.CommandError( 'no valid server id is provided to retrieve osds!') return self._get( self.base_url.clusters(cluster_id).servers( server_id).osds_capacity, None)
def get_dirs(self, cluster_id, fs_id, path): if not cluster_id: raise exc.CommandError('Must provide cluster id!') if not fs_id: raise exc.CommandError('Must provide file system id!') if not path: raise exc.CommandError('Must provide directory path!') query_params = {"path": str(path)} uri_path = str(self.base_url.clusters(cluster_id).fses(fs_id).dirs) return self._list( options.build_url_encoded(uri_path, None, query_params))
def modify_cluster_conf(self, cluster_id, **kwargs): if not cluster_id: raise exc.CommandError( 'no valid cluster id provided to modify cluster config!') if not kwargs: raise exc.CommandError( 'no valid properties provided to update cluster config!') entity = dict() entity.update(kwargs) return self._update(self.base_url.clusters(cluster_id).config, entity)
def update_backup_rb(self, cluster_id, rbtask_id, **kwargs): if not cluster_id: raise exc.CommandError('must provide cluster id ' 'to update backup rbtask') if not kwargs: raise exc.CommandError('must provide properties ' 'to update backup rbtask') entity = dict() entity.update(kwargs) return self._update( self.base_url.clusters(cluster_id).backup.rbtasks(rbtask_id), entity)
def get_snapshots(self, cluster_id, pool_id, rbd_id): if not (type(cluster_id) == int): raise exc.CommandError( 'No valid cluster id is provided to get snaps!') if not (type(pool_id) == int): raise exc.CommandError( 'No valid pool id is provided to get snaps!') if not (type(rbd_id) == int): raise exc.CommandError('No valid rbd id is provided to get snaps!') return self._list( self.base_url.clusters(cluster_id).pools(pool_id).rbds( rbd_id).snapshots)
def list_buckets(self, cluster_id, group_id, parent_id): if not cluster_id: raise exc.CommandError('Cluster id should be provided!') if not group_id: raise exc.CommandError('Group id should be provided!') if parent_id is None: parent_id = -1 buckets_uri = self.base_url.clusters(cluster_id).groups( group_id).buckets return self._list( options.build_url_encoded(str(buckets_uri), None, {"parent_id": parent_id}))
def delete_osd(self, cluster_id, server_id, osd_id): if not cluster_id: raise exc.CommandError( 'no valid cluster id is provided to delete osd!') if not server_id: raise exc.CommandError( 'no valid server id is provided to delete osd!') if not osd_id: raise exc.CommandError( 'no valid monitor id is provided to delete osd!') return self._delete( self.base_url.clusters(cluster_id).servers(server_id).osds(osd_id))
def option_pool(self, cluster_id, pool_id, **kwargs): if not cluster_id: raise exc.CommandError( 'No valid cluster id is provided to set cache pool!') if not pool_id: raise exc.CommandError( 'No valid id is provided to set cache pool!') option_data = dict() option_data.update(kwargs) return self._update( self.base_url.clusters(cluster_id).pools(pool_id).option, option_data)
def modify_alerttype(self, alerttype_id, **kwargs): if alerttype_id is None: raise exc.CommandError('must specify alerttype id to update!') allowed = [ "default_threshold", "default_period", "default_trapenabled", "default_alertenabled", "default_severity" ] for key in kwargs.keys(): if key not in allowed: raise exc.CommandError('%s is not a valid parameter' % key) entity = dict() entity.update(kwargs) return self._update(self.base_url.alerttypes(alerttype_id), entity)