YARN-11339. Upgrade Junit 4 to 5 in hadoop-yarn-services-api (#4995)
Co-authored-by: Ashutosh Gupta <ashugpt@amazon.com> Signed-off-by: Akira Ajisaka <aajisaka@apache.org>
This commit is contained in:
parent
d6a65a4180
commit
c096803387
@ -197,6 +197,16 @@
|
||||
<type>test-jar</type>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter-api</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter-engine</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.hadoop</groupId>
|
||||
<artifactId>hadoop-minicluster</artifactId>
|
||||
@ -211,7 +221,17 @@
|
||||
<groupId>org.apache.hadoop</groupId>
|
||||
<artifactId>hadoop-minikdc</artifactId>
|
||||
<scope>test</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.junit.platform</groupId>
|
||||
<artifactId>junit-platform-launcher</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
</project>
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
package org.apache.hadoop.yarn.service;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
@ -47,9 +47,9 @@
|
||||
import org.apache.hadoop.yarn.service.api.records.ServiceStatus;
|
||||
import org.apache.hadoop.yarn.service.conf.RestApiConstants;
|
||||
import org.apache.hadoop.yarn.service.webapp.ApiServer;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
/**
|
||||
@ -61,7 +61,7 @@ public class TestApiServer {
|
||||
private HttpServletRequest request;
|
||||
private ServiceClientTest mockServerClient;
|
||||
|
||||
@Before
|
||||
@BeforeEach
|
||||
public void setup() throws Exception {
|
||||
request = Mockito.mock(HttpServletRequest.class);
|
||||
Mockito.when(request.getRemoteUser())
|
||||
@ -74,40 +74,41 @@ public void setup() throws Exception {
|
||||
apiServer.setServiceClient(mockServerClient);
|
||||
}
|
||||
|
||||
@After
|
||||
@AfterEach
|
||||
public void teardown() {
|
||||
mockServerClient.forceStop();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPathAnnotation() {
|
||||
void testPathAnnotation() {
|
||||
assertNotNull(this.apiServer.getClass().getAnnotation(Path.class));
|
||||
assertTrue("The controller has the annotation Path",
|
||||
this.apiServer.getClass().isAnnotationPresent(Path.class));
|
||||
assertTrue(this.apiServer.getClass().isAnnotationPresent(Path.class),
|
||||
"The controller has the annotation Path");
|
||||
final Path path = this.apiServer.getClass()
|
||||
.getAnnotation(Path.class);
|
||||
assertEquals("The path has /v1 annotation", "/v1", path.value());
|
||||
assertEquals("/v1", path.value(), "The path has /v1 annotation");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetVersion() {
|
||||
void testGetVersion() {
|
||||
final Response actual = apiServer.getVersion();
|
||||
assertEquals("Version number is", Response.ok().build().getStatus(),
|
||||
actual.getStatus());
|
||||
assertEquals(Response.ok().build().getStatus(),
|
||||
actual.getStatus(),
|
||||
"Version number is");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBadCreateService() {
|
||||
void testBadCreateService() {
|
||||
Service service = new Service();
|
||||
// Test for invalid argument
|
||||
final Response actual = apiServer.createService(request, service);
|
||||
assertEquals("Create service is ",
|
||||
Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus());
|
||||
assertEquals(Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus(),
|
||||
"Create service is ");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGoodCreateService() throws Exception {
|
||||
void testGoodCreateService() throws Exception {
|
||||
String json = "{\"auths\": "
|
||||
+ "{\"https://index.docker.io/v1/\": "
|
||||
+ "{\"auth\": \"foobarbaz\"},"
|
||||
@ -122,13 +123,13 @@ public void testGoodCreateService() throws Exception {
|
||||
bw.close();
|
||||
Service service = ServiceClientTest.buildGoodService();
|
||||
final Response actual = apiServer.createService(request, service);
|
||||
assertEquals("Create service is ",
|
||||
Response.status(Status.ACCEPTED).build().getStatus(),
|
||||
actual.getStatus());
|
||||
assertEquals(Response.status(Status.ACCEPTED).build().getStatus(),
|
||||
actual.getStatus(),
|
||||
"Create service is ");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInternalServerErrorDockerClientConfigMissingCreateService() {
|
||||
void testInternalServerErrorDockerClientConfigMissingCreateService() {
|
||||
Service service = new Service();
|
||||
service.setName("jenkins");
|
||||
service.setVersion("v1");
|
||||
@ -149,97 +150,94 @@ public void testInternalServerErrorDockerClientConfigMissingCreateService() {
|
||||
components.add(c);
|
||||
service.setComponents(components);
|
||||
final Response actual = apiServer.createService(request, service);
|
||||
assertEquals("Create service is ",
|
||||
Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus());
|
||||
assertEquals(Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus(),
|
||||
"Create service is ");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBadGetService() {
|
||||
void testBadGetService() {
|
||||
final String serviceName = "nonexistent-jenkins";
|
||||
final Response actual = apiServer.getService(request, serviceName);
|
||||
assertEquals("Get service is ",
|
||||
Response.status(Status.NOT_FOUND).build().getStatus(),
|
||||
actual.getStatus());
|
||||
assertEquals(Response.status(Status.NOT_FOUND).build().getStatus(),
|
||||
actual.getStatus(),
|
||||
"Get service is ");
|
||||
ServiceStatus serviceStatus = (ServiceStatus) actual.getEntity();
|
||||
assertEquals("Response code don't match",
|
||||
RestApiConstants.ERROR_CODE_APP_NAME_INVALID, serviceStatus.getCode());
|
||||
assertEquals("Response diagnostics don't match",
|
||||
"Service " + serviceName + " not found",
|
||||
serviceStatus.getDiagnostics());
|
||||
assertEquals(RestApiConstants.ERROR_CODE_APP_NAME_INVALID, serviceStatus.getCode(),
|
||||
"Response code don't match");
|
||||
assertEquals("Service " + serviceName + " not found", serviceStatus.getDiagnostics(),
|
||||
"Response diagnostics don't match");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBadGetService2() {
|
||||
void testBadGetService2() {
|
||||
final Response actual = apiServer.getService(request, null);
|
||||
assertEquals("Get service is ",
|
||||
Response.status(Status.NOT_FOUND).build().getStatus(),
|
||||
actual.getStatus());
|
||||
assertEquals(Response.status(Status.NOT_FOUND).build().getStatus(), actual.getStatus(),
|
||||
"Get service is ");
|
||||
ServiceStatus serviceStatus = (ServiceStatus) actual.getEntity();
|
||||
assertEquals("Response code don't match",
|
||||
RestApiConstants.ERROR_CODE_APP_NAME_INVALID, serviceStatus.getCode());
|
||||
assertEquals("Response diagnostics don't match",
|
||||
"Service name cannot be null.", serviceStatus.getDiagnostics());
|
||||
assertEquals(RestApiConstants.ERROR_CODE_APP_NAME_INVALID, serviceStatus.getCode(),
|
||||
"Response code don't match");
|
||||
assertEquals("Service name cannot be null.", serviceStatus.getDiagnostics(),
|
||||
"Response diagnostics don't match");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGoodGetService() {
|
||||
void testGoodGetService() {
|
||||
final Response actual = apiServer.getService(request, "jenkins");
|
||||
assertEquals("Get service is ",
|
||||
Response.status(Status.OK).build().getStatus(), actual.getStatus());
|
||||
assertEquals(Response.status(Status.OK).build().getStatus(), actual.getStatus(),
|
||||
"Get service is ");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBadDeleteService() {
|
||||
void testBadDeleteService() {
|
||||
final Response actual = apiServer.deleteService(request, "no-jenkins");
|
||||
assertEquals("Delete service is ",
|
||||
Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus());
|
||||
assertEquals(Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus(),
|
||||
"Delete service is ");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBadDeleteService2() {
|
||||
void testBadDeleteService2() {
|
||||
final Response actual = apiServer.deleteService(request, null);
|
||||
assertEquals("Delete service is ",
|
||||
Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus());
|
||||
assertEquals(Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus(),
|
||||
"Delete service is ");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBadDeleteService3() {
|
||||
void testBadDeleteService3() {
|
||||
final Response actual = apiServer.deleteService(request,
|
||||
"jenkins-doesn't-exist");
|
||||
assertEquals("Delete service is ",
|
||||
Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus());
|
||||
assertEquals(Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus(),
|
||||
"Delete service is ");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBadDeleteService4() {
|
||||
void testBadDeleteService4() {
|
||||
final Response actual = apiServer.deleteService(request,
|
||||
"jenkins-error-cleaning-registry");
|
||||
assertEquals("Delete service is ",
|
||||
Response.status(Status.INTERNAL_SERVER_ERROR).build().getStatus(),
|
||||
actual.getStatus());
|
||||
assertEquals(Response.status(Status.INTERNAL_SERVER_ERROR).build().getStatus(),
|
||||
actual.getStatus(),
|
||||
"Delete service is ");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGoodDeleteService() {
|
||||
void testGoodDeleteService() {
|
||||
final Response actual = apiServer.deleteService(request, "jenkins");
|
||||
assertEquals("Delete service is ",
|
||||
Response.status(Status.OK).build().getStatus(), actual.getStatus());
|
||||
assertEquals(Response.status(Status.OK).build().getStatus(), actual.getStatus(),
|
||||
"Delete service is ");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteStoppedService() {
|
||||
final Response actual = apiServer.deleteService(request,
|
||||
"jenkins-already-stopped");
|
||||
assertEquals("Delete service is ",
|
||||
Response.status(Status.OK).build().getStatus(), actual.getStatus());
|
||||
void testDeleteStoppedService() {
|
||||
final Response actual = apiServer.deleteService(request, "jenkins-already-stopped");
|
||||
assertEquals(Response.status(Status.OK).build().getStatus(), actual.getStatus(),
|
||||
"Delete service is ");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecreaseContainerAndStop() {
|
||||
void testDecreaseContainerAndStop() {
|
||||
Service service = new Service();
|
||||
service.setState(ServiceState.STOPPED);
|
||||
service.setName("jenkins");
|
||||
@ -260,12 +258,12 @@ public void testDecreaseContainerAndStop() {
|
||||
service.setComponents(components);
|
||||
final Response actual = apiServer.updateService(request, "jenkins",
|
||||
service);
|
||||
assertEquals("update service is ",
|
||||
Response.status(Status.OK).build().getStatus(), actual.getStatus());
|
||||
assertEquals(Response.status(Status.OK).build().getStatus(), actual.getStatus(),
|
||||
"update service is ");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBadDecreaseContainerAndStop() {
|
||||
void testBadDecreaseContainerAndStop() {
|
||||
Service service = new Service();
|
||||
service.setState(ServiceState.STOPPED);
|
||||
service.setName("no-jenkins");
|
||||
@ -287,13 +285,13 @@ public void testBadDecreaseContainerAndStop() {
|
||||
System.out.println("before stop");
|
||||
final Response actual = apiServer.updateService(request, "no-jenkins",
|
||||
service);
|
||||
assertEquals("flex service is ",
|
||||
Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus());
|
||||
assertEquals(Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus(),
|
||||
"flex service is ");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIncreaseContainersAndStart() {
|
||||
void testIncreaseContainersAndStart() {
|
||||
Service service = new Service();
|
||||
service.setState(ServiceState.STARTED);
|
||||
service.setName("jenkins");
|
||||
@ -314,12 +312,12 @@ public void testIncreaseContainersAndStart() {
|
||||
service.setComponents(components);
|
||||
final Response actual = apiServer.updateService(request, "jenkins",
|
||||
service);
|
||||
assertEquals("flex service is ",
|
||||
Response.status(Status.OK).build().getStatus(), actual.getStatus());
|
||||
assertEquals(Response.status(Status.OK).build().getStatus(), actual.getStatus(),
|
||||
"flex service is ");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBadStartServices() {
|
||||
void testBadStartServices() {
|
||||
Service service = new Service();
|
||||
service.setState(ServiceState.STARTED);
|
||||
service.setName("no-jenkins");
|
||||
@ -340,13 +338,13 @@ public void testBadStartServices() {
|
||||
service.setComponents(components);
|
||||
final Response actual = apiServer.updateService(request, "no-jenkins",
|
||||
service);
|
||||
assertEquals("start service is ",
|
||||
Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus());
|
||||
assertEquals(Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus(),
|
||||
"start service is ");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGoodStartServices() {
|
||||
void testGoodStartServices() {
|
||||
Service service = new Service();
|
||||
service.setState(ServiceState.STARTED);
|
||||
service.setName("jenkins");
|
||||
@ -367,12 +365,12 @@ public void testGoodStartServices() {
|
||||
service.setComponents(components);
|
||||
final Response actual = apiServer.updateService(request, "jenkins",
|
||||
service);
|
||||
assertEquals("start service is ",
|
||||
Response.status(Status.OK).build().getStatus(), actual.getStatus());
|
||||
assertEquals(Response.status(Status.OK).build().getStatus(), actual.getStatus(),
|
||||
"start service is ");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBadStopServices() {
|
||||
void testBadStopServices() {
|
||||
Service service = new Service();
|
||||
service.setState(ServiceState.STOPPED);
|
||||
service.setName("no-jenkins");
|
||||
@ -394,25 +392,25 @@ public void testBadStopServices() {
|
||||
System.out.println("before stop");
|
||||
final Response actual = apiServer.updateService(request, "no-jenkins",
|
||||
service);
|
||||
assertEquals("stop service is ",
|
||||
Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus());
|
||||
assertEquals(Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus(),
|
||||
"stop service is ");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGoodStopServices() {
|
||||
void testGoodStopServices() {
|
||||
Service service = new Service();
|
||||
service.setState(ServiceState.STOPPED);
|
||||
service.setName("jenkins");
|
||||
System.out.println("before stop");
|
||||
final Response actual = apiServer.updateService(request, "jenkins",
|
||||
service);
|
||||
assertEquals("stop service is ",
|
||||
Response.status(Status.OK).build().getStatus(), actual.getStatus());
|
||||
assertEquals(Response.status(Status.OK).build().getStatus(), actual.getStatus(),
|
||||
"stop service is ");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBadSecondStopServices() throws Exception {
|
||||
void testBadSecondStopServices() throws Exception {
|
||||
Service service = new Service();
|
||||
service.setState(ServiceState.STOPPED);
|
||||
service.setName("jenkins-second-stop");
|
||||
@ -420,17 +418,17 @@ public void testBadSecondStopServices() throws Exception {
|
||||
System.out.println("before second stop");
|
||||
final Response actual = apiServer.updateService(request,
|
||||
"jenkins-second-stop", service);
|
||||
assertEquals("stop service should have thrown 400 Bad Request: ",
|
||||
Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus());
|
||||
assertEquals(Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus(),
|
||||
"stop service should have thrown 400 Bad Request: ");
|
||||
ServiceStatus serviceStatus = (ServiceStatus) actual.getEntity();
|
||||
assertEquals("Stop service should have failed with service already stopped",
|
||||
"Service jenkins-second-stop is already stopped",
|
||||
serviceStatus.getDiagnostics());
|
||||
assertEquals("Service jenkins-second-stop is already stopped",
|
||||
serviceStatus.getDiagnostics(),
|
||||
"Stop service should have failed with service already stopped");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateService() {
|
||||
void testUpdateService() {
|
||||
Service service = new Service();
|
||||
service.setState(ServiceState.STARTED);
|
||||
service.setName("no-jenkins");
|
||||
@ -452,72 +450,71 @@ public void testUpdateService() {
|
||||
System.out.println("before stop");
|
||||
final Response actual = apiServer.updateService(request, "no-jenkins",
|
||||
service);
|
||||
assertEquals("update service is ",
|
||||
Response.status(Status.BAD_REQUEST)
|
||||
.build().getStatus(), actual.getStatus());
|
||||
assertEquals(Response.status(Status.BAD_REQUEST)
|
||||
.build().getStatus(), actual.getStatus(), "update service is ");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateComponent() {
|
||||
void testUpdateComponent() {
|
||||
Response actual = apiServer.updateComponent(request, "jenkins",
|
||||
"jenkins-master", null);
|
||||
ServiceStatus serviceStatus = (ServiceStatus) actual.getEntity();
|
||||
assertEquals("Update component should have failed with 400 bad request",
|
||||
Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus());
|
||||
assertEquals("Update component should have failed with no data error",
|
||||
"No component data provided", serviceStatus.getDiagnostics());
|
||||
assertEquals(Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus(),
|
||||
"Update component should have failed with 400 bad request");
|
||||
assertEquals("No component data provided", serviceStatus.getDiagnostics(),
|
||||
"Update component should have failed with no data error");
|
||||
|
||||
Component comp = new Component();
|
||||
actual = apiServer.updateComponent(request, "jenkins", "jenkins-master",
|
||||
comp);
|
||||
serviceStatus = (ServiceStatus) actual.getEntity();
|
||||
assertEquals("Update component should have failed with 400 bad request",
|
||||
Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus());
|
||||
assertEquals("Update component should have failed with no count error",
|
||||
"No container count provided", serviceStatus.getDiagnostics());
|
||||
assertEquals(Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus(),
|
||||
"Update component should have failed with 400 bad request");
|
||||
assertEquals("No container count provided", serviceStatus.getDiagnostics(),
|
||||
"Update component should have failed with no count error");
|
||||
|
||||
comp.setNumberOfContainers(-1L);
|
||||
actual = apiServer.updateComponent(request, "jenkins", "jenkins-master",
|
||||
comp);
|
||||
serviceStatus = (ServiceStatus) actual.getEntity();
|
||||
assertEquals("Update component should have failed with 400 bad request",
|
||||
Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus());
|
||||
assertEquals("Update component should have failed with no count error",
|
||||
"Invalid number of containers specified -1", serviceStatus.getDiagnostics());
|
||||
assertEquals(Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus(),
|
||||
"Update component should have failed with 400 bad request");
|
||||
assertEquals("Invalid number of containers specified -1", serviceStatus.getDiagnostics(),
|
||||
"Update component should have failed with no count error");
|
||||
|
||||
comp.setName("jenkins-slave");
|
||||
comp.setNumberOfContainers(1L);
|
||||
actual = apiServer.updateComponent(request, "jenkins", "jenkins-master",
|
||||
comp);
|
||||
serviceStatus = (ServiceStatus) actual.getEntity();
|
||||
assertEquals("Update component should have failed with 400 bad request",
|
||||
Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus());
|
||||
assertEquals(Response.status(Status.BAD_REQUEST).build().getStatus(),
|
||||
actual.getStatus(),
|
||||
"Update component should have failed with 400 bad request");
|
||||
assertEquals(
|
||||
"Update component should have failed with component name mismatch "
|
||||
+ "error",
|
||||
"Component name in the request object (jenkins-slave) does not match "
|
||||
+ "that in the URI path (jenkins-master)",
|
||||
serviceStatus.getDiagnostics());
|
||||
serviceStatus.getDiagnostics(),
|
||||
"Update component should have failed with component name mismatch "
|
||||
+ "error");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInitiateUpgrade() {
|
||||
void testInitiateUpgrade() {
|
||||
Service goodService = ServiceClientTest.buildLiveGoodService();
|
||||
goodService.setVersion("v2");
|
||||
goodService.setState(ServiceState.UPGRADING);
|
||||
final Response actual = apiServer.updateService(request,
|
||||
goodService.getName(), goodService);
|
||||
assertEquals("Initiate upgrade is ",
|
||||
Response.status(Status.ACCEPTED).build().getStatus(),
|
||||
actual.getStatus());
|
||||
assertEquals(Response.status(Status.ACCEPTED).build().getStatus(),
|
||||
actual.getStatus(),
|
||||
"Initiate upgrade is ");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpgradeSingleInstance() {
|
||||
void testUpgradeSingleInstance() {
|
||||
Service goodService = ServiceClientTest.buildLiveGoodService();
|
||||
Component comp = goodService.getComponents().iterator().next();
|
||||
Container container = comp.getContainers().iterator().next();
|
||||
@ -536,13 +533,13 @@ public void testUpgradeSingleInstance() {
|
||||
final Response actual = apiServer.updateComponentInstance(request,
|
||||
goodService.getName(), comp.getName(),
|
||||
container.getComponentInstanceName(), container);
|
||||
assertEquals("Instance upgrade is ",
|
||||
Response.status(Status.ACCEPTED).build().getStatus(),
|
||||
actual.getStatus());
|
||||
assertEquals(Response.status(Status.ACCEPTED).build().getStatus(),
|
||||
actual.getStatus(),
|
||||
"Instance upgrade is ");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpgradeMultipleInstances() {
|
||||
void testUpgradeMultipleInstances() {
|
||||
Service goodService = ServiceClientTest.buildLiveGoodService();
|
||||
Component comp = goodService.getComponents().iterator().next();
|
||||
comp.getContainers().forEach(container ->
|
||||
@ -563,13 +560,13 @@ public void testUpgradeMultipleInstances() {
|
||||
|
||||
final Response actual = apiServer.updateComponentInstances(request,
|
||||
goodService.getName(), comp.getContainers());
|
||||
assertEquals("Instance upgrade is ",
|
||||
Response.status(Status.ACCEPTED).build().getStatus(),
|
||||
actual.getStatus());
|
||||
assertEquals(Response.status(Status.ACCEPTED).build().getStatus(),
|
||||
actual.getStatus(),
|
||||
"Instance upgrade is ");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpgradeComponent() {
|
||||
void testUpgradeComponent() {
|
||||
Service goodService = ServiceClientTest.buildLiveGoodService();
|
||||
Component comp = goodService.getComponents().iterator().next();
|
||||
comp.setState(ComponentState.UPGRADING);
|
||||
@ -589,13 +586,13 @@ public void testUpgradeComponent() {
|
||||
|
||||
final Response actual = apiServer.updateComponent(request,
|
||||
goodService.getName(), comp.getName(), comp);
|
||||
assertEquals("Component upgrade is ",
|
||||
Response.status(Status.ACCEPTED).build().getStatus(),
|
||||
actual.getStatus());
|
||||
assertEquals(Response.status(Status.ACCEPTED).build().getStatus(),
|
||||
actual.getStatus(),
|
||||
"Component upgrade is ");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpgradeMultipleComps() {
|
||||
void testUpgradeMultipleComps() {
|
||||
Service goodService = ServiceClientTest.buildLiveGoodService();
|
||||
goodService.getComponents().forEach(comp ->
|
||||
comp.setState(ComponentState.UPGRADING));
|
||||
@ -616,8 +613,8 @@ public void testUpgradeMultipleComps() {
|
||||
|
||||
final Response actual = apiServer.updateComponents(request,
|
||||
goodService.getName(), goodService.getComponents());
|
||||
assertEquals("Component upgrade is ",
|
||||
Response.status(Status.ACCEPTED).build().getStatus(),
|
||||
actual.getStatus());
|
||||
assertEquals(Response.status(Status.ACCEPTED).build().getStatus(),
|
||||
actual.getStatus(),
|
||||
"Component upgrade is ");
|
||||
}
|
||||
}
|
||||
|
@ -27,16 +27,19 @@
|
||||
import org.apache.hadoop.yarn.service.api.records.Service;
|
||||
import org.apache.hadoop.yarn.service.client.ServiceClient;
|
||||
import org.apache.hadoop.yarn.service.conf.YarnServiceConstants;
|
||||
import org.junit.After;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.TemporaryFolder;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.Timeout;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
@ -47,22 +50,20 @@ public class TestCleanupAfterKill extends ServiceTestUtils {
|
||||
private static final Logger LOG =
|
||||
LoggerFactory.getLogger(TestCleanupAfterKill.class);
|
||||
|
||||
@Rule
|
||||
public TemporaryFolder tmpFolder = new TemporaryFolder();
|
||||
|
||||
@Before
|
||||
@BeforeEach
|
||||
public void setup() throws Exception {
|
||||
File tmpYarnDir = new File("target", "tmp");
|
||||
FileUtils.deleteQuietly(tmpYarnDir);
|
||||
}
|
||||
|
||||
@After
|
||||
@AfterEach
|
||||
public void tearDown() throws IOException {
|
||||
shutdown();
|
||||
}
|
||||
|
||||
@Test(timeout = 200000)
|
||||
public void testRegistryCleanedOnLifetimeExceeded() throws Exception {
|
||||
@Test
|
||||
@Timeout(200000)
|
||||
void testRegistryCleanedOnLifetimeExceeded() throws Exception {
|
||||
setupInternal(NUM_NMS);
|
||||
ServiceClient client = createClient(getConf());
|
||||
Service exampleApp = createExampleApplication();
|
||||
@ -71,8 +72,8 @@ public void testRegistryCleanedOnLifetimeExceeded() throws Exception {
|
||||
waitForServiceToBeStable(client, exampleApp);
|
||||
String serviceZKPath = RegistryUtils.servicePath(RegistryUtils
|
||||
.currentUser(), YarnServiceConstants.APP_TYPE, exampleApp.getName());
|
||||
Assert.assertTrue("Registry ZK service path doesn't exist",
|
||||
getCuratorService().zkPathExists(serviceZKPath));
|
||||
assertTrue(getCuratorService().zkPathExists(serviceZKPath),
|
||||
"Registry ZK service path doesn't exist");
|
||||
|
||||
// wait for app to be killed by RM
|
||||
ApplicationId exampleAppId = ApplicationId.fromString(exampleApp.getId());
|
||||
@ -85,10 +86,10 @@ public void testRegistryCleanedOnLifetimeExceeded() throws Exception {
|
||||
throw new RuntimeException("while waiting", e);
|
||||
}
|
||||
}, 2000, 200000);
|
||||
Assert.assertFalse("Registry ZK service path still exists after killed",
|
||||
getCuratorService().zkPathExists(serviceZKPath));
|
||||
assertFalse(getCuratorService().zkPathExists(serviceZKPath),
|
||||
"Registry ZK service path still exists after killed");
|
||||
|
||||
LOG.info("Destroy the service");
|
||||
Assert.assertEquals(0, client.actionDestroy(exampleApp.getName()));
|
||||
assertEquals(0, client.actionDestroy(exampleApp.getName()));
|
||||
}
|
||||
}
|
||||
|
@ -16,7 +16,7 @@
|
||||
*/
|
||||
package org.apache.hadoop.yarn.service.client;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
@ -35,9 +35,10 @@
|
||||
import org.eclipse.jetty.servlet.ServletContextHandler;
|
||||
import org.eclipse.jetty.servlet.ServletHolder;
|
||||
import org.eclipse.jetty.util.thread.QueuedThreadPool;
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.apache.hadoop.yarn.service.exceptions.LauncherExitCodes.*;
|
||||
|
||||
/**
|
||||
@ -88,7 +89,7 @@ protected void doDelete(HttpServletRequest req, HttpServletResponse resp)
|
||||
|
||||
}
|
||||
|
||||
@BeforeClass
|
||||
@BeforeAll
|
||||
public static void setup() throws Exception {
|
||||
server = new Server(8088);
|
||||
((QueuedThreadPool)server.getThreadPool()).setMaxThreads(20);
|
||||
@ -112,13 +113,13 @@ public static void setup() throws Exception {
|
||||
badAsc.serviceInit(conf2);
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
@AfterAll
|
||||
public static void tearDown() throws Exception {
|
||||
server.stop();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetRMWebAddress() throws Exception {
|
||||
void testGetRMWebAddress() throws Exception {
|
||||
Configuration conf = new Configuration();
|
||||
conf.setBoolean(YarnConfiguration.RM_HA_ENABLED, true);
|
||||
conf.set(YarnConfiguration.RM_HA_IDS, "rm1");
|
||||
@ -133,13 +134,13 @@ public void testGetRMWebAddress() throws Exception {
|
||||
exceptionCaught = true;
|
||||
diagnosticsMsg = e.getMessage();
|
||||
}
|
||||
assertTrue("ApiServiceClient failed to throw exception", exceptionCaught);
|
||||
assertTrue("Exception Message does not match",
|
||||
diagnosticsMsg.contains("Error connecting to localhost:0"));
|
||||
assertTrue(exceptionCaught, "ApiServiceClient failed to throw exception");
|
||||
assertTrue(diagnosticsMsg.contains("Error connecting to localhost:0"),
|
||||
"Exception Message does not match");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLaunch() {
|
||||
void testLaunch() {
|
||||
String fileName = "target/test-classes/example-app.json";
|
||||
String appName = "example-app";
|
||||
long lifetime = 3600L;
|
||||
@ -153,7 +154,7 @@ public void testLaunch() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBadLaunch() {
|
||||
void testBadLaunch() {
|
||||
String fileName = "unknown_file";
|
||||
String appName = "unknown_app";
|
||||
long lifetime = 3600L;
|
||||
@ -167,19 +168,18 @@ public void testBadLaunch() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStatus() {
|
||||
void testStatus() {
|
||||
String appName = "nonexistent-app";
|
||||
try {
|
||||
String result = asc.getStatusString(appName);
|
||||
assertEquals("Status reponse don't match",
|
||||
" Service " + appName + " not found", result);
|
||||
assertEquals(" Service " + appName + " not found", result, "Status reponse don't match");
|
||||
} catch (IOException | YarnException e) {
|
||||
fail();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStop() {
|
||||
void testStop() {
|
||||
String appName = "example-app";
|
||||
try {
|
||||
int result = asc.actionStop(appName);
|
||||
@ -190,7 +190,7 @@ public void testStop() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBadStop() {
|
||||
void testBadStop() {
|
||||
String appName = "unknown_app";
|
||||
try {
|
||||
int result = badAsc.actionStop(appName);
|
||||
@ -201,7 +201,7 @@ public void testBadStop() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStart() {
|
||||
void testStart() {
|
||||
String appName = "example-app";
|
||||
try {
|
||||
int result = asc.actionStart(appName);
|
||||
@ -212,7 +212,7 @@ public void testStart() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBadStart() {
|
||||
void testBadStart() {
|
||||
String appName = "unknown_app";
|
||||
try {
|
||||
int result = badAsc.actionStart(appName);
|
||||
@ -223,7 +223,7 @@ public void testBadStart() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSave() {
|
||||
void testSave() {
|
||||
String fileName = "target/test-classes/example-app.json";
|
||||
String appName = "example-app";
|
||||
long lifetime = 3600L;
|
||||
@ -237,7 +237,7 @@ public void testSave() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBadSave() {
|
||||
void testBadSave() {
|
||||
String fileName = "unknown_file";
|
||||
String appName = "unknown_app";
|
||||
long lifetime = 3600L;
|
||||
@ -251,7 +251,7 @@ public void testBadSave() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFlex() {
|
||||
void testFlex() {
|
||||
String appName = "example-app";
|
||||
HashMap<String, String> componentCounts = new HashMap<String, String>();
|
||||
try {
|
||||
@ -263,7 +263,7 @@ public void testFlex() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBadFlex() {
|
||||
void testBadFlex() {
|
||||
String appName = "unknown_app";
|
||||
HashMap<String, String> componentCounts = new HashMap<String, String>();
|
||||
try {
|
||||
@ -275,7 +275,7 @@ public void testBadFlex() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDestroy() {
|
||||
void testDestroy() {
|
||||
String appName = "example-app";
|
||||
try {
|
||||
int result = asc.actionDestroy(appName);
|
||||
@ -286,7 +286,7 @@ public void testDestroy() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBadDestroy() {
|
||||
void testBadDestroy() {
|
||||
String appName = "unknown_app";
|
||||
try {
|
||||
int result = badAsc.actionDestroy(appName);
|
||||
@ -297,7 +297,7 @@ public void testBadDestroy() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInitiateServiceUpgrade() {
|
||||
void testInitiateServiceUpgrade() {
|
||||
String appName = "example-app";
|
||||
String upgradeFileName = "target/test-classes/example-app.json";
|
||||
try {
|
||||
@ -309,7 +309,7 @@ public void testInitiateServiceUpgrade() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInstancesUpgrade() {
|
||||
void testInstancesUpgrade() {
|
||||
String appName = "example-app";
|
||||
try {
|
||||
int result = asc.actionUpgradeInstances(appName, Lists.newArrayList(
|
||||
@ -321,7 +321,7 @@ public void testInstancesUpgrade() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testComponentsUpgrade() {
|
||||
void testComponentsUpgrade() {
|
||||
String appName = "example-app";
|
||||
try {
|
||||
int result = asc.actionUpgradeComponents(appName, Lists.newArrayList(
|
||||
@ -333,12 +333,12 @@ public void testComponentsUpgrade() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNoneSecureApiClient() throws IOException {
|
||||
void testNoneSecureApiClient() throws IOException {
|
||||
String url = asc.getServicePath("/foobar");
|
||||
assertTrue("User.name flag is missing in service path.",
|
||||
url.contains("user.name"));
|
||||
assertTrue("User.name flag is not matching JVM user.",
|
||||
url.contains(System.getProperty("user.name")));
|
||||
assertTrue(url.contains("user.name"),
|
||||
"User.name flag is missing in service path.");
|
||||
assertTrue(url.contains(System.getProperty("user.name")),
|
||||
"User.name flag is not matching JVM user.");
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
package org.apache.hadoop.yarn.service.client;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
@ -49,9 +49,9 @@
|
||||
import org.eclipse.jetty.servlet.ServletContextHandler;
|
||||
import org.eclipse.jetty.servlet.ServletHolder;
|
||||
import org.eclipse.jetty.util.thread.QueuedThreadPool;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/**
|
||||
* Test Spnego Client Login.
|
||||
@ -129,8 +129,9 @@ public static boolean isHeaderExist() {
|
||||
}
|
||||
}
|
||||
|
||||
@Before
|
||||
@BeforeEach
|
||||
public void setUp() throws Exception {
|
||||
startMiniKdc();
|
||||
keytabFile = new File(getWorkDir(), "keytab");
|
||||
getKdc().createPrincipal(keytabFile, clientPrincipal, server1Principal,
|
||||
server2Principal);
|
||||
@ -163,13 +164,14 @@ List<String> getRMHAWebAddresses(Configuration conf) {
|
||||
asc.serviceInit(testConf);
|
||||
}
|
||||
|
||||
@After
|
||||
@AfterEach
|
||||
public void tearDown() throws Exception {
|
||||
server.stop();
|
||||
stopMiniKdc();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHttpSpnegoChallenge() throws Exception {
|
||||
void testHttpSpnegoChallenge() throws Exception {
|
||||
UserGroupInformation.loginUserFromKeytab(clientPrincipal, keytabFile
|
||||
.getCanonicalPath());
|
||||
String challenge = YarnClientUtils.generateToken("localhost");
|
||||
@ -177,7 +179,7 @@ public void testHttpSpnegoChallenge() throws Exception {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAuthorizationHeader() throws Exception {
|
||||
void testAuthorizationHeader() throws Exception {
|
||||
UserGroupInformation.loginUserFromKeytab(clientPrincipal, keytabFile
|
||||
.getCanonicalPath());
|
||||
String rmAddress = asc.getRMWebAddress();
|
||||
|
@ -29,14 +29,16 @@
|
||||
import org.apache.hadoop.yarn.service.conf.SliderExitCodes;
|
||||
import org.apache.hadoop.yarn.service.conf.YarnServiceConf;
|
||||
import org.apache.hadoop.yarn.service.exceptions.SliderException;
|
||||
import org.junit.After;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
@ -44,8 +46,6 @@
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.junit.Assert.fail;
|
||||
|
||||
/**
|
||||
* Test class for system service manager.
|
||||
*/
|
||||
@ -62,7 +62,7 @@ public class TestSystemServiceManagerImpl {
|
||||
private static Map<String, Set<String>> savedServices = new HashMap<>();
|
||||
private static Map<String, Set<String>> submittedServices = new HashMap<>();
|
||||
|
||||
@Before
|
||||
@BeforeEach
|
||||
public void setup() {
|
||||
File file = new File(
|
||||
getClass().getClassLoader().getResource(resourcePath).getFile());
|
||||
@ -80,30 +80,30 @@ public void setup() {
|
||||
constructUserService(users[1], "example-app1", "example-app2");
|
||||
}
|
||||
|
||||
@After
|
||||
@AfterEach
|
||||
public void tearDown() {
|
||||
systemService.stop();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSystemServiceSubmission() throws Exception {
|
||||
void testSystemServiceSubmission() throws Exception {
|
||||
systemService.start();
|
||||
|
||||
/* verify for ignored sevices count */
|
||||
Map<String, Integer> ignoredUserServices =
|
||||
systemService.getIgnoredUserServices();
|
||||
Assert.assertEquals(1, ignoredUserServices.size());
|
||||
Assert.assertTrue("User user1 doesn't exist.",
|
||||
ignoredUserServices.containsKey(users[0]));
|
||||
assertEquals(1, ignoredUserServices.size());
|
||||
assertTrue(ignoredUserServices.containsKey(users[0]),
|
||||
"User user1 doesn't exist.");
|
||||
int count = ignoredUserServices.get(users[0]);
|
||||
Assert.assertEquals(1, count);
|
||||
Assert.assertEquals(1,
|
||||
assertEquals(1, count);
|
||||
assertEquals(1,
|
||||
systemService.getBadFileNameExtensionSkipCounter());
|
||||
Assert.assertEquals(1, systemService.getBadDirSkipCounter());
|
||||
assertEquals(1, systemService.getBadDirSkipCounter());
|
||||
|
||||
Map<String, Set<Service>> userServices =
|
||||
systemService.getSyncUserServices();
|
||||
Assert.assertEquals(loadedServices.size(), userServices.size());
|
||||
assertEquals(loadedServices.size(), userServices.size());
|
||||
verifyForScannedUserServices(userServices);
|
||||
|
||||
verifyForLaunchedUserServices();
|
||||
@ -123,13 +123,12 @@ private void verifyForScannedUserServices(
|
||||
for (String user : users) {
|
||||
Set<Service> services = userServices.get(user);
|
||||
Set<String> serviceNames = loadedServices.get(user);
|
||||
Assert.assertEquals(serviceNames.size(), services.size());
|
||||
assertEquals(serviceNames.size(), services.size());
|
||||
Iterator<Service> iterator = services.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
Service next = iterator.next();
|
||||
Assert.assertTrue(
|
||||
"Service name doesn't exist in expected userService "
|
||||
+ serviceNames, serviceNames.contains(next.getName()));
|
||||
assertTrue(serviceNames.contains(next.getName()),
|
||||
"Service name doesn't exist in expected userService " + serviceNames);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -203,19 +202,19 @@ public ApplicationId actionStartAndGetId(String serviceName)
|
||||
}
|
||||
|
||||
private void verifyForLaunchedUserServices() {
|
||||
Assert.assertEquals(loadedServices.size(), submittedServices.size());
|
||||
assertEquals(loadedServices.size(), submittedServices.size());
|
||||
for (Map.Entry<String, Set<String>> entry : submittedServices.entrySet()) {
|
||||
String user = entry.getKey();
|
||||
Set<String> serviceSet = entry.getValue();
|
||||
Assert.assertTrue(loadedServices.containsKey(user));
|
||||
assertTrue(loadedServices.containsKey(user));
|
||||
Set<String> services = loadedServices.get(user);
|
||||
Assert.assertEquals(services.size(), serviceSet.size());
|
||||
Assert.assertTrue(services.containsAll(serviceSet));
|
||||
assertEquals(services.size(), serviceSet.size());
|
||||
assertTrue(services.containsAll(serviceSet));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFileSystemCloseWhenCleanUpService() throws Exception {
|
||||
void testFileSystemCloseWhenCleanUpService() throws Exception {
|
||||
FileSystem fs = null;
|
||||
Path path = new Path("/tmp/servicedir");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user