HDDS-1310. In datanode once a container becomes unhealthy, datanode restart fails. Contributed by Sandeep Nemuri.

This commit is contained in:
Ajay Kumar 2019-03-22 15:53:12 -07:00
parent 73f7b04e2b
commit efad5717ec
2 changed files with 16 additions and 0 deletions

View File

@ -623,6 +623,9 @@ private ContainerReplicaProto.State getHddsState()
case CLOSED:
state = ContainerReplicaProto.State.CLOSED;
break;
case UNHEALTHY:
state = ContainerReplicaProto.State.UNHEALTHY;
break;
default:
throw new StorageContainerException("Invalid Container state found: " +
containerData.getContainerID(), INVALID_CONTAINER_STATE);

View File

@ -332,6 +332,19 @@ public void testCloseContainer() throws Exception {
keyValueContainerData.getState());
}
@Test
public void testReportOfUnhealthyContainer() throws Exception {
keyValueContainer.create(volumeSet, volumeChoosingPolicy, scmId);
Assert.assertNotNull(keyValueContainer.getContainerReport());
keyValueContainer.markContainerUnhealthy();
File containerFile = keyValueContainer.getContainerFile();
keyValueContainerData = (KeyValueContainerData) ContainerDataYaml
.readContainerFile(containerFile);
assertEquals(ContainerProtos.ContainerDataProto.State.UNHEALTHY,
keyValueContainerData.getState());
Assert.assertNotNull(keyValueContainer.getContainerReport());
}
@Test
public void testUpdateContainer() throws IOException {
keyValueContainer.create(volumeSet, volumeChoosingPolicy, scmId);