コード例 #1
0
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
コード例 #2
0
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
コード例 #3
0
ファイル: views.py プロジェクト: Sherlockpxy/VSM-for-fitos
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
コード例 #4
0
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
コード例 #5
0
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
コード例 #6
0
    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
コード例 #7
0
    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
コード例 #8
0
 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
コード例 #9
0
 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