Package com.cloud.bridge.model

Examples of com.cloud.bridge.model.SBucketVO


      // [A] Does the object exist that holds the ACL we are looking for?
      S3AccessControlPolicy policy = new S3AccessControlPolicy()
     
      String bucketName = request.getBucketName();
      SBucketVO sbucket = bucketDao.getByName( bucketName );
      if (sbucket == null)
        throw new NoSuchObjectException("Bucket " + bucketName + " does not exist");
     
      //SObjectDaoImpl sobjectDao = new SObjectDaoImpl();
      String nameKey = request.getKey();
      SObjectVO sobject = objectDao.getByNameKey( sbucket, nameKey );
      if (sobject == null)
        throw new NoSuchObjectException("Object " + request.getKey() + " does not exist");
       
    String deletionMark = sobject.getDeletionMark();
    if (null != deletionMark) {
      policy.setResultCode(404);
      policy.setResultDescription("Object " + request.getKey() + " has been deleted (1)");
      return policy;
    }
   

    // [B] Versioning allow the client to ask for a specific version not just the latest
    SObjectItemVO item = null;
        int versioningStatus = sbucket.getVersioningStatus();
    String wantVersion = request.getVersion();
    if ( SBucket.VERSIONING_ENABLED == versioningStatus && null != wantVersion)
       item = sobject.getVersion( wantVersion );
    else item = sobject.getLatestVersion(( SBucket.VERSIONING_ENABLED != versioningStatus ));   
     
View Full Code Here


      int resultCode  = 200;

      // [A] Verify that the bucket and the object exist
   
    String bucketName = request.getBucketName();
    SBucketVO sbucket = bucketDao.getByName(bucketName);
    if (sbucket == null) {
      response.setResultCode(404);
      response.setResultDescription("Bucket " + request.getBucketName() + " does not exist");
      return response;
    }

    String nameKey = request.getKey();
    SObjectVO sobject = objectDao.getByNameKey( sbucket, nameKey );
    if (sobject == null) {
      response.setResultCode(404);
      response.setResultDescription("Object " + request.getKey() + " does not exist in bucket " + request.getBucketName());
      return response;
    }
   
    String deletionMark = sobject.getDeletionMark();
    if (null != deletionMark) {
        response.setDeleteMarker( deletionMark );
      response.setResultCode(404);
      response.setResultDescription("Object " + request.getKey() + " has been deleted (1)");
      return response;
    }
   

    // [B] Versioning allow the client to ask for a specific version not just the latest
    SObjectItemVO item = null;
        int versioningStatus = sbucket.getVersioningStatus();
    String wantVersion = request.getVersion();
    if ( SBucket.VERSIONING_ENABLED == versioningStatus && null != wantVersion)      
       item = sobject.getVersion( wantVersion );
    else item = sobject.getLatestVersion(( SBucket.VERSIONING_ENABLED != versioningStatus ));   
     
View Full Code Here

  {   
    // Verify that the bucket and object exist
    S3Response response  = new S3Response();
   
    String bucketName = request.getBucketName();
    SBucketVO sbucket = bucketDao.getByName( bucketName );
    if (sbucket == null) {
      response.setResultCode(404);
      response.setResultDescription("<Code>Bucket dosen't exists</Code><Message>Bucket " + bucketName + " does not exist</Message>");
      return response;
    }
   
   
    String nameKey = request.getKey();
    SObjectVO sobject = objectDao.getByNameKey( sbucket, nameKey );
    if (sobject == null) {
      response.setResultCode(404);
      response.setResultDescription("<Code>Not Found</Code><Message>No object with key " +  nameKey + " exists in bucket " + bucketName+"</Message>");
      return response;
    }
   
       
    // Discover whether versioning is enabled.  If so versioning requires the setting of a deletion marker.
    String storedPath = null;
    SObjectItemVO item = null;
        int versioningStatus = sbucket.getVersioningStatus();
    if ( SBucket.VERSIONING_ENABLED == versioningStatus )
      {
       String wantVersion = request.getVersion();
       S3PolicyContext context = new S3PolicyContext( PolicyActions.DeleteObjectVersion, bucketName );
       context.setKeyName( nameKey );
       context.setEvalParam( ConditionKeys.VersionId, wantVersion );
       verifyAccess( context, "SBucket", sbucket.getId(), SAcl.PERMISSION_WRITE );

       if (null == wantVersion) {
         // If versioning is on and no versionId is given then we just write a deletion marker
         sobject.setDeletionMark( UUID.randomUUID().toString());
         objectDao.update(sobject.getId(), sobject );
         response.setResultDescription("<DeleteMarker>true</DeleteMarker><DeleteMarkerVersionId>"+ sobject.getDeletionMark() +"</DeleteMarkerVersionId>");
       }
       else
          // Otherwise remove the deletion marker if this has been set
          String deletionMarker = sobject.getDeletionMark();
          if (null != deletionMarker && wantVersion.equalsIgnoreCase( deletionMarker )) {
            sobject.setDeletionMark( null )
              objectDao.update(sobject.getId(), sobject )
              response.setResultDescription("<VersionId>" + wantVersion +"</VersionId>");
              response.setResultDescription("<DeleteMarker>true</DeleteMarker><DeleteMarkerVersionId>"+ sobject.getDeletionMark() +"</DeleteMarkerVersionId>");
              response.setResultCode(204);
            return response;
                }
         
          // If versioning is on and the versionId is given (non-null) then delete the object matching that version
            if ( null == (item = sobject.getVersion( wantVersion ))) {
               response.setResultCode(404);
               return response;
            }
            else {
               // Providing versionId is non-null, then just delete the one item that matches the versionId from the database
               storedPath = item.getStoredPath();
               sobject.deleteItem( item.getId());
               objectDao.update(sobject.getId(), sobject );
               response.setResultDescription("<VersionId>" + wantVersion +"</VersionId>");
            }
       }
      }
    else
    {   // If versioning is off then we do delete the null object
       S3PolicyContext context = new S3PolicyContext( PolicyActions.DeleteObject, bucketName );
       context.setKeyName( nameKey );
       verifyAccess( context, "SBucket", sbucket.getId(), SAcl.PERMISSION_WRITE );

       if ( null == (item = sobject.getLatestVersion( true ))) {
            response.setResultCode(404);
            response.setResultDescription("<Code>AccessDenied</Code><Message>Access Denied</Message>");
            return response;
View Full Code Here

  {
    String bucketName = (String)request.getAttribute(S3Constants.BUCKET_ATTR_KEY);
    String policy = streamToString( request.getInputStream());
           
    // [A] Is there an owner of an existing policy or bucket?
        SBucketVO bucket = bucketDao.getByName( bucketName );
        String owner = null;
       
        if ( null != bucket )
        {
            owner = bucket.getOwnerCanonicalId();
        }
        else
        {    try {
               owner = bPolicyDao.getByName(bucketName).getOwnerCanonicalID();
             }
View Full Code Here

  private void executeGetBucketPolicy(HttpServletRequest request, HttpServletResponse response)
  {
    String bucketName = (String)request.getAttribute(S3Constants.BUCKET_ATTR_KEY);

    // [A] Is there an owner of an existing policy or bucket?
  SBucketVO bucket = bucketDao.getByName(bucketName);
  String owner = null;

  if (null != bucket) {
      owner = bucket.getOwnerCanonicalId();
  } else {
      try {
    owner = bPolicyDao.getByName(bucketName).getOwnerCanonicalID();
      } catch (Exception e) {
      }
View Full Code Here

    private void executeDeleteBucketPolicy(HttpServletRequest request,
      HttpServletResponse response) {
  String bucketName = (String) request
    .getAttribute(S3Constants.BUCKET_ATTR_KEY);

  SBucketVO bucket = bucketDao.getByName(bucketName);
  if (bucket != null) {
      String client = UserContext.current().getCanonicalUserId();
      if (!client.equals(bucket.getOwnerCanonicalId())) {
    response.setStatus(405);
    return;
      }
  }
View Full Code Here

      logger.error( "executeGetBucketVersioning - no bucket name given" );
      response.setStatus( 400 );
      return;
    }
   
    SBucketVO sbucket = bucketDao.getByName( bucketName );
    if (sbucket == null) {
      response.setStatus( 404 );
      return;
    }
   
    // [B] The owner may want to restrict the IP address at which this can be performed
    String client = UserContext.current().getCanonicalUserId();
    if (!client.equals( sbucket.getOwnerCanonicalId()))
        throw new PermissionDeniedException( "Access Denied - only the owner can read bucket versioning" );

    S3PolicyContext context = new S3PolicyContext( PolicyActions.GetBucketVersioning, bucketName );
      if (PolicyAccess.DENY == S3Engine.verifyPolicy( context )) {
             response.setStatus(403);
             return;
      }


      // [C]
    switch( sbucket.getVersioningStatus()) {
    default:
    case 0: versioningStatus = "";           break;
    case 1: versioningStatus = "Enabled";    break;
    case 2: versioningStatus = "Suspended"break;
    }
View Full Code Here

  {
    // [A] Determine that there is an applicable bucket which might have an ACL set

  String bucketName = (String) request
    .getAttribute(S3Constants.BUCKET_ATTR_KEY);
  SBucketVO bucket = bucketDao.getByName(bucketName);
  String owner = null;
  if (null != bucket)
      owner = bucket.getOwnerCanonicalId();
  if (null == owner) {
      logger.error("ACL update failed since " + bucketName
        + " does not exist");
      throw new IOException("ACL update failed");
  }
View Full Code Here

      // Irrespective of what the ACLs say only the owner can turn on
      // versioning on a bucket.
      // The bucket owner may want to restrict the IP address from which
      // this can occur.
     
      SBucketVO sbucket = bucketDao.getByName(bucketName);

      String client = UserContext.current().getCanonicalUserId();
      if (!client.equals(sbucket.getOwnerCanonicalId()))
    throw new PermissionDeniedException(
      "Access Denied - only the owner can turn on versioing on a bucket");

      S3PolicyContext context = new S3PolicyContext(
        PolicyActions.PutBucketVersioning, bucketName);
      if (PolicyAccess.DENY == S3Engine.verifyPolicy(context)) {
    response.setStatus(403);
    return;
      }

      if (versioningStatus.equalsIgnoreCase("Enabled"))
    sbucket.setVersioningStatus(1);
      else if (versioningStatus.equalsIgnoreCase("Suspended"))
    sbucket.setVersioningStatus(2);
      else {
    logger.error("executePutBucketVersioning - unknown state: ["
      + versioningStatus + "]");
    response.setStatus(400);
    return;
      }
      bucketDao.update(sbucket.getId(), sbucket);

  } catch (PermissionDeniedException e) {
      logger.error(
        "executePutBucketVersioning - failed due to "
          + e.getMessage(), e);
View Full Code Here

  String uploadIdMarker = request.getParameter("upload-id-marker");
  if (null == keyMarker)
      uploadIdMarker = null;

  // -> does the bucket exist, we may need it to verify access permissions
  SBucketVO bucket = bucketDao.getByName(bucketName);
  if (bucket == null) {
      logger.error("listMultipartUpload failed since " + bucketName
        + " does not exist");
      response.setStatus(404);
      return;
  }

  S3PolicyContext context = new S3PolicyContext(
    PolicyActions.ListBucketMultipartUploads, bucketName);
  context.setEvalParam(ConditionKeys.Prefix, prefix);
  context.setEvalParam(ConditionKeys.Delimiter, delimiter);
  S3Engine.verifyAccess(context, "SBucket", bucket.getId(),
    SAcl.PERMISSION_READ);

  // [B] Query the multipart table to get the list of current uploads
  try {
      MultipartLoadDao uploadDao = new MultipartLoadDao();
View Full Code Here

TOP

Related Classes of com.cloud.bridge.model.SBucketVO

Copyright © 2018 www.massapicom. 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.