use of com.yahoo.vespa.applicationmodel.ServiceCluster in project vespa by vespa-engine.
the class ClusterApiImplTest method testStorageCluster.
@Test
public void testStorageCluster() {
HostName hostName1 = new HostName("host1");
HostName hostName2 = new HostName("host2");
HostName hostName3 = new HostName("host3");
ServiceCluster serviceCluster = modelUtils.createServiceCluster("cluster", VespaModelUtil.STORAGENODE_SERVICE_TYPE, Arrays.asList(modelUtils.createServiceInstance("storage-1", hostName1, ServiceStatus.UP), modelUtils.createServiceInstance("storage-2", hostName2, ServiceStatus.DOWN)));
ClusterApiImpl clusterApi = new ClusterApiImpl(applicationApi, serviceCluster, new NodeGroup(modelUtils.createApplicationInstance(new ArrayList<>()), hostName1, hostName3), new HashMap<>(), modelUtils.getClusterControllerClientFactory());
assertTrue(clusterApi.isStorageCluster());
assertEquals(Optional.of(hostName1), clusterApi.storageNodeInGroup().map(storageNode -> storageNode.hostName()));
assertEquals(Optional.of(hostName1), clusterApi.upStorageNodeInGroup().map(storageNode -> storageNode.hostName()));
}
use of com.yahoo.vespa.applicationmodel.ServiceCluster in project vespa by vespa-engine.
the class ClusterApiImplTest method testServicesDownAndNotInGroup.
@Test
public void testServicesDownAndNotInGroup() {
HostName hostName1 = modelUtils.createNode("host1", HostStatus.NO_REMARKS);
HostName hostName2 = modelUtils.createNode("host2", HostStatus.NO_REMARKS);
HostName hostName3 = modelUtils.createNode("host3", HostStatus.ALLOWED_TO_BE_DOWN);
HostName hostName4 = modelUtils.createNode("host4", HostStatus.ALLOWED_TO_BE_DOWN);
HostName hostName5 = modelUtils.createNode("host5", HostStatus.NO_REMARKS);
ServiceCluster serviceCluster = modelUtils.createServiceCluster("cluster", new ServiceType("service-type"), Arrays.asList(modelUtils.createServiceInstance("service-1", hostName1, ServiceStatus.UP), modelUtils.createServiceInstance("service-2", hostName2, ServiceStatus.DOWN), modelUtils.createServiceInstance("service-3", hostName3, ServiceStatus.UP), modelUtils.createServiceInstance("service-4", hostName4, ServiceStatus.DOWN), modelUtils.createServiceInstance("service-5", hostName5, ServiceStatus.UP)));
ClusterApiImpl clusterApi = new ClusterApiImpl(applicationApi, serviceCluster, new NodeGroup(modelUtils.createApplicationInstance(new ArrayList<>()), hostName5), modelUtils.getHostStatusMap(), modelUtils.getClusterControllerClientFactory());
assertEquals("{ clusterId=cluster, serviceType=service-type }", clusterApi.clusterInfo());
assertFalse(clusterApi.isStorageCluster());
assertEquals("[ServiceInstance{configId=service-2, hostName=host2, serviceStatus=DOWN}, " + "ServiceInstance{configId=service-3, hostName=host3, serviceStatus=UP}, " + "ServiceInstance{configId=service-4, hostName=host4, serviceStatus=DOWN}]", clusterApi.servicesDownAndNotInGroupDescription());
assertEquals("[host3, host4]", clusterApi.nodesAllowedToBeDownNotInGroupDescription());
assertEquals(60, clusterApi.percentageOfServicesDown());
assertEquals(80, clusterApi.percentageOfServicesDownIfGroupIsAllowedToBeDown());
}
use of com.yahoo.vespa.applicationmodel.ServiceCluster in project vespa by vespa-engine.
the class VespaModelUtilTest method verifyNonControllerClusterIsNotRecognized.
@Test
public void verifyNonControllerClusterIsNotRecognized() {
ServiceCluster cluster = createServiceCluster(new ServiceType("foo"));
assertFalse(VespaModelUtil.isClusterController(cluster));
}
use of com.yahoo.vespa.applicationmodel.ServiceCluster in project vespa by vespa-engine.
the class VespaModelUtilTest method verifyContentClusterIsRecognized.
@Test
public void verifyContentClusterIsRecognized() {
ServiceCluster cluster = createServiceCluster(VespaModelUtil.DISTRIBUTOR_SERVICE_TYPE);
assertTrue(VespaModelUtil.isContent(cluster));
cluster = createServiceCluster(VespaModelUtil.STORAGENODE_SERVICE_TYPE);
assertTrue(VespaModelUtil.isContent(cluster));
cluster = createServiceCluster(VespaModelUtil.SEARCHNODE_SERVICE_TYPE);
assertTrue(VespaModelUtil.isContent(cluster));
}
use of com.yahoo.vespa.applicationmodel.ServiceCluster in project vespa by vespa-engine.
the class VespaModelUtilTest method verifyNonStorageClusterIsNotRecognized.
@Test
public void verifyNonStorageClusterIsNotRecognized() {
ServiceCluster cluster = createServiceCluster(new ServiceType("foo"));
assertFalse(VespaModelUtil.isStorage(cluster));
}
Aggregations