def addLeaf(self,leaf_name,parent_id,default_rate_kbits,default_ceil_kbits,total_rate_kbits,total_ceil_kbits): self.__addLeafCheckInput(leaf_name,parent_id,default_rate_kbits,default_ceil_kbits,total_rate_kbits,total_ceil_kbits) node_obj=bw_main.getLoader().getNodeByID(parent_id) leaf_id=self.__getNewLeafID() self.__addLeafDB(leaf_id,leaf_name,parent_id,node_obj.getInterfaceID(),default_rate_kbits,default_ceil_kbits,total_rate_kbits,total_ceil_kbits) bw_main.getLoader().loadLeaf(leaf_id) bw_main.getLoader().getLeafByID(leaf_id).registerInParent()
def __updateBwStaticIPCheckInput(self, static_ip_id, ip_addr, tx_leaf_name, rx_leaf_name): bw_main.getLoader().getLeafByName(tx_leaf_name) bw_main.getLoader().getLeafByName(rx_leaf_name) static_ip_obj = bw_main.getLoader().getStaticIPByID(static_ip_id) if static_ip_obj.getIP() != ip_addr: self.__bwStaticIPCheckIP(ip_addr)
def unregisterInParent(self): if self.parent_id != None: bw_main.getLoader().getNodeByID(self.parent_id).unregisterChild( self.getNodeID()) else: bw_main.getLoader().getInterfaceByID( self.interface_id).unregisterRootNode(self.getNodeID())
def __reRegisterRootNode(self, interface_id): for node_id in bw_main.getLoader().getAllNodeIDs(): node_obj = bw_main.getLoader().getNodeByID(node_id) if node_obj.getInterfaceID( ) == interface_id and node_obj.getParentID() == None: node_obj.registerInParent() return
def addInterface(self,interface_name,comment): self.__addInterfaceCheckInput(interface_name,comment) interface_id=self.__getNewInterfaceID() self.__addInterfaceDB(interface_id,interface_name,comment) bw_main.getLoader().loadInterface(interface_id) self.addNode(interface_name,None,1024*100,1024*100) bw_main.getLoader().getInterfaceByName(interface_name).createTree()
def addInterface(self, interface_name, comment): self.__addInterfaceCheckInput(interface_name, comment) interface_id = self.__getNewInterfaceID() self.__addInterfaceDB(interface_id, interface_name, comment) bw_main.getLoader().loadInterface(interface_id) self.addNode(interface_name, None, 1024 * 100, 1024 * 100) bw_main.getLoader().getInterfaceByName(interface_name).createTree()
def delNode(self,node_id,delete_root_node=False): self.__delNodeCheckInput(node_id,delete_root_node) node_obj=bw_main.getLoader().getNodeByID(node_id) self.__delNodeDB(node_id) node_obj.unregisterInParent() node_obj.delFromTC() bw_main.getLoader().unloadNode(node_id)
def delNode(self, node_id, delete_root_node=False): self.__delNodeCheckInput(node_id, delete_root_node) node_obj = bw_main.getLoader().getNodeByID(node_id) self.__delNodeDB(node_id) node_obj.unregisterInParent() node_obj.delFromTC() bw_main.getLoader().unloadNode(node_id)
def __addLeafCheckInput(self, leaf_name, parent_id, default_rate_kbits, default_ceil_kbits, total_rate_kbits, total_ceil_kbits): bw_main.getLoader().getNodeByID(parent_id) self.__leafCheckName(leaf_name) self.__leafCheckRates(default_rate_kbits, default_ceil_kbits, total_rate_kbits, total_ceil_kbits)
def addLeafService(self,leaf_name,protocol,_filter,rate_kbits,ceil_kbits): (filter_type,filter_value)=self.__parseFilter(_filter) self.__addLeafServiceCheckInput(leaf_name,protocol,_filter,rate_kbits,ceil_kbits,filter_type,filter_value) leaf_obj=bw_main.getLoader().getLeafByName(leaf_name) leaf_service_id=self.__getNewLeafServiceID() self.__addLeafServiceDB(leaf_service_id,leaf_obj.getLeafID(),protocol,filter_type,filter_value,rate_kbits,ceil_kbits) bw_main.getLoader().loadLeaf(leaf_obj.getLeafID())
def applyBwLimit(self, ip_addr, send_leaf_id, recv_leaf_id): send_user_leaf = bw_main.getLoader().getLeafByID( send_leaf_id).createUserLeaf(ip_addr, "send") recv_user_leaf = bw_main.getLoader().getLeafByID( recv_leaf_id).createUserLeaf(ip_addr, "receive") self.__addToLeaves(ip_addr, send_user_leaf, recv_user_leaf) send_user_leaf.addToTC() recv_user_leaf.addToTC()
def delLeafService(self,leaf_name,leaf_service_id): """ delete leaf service with id "leaf_service_id" that belongs to "leaf_name" """ self.__delLeafServiceCheckInput(leaf_name,leaf_service_id) leaf_obj=bw_main.getLoader().getLeafByName(leaf_name) self.__delLeafServiceDB(leaf_service_id) bw_main.getLoader().loadLeaf(leaf_obj.getLeafID())
def delLeafService(self, leaf_name, leaf_service_id): """ delete leaf service with id "leaf_service_id" that belongs to "leaf_name" """ self.__delLeafServiceCheckInput(leaf_name, leaf_service_id) leaf_obj = bw_main.getLoader().getLeafByName(leaf_name) self.__delLeafServiceDB(leaf_service_id) bw_main.getLoader().loadLeaf(leaf_obj.getLeafID())
def getSubTree(self, node_id): node_obj = bw_main.getLoader().getNodeByID(node_id) children = map(lambda child: self.getSubTree(child), node_obj.getChildren()) leaf_children = map( lambda leaf: bw_main.getLoader().getLeafByID(leaf).getLeafName(), node_obj.getLeafChildren()) return [node_id, children, leaf_children]
def __convertBwLeaves(self,tx_leaf_name,rx_leaf_name): """ convert bw leaf names to their id, or to None if they are not specified """ if tx_leaf_name=='': return (None,None) else: return (bw_main.getLoader().getLeafByName(tx_leaf_name).getLeafID(), bw_main.getLoader().getLeafByName(rx_leaf_name).getLeafID())
def addNode(self,interface_name,parent_id,rate_kbits,ceil_kbits): self.__addNodeCheckInput(interface_name,parent_id,rate_kbits,ceil_kbits) int_obj=bw_main.getLoader().getInterfaceByName(interface_name) node_id=self.__getNewNodeID() self.__addNodeDB(node_id,int_obj.getInterfaceID(),parent_id,rate_kbits,ceil_kbits) bw_main.getLoader().loadNode(node_id) node_obj=bw_main.getLoader().getNodeByID(node_id) node_obj.registerInParent() node_obj.createSubTree()
def __addNodeCheckInput(self,interface_name,parent_id,rate_kbits,ceil_kbits): int_obj=bw_main.getLoader().getInterfaceByName(interface_name) if parent_id!=None: bw_main.getLoader().getNodeByID(parent_id) elif int_obj.getRootNode()!=None: raise GeneralException(errorText("BANDWIDTH","INTERFACE_HAS_ROOT_NODE")%interface_name) self.__checkLimitKbits(rate_kbits) self.__checkLimitKbits(ceil_kbits)
def __leafUsedInStaticIP(self, leaf_id): def checkLeafInStaticIP(static_ip_obj): if static_ip_obj.getRxLeafID( ) == leaf_id or static_ip_obj.getTxLeafID() == leaf_id: raise GeneralException( errorText("BANDWIDTH", "LEAF_USED_IN_STATIC_IP") % static_ip_obj.getIP()) bw_main.getLoader().runOnAllStaticIPs(checkLeafInStaticIP)
def __convertBwLeaves(self, tx_leaf_name, rx_leaf_name): """ convert bw leaf names to their id, or to None if they are not specified """ if tx_leaf_name == '': return (None, None) else: return ( bw_main.getLoader().getLeafByName(tx_leaf_name).getLeafID(), bw_main.getLoader().getLeafByName(rx_leaf_name).getLeafID())
def updateLeaf(self, leaf_id, leaf_name, default_rate_kbits, default_ceil_kbits, total_rate_kbits, total_ceil_kbits): self.__updateLeafCheckInput(leaf_id, leaf_name, default_rate_kbits, default_ceil_kbits, total_rate_kbits, total_ceil_kbits) self.__updateLeafDB(leaf_id, leaf_name, default_rate_kbits, default_ceil_kbits, total_rate_kbits, total_ceil_kbits) bw_main.getLoader().unloadLeaf(leaf_id) bw_main.getLoader().loadLeaf(leaf_id)
def getInterfaces(self,request): request.needAuthType(request.ADMIN) request.getAuthNameObj().canDo("CHANGE BANDWIDTH MANGER") infos={} for if_name in bw_main.getLoader().getAllInterfaceNames(): try: infos[if_name]=bw_main.getLoader().getInterfaceByName(if_name).getInfo() except GeneralException: pass return infos
def addNode(self, interface_name, parent_id, rate_kbits, ceil_kbits): self.__addNodeCheckInput(interface_name, parent_id, rate_kbits, ceil_kbits) int_obj = bw_main.getLoader().getInterfaceByName(interface_name) node_id = self.__getNewNodeID() self.__addNodeDB(node_id, int_obj.getInterfaceID(), parent_id, rate_kbits, ceil_kbits) bw_main.getLoader().loadNode(node_id) node_obj = bw_main.getLoader().getNodeByID(node_id) node_obj.registerInParent() node_obj.createSubTree()
def updateLeafService(self, leaf_name, leaf_service_id, protocol, _filter, rate_kbits, ceil_kbits): (filter_type, filter_value) = self.__parseFilter(_filter) self.__updateLeafServiceCheckInput(leaf_name, leaf_service_id, protocol, _filter, rate_kbits, ceil_kbits, filter_type, filter_value) self.__updateLeafServiceDB(leaf_service_id, protocol, filter_type, filter_value, rate_kbits, ceil_kbits) leaf_obj = bw_main.getLoader().getLeafByName(leaf_name) bw_main.getLoader().loadLeaf(leaf_obj.getLeafID())
def getInterfaces(self, request): request.needAuthType(request.ADMIN) request.getAuthNameObj().canDo("CHANGE BANDWIDTH MANGER") infos = {} for if_name in bw_main.getLoader().getAllInterfaceNames(): try: infos[if_name] = bw_main.getLoader().getInterfaceByName( if_name).getInfo() except GeneralException: pass return infos
def __addNodeCheckInput(self, interface_name, parent_id, rate_kbits, ceil_kbits): int_obj = bw_main.getLoader().getInterfaceByName(interface_name) if parent_id != None: bw_main.getLoader().getNodeByID(parent_id) elif int_obj.getRootNode() != None: raise GeneralException( errorText("BANDWIDTH", "INTERFACE_HAS_ROOT_NODE") % interface_name) self.__checkLimitKbits(rate_kbits) self.__checkLimitKbits(ceil_kbits)
def addLeaf(self, leaf_name, parent_id, default_rate_kbits, default_ceil_kbits, total_rate_kbits, total_ceil_kbits): self.__addLeafCheckInput(leaf_name, parent_id, default_rate_kbits, default_ceil_kbits, total_rate_kbits, total_ceil_kbits) node_obj = bw_main.getLoader().getNodeByID(parent_id) leaf_id = self.__getNewLeafID() self.__addLeafDB(leaf_id, leaf_name, parent_id, node_obj.getInterfaceID(), default_rate_kbits, default_ceil_kbits, total_rate_kbits, total_ceil_kbits) bw_main.getLoader().loadLeaf(leaf_id) bw_main.getLoader().getLeafByID(leaf_id).registerInParent()
def __internetChargeRuleCheckInput(self, charge_name, cpm, cpk, assumed_kps, bandwidth_limit_kbytes, tx_leaf_name, rx_leaf_name, ras_id, ports): self.__chargeRuleCheckInput(charge_name, "Internet", ras_id, ports) try: assumed_kps = int(assumed_kps) except: raise GeneralException( errorText("CHARGES", "ASSUMED_KPS_NOT_INTEGER")) try: bandwidth_limit_kbytes = int(bandwidth_limit_kbytes) except: raise GeneralException( errorText("CHARGES", "BANDWIDTH_LIMIT_NOT_INTEGER")) try: cpm = float(cpm) except: raise GeneralException(errorText("CHARGES", "CPM_NOT_NUMERIC")) try: cpk = float(cpk) except: raise GeneralException(errorText("CHARGES", "CPK_NOT_NUMERIC")) if assumed_kps <= 0: raise GeneralException( errorText("CHARGES", "ASSUMED_KPS_NOT_POSITIVE")) if bandwidth_limit_kbytes < 0: raise GeneralException( errorText("CHARGES", "BANDWIDTH_LIMIT_NOT_POSITIVE")) if cpm < 0: raise GeneralException(errorText("CHARGES", "CPM_NOT_POSITIVE")) if cpk < 0: raise GeneralException(errorText("CHARGES", "CPK_NOT_POSITIVE")) if len(tx_leaf_name) != 0 and len(rx_leaf_name) != 0: bw_main.getLoader().getLeafByName(tx_leaf_name) bw_main.getLoader().getLeafByName(rx_leaf_name) elif (len(tx_leaf_name) == 0 and len(rx_leaf_name) != 0) or (len(tx_leaf_name) != 0 and len(rx_leaf_name) == 0): raise GeneralException( errorText("CHARGES", "BW_LEAF_NAMES_SHOULD_BOTH_SET"))
def getInfo(self): dic=ChargeRule.getInfo(self) dic["type"]="Internet" dic["bandwidth_limit"]=self.bandwidth_limit dic["assumed_kps"]=self.assumed_kps dic["cpm"]=self.cpm dic["cpk"]=self.cpk if self.bw_tx_leaf_id==None: dic["bw_tx_leaf_name"]='' dic["bw_rx_leaf_name"]='' else: dic["bw_tx_leaf_name"]=bw_main.getLoader().getLeafByID(self.bw_tx_leaf_id).getLeafName() dic["bw_rx_leaf_name"]=bw_main.getLoader().getLeafByID(self.bw_rx_leaf_id).getLeafName() return dic
def __addLeafServiceCheckInput(self,leaf_name,protocol,_filter,rate_kbits,ceil_kbits,filter_type,filter_value): leaf_obj=bw_main.getLoader().getLeafByName(leaf_name) if leaf_obj.hasService((protocol,"%s %s"%(filter_type,filter_value))): raise GeneralException(errorText("BANDWIDTH","LEAF_HAS_THIS_FILTER")%(leaf_name,_filter,protocol)) self.__leafServiceCheckFilterAndProtocol(protocol,filter_type,filter_value,_filter) self.__leafServiceCheckRates(rate_kbits,ceil_kbits)
def getInfo(self): dic = ChargeRule.getInfo(self) dic["type"] = "Internet" dic["bandwidth_limit"] = self.bandwidth_limit dic["assumed_kps"] = self.assumed_kps dic["cpm"] = self.cpm dic["cpk"] = self.cpk if self.bw_tx_leaf_id == None: dic["bw_tx_leaf_name"] = '' dic["bw_rx_leaf_name"] = '' else: dic["bw_tx_leaf_name"] = bw_main.getLoader().getLeafByID( self.bw_tx_leaf_id).getLeafName() dic["bw_rx_leaf_name"] = bw_main.getLoader().getLeafByID( self.bw_rx_leaf_id).getLeafName() return dic
def __leafCheckName(self, leaf_name): if bw_main.getLoader().leafNameExists(leaf_name): raise GeneralException( errorText("BANDWIDTH", "LEAF_NAME_ALREADY_EXISTS") % leaf_name) if not isValidName(leaf_name): raise GeneralException( errorText("BANDWIDTH", "INVALID_LEAF_NAME") % leaf_name)
def getTree(self,interface_name): """ get tree nodes for interface_name for each node there's a list containing 3 members. the first is node_id second is list of child nodes and third is list of child leaves each child node is a list of same format. Leaves are leaf_name s only """ int_obj=bw_main.getLoader().getInterfaceByName(interface_name) return self.getSubTree(int_obj.getRootNodeID())
def getTree(self, interface_name): """ get tree nodes for interface_name for each node there's a list containing 3 members. the first is node_id second is list of child nodes and third is list of child leaves each child node is a list of same format. Leaves are leaf_name s only """ int_obj = bw_main.getLoader().getInterfaceByName(interface_name) return self.getSubTree(int_obj.getRootNodeID())
def __updateLeafCheckInput(self, leaf_id, leaf_name, default_rate_kbits, default_ceil_kbits, total_rate_kbits, total_ceil_kbits): leaf_obj = bw_main.getLoader().getLeafByID(leaf_id) if leaf_obj.getLeafName() != leaf_name: self.__leafCheckName(leaf_name) self.__leafCheckRates(default_rate_kbits, default_ceil_kbits, total_rate_kbits, total_ceil_kbits)
def __addInterfaceCheckInput(self, interface_name, comment): if bw_main.getLoader().interfaceNameExists(interface_name): raise GeneralException( errorText("BANDWIDTH", "INTERFACE_NAME_ALREADY_EXISTS") % interface_name) if not isValidName(interface_name): raise GeneralException( errorText("BANDWIDTH", "INVALID_INTERFACE_NAME") % interface_name)
def updateBwStaticIP(self,static_ip_id,ip_addr,tx_leaf_name,rx_leaf_name): self.__updateBwStaticIPCheckInput(static_ip_id,ip_addr,tx_leaf_name,rx_leaf_name) static_ip_obj=bw_main.getLoader().getStaticIPByID(static_ip_id) tx_leaf_obj=bw_main.getLoader().getLeafByName(tx_leaf_name) rx_leaf_obj=bw_main.getLoader().getLeafByName(rx_leaf_name) self.__updateBwStaticIPDB(static_ip_id,ip_addr,tx_leaf_obj.getLeafID(),rx_leaf_obj.getLeafID()) bw_main.getLoader().loadStaticIP(static_ip_id) static_ip_obj.remove() bw_main.getLoader().getStaticIPByID(static_ip_id).apply()
def __internetChargeRuleCheckInput(self,charge_name,cpm,cpk,assumed_kps,bandwidth_limit_kbytes,tx_leaf_name,rx_leaf_name,ras_id,ports): self.__chargeRuleCheckInput(charge_name,"Internet",ras_id,ports) try: assumed_kps=int(assumed_kps) except: raise GeneralException(errorText("CHARGES","ASSUMED_KPS_NOT_INTEGER")) try: bandwidth_limit_kbytes=int(bandwidth_limit_kbytes) except: raise GeneralException(errorText("CHARGES","BANDWIDTH_LIMIT_NOT_INTEGER")) try: cpm=float(cpm) except: raise GeneralException(errorText("CHARGES","CPM_NOT_NUMERIC")) try: cpk=float(cpk) except: raise GeneralException(errorText("CHARGES","CPK_NOT_NUMERIC")) if assumed_kps<=0: raise GeneralException(errorText("CHARGES","ASSUMED_KPS_NOT_POSITIVE")) if bandwidth_limit_kbytes<0: raise GeneralException(errorText("CHARGES","BANDWIDTH_LIMIT_NOT_POSITIVE")) if cpm<0: raise GeneralException(errorText("CHARGES","CPM_NOT_POSITIVE")) if cpk<0: raise GeneralException(errorText("CHARGES","CPK_NOT_POSITIVE")) if len(tx_leaf_name)!=0 and len(rx_leaf_name)!=0: bw_main.getLoader().getLeafByName(tx_leaf_name) bw_main.getLoader().getLeafByName(rx_leaf_name) elif (len(tx_leaf_name)==0 and len(rx_leaf_name)!=0) or (len(tx_leaf_name)!=0 and len(rx_leaf_name)==0): raise GeneralException(errorText("CHARGES","BW_LEAF_NAMES_SHOULD_BOTH_SET"))
def __addLeafServiceCheckInput(self, leaf_name, protocol, _filter, rate_kbits, ceil_kbits, filter_type, filter_value): leaf_obj = bw_main.getLoader().getLeafByName(leaf_name) if leaf_obj.hasService( (protocol, "%s %s" % (filter_type, filter_value))): raise GeneralException( errorText("BANDWIDTH", "LEAF_HAS_THIS_FILTER") % (leaf_name, _filter, protocol)) self.__leafServiceCheckFilterAndProtocol(protocol, filter_type, filter_value, _filter) self.__leafServiceCheckRates(rate_kbits, ceil_kbits)
def addBwStaticIP(self,ip_addr,tx_leaf_name,rx_leaf_name): self.__addBwStaticIPCheckInput(ip_addr,tx_leaf_name,rx_leaf_name) static_ip_id=self.__getNewStaticIPID() tx_leaf_obj=bw_main.getLoader().getLeafByName(tx_leaf_name) rx_leaf_obj=bw_main.getLoader().getLeafByName(rx_leaf_name) self.__addBwStaticIPDB(static_ip_id,ip_addr,tx_leaf_obj.getLeafID(),rx_leaf_obj.getLeafID()) bw_main.getLoader().loadStaticIP(static_ip_id) bw_main.getLoader().getStaticIPByID(static_ip_id).apply()
def addBwStaticIP(self, ip_addr, tx_leaf_name, rx_leaf_name): self.__addBwStaticIPCheckInput(ip_addr, tx_leaf_name, rx_leaf_name) static_ip_id = self.__getNewStaticIPID() tx_leaf_obj = bw_main.getLoader().getLeafByName(tx_leaf_name) rx_leaf_obj = bw_main.getLoader().getLeafByName(rx_leaf_name) self.__addBwStaticIPDB(static_ip_id, ip_addr, tx_leaf_obj.getLeafID(), rx_leaf_obj.getLeafID()) bw_main.getLoader().loadStaticIP(static_ip_id) bw_main.getLoader().getStaticIPByID(static_ip_id).apply()
def updateBwStaticIP(self, static_ip_id, ip_addr, tx_leaf_name, rx_leaf_name): self.__updateBwStaticIPCheckInput(static_ip_id, ip_addr, tx_leaf_name, rx_leaf_name) static_ip_obj = bw_main.getLoader().getStaticIPByID(static_ip_id) tx_leaf_obj = bw_main.getLoader().getLeafByName(tx_leaf_name) rx_leaf_obj = bw_main.getLoader().getLeafByName(rx_leaf_name) self.__updateBwStaticIPDB(static_ip_id, ip_addr, tx_leaf_obj.getLeafID(), rx_leaf_obj.getLeafID()) bw_main.getLoader().loadStaticIP(static_ip_id) static_ip_obj.remove() bw_main.getLoader().getStaticIPByID(static_ip_id).apply()
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 updateInterface(self,interface_id,interface_name,comment): self.__updateInterfaceCheckInput(interface_id,interface_name,comment) int_obj=bw_main.getLoader().getInterfaceByID(interface_id) self.__updateInterfaceDB(interface_id,interface_name,comment) if interface_name!=int_obj.getInterfaceName(): bw_main.getLoader().unloadInterface(interface_id) bw_main.getLoader().loadInterface(interface_id) int_obj=bw_main.getLoader().getInterfaceByID(interface_id) self.__reRegisterRootNode(interface_id) int_obj.createTree() else: int_obj.changeComment(comment)
def updateInterface(self, interface_id, interface_name, comment): self.__updateInterfaceCheckInput(interface_id, interface_name, comment) int_obj = bw_main.getLoader().getInterfaceByID(interface_id) self.__updateInterfaceDB(interface_id, interface_name, comment) if interface_name != int_obj.getInterfaceName(): bw_main.getLoader().unloadInterface(interface_id) bw_main.getLoader().loadInterface(interface_id) int_obj = bw_main.getLoader().getInterfaceByID(interface_id) self.__reRegisterRootNode(interface_id) int_obj.createTree() else: int_obj.changeComment(comment)
def getInterface(self): return bw_main.getLoader().getInterfaceByID(self.getInterfaceID())
def getParent(self): return bw_main.getLoader().getNodeByID(self.getParentID())
def __addInterfaceCheckInput(self,interface_name,comment): if bw_main.getLoader().interfaceNameExists(interface_name): raise GeneralException(errorText("BANDWIDTH","INTERFACE_NAME_ALREADY_EXISTS")%interface_name) if not isValidName(interface_name): raise GeneralException(errorText("BANDWIDTH","INVALID_INTERFACE_NAME")%interface_name)
def __addBwStaticIPCheckInput(self,ip_addr,tx_leaf_name,rx_leaf_name): bw_main.getLoader().getLeafByName(tx_leaf_name) bw_main.getLoader().getLeafByName(rx_leaf_name) self.__bwStaticIPCheckIP(ip_addr)
def unregisterInParent(self): """ unregister ourself in parent node, useful when a leaf has been deleted """ bw_main.getLoader().getNodeByID(self.getParentNodeID()).unregisterLeaf(self.getLeafID())
def __checkIPAddrExistence(self,ip_addr): ips=bw_main.getLoader().getAllStaticIPs() for ip in ips: if bw_main.getLoader().getStaticIPByIP(ip).hasIP(ip_addr): raise GeneralException(errorText("BANDWIDTH","STATIC_IP_EXISTS")%(ip_addr,ip))
def applyBwLimit(self, ip_addr, send_leaf_id, recv_leaf_id): send_user_leaf = bw_main.getLoader().getLeafByID(send_leaf_id).createUserLeaf(ip_addr, "send") recv_user_leaf = bw_main.getLoader().getLeafByID(recv_leaf_id).createUserLeaf(ip_addr, "receive") self.__addToLeaves(ip_addr, send_user_leaf, recv_user_leaf) send_user_leaf.addToTC() recv_user_leaf.addToTC()
def __delBwStaticIPCheckInput(self,ip_addr): bw_main.getLoader().getStaticIPByIP(ip_addr)
def getRxLeafName(self): return bw_main.getLoader().getLeafByID(self.getRxLeafID()).getLeafName()
def registerInParent(self): """ register ourself in parent node """ bw_main.getLoader().getNodeByID(self.getParentNodeID()).registerLeaf(self.getLeafID())
def getParentNode(self): return bw_main.getLoader().getNodeByID(self.getParentNodeID())
def updateCounters(self): for int_name in bw_main.getLoader().getAllInterfaceNames(): self.counters[int_name] = bw_main.getTCRunner().getCounters(int_name)
def delBwStaticIP(self,ip_addr): self.__delBwStaticIPCheckInput(ip_addr) self.__delBwStaticIPDB(ip_addr) static_ip_obj=bw_main.getLoader().getStaticIPByIP(ip_addr) static_ip_obj.remove() bw_main.getLoader().unloadStaticIP(static_ip_obj.getStaticIPID())
from core.bandwidth_limit import bw_main node_ids = bw_main.getLoader().getAllNodeIDs() for node_id in node_ids: node_obj=bw_main.getLoader().getNodeByID(node_id) children=node_obj.getChildren() print "Node ID %s, children %s"%(node_id,children)
def __updateBwStaticIPCheckInput(self,static_ip_id,ip_addr,tx_leaf_name,rx_leaf_name): bw_main.getLoader().getLeafByName(tx_leaf_name) bw_main.getLoader().getLeafByName(rx_leaf_name) static_ip_obj=bw_main.getLoader().getStaticIPByID(static_ip_id) if static_ip_obj.getIP()!=ip_addr: self.__bwStaticIPCheckIP(ip_addr)