def SettingsAction(request, action): post_data = request.raw_post_data data = json.loads(post_data) # TODO add cluster_id in data if not len(data): status = "error" msg = "No server selected" else: if action == "update": #vsmapi.add_servers(request, data) try: setting_value = int(data['setting_value']) if 0 < setting_value < 21600: vsmapi.update_setting(request, data['setting_name'], data['setting_value']) status = "success" msg = "Update Success" else: status = "failed" msg = "Update Failed" except: status = 'failed' msg = "Update Failed" else: LOG.error("error in server action %s" % data) status = "error" msg = "Invalid params" resp = dict(message=msg, status=status, data="") resp = json.dumps(resp) return HttpResponse(resp)
def SettingsAction(request, action): data = json.loads(request.body) # TODO add cluster_id in data if not len(data): status = "error" msg = "No server selected" else: if action == "update": #vsmapi.add_servers(request, data) try: setting_value = int(data['keyValue']) if 0 < setting_value < 21600 or setting_value == 0: vsmapi.update_setting(request, data['keyName'], data['keyValue']) status = "success" msg = "Update Success" else: status = "failed" msg = "Update Failed" except: status = 'failed' msg = "Update Failed" else: LOG.error("error in server action %s" % data) status = "error" msg = "Invalid params" resp = dict(message=msg, status=status, data="") resp = json.dumps(resp) return HttpResponse(resp)
def SettingsAction(request, action): data = json.loads(request.body) # TODO add cluster_id in data if not len(data): status = "error" msg = "No server selected" else: if action == "update": key_name = data['keyName'] if key_name == 'pagination': response = shortcuts.redirect(request.build_absolute_uri()) request.session['horizon_pagesize'] = data['keyValue'] response.set_cookie('horizon_pagesize', data['keyValue'], expires=_one_year()) status = "success" msg = "Update Success" resp = dict(message=msg, status=status, data="") resp = json.dumps(resp) return HttpResponse(resp) #vsmapi.add_servers(request, data) try: setting_value = int(data['keyValue']) if 0 < setting_value < 21600 or setting_value == 0: vsmapi.update_setting(request, data['keyName'], data['keyValue']) status = "success" msg = "Update Success" else: status = "failed" msg = "Update Failed" except: status = 'failed' msg = "Update Failed" else: LOG.error("error in server action %s" % data) status = "error" msg = "Invalid params" resp = dict(message=msg, status=status, data="") resp = json.dumps(resp) return HttpResponse(resp)
def SettingsAction(request, action): data = json.loads(request.body) # TODO add cluster_id in data if not len(data): status = "error" msg = "No server selected" else: if action == "update": key_name = data['keyName'] if key_name == 'pagination': response = shortcuts.redirect(request.build_absolute_uri()) request.session['horizon_pagesize'] = data['keyValue'] response.set_cookie('horizon_pagesize', data['keyValue'], expires=_one_year()) status = "success" msg = "Update Success" resp = dict(message=msg, status=status, data="") resp = json.dumps(resp) return HttpResponse(resp) #vsmapi.add_servers(request, data) try: setting_value = int(data['keyValue']) if 0 < setting_value < 21600 or setting_value==0: vsmapi.update_setting(request, data['keyName'], data['keyValue']) status = "success" msg = "Update Success" else: status = "failed" msg = "Update Failed" except: status = 'failed' msg = "Update Failed" else: LOG.error("error in server action %s" % data) status = "error" msg = "Invalid params" resp = dict(message=msg, status=status, data="") resp = json.dumps(resp) return HttpResponse(resp)
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) if 'disk_near_full_threshold' not in settings.keys(): vsmapi.update_setting(self.request,'disk_near_full_threshold','75') if 'disk_full_threshold' not in settings.keys(): vsmapi.update_setting(self.request,'disk_full_threshold','85') disk_near_full_threshold = int(settings.get('disk_near_full_threshold',75)) disk_full_threshold = int(settings.get('disk_full_threshold',85)) 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_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) if 'disk_near_full_threshold' not in settings.keys(): vsmapi.update_setting(self.request, 'disk_near_full_threshold', '75') if 'disk_full_threshold' not in settings.keys(): vsmapi.update_setting(self.request, 'disk_full_threshold', '85') disk_near_full_threshold = int( settings.get('disk_near_full_threshold', 75)) disk_full_threshold = int(settings.get('disk_full_threshold', 85)) 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