use of com.yahoo.vespa.applicationmodel.HostName in project vespa by vespa-engine.
the class ApplicationApiImplTest method verifyUpConditionWith.
private void verifyUpConditionWith(HostStatus hostStatus, ServiceStatus serviceStatus, boolean expectUp) {
HostName hostName1 = modelUtils.createNode("host1", hostStatus);
ApplicationInstance applicationInstance = modelUtils.createApplicationInstance(Arrays.asList(modelUtils.createServiceCluster("cluster-1", VespaModelUtil.STORAGENODE_SERVICE_TYPE, Arrays.asList(modelUtils.createServiceInstance("config-id-1", hostName1, serviceStatus)))));
ApplicationApiImpl applicationApi = modelUtils.createApplicationApiImpl(applicationInstance, hostName1);
List<HostName> upStorageNodes = expectUp ? Arrays.asList(hostName1) : new ArrayList<>();
List<HostName> actualStorageNodes = applicationApi.getUpStorageNodesInGroupInClusterOrder().stream().map(storageNode -> storageNode.hostName()).collect(Collectors.toList());
assertEquals(upStorageNodes, actualStorageNodes);
}
use of com.yahoo.vespa.applicationmodel.HostName in project vespa by vespa-engine.
the class ModelTestUtils method createNode.
HostName createNode(String name, HostStatus hostStatus) {
HostName hostName = new HostName(name);
hostStatusMap.put(hostName, hostStatus);
when(statusRegistry.getHostStatus(hostName)).thenReturn(hostStatus);
return hostName;
}
use of com.yahoo.vespa.applicationmodel.HostName in project vespa by vespa-engine.
the class VespaModelUtilTest method testGetControllerHostName.
@Test
public void testGetControllerHostName() {
HostName host = VespaModelUtil.getControllerHostName(application, CONTENT_CLUSTER_ID);
assertThat(host).isEqualTo(controller0Host);
}
use of com.yahoo.vespa.applicationmodel.HostName in project vespa by vespa-engine.
the class VespaModelUtilTest method testGetStorageNodeAtHostWithUnknownHost.
@Test
public void testGetStorageNodeAtHostWithUnknownHost() {
Optional<ServiceInstance> service = VespaModelUtil.getStorageNodeAtHost(application, new HostName("storage-1"));
assertFalse(service.isPresent());
}
use of com.yahoo.vespa.applicationmodel.HostName in project vespa by vespa-engine.
the class HostedVespaPolicyTest method testGrantSuspension.
@Test
public void testGrantSuspension() throws HostStateChangeDeniedException {
final HostedVespaClusterPolicy clusterPolicy = mock(HostedVespaClusterPolicy.class);
final HostedVespaPolicy policy = new HostedVespaPolicy(clusterPolicy, clientFactory);
final ApplicationApi applicationApi = mock(ApplicationApi.class);
when(applicationApi.applicationId()).thenReturn(ApplicationId.fromSerializedForm("tenant:app:default"));
ClusterApi clusterApi1 = mock(ClusterApi.class);
ClusterApi clusterApi2 = mock(ClusterApi.class);
ClusterApi clusterApi3 = mock(ClusterApi.class);
List<ClusterApi> clusterApis = Arrays.asList(clusterApi1, clusterApi2, clusterApi3);
when(applicationApi.getClusters()).thenReturn(clusterApis);
StorageNode storageNode1 = mock(StorageNode.class);
HostName hostName1 = new HostName("storage-1");
when(storageNode1.hostName()).thenReturn(hostName1);
HostName hostName2 = new HostName("host-2");
StorageNode storageNode3 = mock(StorageNode.class);
HostName hostName3 = new HostName("storage-3");
when(storageNode1.hostName()).thenReturn(hostName3);
List<StorageNode> upStorageNodes = Arrays.asList(storageNode1, storageNode3);
when(applicationApi.getUpStorageNodesInGroupInClusterOrder()).thenReturn(upStorageNodes);
// setHostState
List<HostName> noRemarksHostNames = Arrays.asList(hostName1, hostName2, hostName3);
when(applicationApi.getNodesInGroupWithStatus(HostStatus.NO_REMARKS)).thenReturn(noRemarksHostNames);
InOrder order = inOrder(applicationApi, clusterPolicy, storageNode1, storageNode3);
policy.grantSuspensionRequest(applicationApi);
order.verify(applicationApi).getClusters();
order.verify(clusterPolicy).verifyGroupGoingDownIsFine(clusterApi1);
order.verify(clusterPolicy).verifyGroupGoingDownIsFine(clusterApi2);
order.verify(clusterPolicy).verifyGroupGoingDownIsFine(clusterApi3);
order.verify(applicationApi).getUpStorageNodesInGroupInClusterOrder();
order.verify(storageNode1).setNodeState(ClusterControllerNodeState.MAINTENANCE);
order.verify(storageNode3).setNodeState(ClusterControllerNodeState.MAINTENANCE);
order.verify(applicationApi).getNodesInGroupWithStatus(HostStatus.NO_REMARKS);
order.verify(applicationApi).setHostState(hostName1, HostStatus.ALLOWED_TO_BE_DOWN);
order.verify(applicationApi).setHostState(hostName2, HostStatus.ALLOWED_TO_BE_DOWN);
order.verify(applicationApi).setHostState(hostName3, HostStatus.ALLOWED_TO_BE_DOWN);
order.verifyNoMoreInteractions();
}
Aggregations