Search in sources :

Example 1 with OMKeyAclRequest

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());
}
Also used : OMRequest(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest) OzoneAcl(org.apache.hadoop.ozone.OzoneAcl) OMClientResponse(org.apache.hadoop.ozone.om.response.OMClientResponse) OMKeyAclRequest(org.apache.hadoop.ozone.om.request.key.acl.OMKeyAclRequest) OmKeyInfo(org.apache.hadoop.ozone.om.helpers.OmKeyInfo) Test(org.junit.Test)

Example 2 with OMKeyAclRequest

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());
}
Also used : OMRequest(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest) OzoneAcl(org.apache.hadoop.ozone.OzoneAcl) OMClientResponse(org.apache.hadoop.ozone.om.response.OMClientResponse) OMKeyAclRequest(org.apache.hadoop.ozone.om.request.key.acl.OMKeyAclRequest) OmKeyInfo(org.apache.hadoop.ozone.om.helpers.OmKeyInfo) OMResponse(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMResponse) Test(org.junit.Test)

Example 3 with OMKeyAclRequest

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);
}
Also used : OMRequest(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest) OzoneAcl(org.apache.hadoop.ozone.OzoneAcl) OMClientResponse(org.apache.hadoop.ozone.om.response.OMClientResponse) OMKeyAclRequest(org.apache.hadoop.ozone.om.request.key.acl.OMKeyAclRequest) OmKeyInfo(org.apache.hadoop.ozone.om.helpers.OmKeyInfo) OMResponse(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMResponse) Test(org.junit.Test)

Aggregations

OzoneAcl (org.apache.hadoop.ozone.OzoneAcl)3 OmKeyInfo (org.apache.hadoop.ozone.om.helpers.OmKeyInfo)3 OMKeyAclRequest (org.apache.hadoop.ozone.om.request.key.acl.OMKeyAclRequest)3 OMClientResponse (org.apache.hadoop.ozone.om.response.OMClientResponse)3 OMRequest (org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest)3 Test (org.junit.Test)3 OMResponse (org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMResponse)2