def sortOnlineUsers(onlines,sort_by,desc): sort_by_list=["user_id","normal_username","login_time_epoch","duration_secs","in_bytes","out_bytes","ras_ip","owner_name","unique_id_val","voip_username"] if sort_by not in sort_by_list: sort_by="login_time_epoch" sorted_list=SortedList(onlines) sorted_list.sortByPostText("[\"%s\"]"%sort_by,desc) return sorted_list.getList()
def getActiveRasIPs(self, request): request.needAuthType(request.ADMIN) creator_obj = request.getAuthNameObj() creator_obj.canDo("LIST RAS") sorted = SortedList(ras_main.getLoader().getAllRasIPs()) sorted.sort(False) return sorted.getList()
def getActiveRasIPs(self,request): request.needAuthType(request.ADMIN) creator_obj=request.getAuthNameObj() creator_obj.canDo("LIST RAS") sorted=SortedList(ras_main.getLoader().getAllRasIPs()) sorted.sort(False) return sorted.getList()
def getAllDefs(self, request): request.needAuthType(request.ADMIN) request.getAuthNameObj().canDo("CHANGE IBS DEFINITIONS") def_vars = defs.getDefsLoader().getAllVars() defs_list = self.__getDefsListFromDefVars(def_vars) sorted = SortedList(defs_list) sorted.sortByPostText('["name"]', 0) return sorted.getList()
def getAllDefs(self,request): request.needAuthType(request.ADMIN) request.getAuthNameObj().canDo("CHANGE IBS DEFINITIONS") def_vars=defs.getDefsLoader().getAllVars() defs_list=self.__getDefsListFromDefVars(def_vars) sorted=SortedList(defs_list) sorted.sortByPostText('["name"]',0) return sorted.getList()
def getRasPorts(self,request): request.needAuthType(request.ADMIN) request.checkArgs("ras_ip") creator_obj=request.getAuthNameObj() creator_obj.canDo("GET RAS INFORMATION") sorted=SortedList(ras_main.getLoader().getRasByIP(request["ras_ip"]).getPorts().values()) sorted.sortByPostText("[\"port_name\"]",0) return sorted.getList()
def listChargeRules(self,request): request.needAuthType(request.ADMIN) request.checkArgs("charge_name") request.getAuthNameObj().canUseCharge(request["charge_name"]) charge_rules=charge_main.getLoader().getChargeByName(request["charge_name"]).getRules() infos=map(lambda charge_rule_obj:charge_rule_obj.getInfo(),charge_rules.values()) sorted=SortedList(infos) sorted.sortByPostText('["rule_id"]',0) return sorted.getList()
def getRasPorts(self, request): request.needAuthType(request.ADMIN) request.checkArgs("ras_ip") creator_obj = request.getAuthNameObj() creator_obj.canDo("GET RAS INFORMATION") sorted = SortedList(ras_main.getLoader().getRasByIP( request["ras_ip"]).getPorts().values()) sorted.sortByPostText("[\"port_name\"]", 0) return sorted.getList()
def getAllAdminUsernames(self, request): request.needAuthType(request.ADMIN) try: request.getAuthNameObj().canDo("SEE ADMIN INFO") except PermissionException: return [request.getAuthNameObj().getUsername()] usernames = admin_main.getLoader().getAllUsernames() sorted = SortedList(usernames) sorted.sort(0) return sorted.getList()
def listChargeRules(self, request): request.needAuthType(request.ADMIN) request.checkArgs("charge_name") request.getAuthNameObj().canUseCharge(request["charge_name"]) charge_rules = charge_main.getLoader().getChargeByName( request["charge_name"]).getRules() infos = map(lambda charge_rule_obj: charge_rule_obj.getInfo(), charge_rules.values()) sorted = SortedList(infos) sorted.sortByPostText('["rule_id"]', 0) return sorted.getList()
def getRasTypes(self, request): """ return a list of all available ras types """ request.needAuthType(request.ADMIN) creator_obj = request.getAuthNameObj() creator_obj.canDo("GET RAS INFORMATION") type_list = ras_main.getFactory().getAllTypes() sorted = SortedList(type_list) sorted.sort(False) return sorted.getList()
def getPermsOfAdmin(self,request): """ return a list of dics containing admin permission and sorted by permission name each dic has "name, value, description, value_type, category" keys """ request.needAuthType(request.ADMIN) request.checkArgs("admin_username") admin_perms=admin_main.getLoader().getAdminByName(request["admin_username"]).getPerms() perms_list=self.__getPermsListFromAdminPerms(admin_perms) sorted=SortedList(perms_list) sorted.sortByPostText('["name"]',0) return sorted.getList()
def listTariffs(self,request): """ return a list of tariff infos in format [{"tariff_name":,"tariff_id":,"comment":}] note that prefixes aren't included """ request.needAuthType(request.ADMIN) request.getAuthNameObj().canDo("SEE VOIP TARIFF") tariffs=map(lambda tariff_name:tariff_main.getLoader().getTariffByName(tariff_name).getInfo(), tariff_main.getLoader().getAllTariffNames()) sorted=SortedList(tariffs) sorted.sortByPostText("['tariff_name']",False) return sorted.getList()
def listTariffs(self,request): """ return a list of tariff infos in format [{"tariff_name":,"tariff_id":,"comment":}] note that prefixes aren't included """ request.needAuthType(request.ADMIN) request.getAuthNameObj().canDo("SEE VOIP TARIFF") tariffs=map(lambda tariff_name:tariff_main.getLoader().getTariffByName(tariff_name).getInfo(), tariff_main.getLoader().getAllTariffNames()) sorted=SortedList(tariffs) sorted.sortByValueDicKey("tariff_name",False) return sorted.getList()
def getRasIPpools(self,request): """ return a sorted list of ip pool names """ request.needAuthType(request.ADMIN) request.getAuthNameObj().canDo("GET RAS INFORMATION") request.checkArgs("ras_ip") ippool_ids=ras_main.getLoader().getRasByIP(request["ras_ip"]).getIPpools() ippool_names=map(lambda ippool_id:ippool_main.getLoader().getIPpoolByID(ippool_id).getIPpoolName(),ippool_ids) sorted=SortedList(ippool_names) sorted.sort(0) return sorted.getList()
def listGroups(self,request): """ return a list of group names, that requester admin has access to """ request.needAuthType(request.ADMIN) requester=request.getAuthNameObj() group_names=group_main.getLoader().getAllGroupNames() group_names = filter(requester.canUseGroup,group_names) sorted_group_names = SortedList(group_names) sorted_group_names.sort(False) return sorted_group_names.getList()
def getPermsOfAdmin(self, request): """ return a list of dics containing admin permission and sorted by permission name each dic has "name, value, description, value_type, category" keys """ request.needAuthType(request.ADMIN) request.checkArgs("admin_username") admin_perms = admin_main.getLoader().getAdminByName( request["admin_username"]).getPerms() perms_list = self.__getPermsListFromAdminPerms(admin_perms) sorted = SortedList(perms_list) sorted.sortByPostText('["name"]', 0) return sorted.getList()
def getLeafCharges(self, request): """ return a list of charge_names that "leaf_name" used in """ request.needAuthType(request.ADMIN) request.getAuthNameObj().canDo("CHANGE BANDWIDTH MANGER") request.checkArgs("leaf_name") leaf_obj = bw_main.getLoader().getLeafByName(request["leaf_name"]) charge_names = charge_main.getActionManager().getChargesWithBwLeaf( leaf_obj.getLeafID()) sorted_charge_names = SortedList(charge_names) sorted_charge_names.sort(False) return sorted_charge_names.getList()
def getAllPerms(self, request): """ return a list of dics of all perms sorted by permission name optional argument category tells handler to return only permission of specified category each dic has "name, description, value_type, category, affected_pages, dependencies" keys """ request.needAuthType(request.ADMIN) request.getAuthNameObj().canDo("CHANGE ADMIN PERMISSIONS") all_perms_dic = perm_loader.getLoader().getAllPerms() if request.has_key("category"): category = request["category"] else: category = "all" all_perms_list = self.__getPermsListFromPerms(all_perms_dic, category) sorted = SortedList(all_perms_list) sorted.sortByPostText('["name"]', 0) return sorted.getList()
def getAllPerms(self,request): """ return a list of dics of all perms sorted by permission name optional argument category tells handler to return only permission of specified category each dic has "name, description, value_type, category, affected_pages, dependencies" keys """ request.needAuthType(request.ADMIN) request.getAuthNameObj().canDo("CHANGE ADMIN PERMISSIONS") all_perms_dic=perm_loader.getLoader().getAllPerms() if request.has_key("category"): category=request["category"] else: category="all" all_perms_list=self.__getPermsListFromPerms(all_perms_dic,category) sorted=SortedList(all_perms_list) sorted.sortByPostText('["name"]',0) return sorted.getList()
def __getPrefixesInfo(self, name_regex): """ return a list of prefixes info name_regex(string): regular expression to match with prefix names empty string means return all """ if name_regex: pattern = re.compile(name_regex) prefixes = [] for prefix_obj in self.prefixes_id.itervalues(): if pattern.match(prefix_obj.getPrefixName()): prefixes.append(prefix_obj.getInfo()) else: prefixes = map(lambda prefix: prefix.getInfo(), self.prefixes_id.itervalues()) sorted = SortedList(prefixes) sorted.sortByValueDicKey("prefix_name", False) return sorted.getList()
def listCharges(self, request): """ return a list of charge names NOTE: this handler take care of admin permissions and return only charges that admin has access to type(string,optional): type of charges """ request.needAuthType(request.ADMIN) requester = request.getAuthNameObj() charge_names = charge_main.getLoader().getAllChargeNames() def filter_func(charge_name): if request.has_key("charge_type") and charge_main.getLoader( ).getChargeByName(charge_name).getType() != request["charge_type"]: return False return requester.canUseCharge(charge_name) charge_names = filter(filter_func, charge_names) sorted_charge_names = SortedList(charge_names) sorted_charge_names.sort(False) return sorted_charge_names.getList()
def _sortOnlines(list, sort_by, desc, valid_sortbys): """ sort "list" by post text of sort_by and desc. sort_by should be in valid_sortbys or default will be chosen """ if sort_by in ("","login_time"): sort_by="login_time_epoch" elif sort_by not in valid_sortbys: toLog("SortOnlines: Invalid sort by %s %s"%(sort_by,valid_sortbys),LOG_DEBUG) sort_by="login_time_epoch" sorted_list=SortedList(list) if sort_by.startswith("attrs_"): sort_by_post_text='["attrs"]["%s"]'%sort_by[6:] sorted_list.sortByPostText(sort_by_post_text,desc) else: sorted_list.sortByValueDicKey(sort_by, desc) return sorted_list.getList()
def getIPpoolNames(self,request): request.needAuthType(request.ADMIN) request.getAuthNameObj().canDo("LIST IPPOOL") sorted=SortedList(ippool_main.getLoader().getAllIPpoolNames()) sorted.sort(False) return sorted.getList()
def __getPrefixesInfo(self): prefixes=map(lambda prefix:prefix.getInfo(),self.prefixes_id.itervalues()) sorted=SortedList(prefixes) sorted.sortByPostText("['prefix_name']",False) return sorted.getList()
def getIPpoolNames(self, request): request.needAuthType(request.ADMIN) request.getAuthNameObj().canDo("LIST IPPOOL") sorted = SortedList(ippool_main.getLoader().getAllIPpoolNames()) sorted.sort(False) return sorted.getList()