use of org.apache.hadoop.ozone.om.request.key.acl.OMKeyAclRequest 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.request.key.acl.OMKeyAclRequest 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.request.key.acl.OMKeyAclRequest 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);
}
Aggregations