use of org.apache.hadoop.ozone.recon.ReconUtils in project ozone by apache.
the class MockOzoneServiceProvider method testGetOzoneManagerDBSnapshot.
@Test
public void testGetOzoneManagerDBSnapshot() throws Exception {
File reconOmSnapshotDbDir = temporaryFolder.newFolder();
File checkpointDir = Paths.get(reconOmSnapshotDbDir.getAbsolutePath(), "testGetOzoneManagerDBSnapshot").toFile();
checkpointDir.mkdir();
File file1 = Paths.get(checkpointDir.getAbsolutePath(), "file1").toFile();
String str = "File1 Contents";
BufferedWriter writer = null;
try {
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file1), UTF_8));
writer.write(str);
} finally {
if (writer != null) {
writer.close();
}
}
File file2 = Paths.get(checkpointDir.getAbsolutePath(), "file2").toFile();
str = "File2 Contents";
try {
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file2), UTF_8));
writer.write(str);
} finally {
writer.close();
}
// Create test tar file.
File tarFile = createTarFile(checkpointDir.toPath());
InputStream fileInputStream = new FileInputStream(tarFile);
ReconUtils reconUtilsMock = getMockReconUtils();
HttpURLConnection httpURLConnectionMock = mock(HttpURLConnection.class);
when(httpURLConnectionMock.getInputStream()).thenReturn(fileInputStream);
when(reconUtilsMock.makeHttpCall(any(), anyString(), anyBoolean())).thenReturn(httpURLConnectionMock);
ReconOMMetadataManager reconOMMetadataManager = mock(ReconOMMetadataManager.class);
ReconTaskController reconTaskController = getMockTaskController();
OzoneManagerServiceProviderImpl ozoneManagerServiceProvider = new OzoneManagerServiceProviderImpl(configuration, reconOMMetadataManager, reconTaskController, reconUtilsMock, ozoneManagerProtocol);
DBCheckpoint checkpoint = ozoneManagerServiceProvider.getOzoneManagerDBSnapshot();
assertNotNull(checkpoint);
assertTrue(checkpoint.getCheckpointLocation().toFile().isDirectory());
assertTrue(checkpoint.getCheckpointLocation().toFile().listFiles().length == 2);
}
use of org.apache.hadoop.ozone.recon.ReconUtils in project ozone by apache.
the class TestReconPipelineManager method setup.
@Before
public void setup() throws IOException {
conf = new OzoneConfiguration();
conf.set(OZONE_METADATA_DIRS, temporaryFolder.newFolder().getAbsolutePath());
conf.set(OZONE_SCM_NAMES, "localhost");
scmStorageConfig = new ReconStorageConfig(conf, new ReconUtils());
store = DBStoreBuilder.createDBStore(conf, new ReconSCMDBDefinition());
scmhaManager = MockSCMHAManager.getInstance(true, new MockSCMHADBTransactionBuffer(store));
scmContext = SCMContext.emptyContext();
}
use of org.apache.hadoop.ozone.recon.ReconUtils in project ozone by apache.
the class MockOzoneServiceProvider method getMockReconUtils.
private ReconUtils getMockReconUtils() throws IOException {
ReconUtils reconUtilsMock = mock(ReconUtils.class);
when(reconUtilsMock.getReconDbDir(any(), anyString())).thenCallRealMethod();
doCallRealMethod().when(reconUtilsMock).untarCheckpointFile(any(), any());
return reconUtilsMock;
}
use of org.apache.hadoop.ozone.recon.ReconUtils in project ozone by apache.
the class MockOzoneServiceProvider method testSyncDataFromOMDeltaUpdates.
@Test
public void testSyncDataFromOMDeltaUpdates() throws Exception {
// Non-Empty OM DB to start with.
ReconOMMetadataManager omMetadataManager = getTestReconOmMetadataManager(initializeNewOmMetadataManager(temporaryFolder.newFolder()), temporaryFolder.newFolder());
ReconTaskStatusDao reconTaskStatusDaoMock = mock(ReconTaskStatusDao.class);
doNothing().when(reconTaskStatusDaoMock).update(any(ReconTaskStatus.class));
ReconTaskController reconTaskControllerMock = getMockTaskController();
when(reconTaskControllerMock.getReconTaskStatusDao()).thenReturn(reconTaskStatusDaoMock);
doNothing().when(reconTaskControllerMock).consumeOMEvents(any(OMUpdateEventBatch.class), any(OMMetadataManager.class));
OzoneManagerServiceProviderImpl ozoneManagerServiceProvider = new OzoneManagerServiceProviderImpl(configuration, omMetadataManager, reconTaskControllerMock, new ReconUtils(), ozoneManagerProtocol);
OzoneManagerSyncMetrics metrics = ozoneManagerServiceProvider.getMetrics();
// Should trigger delta updates.
ozoneManagerServiceProvider.syncDataFromOM();
ArgumentCaptor<ReconTaskStatus> captor = ArgumentCaptor.forClass(ReconTaskStatus.class);
verify(reconTaskStatusDaoMock, times(1)).update(captor.capture());
assertTrue(captor.getValue().getTaskName().equals(OmDeltaRequest.name()));
verify(reconTaskControllerMock, times(1)).consumeOMEvents(any(OMUpdateEventBatch.class), any(OMMetadataManager.class));
assertEquals(0, metrics.getNumSnapshotRequests().value());
}
use of org.apache.hadoop.ozone.recon.ReconUtils in project ozone by apache.
the class TestStorageContainerServiceProviderImpl method setup.
@Before
public void setup() {
injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
try {
StorageContainerLocationProtocol mockScmClient = mock(StorageContainerLocationProtocol.class);
ReconUtils reconUtils = new ReconUtils();
File testDir = GenericTestUtils.getRandomizedTestDir();
OzoneConfiguration conf = new OzoneConfiguration();
conf.set(HddsConfigKeys.OZONE_METADATA_DIRS, testDir.getPath());
pipelineID = PipelineID.randomId().getProtobuf();
when(mockScmClient.getPipeline(pipelineID)).thenReturn(mock(Pipeline.class));
bind(StorageContainerLocationProtocol.class).toInstance(mockScmClient);
bind(StorageContainerServiceProvider.class).to(StorageContainerServiceProviderImpl.class);
bind(OzoneConfiguration.class).toInstance(conf);
bind(ReconUtils.class).toInstance(reconUtils);
} catch (Exception e) {
Assert.fail();
}
}
});
}
Aggregations