示例#1
0
 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))
示例#2
0
 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)
示例#3
0
 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))
示例#4
0
 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)
示例#5
0
 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)
示例#6
0
 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))
示例#7
0
 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))
示例#8
0
 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)
示例#9
0
    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)
示例#10
0
    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)
示例#11
0
    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)
示例#12
0
 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)
示例#13
0
 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))
示例#14
0
 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)
示例#15
0
 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)
示例#16
0
 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)
示例#17
0
    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)
示例#18
0
 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)
示例#19
0
 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)
示例#20
0
    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)
示例#21
0
 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)
示例#22
0
    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)
示例#23
0
 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))
示例#24
0
    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)
示例#25
0
 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)
示例#26
0
 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)
示例#27
0
 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}))
示例#28
0
 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))
示例#29
0
 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)
示例#30
0
 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)