def client_call(self, result, parsed_coms): u_dict = hm_classes.net_to_sys(result[3:]) # pprint.pprint(u_dict) ret_state = limits.mon_STATE_OK used = u_dict["total_size"] if "max_size" in u_dict: max_size = u_dict["max_size"] perc_used = 100. * float(used) / float(max_size) quota_perc = "%.2f %%" % (perc_used) quota_info = "%s of %s" % (quota_perc, logging_tools.get_size_str( max_size, long_version=True).strip()) if perc_used > 100: ret_state = limits.mon_STATE_CRITICAL used_info = "over quota (%s)" % (quota_info) elif perc_used > 80: ret_state = limits.mon_STATE_WARNING used_info = "reaching quota (%s)" % (quota_info) else: used_info = "quota ok (%s)" % (quota_info) else: used_info = "no quota info" account_stat = u_dict.get("mail_account", "unknown") if account_stat.lower() != "unlocked": ret_state = max(ret_state, limits.mon_STATE_WARNING) return ret_state, "%s %s (%s), used size is %s, %s" % ( limits.get_state_str(ret_state), (u_dict.get("user_name", "name not set").split("/")[0]).strip(), account_stat, used and logging_tools.get_size_str( used, long_version=True).strip() or "not known", used_info)
def client_call(self, result, parsed_coms): s_dict = hm_classes.net_to_sys(result[3:]) if s_dict: ret_state = limits.mon_STATE_OK if s_dict["act_state"].lower() not in ["enabled", "started"]: ret_state = limits.mon_STATE_CRITICAL ret_str = "%s: %s %s" % (limits.get_state_str(ret_state), s_dict["name"], s_dict["act_state"]) else: ret_state, ret_str = limits.mon_STATE_CRITICAL, "Error no info found" return ret_state, ret_str