def _GET(self, *param, **params): host_id = self.chk_hostby1(param) if host_id is None: return web.notfound() watch_id = param[1] if watch_id is None: return web.notfound() watch = w_findby1(self.orm, watch_id) self.view.watch = watch self.view.plugins = WATCH_PLUGINS plugin_selector = plugin_selector_to_dict(watch.plugin_selector) self.view.plugin_selector = plugin_selector if watch.plugin == COLLECTD_PLUGIN_LIBVIRT: libvirt_type = "" if plugin_selector['type'] == COLLECTD_LIBVIRT_TYPE['VCPU']: libvirt_type = "vcpu" elif plugin_selector['type'] == COLLECTD_LIBVIRT_TYPE['CPU_TOTAL']: libvirt_type = "cpu_total" elif plugin_selector['type'] == COLLECTD_LIBVIRT_TYPE['DISK_OPS'] or \ plugin_selector['type'] == COLLECTD_LIBVIRT_TYPE['DISK_OCTETS']: libvirt_type = "disk" elif plugin_selector['type'] == COLLECTD_LIBVIRT_TYPE['IF_OCTETS'] or \ plugin_selector['type'] == COLLECTD_LIBVIRT_TYPE['IF_PACKETS'] or \ plugin_selector['type'] == COLLECTD_LIBVIRT_TYPE['IF_ERRORS'] or \ plugin_selector['type'] == COLLECTD_LIBVIRT_TYPE['IF_DROPPED']: libvirt_type = "interface" self.view.libvirt_type = libvirt_type if self.is_mode_input() is True: warning_value = threshold_value_to_dict(watch.warning_value) failure_value = threshold_value_to_dict(watch.failure_value) self.view.threshold_value_1 = warning_value.values()[0] self.view.threshold_value_2 = failure_value.values()[0] self.view.threshold_type = failure_value.keys()[0] self.view.use_percentage = watch.is_failure_percentage self.view.supported_langs = DEFAULT_LANGS.keys() self.view.memory_size = string.atol( get_proc_meminfo()["MemTotal"][0]) / 1024 ## disk info self.view.disk_size_info = {} for disk_data in get_fs_info(): disk_target = re.sub(r'^/dev/', '', disk_data['Filesystem']) disk_target = re.sub(r'/', '_', disk_target) self.view.disk_size_info[disk_target] = disk_data['1048576-blocks'] self.view.interface_type = COLLECTD_INTERFACE_TYPE self.view.processer_num = len(get_proc_cpuinfo().keys()) self.view.mta = "%s:%s" % ( karesansui.config['application.mail.server'], karesansui.config['application.mail.port']) self.view.watch_interval = WATCH_INTERVAL return True
def _GET(self, *param, **params): host_id = self.chk_hostby1(param) if host_id is None: return web.notfound() watch_id = param[1] if watch_id is None: return web.notfound() watch = w_findby1(self.orm, watch_id) self.view.watch = watch self.view.plugins = WATCH_PLUGINS plugin_selector = plugin_selector_to_dict(watch.plugin_selector) self.view.plugin_selector = plugin_selector if watch.plugin == COLLECTD_PLUGIN_LIBVIRT: libvirt_type = "" if plugin_selector['type'] == COLLECTD_LIBVIRT_TYPE['VCPU']: libvirt_type = "vcpu" elif plugin_selector['type'] == COLLECTD_LIBVIRT_TYPE['CPU_TOTAL']: libvirt_type = "cpu_total" elif plugin_selector['type'] == COLLECTD_LIBVIRT_TYPE['DISK_OPS'] or \ plugin_selector['type'] == COLLECTD_LIBVIRT_TYPE['DISK_OCTETS']: libvirt_type = "disk" elif plugin_selector['type'] == COLLECTD_LIBVIRT_TYPE['IF_OCTETS'] or \ plugin_selector['type'] == COLLECTD_LIBVIRT_TYPE['IF_PACKETS'] or \ plugin_selector['type'] == COLLECTD_LIBVIRT_TYPE['IF_ERRORS'] or \ plugin_selector['type'] == COLLECTD_LIBVIRT_TYPE['IF_DROPPED']: libvirt_type = "interface" self.view.libvirt_type = libvirt_type if self.is_mode_input() is True: warning_value = threshold_value_to_dict(watch.warning_value) failure_value = threshold_value_to_dict(watch.failure_value) self.view.threshold_value_1 = warning_value.values()[0] self.view.threshold_value_2 = failure_value.values()[0] self.view.threshold_type = failure_value.keys()[0] self.view.use_percentage = watch.is_failure_percentage self.view.supported_langs = DEFAULT_LANGS.keys() self.view.memory_size = string.atol(get_proc_meminfo()["MemTotal"][0]) / 1024 ## disk info self.view.disk_size_info = {} for disk_data in get_fs_info(): disk_target = re.sub(r'^/dev/', '', disk_data['Filesystem']) disk_target = re.sub(r'/', '_', disk_target) self.view.disk_size_info[disk_target] = disk_data['1048576-blocks'] self.view.interface_type = COLLECTD_INTERFACE_TYPE self.view.processer_num = len(get_proc_cpuinfo().keys()) self.view.mta = "%s:%s" % (karesansui.config['application.mail.server'], karesansui.config['application.mail.port']) self.view.watch_interval = WATCH_INTERVAL return True
def _GET(self, *param, **params): host_id = self.chk_hostby1(param) if host_id is None: return web.notfound() if self.is_mode_input() is True: self.view.plugins = WATCH_PLUGINS self.view.cpu_type_instance = COLLECTD_CPU_TYPE_INSTANCE self.view.memory_type_instance = COLLECTD_MEMORY_TYPE_INSTANCE self.view.df_ds = COLLECTD_DF_DS self.view.interface_type = COLLECTD_INTERFACE_TYPE self.view.interface_ds = COLLECTD_INTERFACE_DS self.view.load_ds = COLLECTD_LOAD_DS cpu_logical_number = len(get_proc_cpuinfo()) self.view.cpu_logical_number = range(1, cpu_logical_number+1) self.view.memory_size = string.atol(get_proc_meminfo()["MemTotal"][0]) / 1024 self.view.df_list = get_fs_info() self.view.interface_list = get_ifconfig_info().keys() ## guest os list from karesansui.lib.utils import get_dom_list from karesansui.lib.virt.virt import KaresansuiVirtConnection from karesansui.lib.merge import MergeGuest self.view.dom_list = get_dom_list() dom_info = {} for domname in get_dom_list(): kvc = KaresansuiVirtConnection() virt = kvc.search_kvg_guests(domname)[0] dom_info[domname] = {} dom_info[domname]['network'] = [] dom_info[domname]['disk'] = [] dom_info[domname]['disk_size'] = {} for net_dev in virt.get_interface_info(): dom_info[domname]['network'].append(net_dev['target']['dev']) for disk in virt.get_disk_info(): dom_info[domname]['disk'].append(disk['target']['dev']) dom_info[domname]['disk_size'][disk['target']['dev']] = disk['source']['size'] dom_info[domname]['vcpu'] = virt.get_vcpus_info()['max_vcpus'] kvc.close() self.view.dom_info = dom_info ## disk info self.view.disk_size_info = {} for disk_data in get_fs_info(): self.view.disk_size_info[disk_data['Filesystem']] = disk_data['1048576-blocks'] self.view.processer_num = len(get_proc_cpuinfo().keys()) self.view.supported_langs = DEFAULT_LANGS.keys() self.view.myaddress = self.me.email self.view.mta = "%s:%s" % (karesansui.config['application.mail.server'], karesansui.config['application.mail.port']) self.view.alert_trigger_count = DEFAULT_ALERT_TRIGGER_COUNT; self.view.slient_period = DEFAULT_SLIENT_PERIOD; return True if not validates_query(self): self.logger.debug("Show watch is failed, " "Invalid query value " "- query=%s" % self.input.q) return web.badrequest(self.view.alert) if not validates_page(self): self.logger.debug("Show watch is failed, " "Invalid page value - page=%s" % self.input.p) return web.badrequest(self.view.alert) if is_param(self.input, 'q') is True: watchs = w_findbyname_or_plugin(self.orm, self.input.q) if not watchs: self.logger.debug("Show watch is failed, " "Could not find watch " "- query=%s" % self.input.q) return web.nocontent() self.view.search_value = self.input.q else: watchs = w_findbyall(self.orm) self.view.search_value = "" if is_param(self.input, 'p') is True: start = int(self.input.p) else: start = 0 pager = Pager(watchs, start, WATCH_LIST_RANGE) if not pager.exist_now_page() and is_param(self.input, 'p') is True: self.logger.debug("Show watch is failed, " "Could not find page - page=%s" % self.input.p) return web.nocontent() self.view.pager = pager self.view.input = self.input return True
def _GET(self, *param, **params): host_id = self.chk_hostby1(param) if host_id is None: return web.notfound() self.view.host_id = host_id target = param[1] if target is None: return web.notfound() self.view.target = target group_display = False dev_list = [] graph_type = [] rrd = RRD() if target == "cpu": for dev in range(0, len(get_proc_cpuinfo())): if rrd.check_rrd_file_exist("cpu", dev): dev_list.append(dev) graph_type = ['default'] elif target == "memory": dev_list = ['default'] graph_type = ['default'] elif target == "df": df_list = get_fs_info() for fs in df_list: if COLLECTD_DF_RRPORT_BY_DEVICE is True: dev = fs['Filesystem'] dev = re.sub(r'^/dev/', '', dev) dev = re.sub(r'/', '_', dev) else: dev = fs['Mounted'] if dev == "/": dev = "root" else: dev = re.sub(r'^/', '', dev) dev = re.sub(r'/', '_', dev) if rrd.check_rrd_file_exist("df", dev): dev_list.append(dev) graph_type = ['default'] elif target == "disk": group_display = True disk_list = get_hdd_list() for disk in disk_list: dev = disk dev = re.sub(r'^/dev/', '', dev) if rrd.check_rrd_file_exist("disk", dev): dev_list.append(dev) graph_type = ['merged', 'octets', 'ops', 'time'] elif target == "interface": group_display = True if_list = get_ifconfig_info().keys() for dev in if_list: if rrd.check_rrd_file_exist("interface", dev): dev_list.append(dev) graph_type = ['packets', 'octets', 'errors'] elif target == "load": dev_list = ['default'] graph_type = ['default'] elif target == "uptime": dev_list = ['default'] graph_type = ['default'] elif target == "users": dev_list = ['default'] graph_type = ['default'] elif target == "libvirt": virt_cpu_type = ['default'] virt_disk_type = ['octets', 'ops'] virt_interface_type = ['packets', 'octets', 'errors', 'dropped'] virt_list = {} virt_file_exist = {} try: kvc = KaresansuiVirtConnection() for domname in get_dom_list(): virt_list[domname] = {} if rrd.set_rrd_dir_host(domname) is False: virt_file_exist[domname] = False continue try: virt = kvc.search_kvg_guests(domname)[0] except: virt_file_exist[domname] = False continue virt_list[domname]['vcpu'] = {} if rrd.check_rrd_file_exist("libvirt", "total", "vcpu"): virt_list[domname]['vcpu']['total'] = virt_cpu_type for i in range(virt.get_vcpus_info()['max_vcpus']): if rrd.check_rrd_file_exist("libvirt", i, "vcpu"): virt_list[domname]['vcpu'][i] = virt_cpu_type virt_list[domname]['disk'] = {} for disk in virt.get_disk_info(): if rrd.check_rrd_file_exist("libvirt", disk['target']['dev'], "disk"): virt_list[domname]['disk'][ disk['target']['dev']] = virt_disk_type virt_list[domname]['interface'] = {} for net_dev in virt.get_interface_info(): if rrd.check_rrd_file_exist("libvirt", net_dev['target']['dev'], "interface"): virt_list[domname]['interface'][ net_dev['target']['dev']] = virt_interface_type if virt_list[domname]['vcpu'] == {} and \ virt_list[domname]['disk'] == {} and \ virt_list[domname]['interface'] == {}: virt_list[domname] = {} virt_file_exist[domname] = False else: virt_file_exist[domname] = True finally: kvc.close() self.view.virt_list = virt_list self.view.virt_file_exist = virt_file_exist self.view.group_display = group_display dev_list.sort() self.view.dev_list = dev_list self.view.graph_type = graph_type return True
def _GET(self, *param, **params): host_id = self.chk_hostby1(param) if host_id is None: return web.notfound() self.view.host_id = host_id target = param[1] if target is None: return web.notfound() self.view.target = target group_display = False dev_list = [] graph_type = [] rrd = RRD() if target == "cpu": for dev in range(0, len(get_proc_cpuinfo())): if rrd.check_rrd_file_exist("cpu", dev): dev_list.append(dev) graph_type = ['default'] elif target == "memory": dev_list = ['default'] graph_type = ['default'] elif target == "df": df_list = get_fs_info() for fs in df_list: if COLLECTD_DF_RRPORT_BY_DEVICE is True: dev = fs['Filesystem'] dev = re.sub(r'^/dev/', '', dev) dev = re.sub(r'/', '_', dev) else: dev = fs['Mounted'] if dev == "/": dev = "root" else: dev = re.sub(r'^/', '', dev) dev = re.sub(r'/', '_', dev) if rrd.check_rrd_file_exist("df", dev): dev_list.append(dev) graph_type = ['default'] elif target == "disk": group_display = True disk_list = get_hdd_list() for disk in disk_list: dev = disk dev = re.sub(r'^/dev/', '', dev) if rrd.check_rrd_file_exist("disk", dev): dev_list.append(dev) graph_type = ['merged', 'octets', 'ops', 'time'] elif target == "interface": group_display = True if_list = get_ifconfig_info().keys() for dev in if_list: if rrd.check_rrd_file_exist("interface", dev): dev_list.append(dev) graph_type = ['packets', 'octets', 'errors'] elif target == "load": dev_list = ['default'] graph_type = ['default'] elif target == "uptime": dev_list = ['default'] graph_type = ['default'] elif target == "users": dev_list = ['default'] graph_type = ['default'] elif target == "libvirt": virt_cpu_type = ['default'] virt_disk_type = ['octets', 'ops'] virt_interface_type = ['packets', 'octets', 'errors', 'dropped'] virt_list = {} virt_file_exist = {} try: kvc = KaresansuiVirtConnection() for domname in get_dom_list(): virt_list[domname] = {} if rrd.set_rrd_dir_host(domname) is False: virt_file_exist[domname] = False continue try: virt = kvc.search_kvg_guests(domname)[0] except: virt_file_exist[domname] = False continue virt_list[domname]['vcpu'] = {} if rrd.check_rrd_file_exist("libvirt", "total", "vcpu"): virt_list[domname]['vcpu']['total'] = virt_cpu_type for i in range(virt.get_vcpus_info()['max_vcpus']): if rrd.check_rrd_file_exist("libvirt", i, "vcpu"): virt_list[domname]['vcpu'][i] = virt_cpu_type virt_list[domname]['disk'] = {} for disk in virt.get_disk_info(): if rrd.check_rrd_file_exist("libvirt", disk['target']['dev'], "disk"): virt_list[domname]['disk'][disk['target']['dev']] = virt_disk_type virt_list[domname]['interface'] = {} for net_dev in virt.get_interface_info(): if rrd.check_rrd_file_exist("libvirt", net_dev['target']['dev'], "interface"): virt_list[domname]['interface'][net_dev['target']['dev']] = virt_interface_type if virt_list[domname]['vcpu'] == {} and \ virt_list[domname]['disk'] == {} and \ virt_list[domname]['interface'] == {}: virt_list[domname] = {} virt_file_exist[domname] = False else: virt_file_exist[domname] = True finally: kvc.close() self.view.virt_list = virt_list self.view.virt_file_exist = virt_file_exist self.view.group_display = group_display dev_list.sort() self.view.dev_list = dev_list self.view.graph_type = graph_type return True
def _GET(self, *param, **params): host_id = self.chk_hostby1(param) if host_id is None: return web.notfound() if self.is_mode_input() is True: self.view.plugins = WATCH_PLUGINS self.view.cpu_type_instance = COLLECTD_CPU_TYPE_INSTANCE self.view.memory_type_instance = COLLECTD_MEMORY_TYPE_INSTANCE self.view.df_ds = COLLECTD_DF_DS self.view.interface_type = COLLECTD_INTERFACE_TYPE self.view.interface_ds = COLLECTD_INTERFACE_DS self.view.load_ds = COLLECTD_LOAD_DS cpu_logical_number = len(get_proc_cpuinfo()) self.view.cpu_logical_number = range(1, cpu_logical_number + 1) self.view.memory_size = string.atol( get_proc_meminfo()["MemTotal"][0]) / 1024 self.view.df_list = get_fs_info() self.view.interface_list = get_ifconfig_info().keys() ## guest os list from karesansui.lib.utils import get_dom_list from karesansui.lib.virt.virt import KaresansuiVirtConnection from karesansui.lib.merge import MergeGuest self.view.dom_list = get_dom_list() dom_info = {} for domname in get_dom_list(): kvc = KaresansuiVirtConnection() virt = kvc.search_kvg_guests(domname)[0] dom_info[domname] = {} dom_info[domname]['network'] = [] dom_info[domname]['disk'] = [] dom_info[domname]['disk_size'] = {} for net_dev in virt.get_interface_info(): dom_info[domname]['network'].append( net_dev['target']['dev']) for disk in virt.get_disk_info(): dom_info[domname]['disk'].append(disk['target']['dev']) dom_info[domname]['disk_size'][ disk['target']['dev']] = disk['source']['size'] dom_info[domname]['vcpu'] = virt.get_vcpus_info()['max_vcpus'] kvc.close() self.view.dom_info = dom_info ## disk info self.view.disk_size_info = {} for disk_data in get_fs_info(): self.view.disk_size_info[ disk_data['Filesystem']] = disk_data['1048576-blocks'] self.view.processer_num = len(get_proc_cpuinfo().keys()) self.view.supported_langs = DEFAULT_LANGS.keys() self.view.myaddress = self.me.email self.view.mta = "%s:%s" % ( karesansui.config['application.mail.server'], karesansui.config['application.mail.port']) self.view.alert_trigger_count = DEFAULT_ALERT_TRIGGER_COUNT self.view.slient_period = DEFAULT_SLIENT_PERIOD return True if not validates_query(self): self.logger.debug("Show watch is failed, " "Invalid query value " "- query=%s" % self.input.q) return web.badrequest(self.view.alert) if not validates_page(self): self.logger.debug("Show watch is failed, " "Invalid page value - page=%s" % self.input.p) return web.badrequest(self.view.alert) if is_param(self.input, 'q') is True: watchs = w_findbyname_or_plugin(self.orm, self.input.q) if not watchs: self.logger.debug("Show watch is failed, " "Could not find watch " "- query=%s" % self.input.q) return web.nocontent() self.view.search_value = self.input.q else: watchs = w_findbyall(self.orm) self.view.search_value = "" if is_param(self.input, 'p') is True: start = int(self.input.p) else: start = 0 pager = Pager(watchs, start, WATCH_LIST_RANGE) if not pager.exist_now_page() and is_param(self.input, 'p') is True: self.logger.debug("Show watch is failed, " "Could not find page - page=%s" % self.input.p) return web.nocontent() self.view.pager = pager self.view.input = self.input return True