def get_data(self): default_limit = 10000 default_sort_dir = "asc" default_sort_keys = ['osd_name'] marker = self.request.GET.get('marker', "") LOG.error("<CEPH_LOG VSM OSD SUMMARY") LOG.error(vsmapi.osd_summary(self.request)) LOG.error(">CEPH_LOG VSM OSD SUMMARY") LOG.error(vsmapi.osd_status(self.request)) LOG.error("CEPH_LOG VSM OSD SUMMARY") try: _osd_status = vsmapi.osd_status(self.request, paginate_opts={ "limit": default_limit, "sort_dir": default_sort_dir, "marker": marker, }) if _osd_status: logging.debug("resp body in view: %s" % _osd_status) except: exceptions.handle(self.request, _('Unable to retrieve osd list. ')) osd_status = [] for _osd in _osd_status: LOG.error("DEVICE") LOG.error(_osd.device.keys()) LOG.error(">DEVICE") osd = { "id":_osd.id, "osd_name": _osd.osd_name, "vsm_status": _osd.operation_status, "osd_state": _osd.state, "crush_weight": _osd.weight, "capacity_total": 0 if not _osd.device['total_capacity_kb']\ else int(_osd.device['total_capacity_kb']/1024),#TODO dict to obj ? "capacity_used": 0 if not _osd.device['used_capacity_kb']\ else int(_osd.device['used_capacity_kb']/1024), "capacity_avail": 0 if not _osd.device['avail_capacity_kb']\ else int(_osd.device['avail_capacity_kb']/1024), "capacity_percent_used": 0 if not _osd.device['total_capacity_kb'] \ else _osd.device['used_capacity_kb']\ * 100 / _osd.device['total_capacity_kb'], #TODO "server": _osd.service['host'], "storage_group": _osd.storage_group['name'], "zone": _osd.zone, "updated_at": get_time_delta(_osd.updated_at), } osd_status.append(osd) return osd_status
def get_data(self): default_limit = 10000; default_sort_dir = "asc"; default_sort_keys = ['osd_name'] marker = self.request.GET.get('marker', "") LOG.error("<CEPH_LOG VSM OSD SUMMARY") LOG.error(vsmapi.osd_summary(self.request)) LOG.error(">CEPH_LOG VSM OSD SUMMARY") LOG.error(vsmapi.osd_status(self.request)) LOG.error("CEPH_LOG VSM OSD SUMMARY") try: _osd_status = vsmapi.osd_status(self.request, paginate_opts={ "limit": default_limit, "sort_dir": default_sort_dir, "marker": marker, }) if _osd_status: logging.debug("resp body in view: %s" % _osd_status) except: exceptions.handle(self.request, _('Unable to retrieve osd list. ')) osd_status = [] for _osd in _osd_status: LOG.error("DEVICE") LOG.error(_osd.device.keys()) LOG.error(">DEVICE") osd = { "id":_osd.id, "osd_name": _osd.osd_name, "vsm_status": _osd.operation_status, "osd_state": _osd.state, "crush_weight": _osd.weight, "capacity_total": 0 if not _osd.device['total_capacity_kb']\ else int(_osd.device['total_capacity_kb']/1024),#TODO dict to obj ? "capacity_used": 0 if not _osd.device['used_capacity_kb']\ else int(_osd.device['used_capacity_kb']/1024), "capacity_avail": 0 if not _osd.device['avail_capacity_kb']\ else int(_osd.device['avail_capacity_kb']/1024), "capacity_percent_used": 0 if not _osd.device['total_capacity_kb'] \ else _osd.device['used_capacity_kb']\ * 100 / _osd.device['total_capacity_kb'], #TODO "server": _osd.service['host'], "storage_group": _osd.storage_group['name'], "zone": _osd.zone, "updated_at": get_time_delta(_osd.updated_at), } osd_status.append(osd) return osd_status
def get_data(self): default_limit = 10000; default_sort_dir = "asc"; default_sort_keys = ['osd_name'] marker = self.request.GET.get('marker', "") osd_id = self.request.GET.get('osdid',"-1") try: _osds = vsmapi.osd_status(self.request, paginate_opts={ "limit": default_limit, "sort_dir": default_sort_dir, "marker": marker, }) except: _osds = [] exceptions.handle(self.request, _('Unable to retrieve osds. ')) if _osds: logging.debug("resp osds in view: %s" % _osds) osds = [] settings = vsmapi.get_setting_dict(self.request) disk_near_full_threshold = int(settings['disk_near_full_threshold']) disk_full_threshold = int(settings['disk_full_threshold']) for _osd in _osds: osd = { 'id': _osd.id, 'osd': _osd.osd_name, 'vsm_status': _osd.operation_status, 'osd_state': _osd.state, 'osd_weight': _osd.weight, 'storage_group': _osd.device['device_type'], 'data_dev_path': _osd.device['path'], 'data_dev_status': _osd.device['state'], 'data_dev_capacity': 0 if not _osd.device['total_capacity_kb']\ else int(_osd.device['total_capacity_kb']/1024), 'data_dev_used': 0 if not _osd.device['used_capacity_kb']\ else int(_osd.device['used_capacity_kb']/1024), 'data_dev_available': 0 if not _osd.device['avail_capacity_kb']\ else int(_osd.device['avail_capacity_kb']/1024), 'journal_device_path': _osd.device['journal'], 'journal_device_status': _osd.device['journal_state'], 'server': _osd.service['host'], 'zone': _osd.zone, 'full_warn': 0 } if osd['data_dev_capacity']: osd['full_status'] = round(osd['data_dev_used'] * 1.0 / osd['data_dev_capacity'] * 100, 2) if osd['full_status'] >= disk_near_full_threshold and osd['full_status'] < disk_full_threshold: osd['full_warn'] = 1 elif osd['full_status'] >=disk_full_threshold: osd['full_warn'] = 2 else: osd['full_status'] = '' if osd_id == "-1": osds.append(osd) #all of the deivces elif str(_osd.id) == str(osd_id): osds.append(osd) #filter the devices by osd_id else: pass return osds
def get_OSD(): in_up = 0 in_down = 0 out_up = 0 out_down = 0 osd_summary = vsmapi.osd_summary(None) _osd_status = vsmapi.osd_status(None) for _osd in _osd_status: print _osd.state if _osd.state == "In-Up": in_up = in_up + 1 elif _osd.state == "In-Down": in_dowm = in_down + 1 elif _osd.state == "Out-Up": out_up = out_up + 1 elif _osd.state == "Out-Down": out_down = out_down + 1 OSD_dict = { "epoch": osd_summary.epoch, "update": get_time_delta(osd_summary.updated_at), "in_up": in_up, "in_down": in_down, "out_up": out_up, "out_down": out_down } OSDdata = json.dumps(OSD_dict) return OSDdata
def get_context_data(self, **kwargs): context = {} storage_group_list = vsmapi.storage_group_status(None,) storage_group = [] for _sg in storage_group_list: sg = { "id":_sg.id ,"name":_sg.name } storage_group.append(sg) context["storage_group"] = storage_group servers = vsmapi.get_server_list(None, ) context["servers"] = servers; if len(servers) > 0: context["OSDList"] = vsmapi.osd_status(self.request, paginate_opts={ "service_id": servers[0].service_id }) ret = vsmapi.get_available_disks(self.request, search_opts={ "server_id": servers[0].id , "result_mode":"get_disks", }) disks = ret['disks'] or [] disks_list = [disk for disk in disks if disk.find('by-path') != -1] context["available_disks"] = disks_list return context
def get_OSD(): in_up = 0 in_down = 0 out_up = 0 out_down = 0 osd_summary = vsmapi.osd_summary(None) _osd_status = vsmapi.osd_status(None) for _osd in _osd_status: print _osd.state if _osd.state == "In-Up": in_up=in_up+1 elif _osd.state == "In-Down": in_dowm=in_down+1 elif _osd.state == "Out-Up": out_up=out_up+1 elif _osd.state == "Out-Down": out_down=out_down+1 OSD_dict = {"epoch":osd_summary.epoch ,"update":get_time_delta(osd_summary.updated_at) ,"in_up":in_up ,"in_down":in_down ,"out_up":out_up ,"out_down":out_down } OSDdata = json.dumps(OSD_dict) return OSDdata
def get_OSD(): #get the full or near full threshold settings = vsmapi.get_setting_dict(None) disk_near_full_threshold = int(settings['disk_near_full_threshold']) disk_full_threshold = int(settings['disk_full_threshold']) in_up = 0 in_down = 0 out_up = 0 out_down = 0 available_count = 0 near_full_count = 0 full_count = 0 osd_summary = vsmapi.osd_summary(None) _osd_status = vsmapi.osd_status(None) for _osd in _osd_status: _osd_capacity_avaliable = 0 if not _osd.device['avail_capacity_kb']\ else int(_osd.device['avail_capacity_kb']/1024) _osd_capacity_used = 0 if not _osd.device['used_capacity_kb']\ else int(_osd.device['used_capacity_kb']/1024) _osd_capacity_total = 0 if not _osd.device['total_capacity_kb']\ else int(_osd.device['total_capacity_kb']/1024) if _osd_capacity_total and _osd.state in [ "In-Up", "In-Down", "Out-Up", "Out-Down", "Out-Down-Autoout" ]: _osd_capacity_status = round( _osd_capacity_used * 1.0 / _osd_capacity_total * 100, 2) if _osd_capacity_status >= disk_full_threshold: full_count = full_count + 1 elif _osd_capacity_status >= disk_near_full_threshold: near_full_count = near_full_count + 1 else: available_count = available_count + 1 if _osd.state == "In-Up": in_up = in_up + 1 elif _osd.state == "In-Down": in_down = in_down + 1 elif _osd.state == "Out-Up": out_up = out_up + 1 elif _osd.state == "Out-Down" or _osd.state == "Out-Down-Autoout": out_down = out_down + 1 OSD_dict = { "epoch": osd_summary.epoch, "update": get_time_delta(osd_summary.updated_at), "in_up": in_up, "in_down": in_down, "out_up": out_up, "out_down": out_down, "capacity_full_count": full_count, "capacity_near_full_count": near_full_count, "capacity_available_count": available_count } OSDdata = json.dumps(OSD_dict) return OSDdata
def get_data(self): default_limit = 10000 default_sort_dir = "asc" default_sort_keys = ['osd_name'] marker = self.request.GET.get('marker', "") osd_id = self.request.GET.get('osdid', "-1") try: _osds = vsmapi.osd_status(self.request, paginate_opts={ "limit": default_limit, "sort_dir": default_sort_dir, "marker": marker, }) except: _osds = [] exceptions.handle(self.request, _('Unable to retrieve osds. ')) if _osds: logging.debug("resp osds in view: %s" % _osds) osds = [] settings = vsmapi.get_setting_dict(self.request) host_near_full_threshold = settings['host_near_full_threshold'] #host_full_threshold = settings['host_full_threshold'] for _osd in _osds: osd = { 'id': _osd.id, 'osd': _osd.osd_name, 'vsm_status': _osd.operation_status, 'osd_state': _osd.state, 'osd_weight': _osd.weight, 'storage_group': _osd.device['device_type'], 'data_dev_path': _osd.device['path'], 'data_dev_status': _osd.device['state'], 'data_dev_capacity': 0 if not _osd.device['total_capacity_kb']\ else int(_osd.device['total_capacity_kb']/1024), 'data_dev_used': 0 if not _osd.device['used_capacity_kb']\ else int(_osd.device['used_capacity_kb']/1024), 'data_dev_available': 0 if not _osd.device['avail_capacity_kb']\ else int(_osd.device['avail_capacity_kb']/1024), 'journal_device_path': _osd.device['journal'], 'journal_device_status': _osd.device['journal_state'], 'server': _osd.service['host'], 'zone': _osd.zone, 'full_warn': 0 } osd['full_status'] = round( osd['data_dev_used'] * 1.0 / osd['data_dev_capacity'] * 100, 2) if osd['full_status'] >= host_near_full_threshold: osd['full_warn'] = 1 if osd_id == "-1": osds.append(osd) #all of the deivces elif str(_osd.id) == str(osd_id): osds.append(osd) #filter the devices by osd_id else: pass return osds
def get_OSD(): #get the full or near full threshold settings = vsmapi.get_setting_dict(None) disk_near_full_threshold = int(settings['disk_near_full_threshold']) disk_full_threshold = int(settings['disk_full_threshold']) in_up = 0 in_down = 0 out_up = 0 out_down = 0 available_count = 0 near_full_count = 0 full_count = 0 osd_summary = vsmapi.osd_summary(None) _osd_status = vsmapi.osd_status(None) for _osd in _osd_status: _osd_capacity_avaliable = 0 if not _osd.device['avail_capacity_kb']\ else int(_osd.device['avail_capacity_kb']/1024) _osd_capacity_used = 0 if not _osd.device['used_capacity_kb']\ else int(_osd.device['used_capacity_kb']/1024) _osd_capacity_total = 0 if not _osd.device['total_capacity_kb']\ else int(_osd.device['total_capacity_kb']/1024) if _osd_capacity_total: _osd_capacity_status = round(_osd_capacity_used * 1.0 / _osd_capacity_total * 100, 2) if _osd_capacity_status >= disk_full_threshold: full_count = full_count + 1 elif _osd_capacity_status >= disk_near_full_threshold: near_full_count = near_full_count + 1 else: available_count = available_count + 1 if _osd.state == "In-Up": in_up=in_up+1 elif _osd.state == "In-Down": in_dowm=in_down+1 elif _osd.state == "Out-Up": out_up=out_up+1 elif _osd.state == "Out-Down": out_down=out_down+1 OSD_dict = {"epoch":osd_summary.epoch ,"update":get_time_delta(osd_summary.updated_at) ,"in_up":in_up ,"in_down":in_down ,"out_up":out_up ,"out_down":out_down ,"capacity_full_count":full_count ,"capacity_near_full_count":near_full_count ,"capacity_available_count":available_count } OSDdata = json.dumps(OSD_dict) return OSDdata
def get_text(self): osds = vsmapi.osd_status(self.request) osd_list = [] for _osd in osds: osd = { "osd_name": _osd.osd_name, "server": _osd.service['host'], "storage_group": _osd.storage_group['name'], "capacity_total": _osd.device['total_capacity_kb'],#TODO dict to obj ? "capacity_used": _osd.device['used_capacity_kb'], "capacity_avail": _osd.device['avail_capacity_kb'], } osd_list.append(osd) return json.dumps(osd_list)
def get_context_data(self, **kwargs): context = {} storage_group_list = vsmapi.storage_group_status(None, ) storage_group = [] for _sg in storage_group_list: sg = {"id": _sg.id, "storage_class": _sg.storage_class} storage_group.append(sg) context["storage_group"] = storage_group servers = vsmapi.get_server_list(None, ) context["servers"] = servers if len(servers) > 0: context["OSDList"] = vsmapi.osd_status( self.request, paginate_opts={"service_id": servers[0].service_id}) return context
def get_data(self): default_limit = 10000; default_sort_dir = "asc"; default_sort_keys = ['osd_name'] marker = self.request.GET.get('marker', "") try: _osds = vsmapi.osd_status(self.request, paginate_opts={ "limit": default_limit, "sort_dir": default_sort_dir, "marker": marker, }) except: _osds = [] exceptions.handle(self.request, _('Unable to retrieve osds. ')) if _osds: logging.debug("resp osds in view: %s" % _osds) osds = [] for _osd in _osds: osd = { 'id': _osd.id, 'osd': _osd.osd_name, 'vsm_status': _osd.operation_status, 'osd_state': _osd.state, 'osd_weight': _osd.weight, 'storage_group': _osd.device['device_type'], 'data_dev_path': _osd.device['path'], 'data_dev_status': _osd.device['state'], 'data_dev_capacity': 0 if not _osd.device['total_capacity_kb']\ else int(_osd.device['total_capacity_kb']/1024), 'data_dev_used': 0 if not _osd.device['used_capacity_kb']\ else int(_osd.device['used_capacity_kb']/1024), 'data_dev_available': 0 if not _osd.device['avail_capacity_kb']\ else int(_osd.device['avail_capacity_kb']/1024), 'journal_device_path': _osd.device['journal'], 'journal_device_status': _osd.device['journal_state'], 'server': _osd.service['host'], 'zone': _osd.zone, } osds.append(osd) return osds
def get_data(self): default_limit = 10000 default_sort_dir = "asc" default_sort_keys = ['osd_name'] marker = self.request.GET.get('marker', "") try: _osds = vsmapi.osd_status(self.request, paginate_opts={ "limit": default_limit, "sort_dir": default_sort_dir, "marker": marker, }) except: _osds = [] exceptions.handle(self.request, _('Unable to retrieve osds. ')) if _osds: logging.debug("resp osds in view: %s" % _osds) osds = [] for _osd in _osds: osd = { 'id': _osd.id, 'osd': _osd.osd_name, 'vsm_status': _osd.operation_status, 'osd_state': _osd.state, 'osd_weight': _osd.weight, 'storage_group': _osd.device['device_type'], 'data_dev_path': _osd.device['path'], 'data_dev_status': _osd.device['state'], 'data_dev_capacity': 0 if not _osd.device['total_capacity_kb']\ else int(_osd.device['total_capacity_kb']/1024), 'data_dev_used': 0 if not _osd.device['used_capacity_kb']\ else int(_osd.device['used_capacity_kb']/1024), 'data_dev_available': 0 if not _osd.device['avail_capacity_kb']\ else int(_osd.device['avail_capacity_kb']/1024), 'journal_device_path': _osd.device['journal'], 'journal_device_status': _osd.device['journal_state'], 'server': _osd.service['host'], 'zone': _osd.zone, } osds.append(osd) return osds
def get_osd_list(request): data = json.loads(request.body) service_id = int(data["service_id"]) osds = vsmapi.osd_status(None, paginate_opts={"service_id": service_id}) osd_list = [] for _osd in osds: osd = { "id": _osd.id, "name": _osd.osd_name, "weight": _osd.weight, "storage_group": _osd.device['device_type'], "journal": _osd.device['journal'], "device": _osd.device['path'] } print _osd osd_list.append(osd) osd_list_data_json = {"osdlist": osd_list} osd_list_data = json.dumps(osd_list_data_json) return HttpResponse(osd_list_data)
def get_context_data(self, **kwargs): context = {} storage_group_list = vsmapi.storage_group_status(None,) storage_group = [] for _sg in storage_group_list: sg = { "id":_sg.id ,"storage_class":_sg.storage_class } storage_group.append(sg) context["storage_group"] = storage_group servers = vsmapi.get_server_list(None, ) context["servers"] = servers; if len(servers) > 0: context["OSDList"] = vsmapi.osd_status(self.request, paginate_opts={ "service_id": servers[0].service_id }) return context
def get_osd_list(request): data = json.loads(request.body) service_id = int(data["service_id"]) osds = vsmapi.osd_status(None, paginate_opts={ "service_id": service_id }) osd_list = [] for _osd in osds: osd = { "id":_osd.id ,"name":_osd.osd_name ,"weight":_osd.weight ,"storage_group":_osd.device['device_type'] ,"journal":_osd.device['journal'] ,"device":_osd.device['path'] } print _osd osd_list.append(osd) osd_list_data_json = {"osdlist":osd_list} osd_list_data = json.dumps(osd_list_data_json) return HttpResponse(osd_list_data)
def get_osd_list_data(service_id): osd_list = vsmapi.osd_status(None, paginate_opts={ "service_id": int(service_id) }) return osd_list
def get_data(self): default_limit = 10000; default_sort_dir = "asc"; default_sort_keys = ['osd_name'] marker = self.request.GET.get('marker', "") try: _osd_status = vsmapi.osd_status(self.request, paginate_opts={ "limit": default_limit, "sort_dir": default_sort_dir, "marker": marker, }) if _osd_status: logging.debug("resp body in view: %s" % _osd_status) except: exceptions.handle(self.request, _('Unable to retrieve osd list. ')) page_index = int(self.request.GET.get('pageIndex',1)) page_size = 20 page_count = int(len(_osd_status)/page_size) page_mod = len(_osd_status)%page_size if page_mod > 0: page_count = page_count + 1 pager_size = 10 pager_count = int(page_count/(pager_size)) pager_index = int(page_index/(pager_size)) if page_count%pager_size > 0: pager_count = pager_count + 1 if page_index%pager_size > 0: pager_index = pager_index + 1 dataStartIndex = (page_index-1)*page_size dataEndIndex = dataStartIndex+page_size _osd_status = _osd_status[dataStartIndex:dataEndIndex] osd_status = [] for _osd in _osd_status: LOG.info("DEVICE:%s"%_osd.device.keys()) #LOG.error(_osd.device.keys()) #LOG.error(">DEVICE") osd = { "id":_osd.id, "osd_name": _osd.osd_name, "vsm_status": _osd.operation_status, "osd_state": _osd.state, "crush_weight": _osd.weight, "capacity_total": 0 if not _osd.device['total_capacity_kb']\ else int(_osd.device['total_capacity_kb']/1024),#TODO dict to obj ? "capacity_used": 0 if not _osd.device['used_capacity_kb']\ else int(_osd.device['used_capacity_kb']/1024), "capacity_avail": 0 if not _osd.device['avail_capacity_kb']\ else int(_osd.device['avail_capacity_kb']/1024), "capacity_percent_used": 0 if not _osd.device['total_capacity_kb'] \ else _osd.device['used_capacity_kb']\ * 100 / _osd.device['total_capacity_kb'], #TODO "server": _osd.service['host'], "storage_group": _osd.storage_group['name'], "zone": _osd.zone, "updated_at": get_time_delta(_osd.updated_at), "pageCount":page_count, "pageIndex":page_index, "pagerCount":pager_count, "pagerIndex":pager_index, "deviceInfo":"" } osd_status.append(osd) return osd_status
def get_osd_list_data(service_id): osd_list = vsmapi.osd_status(None, paginate_opts={"service_id": int(service_id)}) return osd_list
def get_data(self): default_limit = 10000; default_sort_dir = "asc"; default_sort_keys = ['osd_name'] marker = self.request.GET.get('marker', "") _osd_status = "" try: _osd_status = vsmapi.osd_status(self.request, paginate_opts={ "limit": default_limit, "sort_dir": default_sort_dir, "marker": marker, }) if _osd_status: logging.debug("resp body in view: %s" % _osd_status) except: exceptions.handle(self.request, _('Unable to retrieve osd list. ')) page_index = int(self.request.GET.get('pageIndex',1)) page_size = 20 page_count = int(len(_osd_status)/page_size) page_mod = len(_osd_status)%page_size if page_mod > 0: page_count = page_count + 1 pager_size = 10 pager_count = int(page_count/(pager_size)) pager_index = int(page_index/(pager_size)) if page_count%pager_size > 0: pager_count = pager_count + 1 if page_index%pager_size > 0: pager_index = pager_index + 1 dataStartIndex = (page_index-1)*page_size dataEndIndex = dataStartIndex+page_size _osd_status = _osd_status[dataStartIndex:dataEndIndex] osd_status = [] for _osd in _osd_status: LOG.info("DEVICE:%s"%_osd.device.keys()) #LOG.error(_osd.device.keys()) #LOG.error(">DEVICE") osd = { "id":_osd.id, "osd_name": _osd.osd_name, "vsm_status": _osd.operation_status, "osd_state": _osd.state, "crush_weight": _osd.weight, "capacity_total": 0 if not _osd.device['total_capacity_kb']\ else int(_osd.device['total_capacity_kb']/1024),#TODO dict to obj ? "capacity_used": 0 if not _osd.device['used_capacity_kb']\ else int(_osd.device['used_capacity_kb']/1024), "capacity_avail": 0 if not _osd.device['avail_capacity_kb']\ else int(_osd.device['avail_capacity_kb']/1024), "capacity_percent_used": 0 if not _osd.device['total_capacity_kb'] \ else _osd.device['used_capacity_kb']\ * 100 / _osd.device['total_capacity_kb'], #TODO "server": _osd.service['host'], "storage_group": _osd.storage_group['name'], "zone": _osd.zone, "updated_at": get_time_delta(_osd.updated_at), "pageCount":page_count, "pageIndex":page_index, "pagerCount":pager_count, "pagerIndex":pager_index, "deviceInfo":"" } osd_status.append(osd) return osd_status