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(): 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 osd(): osd_summary = vsmapi.osd_summary(None) osd_summary_dict = { "epoch":osd_summary.epoch ,"total":osd_summary.num_osds ,"up": osd_summary.num_up_osds ,"in": osd_summary.num_in_osds ,"update":get_time_delta(osd_summary.updated_at) } return osd_summary_dict
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_data(self): default_limit = 10000 default_sort_dir = "asc" default_sort_keys = ['osd_name'] marker = self.request.GET.get('marker', "") LOG.info("CEPH_LOG VSM OSD SUMMARY:%s" % vsmapi.osd_summary(self.request)) #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.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), } 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_summary(self): osd_summary = vsmapi.osd_summary(self.request) LOG.debug("dir osd_summary:%s"%(dir(osd_summary))) #LOG.error(dir(osd_summary)) #LOG.error("(osd_summary)") data = SortedDict() data["Osdmap Epoch"] = osd_summary.epoch data["Total OSDs"] = osd_summary.num_osds data["OSDs up"] = osd_summary.num_up_osds data["OSDs in"] = osd_summary.num_in_osds #data["Near Full"] = osd_summary.nearfull #data["Full"] = osd_summary.full data["Last Updated"] = get_time_delta(osd_summary.updated_at) return data
def get_summary(self): osd_summary = vsmapi.osd_summary(self.request) LOG.error("(osd_summary)") LOG.error(dir(osd_summary)) LOG.error("(osd_summary)") data = SortedDict() data["Osdmap Epoch"] = osd_summary.epoch data["Total OSDs"] = osd_summary.num_osds data["OSDs up"] = osd_summary.num_up_osds data["OSDs in"] = osd_summary.num_in_osds #data["Near Full"] = osd_summary.nearfull #data["Full"] = osd_summary.full data["Last Updated"] = get_time_delta(osd_summary.updated_at) return data