use of org.apache.hadoop.ozone.om.response.OMClientResponse in project ozone by apache.
the class TestOMVolumeCreateRequest method testValidateAndUpdateCacheWithVolumeAlreadyExists.
@Test
public void testValidateAndUpdateCacheWithVolumeAlreadyExists() throws Exception {
String volumeName = UUID.randomUUID().toString();
String adminName = "user1";
String ownerName = "user1";
OMRequestTestUtils.addVolumeToDB(volumeName, omMetadataManager);
OMRequest originalRequest = createVolumeRequest(volumeName, adminName, ownerName);
OMVolumeCreateRequest omVolumeCreateRequest = new OMVolumeCreateRequest(originalRequest);
OMRequest modifiedRequest = omVolumeCreateRequest.preExecute(ozoneManager);
omVolumeCreateRequest = new OMVolumeCreateRequest(modifiedRequest);
OMClientResponse omClientResponse = omVolumeCreateRequest.validateAndUpdateCache(ozoneManager, 1, ozoneManagerDoubleBufferHelper);
OzoneManagerProtocolProtos.OMResponse omResponse = omClientResponse.getOMResponse();
Assert.assertNotNull(omResponse.getCreateVolumeResponse());
Assert.assertEquals(OzoneManagerProtocolProtos.Status.VOLUME_ALREADY_EXISTS, omResponse.getStatus());
// Check really if we have a volume with the specified volume name.
Assert.assertNotNull(omMetadataManager.getVolumeTable().get(omMetadataManager.getVolumeKey(volumeName)));
}
use of org.apache.hadoop.ozone.om.response.OMClientResponse in project ozone by apache.
the class TestOMKeyAclRequest method testKeyAddAclRequest.
@Test
public void testKeyAddAclRequest() throws Exception {
// Manually add volume, bucket and key to DB
OMRequestTestUtils.addVolumeAndBucketToDB(volumeName, bucketName, omMetadataManager, getBucketLayout());
String ozoneKey = addKeyToTable();
OmKeyInfo omKeyInfo = omMetadataManager.getKeyTable(getBucketLayout()).get(ozoneKey);
// As we added manually to key table.
Assert.assertNotNull(omKeyInfo);
OzoneAcl acl = OzoneAcl.parseAcl("user:bilbo:rwdlncxy[ACCESS]");
// Create KeyAddAcl request
OMRequest originalRequest = createAddAclkeyRequest(acl);
OMKeyAclRequest omKeyAddAclRequest = getOmKeyAddAclRequest(originalRequest);
OMRequest preExecuteRequest = omKeyAddAclRequest.preExecute(ozoneManager);
// When preExecute() of adding acl,
// the new modification time is greater than origin one.
long originModTime = originalRequest.getAddAclRequest().getModificationTime();
long newModTime = preExecuteRequest.getAddAclRequest().getModificationTime();
Assert.assertTrue(newModTime > originModTime);
// Execute original request
OMClientResponse omClientResponse = omKeyAddAclRequest.validateAndUpdateCache(ozoneManager, 100L, ozoneManagerDoubleBufferHelper);
Assert.assertEquals(OzoneManagerProtocolProtos.Status.OK, omClientResponse.getOMResponse().getStatus());
}
use of org.apache.hadoop.ozone.om.response.OMClientResponse in project ozone by apache.
the class TestOMKeyAclRequest method testKeyRemoveAclRequest.
@Test
public void testKeyRemoveAclRequest() throws Exception {
OMRequestTestUtils.addVolumeAndBucketToDB(volumeName, bucketName, omMetadataManager, getBucketLayout());
String ozoneKey = addKeyToTable();
OmKeyInfo omKeyInfo = omMetadataManager.getKeyTable(getBucketLayout()).get(ozoneKey);
// As we added manually to key table.
Assert.assertNotNull(omKeyInfo);
OzoneAcl acl = OzoneAcl.parseAcl("user:bilbo:rwdlncxy[ACCESS]");
// Add acl.
OMRequest addAclRequest = createAddAclkeyRequest(acl);
OMKeyAclRequest omKeyAddAclRequest = getOmKeyAddAclRequest(addAclRequest);
omKeyAddAclRequest.preExecute(ozoneManager);
OMClientResponse omClientAddAclResponse = omKeyAddAclRequest.validateAndUpdateCache(ozoneManager, 100L, ozoneManagerDoubleBufferHelper);
OMResponse omAddAclResponse = omClientAddAclResponse.getOMResponse();
Assert.assertNotNull(omAddAclResponse.getAddAclResponse());
Assert.assertEquals(OzoneManagerProtocolProtos.Status.OK, omAddAclResponse.getStatus());
// Verify result of adding acl.
List<OzoneAcl> keyAcls = omMetadataManager.getKeyTable(getBucketLayout()).get(ozoneKey).getAcls();
Assert.assertEquals(1, keyAcls.size());
Assert.assertEquals(acl, keyAcls.get(0));
// Remove acl.
OMRequest removeAclRequest = createRemoveAclKeyRequest(acl);
OMKeyAclRequest omKeyRemoveAclRequest = getOmKeyRemoveAclRequest(removeAclRequest);
OMRequest preExecuteRequest = omKeyRemoveAclRequest.preExecute(ozoneManager);
// When preExecute() of removing acl,
// the new modification time is greater than origin one.
long originModTime = removeAclRequest.getRemoveAclRequest().getModificationTime();
long newModTime = preExecuteRequest.getRemoveAclRequest().getModificationTime();
Assert.assertTrue(newModTime > originModTime);
OMClientResponse omClientRemoveAclResponse = omKeyRemoveAclRequest.validateAndUpdateCache(ozoneManager, 100L, ozoneManagerDoubleBufferHelper);
OMResponse omRemoveAclResponse = omClientRemoveAclResponse.getOMResponse();
Assert.assertNotNull(omRemoveAclResponse.getRemoveAclResponse());
Assert.assertEquals(OzoneManagerProtocolProtos.Status.OK, omRemoveAclResponse.getStatus());
// Verify result of removing acl.
List<OzoneAcl> newAcls = omMetadataManager.getKeyTable(getBucketLayout()).get(ozoneKey).getAcls();
Assert.assertEquals(0, newAcls.size());
}
use of org.apache.hadoop.ozone.om.response.OMClientResponse in project ozone by apache.
the class TestOMKeyAclRequest method testKeySetAclRequest.
@Test
public void testKeySetAclRequest() throws Exception {
OMRequestTestUtils.addVolumeAndBucketToDB(volumeName, bucketName, omMetadataManager, getBucketLayout());
String ozoneKey = addKeyToTable();
OmKeyInfo omKeyInfo = omMetadataManager.getKeyTable(getBucketLayout()).get(ozoneKey);
// As we added manually to key table.
Assert.assertNotNull(omKeyInfo);
OzoneAcl acl = OzoneAcl.parseAcl("user:bilbo:rwdlncxy[ACCESS]");
OMRequest setAclRequest = createSetAclKeyRequest(acl);
OMKeyAclRequest omKeySetAclRequest = getOmKeySetAclRequest(setAclRequest);
OMRequest preExecuteRequest = omKeySetAclRequest.preExecute(ozoneManager);
// When preExecute() of setting acl,
// the new modification time is greater than origin one.
long originModTime = setAclRequest.getSetAclRequest().getModificationTime();
long newModTime = preExecuteRequest.getSetAclRequest().getModificationTime();
Assert.assertTrue(newModTime > originModTime);
OMClientResponse omClientResponse = omKeySetAclRequest.validateAndUpdateCache(ozoneManager, 100L, ozoneManagerDoubleBufferHelper);
OMResponse omSetAclResponse = omClientResponse.getOMResponse();
Assert.assertNotNull(omSetAclResponse.getSetAclResponse());
Assert.assertEquals(OzoneManagerProtocolProtos.Status.OK, omSetAclResponse.getStatus());
// Verify result of setting acl.
List<OzoneAcl> newAcls = omMetadataManager.getKeyTable(getBucketLayout()).get(ozoneKey).getAcls();
Assert.assertEquals(newAcls.get(0), acl);
}
use of org.apache.hadoop.ozone.om.response.OMClientResponse in project ozone by apache.
the class TestOMKeyCommitRequest method testValidateAndUpdateCacheWithKeyNotFound.
@Test
public void testValidateAndUpdateCacheWithKeyNotFound() throws Exception {
OMRequest modifiedOmRequest = doPreExecute(createCommitKeyRequest());
OMKeyCommitRequest omKeyCommitRequest = getOmKeyCommitRequest(modifiedOmRequest);
OMRequestTestUtils.addVolumeAndBucketToDB(volumeName, bucketName, omMetadataManager, omKeyCommitRequest.getBucketLayout());
String ozoneKey = getOzonePathKey();
// Key should not be there in key table, as validateAndUpdateCache is
// still not called.
OmKeyInfo omKeyInfo = omMetadataManager.getKeyTable(omKeyCommitRequest.getBucketLayout()).get(ozoneKey);
Assert.assertNull(omKeyInfo);
OMClientResponse omClientResponse = omKeyCommitRequest.validateAndUpdateCache(ozoneManager, 100L, ozoneManagerDoubleBufferHelper);
Assert.assertEquals(OzoneManagerProtocolProtos.Status.KEY_NOT_FOUND, omClientResponse.getOMResponse().getStatus());
omKeyInfo = omMetadataManager.getKeyTable(omKeyCommitRequest.getBucketLayout()).get(ozoneKey);
Assert.assertNull(omKeyInfo);
}
Aggregations