示例#1
0
    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()
示例#2
0
 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)
示例#3
0
文件: node.py 项目: sankopay/IBSng
 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())
示例#4
0
 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
示例#5
0
    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()
示例#6
0
 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()
示例#7
0
    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)
示例#8
0
 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)
示例#9
0
 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)
示例#10
0
    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())
示例#11
0
 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()
示例#12
0
    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())
示例#13
0
 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())
示例#14
0
 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]
示例#15
0
    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())
示例#16
0
    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()
示例#17
0
    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)
示例#18
0
    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)
示例#19
0
 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())
示例#20
0
 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)
示例#21
0
    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    
示例#22
0
 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()
示例#23
0
 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())
示例#24
0
    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
示例#25
0
    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)
示例#26
0
 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()
示例#27
0
    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"))
示例#28
0
    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
示例#29
0
    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)
示例#30
0
 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
示例#31
0
    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)
示例#32
0
    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())
示例#33
0
 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())
示例#34
0
    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)
示例#35
0
 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)
示例#36
0
    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()
示例#37
0
    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"))
示例#38
0
    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)
示例#39
0
    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()
示例#40
0
 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()
示例#41
0
 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()
示例#42
0
    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()
示例#43
0
    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)
示例#44
0
 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)
示例#45
0
文件: node.py 项目: sankopay/IBSng
 def getInterface(self):
     return bw_main.getLoader().getInterfaceByID(self.getInterfaceID())
示例#46
0
文件: node.py 项目: sankopay/IBSng
 def getParent(self):
     return bw_main.getLoader().getNodeByID(self.getParentID())
示例#47
0
    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)
示例#48
0
    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)
示例#49
0
文件: leaf.py 项目: moxwose/freeIBS
    def unregisterInParent(self):
	"""
	    unregister ourself in parent node, useful when a leaf has been deleted
	"""
	bw_main.getLoader().getNodeByID(self.getParentNodeID()).unregisterLeaf(self.getLeafID())
示例#50
0
    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))
示例#51
0
文件: leaf.py 项目: moxwose/freeIBS
    def getInterface(self):
	return bw_main.getLoader().getInterfaceByID(self.getInterfaceID())
示例#52
0
 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()
示例#53
0
    def __delBwStaticIPCheckInput(self,ip_addr):
	bw_main.getLoader().getStaticIPByIP(ip_addr)
示例#54
0
 def getRxLeafName(self):
     return bw_main.getLoader().getLeafByID(self.getRxLeafID()).getLeafName()
示例#55
0
文件: leaf.py 项目: moxwose/freeIBS
    def registerInParent(self):
	"""
	    register ourself in parent node
	"""
	bw_main.getLoader().getNodeByID(self.getParentNodeID()).registerLeaf(self.getLeafID())
示例#56
0
文件: leaf.py 项目: moxwose/freeIBS
    def getParentNode(self):
	return bw_main.getLoader().getNodeByID(self.getParentNodeID())	
示例#57
0
 def updateCounters(self):
     for int_name in bw_main.getLoader().getAllInterfaceNames():
         self.counters[int_name] = bw_main.getTCRunner().getCounters(int_name)
示例#58
0
    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())
示例#59
0
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)
示例#60
0
    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)