Examples of SBucket


Examples of com.cloud.bridge.model.SBucket

    }
    }
   
    public void testSBucket() {
      SHost host;
      SBucket bucket;
      Session session;
     
    session = CloudSessionFactory.getInstance().openSession();
    try {
      Transaction txn = session.beginTransaction();
      host = new SHost();
      host.setHost("localhost");
      host.setUserOnHost("root");
      host.setUserPassword("password");
      host.setExportRoot("/");
     
      bucket = new SBucket();
      bucket.setName("Bucket");
      bucket.setOwnerCanonicalId("OwnerId-dummy");
      bucket.setCreateTime(new Date());
     
      host.getBuckets().add(bucket);
      bucket.setShost(host);
     
      session.save(host);
      session.save(bucket);
      txn.commit();
    } finally {
      session.close();
    }
   
    long bucketId = bucket.getId();
   
    // load bucket
    session = CloudSessionFactory.getInstance().openSession();
    try {
      Transaction txn = session.beginTransaction();
      bucket = (SBucket)session.get(SBucket.class, bucketId);
      txn.commit();
     
      Assert.assertTrue(bucket.getShost().getHost().equals("localhost"));
      Assert.assertTrue(bucket.getName().equals("Bucket"));
      Assert.assertTrue(bucket.getOwnerCanonicalId().equals("OwnerId-dummy"));
    } finally {
      session.close();
    }
   
    // delete the bucket
View Full Code Here

Examples of com.cloud.bridge.model.SBucket

    }
    }
   
    public void testSObject() {
      SHost host;
      SBucket bucket;
      Session session;
      SObject sobject;
     
      // setup
    session = CloudSessionFactory.getInstance().openSession();
    try {
      Transaction txn = session.beginTransaction();
      host = new SHost();
      host.setHost("localhost");
      host.setUserOnHost("root");
      host.setUserPassword("password");
      host.setExportRoot("/");
     
      bucket = new SBucket();
      bucket.setName("Bucket");
      bucket.setOwnerCanonicalId("OwnerId-dummy");
      bucket.setCreateTime(new Date());
      bucket.setShost(host);
      host.getBuckets().add(bucket);
     
      sobject = new SObject();
      sobject.setNameKey("ObjectNameKey");
      sobject.setOwnerCanonicalId("OwnerId-dummy");
      sobject.setCreateTime(new Date());
      sobject.setBucket(bucket);
      bucket.getObjectsInBucket().add(sobject);
     
      session.save(host);
      session.save(bucket);
      session.save(sobject);
      txn.commit();
     
    } finally {
      session.close();
    }
   
    session = CloudSessionFactory.getInstance().openSession();
    try {
      Transaction txn = session.beginTransaction();
      sobject = (SObject)session.get(SObject.class, sobject.getId());
      txn.commit();
      Assert.assertTrue(sobject.getBucket().getName().equals("Bucket"));
      Assert.assertTrue(sobject.getNameKey().equals("ObjectNameKey"));
      Assert.assertTrue(sobject.getOwnerCanonicalId().equals("OwnerId-dummy"));
    } finally {
      session.close();
    }

    // test delete cascade
    session = CloudSessionFactory.getInstance().openSession();
    try {
      Transaction txn = session.beginTransaction();
      bucket = (SBucket)session.get(SBucket.class, bucket.getId());
      session.delete(bucket);
     
      host = (SHost)session.get(SHost.class, host.getId());
      session.delete(host);
      txn.commit();
View Full Code Here

Examples of com.cloud.bridge.model.SBucket

    }
    }
   
    public void testSBucket() {
      SHost host;
      SBucket bucket;
      Session session;
     
    session = CloudSessionFactory.getInstance().openSession();
    try {
      Transaction txn = session.beginTransaction();
      host = new SHost();
      host.setHost("localhost");
      host.setUserOnHost("root");
      host.setUserPassword("password");
      host.setExportRoot("/");
     
      bucket = new SBucket();
      bucket.setName("Bucket");
      bucket.setOwnerCanonicalId("OwnerId-dummy");
      bucket.setCreateTime(new Date());
     
      host.getBuckets().add(bucket);
      bucket.setShost(host);
     
      session.save(host);
      session.save(bucket);
      txn.commit();
    } finally {
      session.close();
    }
   
    long bucketId = bucket.getId();
   
    // load bucket
    session = CloudSessionFactory.getInstance().openSession();
    try {
      Transaction txn = session.beginTransaction();
      bucket = (SBucket)session.get(SBucket.class, bucketId);
      txn.commit();
     
      Assert.assertTrue(bucket.getShost().getHost().equals("localhost"));
      Assert.assertTrue(bucket.getName().equals("Bucket"));
      Assert.assertTrue(bucket.getOwnerCanonicalId().equals("OwnerId-dummy"));
    } finally {
      session.close();
    }
   
    // delete the bucket
View Full Code Here

Examples of com.cloud.bridge.model.SBucket

    }
    }
   
    public void testSObject() {
      SHost host;
      SBucket bucket;
      Session session;
      SObject sobject;
     
      // setup
    session = CloudSessionFactory.getInstance().openSession();
    try {
      Transaction txn = session.beginTransaction();
      host = new SHost();
      host.setHost("localhost");
      host.setUserOnHost("root");
      host.setUserPassword("password");
      host.setExportRoot("/");
     
      bucket = new SBucket();
      bucket.setName("Bucket");
      bucket.setOwnerCanonicalId("OwnerId-dummy");
      bucket.setCreateTime(new Date());
      bucket.setShost(host);
      host.getBuckets().add(bucket);
     
      sobject = new SObject();
      sobject.setNameKey("ObjectNameKey");
      sobject.setOwnerCanonicalId("OwnerId-dummy");
      sobject.setCreateTime(new Date());
      sobject.setBucket(bucket);
      bucket.getObjectsInBucket().add(sobject);
     
      session.save(host);
      session.save(bucket);
      session.save(sobject);
      txn.commit();
     
    } finally {
      session.close();
    }
   
    session = CloudSessionFactory.getInstance().openSession();
    try {
      Transaction txn = session.beginTransaction();
      sobject = (SObject)session.get(SObject.class, sobject.getId());
      txn.commit();
      Assert.assertTrue(sobject.getBucket().getName().equals("Bucket"));
      Assert.assertTrue(sobject.getNameKey().equals("ObjectNameKey"));
      Assert.assertTrue(sobject.getOwnerCanonicalId().equals("OwnerId-dummy"));
    } finally {
      session.close();
    }

    // test delete cascade
    session = CloudSessionFactory.getInstance().openSession();
    try {
      Transaction txn = session.beginTransaction();
      bucket = (SBucket)session.get(SBucket.class, bucket.getId());
      session.delete(bucket);
     
      host = (SHost)session.get(SHost.class, host.getId());
      session.delete(host);
      txn.commit();
View Full Code Here

Examples of com.cloud.bridge.model.SBucket

        if (bucketDao.getByName(request.getBucketName()) != null)
          throw new ObjectAlreadyExistsException("Bucket already exists");
         
        shostTuple = allocBucketStorageHost(request.getBucketName(), null);
       
        SBucket sbucket = new SBucket();
        sbucket.setName(request.getBucketName());
        sbucket.setCreateTime(DateHelper.currentGMTTime());
        sbucket.setOwnerCanonicalId( UserContext.current().getCanonicalUserId());
        sbucket.setShost(shostTuple.getFirst());
        shostTuple.getFirst().getBuckets().add(sbucket);
        bucketDao.save(sbucket);

        S3AccessControlList acl = request.getAcl();
       
        if ( null != cannedAccessPolicy )
           setCannedAccessControls( cannedAccessPolicy, "SBucket", sbucket.getId(), sbucket );
        else if (null != acl)
           aclDao.save"SBucket", sbucket.getId(), acl );
        else setSingleAcl( "SBucket", sbucket.getId(), SAcl.PERMISSION_FULL );
     
        // explicitly commit the transaction
        PersistContext.commitTransaction();
        success = true;       
      }
View Full Code Here

Examples of com.cloud.bridge.model.SBucket

    public S3Response handleRequest( S3DeleteBucketRequest request )
    {
      S3Response response  = new S3Response();    
    SBucketDao bucketDao = new SBucketDao();
    String bucketName = request.getBucketName();
    SBucket sbucket   = bucketDao.getByName( bucketName );
   
    if ( sbucket != null )
    {      
       S3PolicyContext context = new S3PolicyContext( PolicyActions.DeleteBucket, bucketName );
       switch( verifyPolicy( context )) {
       case ALLOW:
          // -> bucket policy can give users permission to delete a bucket while ACLs cannot
          break;
         
       case DENY:
                throw new PermissionDeniedException( "Access Denied - bucket policy DENY result" );
         
       case DEFAULT_DENY:
       default:
          // -> does not matter what the ACLs say only the owner can delete a bucket
          String client = UserContext.current().getCanonicalUserId();
          if (!client.equals( sbucket.getOwnerCanonicalId())) {
              throw new PermissionDeniedException( "Access Denied - only the owner can delete a bucket" );
          }
          break;
       }

      
       // -> delete the file
       Tuple<SHost, String> tupleBucketHost = getBucketStorageHost(sbucket);
       S3BucketAdapter bucketAdapter = getStorageHostBucketAdapter(tupleBucketHost.getFirst());     
       bucketAdapter.deleteContainer(tupleBucketHost.getSecond(), request.getBucketName());
     
       // -> cascade-deleting can delete related SObject/SObjectItem objects, but not SAcl, SMeta and policy objects. We
       //    need to perform deletion of these objects related to bucket manually.
       //    Delete SMeta & SAcl objects: (1)Get all the objects in the bucket, (2)then all the items in each object, (3) then all meta & acl data for each item
       Set<SObject> objectsInBucket = sbucket.getObjectsInBucket();
       Iterator it = objectsInBucket.iterator();
       while( it.hasNext())
       {
         SObject oneObject = (SObject)it.next();
        Set<SObjectItem> itemsInObject = oneObject.getItems();
        Iterator is = itemsInObject.iterator();
        while( is.hasNext())
        {
          SObjectItem oneItem = (SObjectItem)is.next();
            deleteMetaData( oneItem.getId());
            deleteObjectAcls( "SObjectItem", oneItem.getId());
        }       
       }
        
       // -> delete all the policy state associated with the bucket
       try {
                ServiceProvider.getInstance().deleteBucketPolicy( bucketName );
             BucketPolicyDao policyDao = new BucketPolicyDao();
             policyDao.deletePolicy( bucketName );
       }
       catch( Exception e ) {
                logger.error("When deleting a bucket we must try to delete its policy: ", e);
       }
      
       deleteBucketAcls( sbucket.getId());
       bucketDao.delete( sbucket );   
       response.setResultCode(204);
       response.setResultDescription("OK");
    }
    else
View Full Code Here

Examples of com.cloud.bridge.model.SBucket

    String delimiter = request.getDelimiter();
    int maxKeys = request.getMaxKeys();
    if(maxKeys <= 0) maxKeys = 1000;
   
    SBucketDao bucketDao = new SBucketDao();
    SBucket sbucket = bucketDao.getByName(bucketName);
    if (sbucket == null) throw new NoSuchObjectException("Bucket " + bucketName + " does not exist");
   
    PolicyActions action = (includeVersions ? PolicyActions.ListBucketVersions : PolicyActions.ListBucket);
    S3PolicyContext context = new S3PolicyContext( action, bucketName );
    context.setEvalParam( ConditionKeys.MaxKeys, new String( "" + maxKeys ));
    context.setEvalParam( ConditionKeys.Prefix, prefix );
    context.setEvalParam( ConditionKeys.Delimiter, delimiter );
    verifyAccess( context, "SBucket", sbucket.getId(), SAcl.PERMISSION_READ );

   
    // when we query, request one more item so that we know how to set isTruncated flag
    SObjectDao sobjectDao = new SObjectDao();
    List<SObject> l = null;
View Full Code Here

Examples of com.cloud.bridge.model.SBucket

    public S3Response handleRequest(S3SetBucketAccessControlPolicyRequest request)
    {
      S3Response response = new S3Response()
      SBucketDao bucketDao = new SBucketDao();
      String bucketName = request.getBucketName();
      SBucket sbucket = bucketDao.getByName(bucketName);
      if(sbucket == null) {
        response.setResultCode(404);
        response.setResultDescription("Bucket does not exist");
        return response;
      }
      S3PolicyContext context = new S3PolicyContext( PolicyActions.PutBucketAcl, bucketName );
      verifyAccess( context, "SBucket", sbucket.getId(), SAcl.PERMISSION_WRITE_ACL );

      SAclDao aclDao = new SAclDao();
      aclDao.save("SBucket", sbucket.getId(), request.getAcl());
    
      response.setResultCode(200);
      response.setResultDescription("OK");
      return response;
    }
View Full Code Here

Examples of com.cloud.bridge.model.SBucket

    public S3AccessControlPolicy handleRequest(S3GetBucketAccessControlPolicyRequest request)
    {
      S3AccessControlPolicy policy = new S3AccessControlPolicy();    
      SBucketDao bucketDao = new SBucketDao();
      String bucketName = request.getBucketName();
      SBucket sbucket = bucketDao.getByName( bucketName );
      if (sbucket == null)
        throw new NoSuchObjectException("Bucket " + bucketName + " does not exist");
     
      S3CanonicalUser owner = new S3CanonicalUser();
      owner.setID(sbucket.getOwnerCanonicalId());
      owner.setDisplayName("");
      policy.setOwner(owner);
     
      S3PolicyContext context = new S3PolicyContext( PolicyActions.GetBucketAcl, bucketName );
      verifyAccess( context, "SBucket", sbucket.getId(), SAcl.PERMISSION_READ_ACL );

      SAclDao aclDao = new SAclDao();
      List<SAcl> grants = aclDao.listGrants("SBucket", sbucket.getId());
      policy.setGrants(S3Grant.toGrants(grants));   
      return policy;
    }
View Full Code Here

Examples of com.cloud.bridge.model.SBucket

     */
    public int freeUploadParts(String bucketName, int uploadId, boolean verifyPermission)
    {
    // -> we need to look up the final bucket to figure out which mount point to use to save the part in
    SBucketDao bucketDao = new SBucketDao();
    SBucket bucket = bucketDao.getByName(bucketName);
    if (bucket == null) {
      logger.error( "initiateMultipartUpload failed since " + bucketName + " does not exist" );
      return 404;
    }
 
    Tuple<SHost, String> tupleBucketHost = getBucketStorageHost(bucket);   
    S3BucketAdapter bucketAdapter = getStorageHostBucketAdapter(tupleBucketHost.getFirst());

    try {
          MultipartLoadDao uploadDao = new MultipartLoadDao();
          Tuple<String,String> exists = uploadDao.multipartExits( uploadId );
          if (null == exists) {
          logger.error( "initiateMultipartUpload failed since multipart upload" + uploadId + " does not exist" );
            return 404;
          }
         
          // -> the multipart initiator or bucket owner can do this action by default
          if (verifyPermission)
          {
              String initiator = uploadDao.getInitiator( uploadId );
              if (null == initiator || !initiator.equals( UserContext.current().getAccessKey()))
              {
                // -> write permission on a bucket allows a PutObject / DeleteObject action on any object in the bucket
              S3PolicyContext context = new S3PolicyContext( PolicyActions.AbortMultipartUpload, bucketName );
                context.setKeyName( exists.getSecond());
              verifyAccess( context, "SBucket", bucket.getId(), SAcl.PERMISSION_WRITE );
              }
          }

          // -> first get a list of all the uploaded files and delete one by one
          S3MultipartPart[] parts = uploadDao.getParts( uploadId, 10000, 0 );
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.