コード例 #1
0
    def _desired_nodes(self, default_route_domain):
        """Desired nodes is inferred from the active pool members."""
        desired_nodes = dict()

        nodes = self._bigip.get_nodes()
        pools = self._bigip.get_pools(True)
        for pool in pools:
            for member in pools[pool].members:
                pool_addr = member.name.split('%3A')[0]
                pool_addr_rd = encoded_normalize_address_with_route_domain(
                    pool_addr, default_route_domain, True, False)
                # make a copy to iterate over, then delete from 'nodes'
                node_list = list(nodes.keys())
                for key in node_list:
                    node_addr = nodes[key].data['address']
                    node_addr_rd = encoded_normalize_address_with_route_domain(
                        node_addr, default_route_domain, False, False)
                    if node_addr_rd == pool_addr_rd:
                        node = {'name': key,
                                'partition': nodes[key].partition,
                                'address': node_addr_rd,
                                'default_route_domain': default_route_domain,
                                'state': 'user-up',
                                'session': 'user-enabled'}
                        desired_node = ApiNode(**node)
                        desired_nodes[desired_node.name] = desired_node

        return desired_nodes
コード例 #2
0
ファイル: manager.py プロジェクト: russokj/f5-cccl
    def _desired_nodes(self, default_route_domain):
        """Desired nodes is inferred from the active pool members."""
        desired_nodes = dict()

        nodes = self._bigip.get_nodes()
        pools = self._bigip.get_pools(True)
        for pool in pools:
            for member in pools[pool].members:
                pool_addr = member.name.split('%3A')[0]
                pool_addr_rd = encoded_normalize_address_with_route_domain(
                    pool_addr, default_route_domain, True, False)
                # make a copy to iterate over, then delete from 'nodes'
                node_list = list(nodes.keys())
                for key in node_list:
                    node_addr = nodes[key].data['address']
                    node_addr_rd = encoded_normalize_address_with_route_domain(
                        node_addr, default_route_domain, False, False)
                    if node_addr_rd == pool_addr_rd:
                        node = {'name': key,
                                'partition': nodes[key].partition,
                                'address': node_addr_rd,
                                'default_route_domain': default_route_domain,
                                'state': 'user-up',
                                'session': 'user-enabled'}
                        desired_node = ApiNode(**node)
                        desired_nodes[desired_node.name] = desired_node

        return desired_nodes
コード例 #3
0
ファイル: test_route_domain.py プロジェクト: russokj/f5-cccl
def test_encoded_normalize_address_with_route_domain():
    """Test proper behavior of encoded_normalize_address_with_route_domain."""

    # test wrapper for test_normalize_address_with_route_domain but with
    # address input/output being either url encoded or url unencoded
    tests = [
        ["1.2.3.4%1", 2, False, False, "1.2.3.4%1"],
        ["1.2.3.4%1", 2, False, True, urlquote("1.2.3.4%1")],
        [urlquote("1.2.3.4%1"), 2, True, False, "1.2.3.4%1"],
        [urlquote("1.2.3.4%1"), 2, True, True, urlquote("1.2.3.4%1")],

        ["64:ff9b::", 2, False, False, "64:ff9b::%2"],
        ["64:ff9b::", 2, False, True, urlquote("64:ff9b::%2")],
        [urlquote("64:ff9b::"), 2, True, False, "64:ff9b::%2"],
        [urlquote("64:ff9b::"), 2, True, True, urlquote("64:ff9b::%2")]
    ]

    for test in tests:
        result = encoded_normalize_address_with_route_domain(
            test[0], test[1], test[2], test[3])
        assert result == test[4]
コード例 #4
0
ファイル: test_route_domain.py プロジェクト: dramich/f5-cccl
def test_encoded_normalize_address_with_route_domain():
    """Test proper behavior of encoded_normalize_address_with_route_domain."""

    # test wrapper for test_normalize_address_with_route_domain but with
    # address input/output being either url encoded or url unencoded
    tests = [
        ["1.2.3.4%1", 2, False, False, "1.2.3.4%1"],
        ["1.2.3.4%1", 2, False, True, urlquote("1.2.3.4%1")],
        [urlquote("1.2.3.4%1"), 2, True, False, "1.2.3.4%1"],
        [urlquote("1.2.3.4%1"), 2, True, True, urlquote("1.2.3.4%1")],

        ["64:ff9b::", 2, False, False, "64:ff9b::%2"],
        ["64:ff9b::", 2, False, True, urlquote("64:ff9b::%2")],
        [urlquote("64:ff9b::"), 2, True, False, "64:ff9b::%2"],
        [urlquote("64:ff9b::"), 2, True, True, urlquote("64:ff9b::%2")]
    ]

    for test in tests:
        result = encoded_normalize_address_with_route_domain(
            test[0], test[1], test[2], test[3])
        assert result == test[4]