Search in sources :

Example 31 with ConfigOrError

use of io.grpc.NameResolver.ConfigOrError in project grpc-java by grpc.

the class DnsNameResolverTest method parseServiceConfig_matches.

@Test
public void parseServiceConfig_matches() {
    ConfigOrError result = DnsNameResolver.parseServiceConfig(Arrays.asList("grpc_config=[{\"serviceConfig\":{}}]"), new Random(), "localhost");
    assertThat(result).isNotNull();
    assertThat(result.getError()).isNull();
    assertThat(result.getConfig()).isEqualTo(ImmutableMap.of());
}
Also used : Random(java.util.Random) ConfigOrError(io.grpc.NameResolver.ConfigOrError) Test(org.junit.Test)

Example 32 with ConfigOrError

use of io.grpc.NameResolver.ConfigOrError in project grpc-java by grpc.

the class ClusterManagerLoadBalancerProviderTest method parseLoadBalancingConfig_valid.

@Test
public void parseLoadBalancingConfig_valid() throws IOException {
    final Object fooConfig = new Object();
    LoadBalancerProvider lbProviderFoo = new LoadBalancerProvider() {

        @Override
        public boolean isAvailable() {
            return true;
        }

        @Override
        public int getPriority() {
            return 5;
        }

        @Override
        public String getPolicyName() {
            return "foo_policy";
        }

        @Override
        public LoadBalancer newLoadBalancer(Helper helper) {
            throw new UnsupportedOperationException("Should not be called");
        }

        @Override
        public ConfigOrError parseLoadBalancingPolicyConfig(Map<String, ?> rawLoadBalancingPolicyConfig) {
            return ConfigOrError.fromConfig(fooConfig);
        }
    };
    final Object barConfig = new Object();
    LoadBalancerProvider lbProviderBar = new LoadBalancerProvider() {

        @Override
        public boolean isAvailable() {
            return true;
        }

        @Override
        public int getPriority() {
            return 5;
        }

        @Override
        public String getPolicyName() {
            return "bar_policy";
        }

        @Override
        public LoadBalancer newLoadBalancer(Helper helper) {
            throw new UnsupportedOperationException("Should not be called");
        }

        @Override
        public ConfigOrError parseLoadBalancingPolicyConfig(Map<String, ?> rawLoadBalancingPolicyConfig) {
            return ConfigOrError.fromConfig(barConfig);
        }
    };
    lbRegistry.register(lbProviderFoo);
    lbRegistry.register(lbProviderBar);
    String clusterManagerConfigJson = "{\n" + "  \"childPolicy\": {\n" + "    \"child1\": {\n" + "      \"lbPolicy\": [\n" + "        {\n" + "          \"foo_policy\": {" + "            \"config_name\": \"config_value\"\n" + "          }\n" + "        }\n" + "      ]\n" + "    },\n" + "    \"child2\": {\n" + "      \"lbPolicy\": [\n" + "        {\n" + "          \"bar_policy\": {}\n" + "        }, {\n" + "          \"unsupported\": {}\n" + "        }\n" + "      ]\n" + "    }\n" + "  }\n" + "}";
    @SuppressWarnings("unchecked") Map<String, ?> rawLbConfigMap = (Map<String, ?>) JsonParser.parse(clusterManagerConfigJson);
    ConfigOrError configOrError = provider.parseLoadBalancingPolicyConfig(rawLbConfigMap);
    assertThat(configOrError.getConfig()).isNotNull();
    ClusterManagerConfig config = (ClusterManagerConfig) configOrError.getConfig();
    assertThat(config.childPolicies).containsExactly("child1", new PolicySelection(lbProviderFoo, fooConfig), "child2", new PolicySelection(lbProviderBar, barConfig));
}
Also used : Helper(io.grpc.LoadBalancer.Helper) ClusterManagerConfig(io.grpc.xds.ClusterManagerLoadBalancerProvider.ClusterManagerConfig) LoadBalancerProvider(io.grpc.LoadBalancerProvider) ConfigOrError(io.grpc.NameResolver.ConfigOrError) PolicySelection(io.grpc.internal.ServiceConfigUtil.PolicySelection) Map(java.util.Map) Test(org.junit.Test)

Example 33 with ConfigOrError

use of io.grpc.NameResolver.ConfigOrError in project grpc-java by grpc.

the class ClusterManagerLoadBalancerProviderTest method parseLoadBalancingPolicyConfig_emptyChildPolicy.

@Test
public void parseLoadBalancingPolicyConfig_emptyChildPolicy() throws IOException {
    String clusterManagerConfigJson = "{\n" + "  \"childPolicy\": {}\n" + "}";
    @SuppressWarnings("unchecked") Map<String, ?> rawLbConfigMap = (Map<String, ?>) JsonParser.parse(clusterManagerConfigJson);
    ConfigOrError configOrError = provider.parseLoadBalancingPolicyConfig(rawLbConfigMap);
    Status error = configOrError.getError();
    assertThat(error.getCode()).isEqualTo(Code.INTERNAL);
    assertThat(error.getDescription()).startsWith("No child policy provided for cluster_manager LB policy");
}
Also used : Status(io.grpc.Status) ConfigOrError(io.grpc.NameResolver.ConfigOrError) Map(java.util.Map) Test(org.junit.Test)

Example 34 with ConfigOrError

use of io.grpc.NameResolver.ConfigOrError in project grpc-java by grpc.

the class CdsLoadBalancerProviderTest method parseCdsLoadBalancingPolicyConfig.

@Test
public void parseCdsLoadBalancingPolicyConfig() throws IOException {
    CdsLoadBalancerProvider provider = new CdsLoadBalancerProvider();
    String rawCdsLbConfig = "{\n" + "  \"cluster\": \"cluster-foo.googleapis.com\"\n" + "}";
    @SuppressWarnings("unchecked") Map<String, ?> rawLbConfigMap = (Map<String, ?>) JsonParser.parse(rawCdsLbConfig);
    ConfigOrError result = provider.parseLoadBalancingPolicyConfig(rawLbConfigMap);
    assertThat(result.getConfig()).isNotNull();
    CdsConfig config = (CdsConfig) result.getConfig();
    assertThat(config.name).isEqualTo("cluster-foo.googleapis.com");
}
Also used : ConfigOrError(io.grpc.NameResolver.ConfigOrError) CdsConfig(io.grpc.xds.CdsLoadBalancerProvider.CdsConfig) Map(java.util.Map) Test(org.junit.Test)

Example 35 with ConfigOrError

use of io.grpc.NameResolver.ConfigOrError in project grpc-java by grpc.

the class RingHashLoadBalancerProviderTest method parseLoadBalancingConfig_valid.

@Test
public void parseLoadBalancingConfig_valid() throws IOException {
    String lbConfig = "{\"minRingSize\" : 10, \"maxRingSize\" : 100}";
    ConfigOrError configOrError = provider.parseLoadBalancingPolicyConfig(parseJsonObject(lbConfig));
    assertThat(configOrError.getConfig()).isNotNull();
    RingHashConfig config = (RingHashConfig) configOrError.getConfig();
    assertThat(config.minRingSize).isEqualTo(10L);
    assertThat(config.maxRingSize).isEqualTo(100L);
}
Also used : ConfigOrError(io.grpc.NameResolver.ConfigOrError) RingHashConfig(io.grpc.xds.RingHashLoadBalancer.RingHashConfig) Test(org.junit.Test)

Aggregations

ConfigOrError (io.grpc.NameResolver.ConfigOrError)57 Test (org.junit.Test)52 PolicySelection (io.grpc.internal.ServiceConfigUtil.PolicySelection)10 EquivalentAddressGroup (io.grpc.EquivalentAddressGroup)9 Helper (io.grpc.LoadBalancer.Helper)9 Status (io.grpc.Status)9 AutoConfiguredLoadBalancer (io.grpc.internal.AutoConfiguredLoadBalancerFactory.AutoConfiguredLoadBalancer)7 ForwardingLoadBalancerHelper (io.grpc.util.ForwardingLoadBalancerHelper)7 Map (java.util.Map)7 InetSocketAddress (java.net.InetSocketAddress)6 SocketAddress (java.net.SocketAddress)4 Random (java.util.Random)4 CreateSubchannelArgs (io.grpc.LoadBalancer.CreateSubchannelArgs)3 ResolvedAddresses (io.grpc.LoadBalancer.ResolvedAddresses)3 LoadBalancerProvider (io.grpc.LoadBalancerProvider)3 LoadBalancerRegistry (io.grpc.LoadBalancerRegistry)3 LeastRequestConfig (io.grpc.xds.LeastRequestLoadBalancer.LeastRequestConfig)3 LbConfig (io.grpc.internal.ServiceConfigUtil.LbConfig)2 RingHashConfig (io.grpc.xds.RingHashLoadBalancer.RingHashConfig)2 LinkedHashMap (java.util.LinkedHashMap)2