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
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
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]
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]