def get_hosts_number(self, cluster_id, status=0, **kwargs): if not cluster_id: raise exc.CommandError('Must provide cluster id!') path = "%s/$count" % str(self.base_url.clusters(cluster_id).servers) entity = {'status': status} entity.update(kwargs) return self._get(options.build_url_encoded(path, None, entity))
def list_groups(self, cluster_id, underlying=0): if not cluster_id: raise exc.CommandError('Cluster id should be provided!') groups_uri = self.base_url.clusters(cluster_id).groups return self._list( options.build_url_encoded(str(groups_uri), None, {"underlying": underlying}))
def get_external_site_detail(self, site_id, **kwargs): if not site_id: raise exc.CommandError('must specify site id to get detail!') entity = dict() entity.update(kwargs) return self._get( options.build_url_encoded(str(self.base_url.backup.sites(site_id)), None, entity))
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 get_emailnotifications(self, **kwargs): items = [ 'enabled', ] for key in kwargs.keys(): if key not in items: raise exc.CommandError('%s is not a valid parameter' % key) entity = dict() entity.update(kwargs) return self._list( options.build_url_encoded(str(self.base_url.notification.emails), None, entity))
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 get_latest_kpi(self, **kwargs): itemList = ('clusterid', 'target') for item in itemList: if not kwargs.has_key(item): raise exc.CommandError('must specify {}!'.format(item)) entity = dict() entity.update(kwargs) return self._list( options.build_url_encoded(str(self.base_url.kpi.latest), None, entity))
def kpi_export(self, **kwargs): itemList = ('format', 'cluster', 'clusterid', 'time_from', 'time_till', 'granularity') for item in itemList: if not kwargs.has_key(item): raise exc.CommandError('must specify {}!'.format(item)) entity = dict() entity.update(kwargs) return self._get( options.build_url_encoded(str(self.base_url.kpi.export), None, entity))
def get_history(self, entity_id, item_type, item_name=None, **kwargs): if item_type is None: raise exc.CommandError('must specify item_type!') if type is None: raise exc.CommandError('must specify query entity type!') # we need encode query params here entity = {'entity_id': entity_id, 'item_type': item_type} item_name and entity.update({'item_name': item_name}) kwargs and entity.update(kwargs) return self._get( options.build_url_encoded(str(self.base_url.history), None, entity))
def get_kpi_history(self, **kwargs): itemList = ('clusterid', 'target', 'kpi', 'time_from', 'time_till', 'time_zone_offset', 'granularity') for item in itemList: if not kwargs.has_key(item): raise exc.CommandError('must specify {}!'.format(item)) if item == 'time_zone_offset': time_zone = kwargs[item].strip() kwargs['time_from'] = self.horizon2local( time_zone, kwargs['time_from']) kwargs['time_till'] = self.horizon2local( time_zone, kwargs['time_till']) entity = dict() entity.update(kwargs) LOG.info('hahahahahaha: %s' % kwargs['time_zone_offset']) result = self._get( options.build_url_encoded(str(self.base_url.kpi), None, entity)) LOG.info("result: %s" % result) #return self._get(options.build_url_encoded(str(self.base_url.kpi), None, entity)) return result
def get_alert_events(self, **kwargs): return self._get( options.build_url_encoded(str(self.base_url.alertevents), None, kwargs))
def get_logs(self, **kwargs): return self._get( options.build_url_encoded(str(self.base_url.logs), None, kwargs))
def get_pools(self, cluster_id, **kwargs): return self._get( options.build_url_encoded( str(self.base_url.clusters(cluster_id).pools), None, kwargs))
def get_backup_log(self, cluster_id, **kwargs): return self._get( options.build_url_encoded( str(self.base_url.clusters(cluster_id).backup.logs), None, kwargs))
def list_backup_rb(self, cluster_id, **kwargs): return self._get( options.build_url_encoded( str(self.base_url.clusters(cluster_id).backup.rbtasks), None, kwargs))