Re: [jclouds] JCLOUDS-137: Retry on HTTP 500 AtmosError 1040 (#285)

2014-02-10 Thread Shri Javadekar
The turnaround time on this is INCREDIBLE!! :+1: 

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/285#issuecomment-34685027

Re: [jclouds] JCLOUDS-137: Retry on HTTP 500 AtmosError 1040 (#285)

2014-02-11 Thread Shri Javadekar
 +   private int retryCountLimit = 5;
 +   @Resource
 +   protected Logger logger = Logger.NULL;
 +
 +   public boolean shouldRetryRequest(HttpCommand command, HttpResponse 
 response) {
 +  if (command.getFailureCount()  retryCountLimit) {
 + return false;
 +  }
 +  if (response.getStatusCode() == 500) {
 + byte[] content = 
 HttpUtils.closeClientButKeepContentStream(response);
 + // Content can be null in the case of HEAD requests
 + if (content != null) {
 +try {
 +   AtmosError error = utils.parseAtmosErrorFromContent(command, 
 response,
 +new String(content));
 +   if (error.getCode() == 1040) {  // The server is busy. Please 
 try again.

I haven't seen these failures myself.  I'm fine with the current change if 
you're not comfortable with retrying on all returned error codes except 1020.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/285/files#r9637835

Re: [jclouds] Delete objects in a container efficiently. (#214)

2014-03-03 Thread Shri Javadekar
I tried varying the number of threads from 10 to 50 and deleting a container 
with at least 5K blobs. Things worked fine. I'll rebase this patch on top of 
the current ToT and send out.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/214#issuecomment-36594782

Re: [jclouds] Delete objects in a container efficiently. (#214)

2014-03-04 Thread Shri Javadekar
I am trying to reproduce this locally. I have run  50 iterations of this test 
so far, but haven't been able to reproduce the problem.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/214#issuecomment-36681788

Re: [jclouds] Retry on S3 HTTP 504 Gateway Timeout status codes (#317)

2014-03-13 Thread Shri Javadekar
Looks good to me.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/317#issuecomment-37567286

Re: [jclouds] Delete objects in a container efficiently. (#214)

2014-03-23 Thread Shri Javadekar
 + // If a future to delete a blob/directory actually got created 
 above,
 + // keep a reference of that in the outstandingFutures list. This is
 + // useful in case of a timeout exception. All outstanding futures 
 can
 + // then be cancelled.
 + if (blobDelFuture != null) {
 +final AtomicReferenceListenableFutureVoid 
 atomicBlobDelFuture =
 +   new AtomicReferenceListenableFutureVoid(blobDelFuture);
 +outstandingFutures.add(atomicBlobDelFuture);
 +
 +// Add a callback to release the semaphore. This is required for
 +// other threads waiting to acquire a semaphore above to make
 +// progress.
 +Futures.addCallback(blobDelFuture, new FutureCallbackObject() {
 +   @Override
 +   public void onSuccess(final Object o) {
 +  outstandingFutures.remove(atomicBlobDelFuture);

Done.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/214/files#r10872324

Re: [jclouds] Delete objects in a container efficiently. (#214)

2014-03-23 Thread Shri Javadekar
  import com.google.common.util.concurrent.ListenableFuture;
  import com.google.common.util.concurrent.ListeningExecutorService;
  import com.google.inject.Inject;
  
  /**
   * Deletes all keys in the container
 - * 
 + *
   * @author Adrian Cole

Done

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/214/files#r10872338

Re: [jclouds] Delete objects in a container efficiently. (#214)

2014-03-23 Thread Shri Javadekar
 +   * a timeout. Also, when the reference is removed from this list and 
 when
 +   * the executorService removes the reference that it has maintained, 
 the
 +   * future will be marked for GC since there should be no other 
 references
 +   * to it. This is important because this code can generate an unbounded
 +   * number of futures.
 +   */
 +  final ListAtomicReferenceListenableFutureVoid outstandingFutures 
 = Collections
 +.synchronizedList(new 
 ArrayListAtomicReferenceListenableFutureVoid());
 +  while (retries  0) {
 + deleteFailure.set(false);
 + executeOneIteration(containerName, listOptions.clone(), semaphore,
 +   outstandingFutures, deleteFailure);
 + // Wait for all futures to complete by waiting to acquire all
 + // semaphores.
 + try {
 +if (!semaphore.tryAcquire(numOutStandingRequests, maxTime,

Added a TODO for this.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/214/files#r10872424

Re: [jclouds] Delete objects in a container efficiently. (#214)

2014-03-23 Thread Shri Javadekar
 + listing = blobStore.list(containerName, options);
 +  } catch (ContainerNotFoundException ce) {
 + return listing;
 +  }
 +
 +  // recurse on subdirectories
 +  if (options.isRecursive()) {
 + for (StorageMetadata md : listing) {
 +String fullPath = parentIsFolder(options, md) ? options.getDir()
 +  + / + md.getName() : md.getName();
 +switch (md.getType()) {
 +case BLOB:
 +   break;
 +case FOLDER:
 +case RELATIVE_PATH:
 +   if (options.isRecursive() 

Removed.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/214/files#r10872428

Re: [jclouds] Delete objects in a container efficiently. (#214)

2014-03-23 Thread Shri Javadekar
 + String marker = listing.getNextMarker();
 + if (marker != null) {
 +logger.debug(%s with marker %s, message, marker);
 +options = options.afterMarker(marker);
 +listing = getListing(containerName, options, semaphore,
 +  outstandingFutures, deleteFailure);
 + } else {
 +break;
 + }
 +  }
 +   }
 +
 +   public void execute(final String containerName,
 + ListContainerOptions listOptions) {
 +  final AtomicBoolean deleteFailure = new AtomicBoolean();
 +  final int numOutStandingRequests = 1024;

Done.

There is a configurable property called jclouds.max-parallel-deletes that can 
be used for this.

You're point about whether the # of semaphores should be equal to the # of 
threads in the executorService is valid. The default value of 
jclouds.max-parallel-threads is equal to the # of user threads.

Given that these two are equal, I thought about whether we need the extra 
config option. Can we just use the value of PROPERTY_USER_THREADS instead. 
However, I'm not sure if the executorService object injected into 
DeleteAllKeysInList is  also being used somewhere else. If it is used 
somewhere, I guess, it would be good to have an option where the use can limit 
the number of parallel deletes being issued when deleting a container thereby 
limiting the number of threads being used from the executorService.

Let me know if this isn't necessary.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/214/files#r10872420

Re: [jclouds] Delete objects in a container efficiently. (#214)

2014-03-23 Thread Shri Javadekar
Looks like a network glitch on cloudbees.

code
ERROR: Error cloning remote repo 'origin'
hudson.plugins.git.GitException: Could not clone 
git://github.com/jclouds/jclouds.git
...
stderr: fatal: unable to connect to github.com:
github.com[0: 192.30.252.129]: errno=Connection timed out
/code

Can we start another build?

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/214#issuecomment-38413431

Re: [jclouds] Azureblobs live-test Bug Fix (#336)

2014-03-31 Thread Shri Javadekar
 @@ -87,7 +87,9 @@ public void testListContainers() throws Exception {
 public void testCreateContainer() throws Exception {
boolean created = false;
while (!created) {
 - privateContainer = prefix + new SecureRandom().nextInt();
 +
 + privateContainer = (CONTAINER_PREFIX + new 
 SecureRandom().nextInt());

Aah.. I missed the .toLowerCase() in the declaration of CONTAINER_PREFIX. 
That explains it.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/336/files#r11126006

Re: [jclouds] Azureblobs live-test Bug Fix (#336)

2014-03-31 Thread Shri Javadekar
 @@ -87,7 +87,9 @@ public void testListContainers() throws Exception {
 public void testCreateContainer() throws Exception {
boolean created = false;
while (!created) {
 - privateContainer = prefix + new SecureRandom().nextInt();
 +
 + privateContainer = (CONTAINER_PREFIX + new 
 SecureRandom().nextInt());

You don't need the parenthesis.

(CONTAINER_PREFIX + new SecureRandom().nextInt());
could simply be
CONTAINER_PREFIX + new SecureRandom().nextInt();

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/336/files#r11126993

Re: [jclouds] Add deprecation warnings and provide links to new Swift APIs (#237)

2014-04-01 Thread Shri Javadekar
Do we know what's missing in the new implementation (in jclouds-labs-openstack) 
that is present in the old implementation? In other words, what's the effort 
required to have feature parity between the new implementation and the old one?

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/237#issuecomment-39243860

Re: [jclouds] Azureblobs live-test Bug Fix (#336)

2014-04-01 Thread Shri Javadekar
Congratulations on your first commit to jclouds @hsbhathiya. Looking forward to 
more :-)

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/336#issuecomment-39277522

Re: [jclouds] Mark Swift blobstores as eventually consistent (#343)

2014-04-14 Thread Shri Javadekar
This commit looks good to me. +1.

I haven't seen too many uses of the getConsistencyModel API. I agree though, 
that it seems useful.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/343#issuecomment-40336557

[jclouds] Create a separate function to delete directories. (#349)

2014-04-16 Thread Shri Javadekar

You can merge this Pull Request by running:

  git pull https://github.com/maginatics/jclouds deleteallkeys-cleanup

Or you can view, comment on it, or merge it online at:

  https://github.com/jclouds/jclouds/pull/349

-- Commit Summary --

  * Create a separate function to delete directories.

-- File Changes --

M 
blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/DeleteAllKeysInList.java
 (45)

-- Patch Links --

https://github.com/jclouds/jclouds/pull/349.patch
https://github.com/jclouds/jclouds/pull/349.diff

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/349


Re: [jclouds] Remove deprecation from getConsistencyModel (#348)

2014-04-17 Thread Shri Javadekar
Looks good to me too!

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/348#issuecomment-40762944

Re: [jclouds] Allow Swift to set content type (#338)

2014-04-17 Thread Shri Javadekar
Apart from what @andrewgaul said, we should have a unit test for this.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/338#issuecomment-40763386

Re: [jclouds] Create a separate function to delete directories. (#349)

2014-04-18 Thread Shri Javadekar
Your're right. This is a purely refactoring commit.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/349#issuecomment-40847919

Re: [jclouds] Create a separate function to delete directories. (#349)

2014-04-18 Thread Shri Javadekar
 @@ -177,6 +177,26 @@ private String getMessage(final String containerName,
return listing;
 }
  
 +   private ListenableFutureVoid deleteDirectory(

Done.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/349/files#r11788434

Re: [jclouds] First attempt at fixing 538 by adding dummy override methods for TestNG (#351)

2014-04-21 Thread Shri Javadekar
Trying to fix this without knowing the root-cause does seems like a bad idea to 
me. We may just hit this again in some other environment and/or in some other 
circumstances and then this change simply lands up being dead code.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/351#issuecomment-40953703

Re: [jclouds] First attempt at fixing 538 by adding dummy override methods for TestNG (#351)

2014-04-22 Thread Shri Javadekar
I see. The change itself looks fine to me.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/351#issuecomment-41104636

Re: [jclouds] First attempt at fixing 538 by adding dummy override methods for TestNG (#351)

2014-04-22 Thread Shri Javadekar
I definitely want to fix these test. I'll see if I can run the tests later 
tonight.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/351#issuecomment-41106560

Re: [jclouds-labs-openstack] Add live test for signPutBlob. (#94)

2014-05-06 Thread Shri Javadekar
Even if we separate it, a signedGet will require a blob to present in the 
container, right? This will require putting a blob and then trying to read it 
using a signed url. Instead this commit uses a single test to do a signed put 
first followed by a signed get.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-openstack/pull/94#issuecomment-42326554

Re: [jclouds-labs-openstack] Add live test for signPutBlob. (#94)

2014-05-12 Thread Shri Javadekar
 + final ByteSource input = ByteSource.wrap(new byte[1]);
 + final HttpClient client = ctx.utils().http();
 +
 + // test signed put
 + String blobName = test- + UUID.randomUUID();
 + Blob blob2 = region.blobBuilder(blobName).forSigning()
 +   .payload(input).contentLength(input.size())
 +   .contentMD5(input.hash(Hashing.md5()).asBytes())
 +   .contentType(MediaType.OCTET_STREAM.toString()).build();
 + HttpRequest putRequest;
 + BlobRequestSigner signer = ctx.signerInRegion(regionId);
 + putRequest = signer.signPutBlob(containerName, blob2, 600);
 +
 + HttpResponse response = client.invoke(putRequest);
 + assertTrue(response.getStatusCode() == 200
 +   || response.getStatusCode() == 201);

Done.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-openstack/pull/94/files#r12565178

Re: [jclouds-labs-openstack] Add live test for signPutBlob. (#94)

2014-05-12 Thread Shri Javadekar
 +
 + // test signed put
 + String blobName = test- + UUID.randomUUID();
 + Blob blob2 = region.blobBuilder(blobName).forSigning()
 +   .payload(input).contentLength(input.size())
 +   .contentMD5(input.hash(Hashing.md5()).asBytes())
 +   .contentType(MediaType.OCTET_STREAM.toString()).build();
 + HttpRequest putRequest;
 + BlobRequestSigner signer = ctx.signerInRegion(regionId);
 + putRequest = signer.signPutBlob(containerName, blob2, 600);
 +
 + HttpResponse response = client.invoke(putRequest);
 + assertTrue(response.getStatusCode() == 200
 +   || response.getStatusCode() == 201);
 +
 + // test signed get
   HttpRequest request = 
 ctx.signerInRegion(regionId).signGetBlob(containerName, blobName);

Done.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-openstack/pull/94/files#r12565180

Re: [jclouds-labs-openstack] Add live test for signPutBlob. (#94)

2014-05-12 Thread Shri Javadekar
   HttpRequest request = 
 ctx.signerInRegion(regionId).signGetBlob(containerName, blobName);
   assertNotNull(request, regionId= + regionId + , container= + 
 containerName + , blob= + blobName);
 + response = client.invoke(request);
 + assertEquals(response.getStatusCode(), 200);

Done.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-openstack/pull/94/files#r12565187

Re: [jclouds-labs-openstack] Add live test for signPutBlob. (#94)

2014-05-12 Thread Shri Javadekar
 +
 + // test signed put
 + String blobName = test- + UUID.randomUUID();
 + Blob blob2 = region.blobBuilder(blobName).forSigning()
 +   .payload(input).contentLength(input.size())
 +   .contentMD5(input.hash(Hashing.md5()).asBytes())
 +   .contentType(MediaType.OCTET_STREAM.toString()).build();
 + HttpRequest putRequest;
 + BlobRequestSigner signer = ctx.signerInRegion(regionId);
 + putRequest = signer.signPutBlob(containerName, blob2, 600);
 +
 + HttpResponse response = client.invoke(putRequest);
 + assertTrue(response.getStatusCode() == 200
 +   || response.getStatusCode() == 201);
 +
 + // test signed get
   HttpRequest request = 
 ctx.signerInRegion(regionId).signGetBlob(containerName, blobName);
   assertNotNull(request, regionId= + regionId + , container= + 
 containerName + , blob= + blobName);

Done.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-openstack/pull/94/files#r12565185

Re: [jclouds-labs-openstack] Add live test for signPutBlob. (#94)

2014-05-12 Thread Shri Javadekar
 @@ -83,13 +94,29 @@ public void trySign() throws InterruptedException, 
 ExecutionException {
  continue;
   }
   String containerName = Iterables.getLast(containers).getName();
 - PageSet? extends StorageMetadata blobs = 
 region.list(containerName);
 - if (blobs.isEmpty()) {
 -continue;
 - }
 - String blobName = Iterables.getLast(blobs).getName();
 +
 + final ByteSource input = ByteSource.wrap(new byte[1]);
 + final HttpClient client = ctx.utils().http();
 +
 + // test signed put
 + String blobName = test- + UUID.randomUUID();
 + Blob blob2 = region.blobBuilder(blobName).forSigning()
 +   .payload(input).contentLength(input.size())

Done. Added the payload to the put request. And added a check for comparing the 
blob obtained by getBlob with the input.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-openstack/pull/94/files#r12565208

Re: [jclouds-labs-openstack] Add live test for signPutBlob. (#94)

2014-05-12 Thread Shri Javadekar
 - String blobName = Iterables.getLast(blobs).getName();
 +
 + final ByteSource input = ByteSource.wrap(new byte[1]);
 + final HttpClient client = ctx.utils().http();
 +
 + // test signed put
 + String blobName = test- + UUID.randomUUID();
 + Blob blob2 = region.blobBuilder(blobName).forSigning()
 +   .payload(input).contentLength(input.size())
 +   .contentMD5(input.hash(Hashing.md5()).asBytes())
 +   .contentType(MediaType.OCTET_STREAM.toString()).build();
 + HttpRequest putRequest;
 + BlobRequestSigner signer = ctx.signerInRegion(regionId);
 + putRequest = signer.signPutBlob(containerName, blob2, 600);
 +
 + HttpResponse response = client.invoke(putRequest);

Done.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-openstack/pull/94/files#r12565175

Re: [jclouds-labs-openstack] Add live test for signPutBlob. (#94)

2014-05-15 Thread Shri Javadekar
 @@ -83,13 +94,29 @@ public void trySign() throws InterruptedException, 
 ExecutionException {
  continue;
   }
   String containerName = Iterables.getLast(containers).getName();
 - PageSet? extends StorageMetadata blobs = 
 region.list(containerName);
 - if (blobs.isEmpty()) {
 -continue;
 - }
 - String blobName = Iterables.getLast(blobs).getName();
 +
 + final ByteSource input = ByteSource.wrap(new byte[1]);
 + final HttpClient client = ctx.utils().http();
 +
 + // test signed put
 + String blobName = test- + UUID.randomUUID();
 + Blob blob2 = region.blobBuilder(blobName).forSigning()
 +   .payload(input).contentLength(input.size())

Yeah... I found it the hard way that the payload does not get added. I think 
the behavior here is different from the jclouds/apis/swift. There the payload 
gets added when we call signPutBlob(). I will make that change and update the 
review request.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-openstack/pull/94/files#r12441518

Re: [jclouds] Fixes an issue where the number of retries was always set to 1. (#368)

2014-05-16 Thread Shri Javadekar
The change itself looks good. Can we have a unit test for this?

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/368#issuecomment-43235344

Re: [jclouds] Fixes an issue where the number of retries was always set to 1. (#368)

2014-05-17 Thread Shri Javadekar
Duh... nevermind then! :-)

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/368#issuecomment-43424762

Re: [jclouds] Enforce correct MD5 when provided by a client (#382)

2014-05-28 Thread Shri Javadekar
Looks good to me.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/382#issuecomment-44369485

Re: [jclouds] Allow Guava MediaType for Content-Type (#383)

2014-05-28 Thread Shri Javadekar
 @@ -303,13 +303,15 @@ Options can also be specified for extension modules
 blob-builder (if content-length ;; Special case, arg is prim.
(.contentLength blob-builder content-length)
blob-builder)
 +   blob-builder (if content-type

How does one set the content type of a blob using the Guava MediaType after 
this change? I only see a method that returns the media type.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/383/files#r13117334

Re: [jclouds] JCLOUDS-584 - Update HP Cloud object storage provider (#394)

2014-06-04 Thread Shri Javadekar
Hey Chris,

Thanks for adding support for the 13.5 API. Could you list some points (maybe 
in the commit message itself) about what the actual changes are? Will make it 
easier to understand the code changes.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/394#issuecomment-45181404

Re: [jclouds-labs-openstack] Add live test for signPutBlob. (#94)

2014-06-06 Thread Shri Javadekar
 +
 + // test signed get
 + try {
 +HttpRequest getRequest = signer.signGetBlob(containerName,
 +  blobName);
 +assertNotNull(getRequest, regionId= + regionId + , container=
 +  + containerName + , blob= + blobName);
 +response = client.invoke(getRequest);
 +if (response.getStatusCode() != 200) {
 +   fail(Signed GET expected to return 200 but returned 
 + + response.getStatusCode());
 +}
 +Payload payload = response.getPayload();
 +byte[] output = ByteStreams.toByteArray(payload);
 +if (!Arrays.equals(input.read(), output)) {
 +   fail(Data with signed GET not identical to what was put);

Done.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-openstack/pull/94/files#r13478685

Re: [jclouds-labs-openstack] Add live test for signPutBlob. (#94)

2014-06-06 Thread Shri Javadekar
 +  .addHeader(HttpHeaders.CONTENT_TYPE,
 +metadata.getContentType());
 +putRequestBuilder.addHeader(HttpHeaders.CONTENT_LENGTH,
 +  String.valueOf(input.size()));
 +putRequestBuilder.payload(input);
 +putRequest = putRequestBuilder.build();
 +assertNotNull(putRequest, regionId= + regionId + , container=
 +  + containerName + , blob= + blobName);
 +response = client.invoke(putRequest);
 +if (response.getStatusCode() != 200
 +   response.getStatusCode() != 201) {
 +   fail(Signed PUT expected to return 200 or 201 but returned 
 + + response.getStatusCode());
 +}
 + } catch (Exception e) {
 +fail(Failed signed put test);

Done.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-openstack/pull/94/files#r13478682

Re: [jclouds-labs-openstack] Add live test for signPutBlob. (#94)

2014-06-06 Thread Shri Javadekar
 +HttpRequest getRequest = signer.signGetBlob(containerName,
 +  blobName);
 +assertNotNull(getRequest, regionId= + regionId + , container=
 +  + containerName + , blob= + blobName);
 +response = client.invoke(getRequest);
 +if (response.getStatusCode() != 200) {
 +   fail(Signed GET expected to return 200 but returned 
 + + response.getStatusCode());
 +}
 +Payload payload = response.getPayload();
 +byte[] output = ByteStreams.toByteArray(payload);
 +if (!Arrays.equals(input.read(), output)) {
 +   fail(Data with signed GET not identical to what was put);
 +}
 + } catch (Exception e) {
 +fail(Failed signed GET test);

Done.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-openstack/pull/94/files#r13478689

Re: [jclouds] Remove LocalAsyncBlobStore. (#220)

2014-06-06 Thread Shri Javadekar
Is there anything else that needs to be done here?

There is one feature that I am developing in jclouds that is made easier 
because of this change. Let me know if there's anything I can do to help make 
progress on this.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/220#issuecomment-45361526

[jclouds] Port fixes for JCLOUDS-178 to SwiftAuth and Keystone v1.1 (JCLOUDS-589) (#399)

2014-06-09 Thread Shri Javadekar
Reauthenticate on HTTP 401. Orig commit: 
578a77d6313ce0945f8d29e82103e09787622c58

Closes #589.
You can merge this Pull Request by running:

  git pull https://github.com/maginatics/jclouds 
fix_401_unauthorized_non_keystone

Or you can view, comment on it, or merge it online at:

  https://github.com/jclouds/jclouds/pull/399

-- Commit Summary --

  * Port fixes for JCLOUDS-178 to SwiftAuth and Keystone v1.1 (JCLOUDS-589)

-- File Changes --

M 
common/openstack/src/main/java/org/jclouds/openstack/handlers/RetryOnRenew.java 
(51)
M 
common/openstack/src/main/java/org/jclouds/openstack/keystone/v1_1/handlers/RetryOnRenew.java
 (45)
M 
common/openstack/src/test/java/org/jclouds/openstack/handlers/RetryOnRenewTest.java
 (53)
M 
common/openstack/src/test/java/org/jclouds/openstack/keystone/v1_1/handlers/RetryOnRenewTest.java
 (37)

-- Patch Links --

https://github.com/jclouds/jclouds/pull/399.patch
https://github.com/jclouds/jclouds/pull/399.diff

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/399


Re: [jclouds] Port fixes for JCLOUDS-178 to SwiftAuth and Keystone v1.1 (JCLOUDS-589) (#399)

2014-06-09 Thread Shri Javadekar
These are related to the change I made. I'll take a look and update the review 
request.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/399#issuecomment-45554781

Re: [jclouds] Port fixes for JCLOUDS-178 to SwiftAuth and Keystone v1.1 (JCLOUDS-589) (#399)

2014-06-17 Thread Shri Javadekar
 @Inject(optional = true)
 @Named(Constants.PROPERTY_MAX_RETRIES)
 -   private int retryCountLimit = 5;
 +   static final int NUM_RETRIES = 5;

@andrewgaul Done.
@zack-shoylev There is already a test for this. test401ShouldRetry4Times().

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/399/files#r13880093

Re: [jclouds] Port fixes for JCLOUDS-178 to SwiftAuth and Keystone v1.1 (JCLOUDS-589) (#399)

2014-06-17 Thread Shri Javadekar
 @@ -60,6 +67,16 @@ protected RetryOnRenew(LoadingCacheCredentials, Auth 
 authenticationResponseCac
this.backoffHandler = backoffHandler;
 }
  
 +   /*
 +* The reason retries need to be tracked is that it is possible that a 
 token
 +* * can be expired at any time. The reason we track by request is that 
 only

Done.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/399/files#r13880127

Re: [jclouds] JCLOUDS-622: remove calls to InputSupplier methods (#436)

2014-07-14 Thread Shri Javadekar
I like the BlahAndClose methods. Makes code reading easier and using these 
methods is less error prone.

I'm still a little fuzzy about about MultiPartForm gets used in the context of 
other blobstore operations. But the change itself seems to do what is says. 
Looks good!

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/436#issuecomment-48978037

Re: [jclouds] Add deleteContainerIfEmpty to BlobStore (#451)

2014-07-22 Thread Shri Javadekar
deleteContainerIfEmpty seems useful. However, I'm not sure about deprecating 
deleteContainer itself. I think of deleteContainerIfEmpty as rm and 
deleteContainer as rm -rf. Both are useful.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/451#issuecomment-49801813

Re: [jclouds] Add deleteContainerIfEmpty to BlobStore (#451)

2014-07-22 Thread Shri Javadekar
 @@ -272,10 +274,10 @@ public void deleteContainerWithContents() throws 
 InterruptedException {
String containerName = getContainerName();
try {
   addBlobToContainer(containerName, test);
 - view.getBlobStore().deleteContainer(containerName);
 - assertNotExists(containerName);
 + 
 assertFalse(view.getBlobStore().deleteContainerIfEmpty(containerName));
 + assertTrue(view.getBlobStore().containerExists(containerName));

Maybe add a test for deleteContainerIfEmpty again to make sure that a 
ContainerNotFoundException results in a return true.

assertTrue(view.getBlobStore().deleteContainerIfEmpty(containerName));

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/451/files#r15257037

Re: [jclouds] Add deleteContainerIfEmpty to BlobStore (#451)

2014-07-23 Thread Shri Javadekar
This change itself looks good to me.

Let's have a separate discussion about whether to deprecate deleteContainer.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/451#issuecomment-49951167

[jclouds] Try iso8601SecondsDateParse if iso8601DateParse fails. (#456)

2014-07-25 Thread Shri Javadekar
S3 compatible blobStores sometimes return date in the format:
quot;2014-07-23T20:53:17+quot; instead of the more common
quot;2014-07-23T18:09:39.944Zquot;. This caused jclouds to barf with an
IllegalArgumentException.

This commit tries to parse both the formats for S3. The exception
is thrown if both fail.

Added unit tests for the same.
You can merge this Pull Request by running:

  git pull https://github.com/maginatics/jclouds parse-date-seconds-format

Or you can view, comment on it, or merge it online at:

  https://github.com/jclouds/jclouds/pull/456

-- Commit Summary --

  * Try iso8601SecondsDateParse if iso8601DateParse fails.

-- File Changes --

M apis/s3/src/main/java/org/jclouds/s3/xml/CopyObjectHandler.java (12)
M apis/s3/src/main/java/org/jclouds/s3/xml/ListAllMyBucketsHandler.java (12)
M apis/s3/src/main/java/org/jclouds/s3/xml/ListBucketHandler.java (12)
M apis/s3/src/test/java/org/jclouds/s3/xml/CopyObjectHandlerTest.java (19)
M apis/s3/src/test/java/org/jclouds/s3/xml/ListBucketHandlerTest.java (20)

-- Patch Links --

https://github.com/jclouds/jclouds/pull/456.patch
https://github.com/jclouds/jclouds/pull/456.diff

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/456


Re: [jclouds] Try iso8601SecondsDateParse if iso8601DateParse fails. (#456)

2014-07-26 Thread Shri Javadekar
 @@ -51,7 +51,17 @@ public void endElement(String uri, String name, String 
 qName) {
if (qName.equals(ETag)) {
   this.currentETag = currentOrNull(currentText);
} else if (qName.equals(LastModified)) {
 - this.currentLastModified = 
 dateParser.iso8601DateParse(currentOrNull(currentText));
 + try {
 +this.currentLastModified = dateParser
 +  
 .iso8601DateParseWithOptionalTZ(currentOrNull(currentText));

Done.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/456/files#r15437217

Re: [jclouds] Try iso8601SecondsDateParse if iso8601DateParse fails. (#456)

2014-07-27 Thread Shri Javadekar
Thanks for pushing this to master @andrewgaul. I believe the jclouds 1.8.0 
release next week will be based off of master so this fix will make it there. 
Do we need to backport this fix to the 1.7.x branch for any further 1.7.x 
releases?

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/456#issuecomment-50284492

Re: [jclouds-site] Update stale BlobStore docs (#68)

2014-07-28 Thread Shri Javadekar
  
 -### Multipart upload
 -
 -Providers may implement multipart upload for large or very files.
 -Here's an example of `multipart upload` using aws-s3 provider, which [allow 
 uploading files large as 
 5TB.](http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?qfacts.html)
 +Providers may implement multipart upload for large or very files. Here's an 
 example of multipart

for large or very files -- ???

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/68/files#r15486910

Re: [jclouds] Remove LocalAsyncBlobStore. (#220)

2014-07-31 Thread Shri Javadekar
Closed #220.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/220#event-147810874

Re: [jclouds] Add BlobStoreBench to jclouds. (#239)

2014-07-31 Thread Shri Javadekar
Closed #239.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/239#event-147810983

Re: [jclouds-site] Release Notes for jclouds 1.8.0 (#114)

2014-08-01 Thread Shri Javadekar
 +* TODO
 +
 +## a id=issues/aKnown Issues
 +
 +* TODO
 +
 +## a id=reminder/aReminder
 +
 +The jclouds Maven group ID for versions since [1.6.1-incubating](../1.6.1) 
 is `org.apache.jclouds` rather than `org.jclouds`, so a pom.xml dependency 
 would now look like:
 +
 +{% highlight xml %}
 +dependencies
 +  dependency
 +groupIdorg.apache.jclouds/groupId
 +artifactIdjclouds-all/artifactId
 +version1.7.3/version

This should be 1.8.0, right?

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/114/files#r15724722

Re: [jclouds-site] Release Notes for jclouds 1.8.0 (#114)

2014-08-01 Thread Shri Javadekar
 +1. [Highlights](#highlights)
 +1. [API Changes](#api)
 +1. [Known Issues](#issues)
 +1. [Reminder](#reminder)
 +1. [Credits](#credits)
 +1. [Test Results](#test)
 +
 +## a id=intro/aIntroduction
 +
 +You can read the official announcement at TODO ([Apache jclouds 1.7.3 
 released](http://jclouds.markmail.org/message/6ormro7calbt5tjn)). You can 
 read the details of the specific JIRA issues addressed in this release at the 
 [JIRA Release 
 Notes](https://issues.apache.org/jira/issues/?jql=project%20%3D%20JCLOUDS%20AND%20fixVersion%20%3D%201.8.0).
 +
 +To get jclouds, please see the [jclouds installation guide](/start/install/).
 +
 +## a id=highlights/aHighlights
 +
 +* **This is the last version of jclouds to support Java 6**

Based on bug 645:

Starting with jclouds-1.8.0, it is mandatory to set the region for the 
HPCloud Object Storage provider. Previously the region and/or the apiVersion 
was used for choosing the correct endpoint. With jclouds-1.8.0, simply setting 
the region is enough. The value of the apiVersion is ignored when choosing the 
endpoint. Failure to set the region can result in an arbitrary region  and 
therefore an arbitrary endpoint getting selected which may be different from 
previous jclouds releases.


---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/114/files#r15724889

Re: [jclouds] Use HEAD /name to check bucket existence with S3 (#475)

2014-08-11 Thread Shri Javadekar
 .addHeader(Date, 
 CONSTANT_DATE)
 -   .addHeader(Authorization, 
 AWS identity:p32RsBr2inawMBeCkkiA228BT2w=)

Why was the change in identity needed?

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/475/files#r16065111

Re: [jclouds] Use HEAD /name to check bucket existence with S3 (#475)

2014-08-11 Thread Shri Javadekar
 .addHeader(Date, 
 CONSTANT_DATE)
 -   .addHeader(Authorization, 
 AWS identity:p32RsBr2inawMBeCkkiA228BT2w=)

I see.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/475/files#r16069034

Re: [jclouds] Use HEAD /name to check bucket existence with S3 (#475)

2014-08-11 Thread Shri Javadekar
Change looks good to me.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/475#issuecomment-51816730

Re: [jclouds] JCLOUDS-654: Add object size to StorageMetadata (#465)

2014-08-12 Thread Shri Javadekar
Sorry I missed this earlier. I will take a look at this later today.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/465#issuecomment-51953773

Re: [jclouds] JCLOUDS-654: Add object size to StorageMetadata (#465)

2014-08-12 Thread Shri Javadekar
   currentName = currentText.toString().trim();
 - if (currentName.equals())
 -currentName = null;
 +  } else if (qName.equals(Value)) {
 + if (currentName.equals(size)) {

The way you have it, size is in the correct case as per 
[this](https://community.emc.com/servlet/JiveServlet/previewBody/3481-102-6-16527/Atmos%20Online%20Programmer's%20Guide%201.2.4A.pdf;jsessionid=360D5B1A4D136E51874AB885545A7FA4.node0).
 However, wouldn't it be better if this was a case insensitive comparison?

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/465/files#r16152290

Re: [jclouds] JCLOUDS-654: Add object size to StorageMetadata (#465)

2014-08-12 Thread Shri Javadekar
Generally, looks good. I'll take a look again when other concerns are addressed.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/465#issuecomment-5199

Re: [jclouds-labs-openstack] Add live test for signPutBlob. (#94)

2014-08-26 Thread Shri Javadekar
Not sure what to make of the failures above. The checkstyle violations are not 
in my commit. Apparently they are in the neutron-api that I have not touched.

Any ideas?

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-openstack/pull/94#issuecomment-53463063

[jclouds/jclouds] JCLOUDS-1161: Make AWSS3BlobRequestSignerV4 the default signer. (#1008)

2016-09-08 Thread Shri Javadekar
Fix unit tests accordingly.
You can view, comment on, or merge this pull request online at:

  https://github.com/jclouds/jclouds/pull/1008

-- Commit Summary --

  * JCLOUDS-1161: Make AWSS3BlobRequestSignerV4 the default signer.

-- File Changes --

M 
providers/aws-s3/src/main/java/org/jclouds/aws/s3/blobstore/config/AWSS3BlobStoreContextModule.java
 (4)
M 
providers/aws-s3/src/test/java/org/jclouds/aws/s3/blobstore/AWSS3BlobSignerExpectTest.java
 (21)

-- Patch Links --

https://github.com/jclouds/jclouds/pull/1008.patch
https://github.com/jclouds/jclouds/pull/1008.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/1008


Re: [jclouds/jclouds] JCLOUDS-1161: Make AWSS3BlobRequestSignerV4 the default signer. (#1008)

2016-09-13 Thread Shri Javadekar
Do the live tests run successfully on current master? The same 4 tests above 
failed for me on current master.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/1008#issuecomment-246837745

Re: [jclouds/jclouds] JCLOUDS-1161: Make AWSS3BlobRequestSignerV4 the default signer. (#1008)

2016-09-12 Thread Shri Javadekar
Added a new live test, specifically run against eu-central-1 region.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/1008#issuecomment-246511656

Re: [jclouds/jclouds] JCLOUDS-1161: Make AWSS3BlobRequestSignerV4 the default signer. (#1008)

2016-09-20 Thread Shri Javadekar
Thanks for fixing the tests on master @andrewgaul. I am able to run the tests 
successfully on master and also able to reproduce the test failures with my 
change. I'll fix them and upload a new commit.

-- 
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/1008#issuecomment-248364824

[jira] [Commented] (JCLOUDS-311) Allow hpcloud-objectstorage to see regions with mixed api versions

2014-01-30 Thread Shri Javadekar (JIRA)

[ 
https://issues.apache.org/jira/browse/JCLOUDS-311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13886840#comment-13886840
 ] 

Shri Javadekar commented on JCLOUDS-311:


FWIW, versionId, versionInfo and versionList were never supposed to be 
returned by Keystone. The documentation had a bug [1] that is now being fixed.

[1] https://bugs.launchpad.net/keystone/+bug/1273831

 Allow hpcloud-objectstorage to see regions with mixed api versions
 --

 Key: JCLOUDS-311
 URL: https://issues.apache.org/jira/browse/JCLOUDS-311
 Project: jclouds
  Issue Type: Improvement
  Components: jclouds-core
Affects Versions: 1.6.2
Reporter: Adrian Cole
Assignee: Adrian Cole
 Fix For: 1.7.0, 1.6.3


 API versions for hpcloud objectstorage region-a.geo-1 and region-b.geo-1 
 differ, 1.0 and 1 respectively.  This prevents multiple regions from being 
 visible without creating contexts for each version.
 Let's configure hpcloud to ignore api versions until they can correct this 
 mistake.
 See below for the server-side misconfiguration:
 2013-09-30 14:16:18,397 DEBUG [jclouds.wire] [main]  {[\n]
 2013-09-30 14:16:18,397 DEBUG [jclouds.wire] [main]name: Object 
 Storage,[\n]
 2013-09-30 14:16:18,397 DEBUG [jclouds.wire] [main]type: 
 object-store,[\n]
 2013-09-30 14:16:18,397 DEBUG [jclouds.wire] [main]endpoints: 
 [[\n]
 2013-09-30 14:16:18,397 DEBUG [jclouds.wire] [main]  {[\n]
 2013-09-30 14:16:18,397 DEBUG [jclouds.wire] [main]tenantId: 
 10448598368512,[\n]
 2013-09-30 14:16:18,397 DEBUG [jclouds.wire] [main]
 publicURL: 
 https:\/\/region-a.geo-1.objects.hpcloudsvc.com\/v1\/10448598368512,[\n]
 2013-09-30 14:16:18,397 DEBUG [jclouds.wire] [main]region: 
 region-a.geo-1,[\n]
 2013-09-30 14:16:18,397 DEBUG [jclouds.wire] [main]
 versionId: 1.0,[\n]
 2013-09-30 14:16:18,397 DEBUG [jclouds.wire] [main]
 versionInfo: https:\/\/region-a.geo-1.objects.hpcloudsvc.com\/v1.0\/,[\n]
 2013-09-30 14:16:18,397 DEBUG [jclouds.wire] [main]
 versionList: https:\/\/region-a.geo-1.objects.hpcloudsvc.com[\n]
 2013-09-30 14:16:18,397 DEBUG [jclouds.wire] [main]  },[\n]
 2013-09-30 14:16:18,397 DEBUG [jclouds.wire] [main]  {[\n]
 2013-09-30 14:16:18,397 DEBUG [jclouds.wire] [main]tenantId: 
 10448598368512,[\n]
 2013-09-30 14:16:18,397 DEBUG [jclouds.wire] [main]
 publicURL: 
 https:\/\/region-b.geo-1.objects.hpcloudsvc.com:443\/v1\/10448598368512,[\n]
 2013-09-30 14:16:18,397 DEBUG [jclouds.wire] [main]region: 
 region-b.geo-1,[\n]
 2013-09-30 14:16:18,397 DEBUG [jclouds.wire] [main]
 versionId: 1,[\n]
 2013-09-30 14:16:18,397 DEBUG [jclouds.wire] [main]
 versionInfo: 
 https:\/\/region-b.geo-1.objects.hpcloudsvc.com:443\/v1\/,[\n]
 2013-09-30 14:16:18,397 DEBUG [jclouds.wire] [main]
 versionList: https:\/\/region-b.geo-1.objects.hpcloudsvc.com:443[\n]
 2013-09-30 14:16:18,397 DEBUG [jclouds.wire] [main]  }[\n]
 2013-09-30 14:16:18,398 DEBUG [jclouds.wire] [main]][\n]
 2013-09-30 14:16:18,398 DEBUG [jclouds.wire] [main]  },[\n]



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (JCLOUDS-510) Head-of-line blocking problem with DeleteAllKeysInList

2014-03-23 Thread Shri Javadekar (JIRA)

 [ 
https://issues.apache.org/jira/browse/JCLOUDS-510?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shri Javadekar updated JCLOUDS-510:
---

Description: 
The current implementation of DeleteAllKeysInList suffers from the head-of-line 
blocking problem. It gets a PageSet of blobs from the container, creates 
futures for deleting them and waits for the futures to complete before getting 
the next PageSet. 

This issue was originally reported by Andrew Gaul [~gaul] [1]
-Shri

[1] https://github.com/jclouds/legacy-jclouds/issues/1087

  was:
The current implementation of DeleteAllKeysInList suffers from the head-of-line 
blocking problem. It gets a PageSet of blobs from the container, creates 
futures for deleting them and waits for the futures to complete before getting 
the next PageSet. 

This issue was originally reported by [~gaul] [1]
-Shri

[1] https://github.com/jclouds/legacy-jclouds/issues/1087


 Head-of-line blocking problem with DeleteAllKeysInList
 --

 Key: JCLOUDS-510
 URL: https://issues.apache.org/jira/browse/JCLOUDS-510
 Project: jclouds
  Issue Type: Improvement
  Components: jclouds-blobstore
Reporter: Shri Javadekar
 Fix For: 1.7.2


 The current implementation of DeleteAllKeysInList suffers from the 
 head-of-line blocking problem. It gets a PageSet of blobs from the container, 
 creates futures for deleting them and waits for the futures to complete 
 before getting the next PageSet. 
 This issue was originally reported by Andrew Gaul [~gaul] [1]
 -Shri
 [1] https://github.com/jclouds/legacy-jclouds/issues/1087



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (JCLOUDS-510) Head-of-line blocking problem with DeleteAllKeysInList

2014-04-07 Thread Shri Javadekar (JIRA)

[ 
https://issues.apache.org/jira/browse/JCLOUDS-510?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13962009#comment-13962009
 ] 

Shri Javadekar commented on JCLOUDS-510:


This didn't make it into 1.7.2 because of certain time constraints. It's 
already in master and therefore should make it into 1.8.0.

 Head-of-line blocking problem with DeleteAllKeysInList
 --

 Key: JCLOUDS-510
 URL: https://issues.apache.org/jira/browse/JCLOUDS-510
 Project: jclouds
  Issue Type: Improvement
  Components: jclouds-blobstore
Affects Versions: 1.8.0, 1.7.1
Reporter: Shri Javadekar
Assignee: Shri Javadekar
 Fix For: 1.8.0


 The current implementation of DeleteAllKeysInList suffers from the 
 head-of-line blocking problem. It gets a PageSet of blobs from the container, 
 creates futures for deleting them and waits for the futures to complete 
 before getting the next PageSet. 
 This issue was originally reported by Andrew Gaul [~gaul] [1]
 -Shri
 [1] https://github.com/jclouds/legacy-jclouds/issues/1087



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (JCLOUDS-510) Head-of-line blocking problem with DeleteAllKeysInList

2014-04-07 Thread Shri Javadekar (JIRA)

 [ 
https://issues.apache.org/jira/browse/JCLOUDS-510?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shri Javadekar updated JCLOUDS-510:
---

Fix Version/s: (was: 1.7.2)

 Head-of-line blocking problem with DeleteAllKeysInList
 --

 Key: JCLOUDS-510
 URL: https://issues.apache.org/jira/browse/JCLOUDS-510
 Project: jclouds
  Issue Type: Improvement
  Components: jclouds-blobstore
Affects Versions: 1.8.0, 1.7.1
Reporter: Shri Javadekar
Assignee: Shri Javadekar
 Fix For: 1.8.0


 The current implementation of DeleteAllKeysInList suffers from the 
 head-of-line blocking problem. It gets a PageSet of blobs from the container, 
 creates futures for deleting them and waits for the futures to complete 
 before getting the next PageSet. 
 This issue was originally reported by Andrew Gaul [~gaul] [1]
 -Shri
 [1] https://github.com/jclouds/legacy-jclouds/issues/1087



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (JCLOUDS-589) Port fix for JCLOUDS-178 to non-keystone-v2.0 auth implementations

2014-06-09 Thread Shri Javadekar (JIRA)
Shri Javadekar created JCLOUDS-589:
--

 Summary: Port fix for JCLOUDS-178 to non-keystone-v2.0 auth 
implementations
 Key: JCLOUDS-589
 URL: https://issues.apache.org/jira/browse/JCLOUDS-589
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-blobstore
Affects Versions: 1.7.3
Reporter: Shri Javadekar
 Fix For: 1.8.0


As part of fixing JCLOUDS-178 [1], jclouds added a mechanism for 
re-authenticating when it got back a 401 Unauthorized response. However, this 
fix only went into the Keystone v2.0 implementation. The problem still exists 
in the Keystone v1.1 and non-keystone auth implementations.

This bug should track the porting of that fix to the keystone v1.1 and 
non-keystone auth implementations.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (JCLOUDS-590) Port fix for JCLOUDS-178 to non-keystone-v2.0 auth implementations

2014-06-09 Thread Shri Javadekar (JIRA)
Shri Javadekar created JCLOUDS-590:
--

 Summary: Port fix for JCLOUDS-178 to non-keystone-v2.0 auth 
implementations
 Key: JCLOUDS-590
 URL: https://issues.apache.org/jira/browse/JCLOUDS-590
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-blobstore
Affects Versions: 1.7.3
Reporter: Shri Javadekar
 Fix For: 1.8.0


As part of fixing JCLOUDS-178 [1], jclouds added a mechanism for 
re-authenticating when it got back a 401 Unauthorized response. However, this 
fix only went into the Keystone v2.0 implementation. The problem still exists 
in the Keystone v1.1 and non-keystone auth implementations.

This bug should track the porting of that fix to the keystone v1.1 and 
non-keystone auth implementations.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (JCLOUDS-598) Atmos ParseSystemMetadataFromHeaders parses blob hash incorrectly

2014-06-12 Thread Shri Javadekar (JIRA)

[ 
https://issues.apache.org/jira/browse/JCLOUDS-598?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14030052#comment-14030052
 ] 

Shri Javadekar commented on JCLOUDS-598:


Thanks for filing this Andrew. I'll take a look.

 Atmos ParseSystemMetadataFromHeaders parses blob hash incorrectly
 -

 Key: JCLOUDS-598
 URL: https://issues.apache.org/jira/browse/JCLOUDS-598
 Project: jclouds
  Issue Type: New Feature
  Components: jclouds-blobstore
Affects Versions: 1.7.3
Reporter: Andrew Gaul
Assignee: Shri Javadekar
Priority: Minor

 ParseSystemMetadataFromHeaders incorrectly looks for Content-MD5 instead of 
 x-emc-wschecksum.  Note that the value has has several formats and we should 
 only parse those which have a MD5/0/ prefix.  Fixing this will allow removal 
 of the overridden and disabled checkMD5 methods in 
 AtmosContainerIntegrationLiveTest, AtmosIntegrationLiveTest, and 
 AtmosLiveTest.  See b2016703adbc254347f0093171238b5f36e3fce4 for more context.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (JCLOUDS-628) PROPERTY_MAX_CONNECTIONS_PER_CONTEXT not honored for https connections

2014-07-14 Thread Shri Javadekar (JIRA)
Shri Javadekar created JCLOUDS-628:
--

 Summary: PROPERTY_MAX_CONNECTIONS_PER_CONTEXT not honored for 
https connections
 Key: JCLOUDS-628
 URL: https://issues.apache.org/jira/browse/JCLOUDS-628
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-blobstore
Affects Versions: 1.7.3
Reporter: Shri Javadekar
 Fix For: 1.8.0, 1.7.4


The property PROPERTY_MAX_CONNECTIONS_PER_CONTEXT in jclouds governs how many 
connections are open to an endpoint per blobstore context. This along with 
PROPERTY_MAX_CONNECTION_REUSE makes sure that we don't run out of ports or fds 
on the underlying OS.

I ran a simple test for verifying the PROPERTY_MAX_CONNECTIONS_PER_CONTEXT 
option. I created a container with ~10K blobs. I then used jclouds-cli to clear 
the container.

I explicitly set jclouds.max-connections-per-context to 20. When the endpoint 
was http, things worked just fine.

$ netstat -a | grep blah | grep ESTABL | wc -l
  20
$ netstat -a | grep blah | grep ESTABL | wc -l
  21
$ netstat -a | grep blah | grep ESTABL | wc -l
  20

However, when the endpoint was https, this config option did not seem to be 
honored. The endpoint was https://api.atmosonline.com for the numbers below, 
but I also tried with a local swift endpoint which was https.

$ netstat -a | grep atmos | grep ESTABL | wc -l
 516
$ netstat -a | grep atmos | grep ESTABL | wc -l
 602

I've already run into a situation where we exhausted all the available ports 
and operations such as container-clear or container-delete failed.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (JCLOUDS-628) PROPERTY_MAX_CONNECTIONS_PER_CONTEXT not honored for https connections

2014-07-16 Thread Shri Javadekar (JIRA)

[ 
https://issues.apache.org/jira/browse/JCLOUDS-628?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14064033#comment-14064033
 ] 

Shri Javadekar commented on JCLOUDS-628:


The JavaUrlHttpCommandExecutorService internally uses the 
java.net.HTTPUrlConnection and javax.net.ssl.HttpsURLConnection objects. 
JavaUrlHttpCommandExecutorService correctly sets the http.maxConnections 
system variable when it initializes. But looks like this does not get honored?

Unfortunately, there is no way to find out whether a new HTTPUrlConnection 
object is internally using the same port as any other HTTPUrlConnection object. 
So the only way I could test is to create several connections to some https 
endpoint and separately use netstat -a to find out the open connections.

I created a simple unit test [1] in 
BaseHttpCommandExecutorServiceIntegrationTest that created thousands of such 
http connections to a MockWebServer. It did show that the number of opened 
connections far exceeds 
PROPERTY_MAX_CONNECTIONS_PER_CONTEXT.

However, I still don't know the root cause of this problem.

One problem I found that looked suspicious was that in 
BaseHttpCommandExecutoreService.invoke(), the nativeRequest gets set to null in 
the try block. As a result when the finally block calls cleanup(), 
nativeRequest is null and therefore does not get disconnected. I fixed that and 
retried my test. But that does not seem to fix the problem.

Also, when the InputStream from the URLConnection gets closed, IOExceptions if 
any are swallowed. I changed that too such that they don't get swallowed. 
However, this didn't provide any new information.

I didn't find any documentation about this being a know problem with 
javax.net.ssl.HttpsURLConnection.

[1] https://gist.github.com/shrinandj/be84c912eb3a0a6024b1

 PROPERTY_MAX_CONNECTIONS_PER_CONTEXT not honored for https connections
 --

 Key: JCLOUDS-628
 URL: https://issues.apache.org/jira/browse/JCLOUDS-628
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-blobstore
Affects Versions: 1.7.3
Reporter: Shri Javadekar
Assignee: Shri Javadekar
 Fix For: 1.8.0, 1.7.4


 The property PROPERTY_MAX_CONNECTIONS_PER_CONTEXT in jclouds governs how many 
 connections are open to an endpoint per blobstore context. This along with 
 PROPERTY_MAX_CONNECTION_REUSE makes sure that we don't run out of ports or 
 fds on the underlying OS.
 I ran a simple test for verifying the PROPERTY_MAX_CONNECTIONS_PER_CONTEXT 
 option. I created a container with ~10K blobs. I then used jclouds-cli to 
 clear the container.
 I explicitly set jclouds.max-connections-per-context to 20. When the endpoint 
 was http, things worked just fine.
 $ netstat -a | grep blah | grep ESTABL | wc -l
   20
 $ netstat -a | grep blah | grep ESTABL | wc -l
   21
 $ netstat -a | grep blah | grep ESTABL | wc -l
   20
 However, when the endpoint was https, this config option did not seem to be 
 honored. The endpoint was https://api.atmosonline.com for the numbers below, 
 but I also tried with a local swift endpoint which was https.
 $ netstat -a | grep atmos | grep ESTABL | wc -l
  516
 $ netstat -a | grep atmos | grep ESTABL | wc -l
  602
 I've already run into a situation where we exhausted all the available ports 
 and operations such as container-clear or container-delete failed.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Comment Edited] (JCLOUDS-628) PROPERTY_MAX_CONNECTIONS_PER_CONTEXT not honored for https connections

2014-07-21 Thread Shri Javadekar (JIRA)

[ 
https://issues.apache.org/jira/browse/JCLOUDS-628?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14064033#comment-14064033
 ] 

Shri Javadekar edited comment on JCLOUDS-628 at 7/21/14 5:56 PM:
-

The JavaUrlHttpCommandExecutorService internally uses the 
java.net.HTTPUrlConnection and javax.net.ssl.HttpsURLConnection objects. 
JavaUrlHttpCommandExecutorService correctly sets the http.maxConnections 
system variable when it initializes. But looks like this does not get honored?

Unfortunately, there is no way to find out whether a new HTTPUrlConnection 
object is internally using the same port as any other HTTPUrlConnection object. 
So the only way I could test is to create several connections to some https 
endpoint and separately use netstat -a to find out the open connections.

I created a simple unit test [1] in 
BaseHttpCommandExecutorServiceIntegrationTest that created thousands of such 
http connections to a MockWebServer. It did show that the number of opened 
connections far exceeds 
PROPERTY_MAX_CONNECTIONS_PER_CONTEXT.

However, I still don't know the root cause of this problem.

One problem I found that looked suspicious was that in 
BaseHttpCommandExecutoreService.invoke(), the nativeRequest gets set to null in 
the try block. As a result when the finally block calls cleanup(), 
nativeRequest is null and therefore does not get disconnected. I fixed that and 
retried my test. But that does not seem to fix the problem.

Also, when the InputStream from the URLConnection gets closed, IOExceptions if 
any are swallowed. I changed that too such that they don't get swallowed. 
However, this didn't provide any new information.

I didn't find any documentation about this being a known problem with 
javax.net.ssl.HttpsURLConnection.

[1] https://gist.github.com/shrinandj/be84c912eb3a0a6024b1


was (Author: shrinand):
The JavaUrlHttpCommandExecutorService internally uses the 
java.net.HTTPUrlConnection and javax.net.ssl.HttpsURLConnection objects. 
JavaUrlHttpCommandExecutorService correctly sets the http.maxConnections 
system variable when it initializes. But looks like this does not get honored?

Unfortunately, there is no way to find out whether a new HTTPUrlConnection 
object is internally using the same port as any other HTTPUrlConnection object. 
So the only way I could test is to create several connections to some https 
endpoint and separately use netstat -a to find out the open connections.

I created a simple unit test [1] in 
BaseHttpCommandExecutorServiceIntegrationTest that created thousands of such 
http connections to a MockWebServer. It did show that the number of opened 
connections far exceeds 
PROPERTY_MAX_CONNECTIONS_PER_CONTEXT.

However, I still don't know the root cause of this problem.

One problem I found that looked suspicious was that in 
BaseHttpCommandExecutoreService.invoke(), the nativeRequest gets set to null in 
the try block. As a result when the finally block calls cleanup(), 
nativeRequest is null and therefore does not get disconnected. I fixed that and 
retried my test. But that does not seem to fix the problem.

Also, when the InputStream from the URLConnection gets closed, IOExceptions if 
any are swallowed. I changed that too such that they don't get swallowed. 
However, this didn't provide any new information.

I didn't find any documentation about this being a know problem with 
javax.net.ssl.HttpsURLConnection.

[1] https://gist.github.com/shrinandj/be84c912eb3a0a6024b1

 PROPERTY_MAX_CONNECTIONS_PER_CONTEXT not honored for https connections
 --

 Key: JCLOUDS-628
 URL: https://issues.apache.org/jira/browse/JCLOUDS-628
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-blobstore
Affects Versions: 1.7.3
Reporter: Shri Javadekar
Assignee: Shri Javadekar
 Fix For: 1.8.0


 The property PROPERTY_MAX_CONNECTIONS_PER_CONTEXT in jclouds governs how many 
 connections are open to an endpoint per blobstore context. This along with 
 PROPERTY_MAX_CONNECTION_REUSE makes sure that we don't run out of ports or 
 fds on the underlying OS.
 I ran a simple test for verifying the PROPERTY_MAX_CONNECTIONS_PER_CONTEXT 
 option. I created a container with ~10K blobs. I then used jclouds-cli to 
 clear the container.
 I explicitly set jclouds.max-connections-per-context to 20. When the endpoint 
 was http, things worked just fine.
 $ netstat -a | grep blah | grep ESTABL | wc -l
   20
 $ netstat -a | grep blah | grep ESTABL | wc -l
   21
 $ netstat -a | grep blah | grep ESTABL | wc -l
   20
 However, when the endpoint was https, this config option did not seem to be 
 honored. The endpoint was https://api.atmosonline.com for the numbers below, 
 but I also tried with a local swift endpoint

[jira] [Commented] (JCLOUDS-635) Incorrect error codes when writing a blob to a non existent container for swift based object stores.

2014-07-23 Thread Shri Javadekar (JIRA)

[ 
https://issues.apache.org/jira/browse/JCLOUDS-635?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14072121#comment-14072121
 ] 

Shri Javadekar commented on JCLOUDS-635:


Pull request out for review: https://github.com/jclouds/jclouds-karaf/pull/50

 Incorrect error codes when writing a blob to a non existent container for 
 swift based object stores.
 

 Key: JCLOUDS-635
 URL: https://issues.apache.org/jira/browse/JCLOUDS-635
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-blobstore
Affects Versions: 1.7.2
 Environment: Ubuntu 12.04
Reporter: Deepak Bobbarjung
Assignee: Shri Javadekar
 Fix For: 1.8.0


 Writing a blob to non existent container in an AWS objectstore fails with a 
 Container not found error and a status code of 2. However writing  a blob 
 to a non existent container in a swift based objectstore (we tried both 
 generic swift and rackspace) results in a  IO error: Server rejected 
 operation and a status code of 5. 
 pre
 user@ubuntu-host:/opt/some/directory$ 
 /opt/some/directory/jclouds-cli/bin/jclouds blobstore write 
 --provider=swift-keystone --identity=redacted --credential=redacted 
 --endpoint=http://swift-endpoint non-existent-container some-key 
 /tmp/some-file
 shell: JAVA_HOME not set; results may vary
 log4j:ERROR setFile(null,true) call failed.
 java.io.FileNotFoundException: /var/log/jclouds.log (Permission denied)
 ...
 ..
 IO error: Server rejected operation
 user@ubuntu-host:/opt/some/directory$ echo $?
 5
 user@ubuntu-host:/opt/some/direcoty$ 
 /opt/some/directory/jclouds-cli/bin/jclouds blobstore write --provider=aws-s3 
 --identity=redacted --credential=redacted non-existent-container 
 somekey /tmp/somefile
 shell: JAVA_HOME not set; results may vary
 log4j:ERROR setFile(null,true) call failed.
 java.io.FileNotFoundException: /var/log/jclouds.log (Permission denied)
 at java.io.FileOutputStream.open(Native Method)
 
 at org.jclouds.cli.runner.Main.main(Main.java:111)
 Container not found: non-existent-container.s3.amazonaws.com not found: The 
 specified bucket does not exist
 user@ubuntu-host:/opt/some/directory$ echo $?
 2
 /pre
 This makes it hard to programmatically catch the container not found error 
 and create containers only if the container does not exist without hacky 
 workarounds.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (JCLOUDS-641) rackspace-cloudfiles-us integration tests fail

2014-07-28 Thread Shri Javadekar (JIRA)

[ 
https://issues.apache.org/jira/browse/JCLOUDS-641?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14076525#comment-14076525
 ] 

Shri Javadekar commented on JCLOUDS-641:


We've running nightly tests using the RegionScopedBlobStoreContext for a few 
days now. Haven't run into problems involving the new openstack-swift provider. 
Thanks for checking in though.

 rackspace-cloudfiles-us integration tests fail
 --

 Key: JCLOUDS-641
 URL: https://issues.apache.org/jira/browse/JCLOUDS-641
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-labs-openstack
Affects Versions: 1.8.0
Reporter: Andrew Gaul
Assignee: Jeremy Daggett
  Labels: swift

 {noformat}
 $ mvn integration-test -pl :rackspace-cloudfiles-us -Plive  
 -Dtest.rackspace-cloudfiles-us.identity=${JCLOUDS_IDENTITY}  
 -Dtest.rackspace-cloudfiles-us.credential=${JCLOUDS_CREDENTIAL}
 ...
 Failed tests:
   
 CloudFilesUSBlobIntegrationLiveTestBaseBlobIntegrationTest.testGetRange:373 
 » NullPointer
   
 CloudFilesUSBlobIntegrationLiveTestBaseBlobIntegrationTest.deleteObject:440-BaseBlobIntegrationTest.assertContainerEmptyDeleting:456
  deleting qu?stion, we still have 1 blobs left in container gaul-blobstore0, 
 using encoding UTF-8 expected [0] but found [1]
   
 CloudFilesUSBlobIntegrationLiveTestBaseBlobIntegrationTest.testMetadata:605-BaseBlobIntegrationTest.validateMetadata:621
  » NullPointer
   
 CloudFilesUSBlobIntegrationLiveTestBaseBlobIntegrationTest.deleteObject:440-BaseBlobIntegrationTest.assertContainerEmptyDeleting:456
  deleting path/foo, we still have 1 blobs left in container gaul-blobstore2, 
 using encoding UTF-8 expected [0] but found [1]
   
 CloudFilesUSBlobIntegrationLiveTestBaseBlobIntegrationTest.testGetIfModifiedSince:213-BaseBlobIntegrationTest.addObjectAndValidateContent:398-BaseBlobStoreIntegrationTest.validateContent:293
  null
   
 CloudFilesUSBlobIntegrationLiveTestBaseBlobIntegrationTest.testGetIfNoneMatch:348-BaseBlobStoreIntegrationTest.validateContent:293
  null
   
 CloudFilesUSBlobIntegrationLiveTestBaseBlobIntegrationTest.testPutObjectStream:516
  » HttpResponse
   
 CloudFilesUSContainerIntegrationLiveTestBaseContainerIntegrationTest.deleteContainerIfEmptyWithContents:301
  » IllegalState
   
 CloudFilesUSBlobIntegrationLiveTestBaseBlobIntegrationTest.deleteObject:438-BaseBlobStoreIntegrationTest.addBlobToContainer:269-BaseBlobStoreIntegrationTest.addBlobToContainer:281
  » HttpResponse
   
 CloudFilesUSBlobIntegrationLiveTestBaseBlobIntegrationTest.deleteObject:440-BaseBlobIntegrationTest.assertContainerEmptyDeleting:456
  deleting p|pe, we still have 3 blobs left in container gaul-blobstore5, 
 using encoding UTF-8 expected [0] but found [3]
   
 CloudFilesUSBlobSignerLiveTestBaseBlobSignerLiveTest.testSignGetUrlWithTime:92
  » Authorization
   
 CloudFilesUSBlobSignerLiveTestBaseBlobSignerLiveTest.testSignPutUrlWithTime:140
  » Authorization
   
 CloudFilesUSContainerIntegrationLiveTestBaseContainerIntegrationTest.testDirectory:206
  []
   
 CloudFilesUSContainerIntegrationLiveTestBaseContainerIntegrationTest.testListContainerPrefix:241
  expected [10] but found [0]
   
 CloudFilesUSContainerIntegrationLiveTestBaseContainerIntegrationTest.testListContainerMarker:119-BaseContainerIntegrationTest.addAlphabetUnderRoot:340-BaseContainerIntegrationTest.assertContainerSize:345-BaseBlobStoreIntegrationTest.assertConsistencyAware:248-BaseBlobStoreIntegrationTest.assertConsistencyAware:235
  expected [26] but found [19]
   
 CloudFilesUSContainerIntegrationLiveTestBaseContainerIntegrationTest.testListContainerMaxResults:252-BaseContainerIntegrationTest.addAlphabetUnderRoot:340-BaseContainerIntegrationTest.assertContainerSize:345-BaseBlobStoreIntegrationTest.assertConsistencyAware:248-BaseBlobStoreIntegrationTest.assertConsistencyAware:235
  expected [26] but found [0]
   
 CloudFilesUSContainerIntegrationLiveTestSwiftContainerIntegrationLiveTest.testListRootUsesDelimiter:50
  expected [16] but found [13] expected [true] but found [false]
 Tests run: 55, Failures: 17, Errors: 0, Skipped: 6
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (JCLOUDS-645) Incorrect endpoint url chosen for default region of HPCloud Object Storage

2014-07-31 Thread Shri Javadekar (JIRA)
Shri Javadekar created JCLOUDS-645:
--

 Summary: Incorrect endpoint url chosen for default region of 
HPCloud Object Storage
 Key: JCLOUDS-645
 URL: https://issues.apache.org/jira/browse/JCLOUDS-645
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-blobstore
Affects Versions: 1.8.0
Reporter: Shri Javadekar
 Fix For: 1.8.0


JClouds seems to be choosing the wrong endpoint from the service catalog 
returned by HPCloud Object Storage.

From what I see there are two endpoints returned in the Object Storage part of 
the service catalog.

D 07-31 13:21:22.122 pool-1-thread-1 jclouds.wire:59 |::]
publicURL: 
https:\/\/region-a.geo-1.objects.hpcloudsvc.com\/v1\/53176293441764,[\n]

D 07-31 13:21:22.124 pool-1-thread-1 jclouds.wire:59 |::]
publicURL: 
https:\/\/region-b.geo-1.objects.hpcloudsvc.com\/v1\/53176293441764,[\n]

I do not have any region configured.

With 1.7.3, the first url was getting used and my tests were succeeding. 
However, with 1.8.0 the second url get's chosen and my tests failed with a 404 
Not Found error.

See this for more details: http://pastie.org/private/yzxbnvxwidajalcucwflwa



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (JCLOUDS-645) Incorrect endpoint url chosen for default region of HPCloud Object Storage

2014-07-31 Thread Shri Javadekar (JIRA)

[ 
https://issues.apache.org/jira/browse/JCLOUDS-645?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14081528#comment-14081528
 ] 

Shri Javadekar commented on JCLOUDS-645:


HPCloudObjectStorageEndpointModule does this:

code class=java
   private static SupplierURI getUriSupplier(String serviceType, String 
apiVersion,  RegionIdToURISupplier.Factory factory, String region) {
  SupplierMapString, SupplierURI endpointsSupplier = 
factory.createForApiTypeAndVersion(serviceType, apiVersion);

  if (region.isEmpty()) {
 return getLastValueInMap(endpointsSupplier); 
- Shouldn't this get the first value in the map?
  } else {
 return getValueInMapOrNull(endpointsSupplier, region);
  }
   }
/code

 Incorrect endpoint url chosen for default region of HPCloud Object Storage
 --

 Key: JCLOUDS-645
 URL: https://issues.apache.org/jira/browse/JCLOUDS-645
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-blobstore
Affects Versions: 1.8.0
Reporter: Shri Javadekar
Assignee: Chris Custine
 Fix For: 1.8.0


 JClouds seems to be choosing the wrong endpoint from the service catalog 
 returned by HPCloud Object Storage.
 From what I see there are two endpoints returned in the Object Storage part 
 of the service catalog.
 D 07-31 13:21:22.122 pool-1-thread-1 jclouds.wire:59 |::]
 publicURL: 
 https:\/\/region-a.geo-1.objects.hpcloudsvc.com\/v1\/53176293441764,[\n]
 D 07-31 13:21:22.124 pool-1-thread-1 jclouds.wire:59 |::]
 publicURL: 
 https:\/\/region-b.geo-1.objects.hpcloudsvc.com\/v1\/53176293441764,[\n]
 I do not have any region configured.
 With 1.7.3, the first url was getting used and my tests were succeeding. 
 However, with 1.8.0 the second url get's chosen and my tests failed with a 
 404 Not Found error.
 See this for more details: http://pastie.org/private/yzxbnvxwidajalcucwflwa



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Comment Edited] (JCLOUDS-645) Incorrect endpoint url chosen for default region of HPCloud Object Storage

2014-07-31 Thread Shri Javadekar (JIRA)

[ 
https://issues.apache.org/jira/browse/JCLOUDS-645?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14081528#comment-14081528
 ] 

Shri Javadekar edited comment on JCLOUDS-645 at 7/31/14 9:42 PM:
-

HPCloudObjectStorageEndpointModule does this:

   private static SupplierURI getUriSupplier(String serviceType, String 
apiVersion,  RegionIdToURISupplier.Factory factory, String region) {
  SupplierMapString, SupplierURI endpointsSupplier = 
factory.createForApiTypeAndVersion(serviceType, apiVersion);

  if (region.isEmpty()) {
 return getLastValueInMap(endpointsSupplier); 
- Shouldn't this get the first value in the map?
  } else {
 return getValueInMapOrNull(endpointsSupplier, region);
  }
   }


was (Author: shrinand):
HPCloudObjectStorageEndpointModule does this:

code class=java
   private static SupplierURI getUriSupplier(String serviceType, String 
apiVersion,  RegionIdToURISupplier.Factory factory, String region) {
  SupplierMapString, SupplierURI endpointsSupplier = 
factory.createForApiTypeAndVersion(serviceType, apiVersion);

  if (region.isEmpty()) {
 return getLastValueInMap(endpointsSupplier); 
- Shouldn't this get the first value in the map?
  } else {
 return getValueInMapOrNull(endpointsSupplier, region);
  }
   }
/code

 Incorrect endpoint url chosen for default region of HPCloud Object Storage
 --

 Key: JCLOUDS-645
 URL: https://issues.apache.org/jira/browse/JCLOUDS-645
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-blobstore
Affects Versions: 1.8.0
Reporter: Shri Javadekar
Assignee: Chris Custine
 Fix For: 1.8.0


 JClouds seems to be choosing the wrong endpoint from the service catalog 
 returned by HPCloud Object Storage.
 From what I see there are two endpoints returned in the Object Storage part 
 of the service catalog.
 D 07-31 13:21:22.122 pool-1-thread-1 jclouds.wire:59 |::]
 publicURL: 
 https:\/\/region-a.geo-1.objects.hpcloudsvc.com\/v1\/53176293441764,[\n]
 D 07-31 13:21:22.124 pool-1-thread-1 jclouds.wire:59 |::]
 publicURL: 
 https:\/\/region-b.geo-1.objects.hpcloudsvc.com\/v1\/53176293441764,[\n]
 I do not have any region configured.
 With 1.7.3, the first url was getting used and my tests were succeeding. 
 However, with 1.8.0 the second url get's chosen and my tests failed with a 
 404 Not Found error.
 See this for more details: http://pastie.org/private/yzxbnvxwidajalcucwflwa



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (JCLOUDS-645) Incorrect endpoint url chosen for default region of HPCloud Object Storage

2014-07-31 Thread Shri Javadekar (JIRA)

[ 
https://issues.apache.org/jira/browse/JCLOUDS-645?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14081567#comment-14081567
 ] 

Shri Javadekar commented on JCLOUDS-645:


Apparently not! KeystoneStorageEndpointModule does the same as above.

 //Pick the matching region name (if any) otherwise just return an 
arbitrary URL if no region name is set
 //NOTE: The region string should never be null (it can be empty) if 
this object was instantiated via guice
 //  as it pulls these named strings from a Properties object.
 if (region.isEmpty()) {
return getLastValueInMap(endpointsSupplier);
 } else {
return getValueInMapOrNull(endpointsSupplier, region);
 }

 Incorrect endpoint url chosen for default region of HPCloud Object Storage
 --

 Key: JCLOUDS-645
 URL: https://issues.apache.org/jira/browse/JCLOUDS-645
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-blobstore
Affects Versions: 1.8.0
Reporter: Shri Javadekar
Assignee: Chris Custine
 Fix For: 1.8.0


 JClouds seems to be choosing the wrong endpoint from the service catalog 
 returned by HPCloud Object Storage.
 From what I see there are two endpoints returned in the Object Storage part 
 of the service catalog.
 D 07-31 13:21:22.122 pool-1-thread-1 jclouds.wire:59 |::]
 publicURL: 
 https:\/\/region-a.geo-1.objects.hpcloudsvc.com\/v1\/53176293441764,[\n]
 D 07-31 13:21:22.124 pool-1-thread-1 jclouds.wire:59 |::]
 publicURL: 
 https:\/\/region-b.geo-1.objects.hpcloudsvc.com\/v1\/53176293441764,[\n]
 I do not have any region configured.
 With 1.7.3, the first url was getting used and my tests were succeeding. 
 However, with 1.8.0 the second url get's chosen and my tests failed with a 
 404 Not Found error.
 See this for more details: http://pastie.org/private/yzxbnvxwidajalcucwflwa



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (JCLOUDS-645) Incorrect endpoint url chosen for default region of HPCloud Object Storage

2014-07-31 Thread Shri Javadekar (JIRA)

[ 
https://issues.apache.org/jira/browse/JCLOUDS-645?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14081773#comment-14081773
 ] 

Shri Javadekar commented on JCLOUDS-645:


One difference that I find between jclouds 1.7.x and jclouds 1.8.0 is that when 
LocationIdToURIFromAccessForTypeAndVersion.get() is invoked, in jclouds 1.7.0, 
the apiVersion is set to 1.0 whereas in jclouds 1.8.0, the apiVersion is 
null. In the service catalog returned by HPCloud the version  for region-a is 
1.0, region-b is 1. That explains why region-a is selected in jclouds-1.7.x.

The problem now is to identify why jclouds-1.8.0 does not have the version set 
to 1.0.

 Incorrect endpoint url chosen for default region of HPCloud Object Storage
 --

 Key: JCLOUDS-645
 URL: https://issues.apache.org/jira/browse/JCLOUDS-645
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-blobstore
Affects Versions: 1.8.0
Reporter: Shri Javadekar
Assignee: Chris Custine
 Fix For: 1.8.0


 JClouds seems to be choosing the wrong endpoint from the service catalog 
 returned by HPCloud Object Storage.
 From what I see there are two endpoints returned in the Object Storage part 
 of the service catalog.
 D 07-31 13:21:22.122 pool-1-thread-1 jclouds.wire:59 |::]
 publicURL: 
 https:\/\/region-a.geo-1.objects.hpcloudsvc.com\/v1\/53176293441764,[\n]
 D 07-31 13:21:22.124 pool-1-thread-1 jclouds.wire:59 |::]
 publicURL: 
 https:\/\/region-b.geo-1.objects.hpcloudsvc.com\/v1\/53176293441764,[\n]
 I do not have any region configured.
 With 1.7.3, the first url was getting used and my tests were succeeding. 
 However, with 1.8.0 the second url get's chosen and my tests failed with a 
 404 Not Found error.
 See this for more details: http://pastie.org/private/yzxbnvxwidajalcucwflwa



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (JCLOUDS-645) Incorrect endpoint url chosen for default region of HPCloud Object Storage

2014-07-31 Thread Shri Javadekar (JIRA)

[ 
https://issues.apache.org/jira/browse/JCLOUDS-645?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14081941#comment-14081941
 ] 

Shri Javadekar commented on JCLOUDS-645:


Do you know what commit changed the default apiVersion from 1.0 to null? Also, 
do we know what are the other repercussions of this change? What happens if I 
set the region as region-a.geo-1 but set the api version to 1 (and not 
1.0)?

Would smiply explicitly setting the apiVersion to 1.0 be a workaround? I 
tried doing that but don't see any change in the behavior. region-b continues 
to get selected instead of region-a.

The behavior of the system may not have been explicitly defined earlier and I 
agree downstream code ideally should not depend on this. However, changing the 
behavior of the system without prior notice and adequate time for action 
doesn't seem like the best approach to me.

 Incorrect endpoint url chosen for default region of HPCloud Object Storage
 --

 Key: JCLOUDS-645
 URL: https://issues.apache.org/jira/browse/JCLOUDS-645
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-blobstore
Affects Versions: 1.8.0
Reporter: Shri Javadekar
Assignee: Chris Custine
 Fix For: 1.8.0


 JClouds seems to be choosing the wrong endpoint from the service catalog 
 returned by HPCloud Object Storage.
 From what I see there are two endpoints returned in the Object Storage part 
 of the service catalog.
 D 07-31 13:21:22.122 pool-1-thread-1 jclouds.wire:59 |::]
 publicURL: 
 https:\/\/region-a.geo-1.objects.hpcloudsvc.com\/v1\/53176293441764,[\n]
 D 07-31 13:21:22.124 pool-1-thread-1 jclouds.wire:59 |::]
 publicURL: 
 https:\/\/region-b.geo-1.objects.hpcloudsvc.com\/v1\/53176293441764,[\n]
 I do not have any region configured.
 With 1.7.3, the first url was getting used and my tests were succeeding. 
 However, with 1.8.0 the second url get's chosen and my tests failed with a 
 404 Not Found error.
 See this for more details: http://pastie.org/private/yzxbnvxwidajalcucwflwa



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (JCLOUDS-645) Incorrect endpoint url chosen for default region of HPCloud Object Storage

2014-08-01 Thread Shri Javadekar (JIRA)

[ 
https://issues.apache.org/jira/browse/JCLOUDS-645?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14082626#comment-14082626
 ] 

Shri Javadekar commented on JCLOUDS-645:


I agree with the larger point about arbitrary endpoint resolution. And maybe we 
should make it mandatory for users to specify a region. Would be great if we 
give prior notice about it though. One other way to do this would be to use a 
specific region name as the default rather than first or last index into an 
array.

People have accounts with cloud providers. They may not be concerned about 
where (what region) the data gets stored. If they were concerned about the 
region, they would've already set the region. For the default case, if suddenly 
after an upgrade they stop having access to their data because a different 
region was getting selected would be a bad user experience. Neways, let's have 
this discussion outside of this bug.

To summarize what we have here:

In jclouds 1.7.x, a user was required to set jclouds.region to region-b.geo-1 
*and* set the apiVersion to 1 to work with region-b Ideally one wouldn't have 
to specify the apiVersion but for whatever reason HPCloud Object Storage has 
set the version to 1 instead of 1.0. A user only had to set jclouds.region 
to region-a.geo-1 (no need to set apiVersion) or not specify any region to 
work with region-a. This worked because the default apiVersion was 1.0.

In jclouds 1.8.0, a user can set jclouds.region to region-b.geo-1 to work 
with region-b or region-a.geo-1 to work with region-a. The user never has to 
specify the apiVersion. Not specifying any value for jclouds.region results in 
region-b getting selected. This happens because the apiVersion is null and 
region-b is the last index in the array.

If jclouds.region is null, both the above approaches suffer from a problem. 
jclouds 1.7.x breaks if the Keystone endpoint of HPCloud Object Storage changes 
their service catalog to add another region with apiVersion 1.0. jclouds 
1.8.0 breaks if the Keystone endpoint in HPCloud Object Storage add another 
region to their service catalog.

If we want to continue with what we have, I'll run some tests explicitly 
setting the jclouds.region and jclouds.apiVersion to make sure everything works.

 Incorrect endpoint url chosen for default region of HPCloud Object Storage
 --

 Key: JCLOUDS-645
 URL: https://issues.apache.org/jira/browse/JCLOUDS-645
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-blobstore
Affects Versions: 1.8.0
Reporter: Shri Javadekar
Assignee: Chris Custine
 Fix For: 1.8.0


 JClouds seems to be choosing the wrong endpoint from the service catalog 
 returned by HPCloud Object Storage.
 From what I see there are two endpoints returned in the Object Storage part 
 of the service catalog.
 D 07-31 13:21:22.122 pool-1-thread-1 jclouds.wire:59 |::]
 publicURL: 
 https:\/\/region-a.geo-1.objects.hpcloudsvc.com\/v1\/53176293441764,[\n]
 D 07-31 13:21:22.124 pool-1-thread-1 jclouds.wire:59 |::]
 publicURL: 
 https:\/\/region-b.geo-1.objects.hpcloudsvc.com\/v1\/53176293441764,[\n]
 I do not have any region configured.
 With 1.7.3, the first url was getting used and my tests were succeeding. 
 However, with 1.8.0 the second url get's chosen and my tests failed with a 
 404 Not Found error.
 See this for more details: http://pastie.org/private/yzxbnvxwidajalcucwflwa



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (JCLOUDS-645) Incorrect endpoint url chosen for default region of HPCloud Object Storage

2014-08-01 Thread Shri Javadekar (JIRA)

[ 
https://issues.apache.org/jira/browse/JCLOUDS-645?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14082663#comment-14082663
 ] 

Shri Javadekar commented on JCLOUDS-645:


Unfortunately this is also affects jclouds-cli. We use it as part of some 
scripts that read/write files from blobstores and were not setting the 
jclouds.region environment variable. Now we'll be required to do it. And this 
requirement will only be for HPCloud.

 Incorrect endpoint url chosen for default region of HPCloud Object Storage
 --

 Key: JCLOUDS-645
 URL: https://issues.apache.org/jira/browse/JCLOUDS-645
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-blobstore
Affects Versions: 1.8.0
Reporter: Shri Javadekar
Assignee: Chris Custine
 Fix For: 1.8.0


 JClouds seems to be choosing the wrong endpoint from the service catalog 
 returned by HPCloud Object Storage.
 From what I see there are two endpoints returned in the Object Storage part 
 of the service catalog.
 D 07-31 13:21:22.122 pool-1-thread-1 jclouds.wire:59 |::]
 publicURL: 
 https:\/\/region-a.geo-1.objects.hpcloudsvc.com\/v1\/53176293441764,[\n]
 D 07-31 13:21:22.124 pool-1-thread-1 jclouds.wire:59 |::]
 publicURL: 
 https:\/\/region-b.geo-1.objects.hpcloudsvc.com\/v1\/53176293441764,[\n]
 I do not have any region configured.
 With 1.7.3, the first url was getting used and my tests were succeeding. 
 However, with 1.8.0 the second url get's chosen and my tests failed with a 
 404 Not Found error.
 See this for more details: http://pastie.org/private/yzxbnvxwidajalcucwflwa



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (JCLOUDS-648) putBlob operation does not throw a ContainerNotFoundException against Swift based blobstores

2014-08-04 Thread Shri Javadekar (JIRA)
Shri Javadekar created JCLOUDS-648:
--

 Summary: putBlob operation does not throw a 
ContainerNotFoundException against Swift based blobstores
 Key: JCLOUDS-648
 URL: https://issues.apache.org/jira/browse/JCLOUDS-648
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-blobstore
Affects Versions: 1.7.3
Reporter: Shri Javadekar
 Fix For: 2.0.0


As per the documentation[1], the putBlob method of the BlobStore object should 
return throw a ContainerNotFoundException if the container does not exist. This 
behaves correctly against AWS. However, against Swift and Swift based 
blobstores such CloudFiles-US, I don't see a ContainerNotFoundException being 
thrown. Instead, I see the following HttpResponseException being thrown.

org.jclouds.http.HttpResponseException: Server rejected operation connecting to 
PUT 
https://storage101.dfw1.clouddrive.com/v1/MossoCloudFS_39bd836e-89b7-43d5-9b88-ddd3b0e68353/cloud-testning-5/31bbdae7404d5fb6
 HTTP/1.1
at 
org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:162)
at 
org.jclouds.rest.internal.InvokeSyncToAsyncHttpMethod.invoke(InvokeSyncToAsyncHttpMethod.java:129)
at 
org.jclouds.rest.internal.InvokeSyncToAsyncHttpMethod.apply(InvokeSyncToAsyncHttpMethod.java:95)
at 
org.jclouds.rest.internal.InvokeSyncToAsyncHttpMethod.apply(InvokeSyncToAsyncHttpMethod.java:56)
at 
org.jclouds.rest.internal.DelegatesToInvocationFunction.handle(DelegatesToInvocationFunction.java:156)
at 
org.jclouds.rest.internal.DelegatesToInvocationFunction.invoke(DelegatesToInvocationFunction.java:123)
at com.sun.proxy.$Proxy72.putObject(Unknown Source)
at 
org.jclouds.openstack.swift.blobstore.SwiftBlobStore.putBlob(SwiftBlobStore.java:204)

[1] 
http://jclouds.apache.org/reference/javadoc/1.7.x/org/jclouds/blobstore/BlobStore.html#putBlob(java.lang.String,
 org.jclouds.blobstore.domain.Blob)



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (JCLOUDS-650) getBlob for non-existent containers does not throw a ContainerNotFoundException

2014-08-04 Thread Shri Javadekar (JIRA)
Shri Javadekar created JCLOUDS-650:
--

 Summary: getBlob for non-existent containers does not throw a 
ContainerNotFoundException
 Key: JCLOUDS-650
 URL: https://issues.apache.org/jira/browse/JCLOUDS-650
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-blobstore
Affects Versions: 1.7.3
Reporter: Shri Javadekar
Priority: Minor
 Fix For: 2.0.0


As per the documentation[1], the BlobStore object should throw a 
ContainerNotFoundException if the container does not exist when the getBlob API 
is invoked. However, I see that the call to getBlob silently succeeds when the 
container doesn't exist. I tested this against aws-s3, swift and cloudfiles-us.

[1] 
http://jclouds.apache.org/reference/javadoc/1.7.x/org/jclouds/blobstore/BlobStore.html#getBlob(java.lang.String,
 java.lang.String)



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (JCLOUDS-648) putBlob operation does not throw a ContainerNotFoundException against Swift based blobstores

2014-08-04 Thread Shri Javadekar (JIRA)

[ 
https://issues.apache.org/jira/browse/JCLOUDS-648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14085592#comment-14085592
 ] 

Shri Javadekar commented on JCLOUDS-648:


This is so weird. Sometimes I get a org.jclouds.http.HttpResponseException 
while some other times I get org.jclouds.rest.ResourceNotFoundException: 
org.jclouds.http.HttpResponseException.

 putBlob operation does not throw a ContainerNotFoundException against Swift 
 based blobstores
 

 Key: JCLOUDS-648
 URL: https://issues.apache.org/jira/browse/JCLOUDS-648
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-blobstore
Affects Versions: 1.7.3
Reporter: Shri Javadekar
 Fix For: 2.0.0


 As per the documentation[1], the putBlob method of the BlobStore object 
 should return throw a ContainerNotFoundException if the container does not 
 exist. This behaves correctly against AWS. However, against Swift and Swift 
 based blobstores such CloudFiles-US, I don't see a ContainerNotFoundException 
 being thrown. Instead, I see the following HttpResponseException being thrown.
 org.jclouds.http.HttpResponseException: Server rejected operation connecting 
 to PUT 
 https://storage101.dfw1.clouddrive.com/v1/MossoCloudFS_39bd836e-89b7-43d5-9b88-ddd3b0e68353/cloud-testning-5/31bbdae7404d5fb6
  HTTP/1.1
 at 
 org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:162)
 at 
 org.jclouds.rest.internal.InvokeSyncToAsyncHttpMethod.invoke(InvokeSyncToAsyncHttpMethod.java:129)
 at 
 org.jclouds.rest.internal.InvokeSyncToAsyncHttpMethod.apply(InvokeSyncToAsyncHttpMethod.java:95)
 at 
 org.jclouds.rest.internal.InvokeSyncToAsyncHttpMethod.apply(InvokeSyncToAsyncHttpMethod.java:56)
 at 
 org.jclouds.rest.internal.DelegatesToInvocationFunction.handle(DelegatesToInvocationFunction.java:156)
 at 
 org.jclouds.rest.internal.DelegatesToInvocationFunction.invoke(DelegatesToInvocationFunction.java:123)
 at com.sun.proxy.$Proxy72.putObject(Unknown Source)
 at 
 org.jclouds.openstack.swift.blobstore.SwiftBlobStore.putBlob(SwiftBlobStore.java:204)
 [1] 
 http://jclouds.apache.org/reference/javadoc/1.7.x/org/jclouds/blobstore/BlobStore.html#putBlob(java.lang.String,
  org.jclouds.blobstore.domain.Blob)



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (JCLOUDS-684) Add option to delete containers without deleting objects inside it

2014-08-21 Thread Shri Javadekar (JIRA)
Shri Javadekar created JCLOUDS-684:
--

 Summary: Add option to delete containers without deleting objects 
inside it
 Key: JCLOUDS-684
 URL: https://issues.apache.org/jira/browse/JCLOUDS-684
 Project: jclouds
  Issue Type: New Feature
  Components: jclouds-blobstore
Affects Versions: 1.8.0
Reporter: Shri Javadekar
 Fix For: 2.0.0


Some blobstores such as Microsoft Azure[1] have the ability to delete 
containers even when they are not empty. These object stores simply return 
after marking the containers for deletion and asynchronously delete the blobs 
and container in which the blobs exist.

jclouds should have an option by which calling deleteContainer() should simply 
issue the delete request to the blobstore. It should not internally try and 
delete all the blobs in the container.

[1] http://msdn.microsoft.com/en-us/library/azure/dd179408.aspx



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Reopened] (JCLOUDS-684) Add option to delete containers without deleting objects inside it

2014-08-25 Thread Shri Javadekar (JIRA)

 [ 
https://issues.apache.org/jira/browse/JCLOUDS-684?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shri Javadekar reopened JCLOUDS-684:



Great to know that jclouds already does the right thing for Azure.

However, an option to delete containers without first clearing the container 
will also be useful for other blobstores. Cleversafe is a private object store 
with an S3 API. It supports deleting containers even they are not empty.

 Add option to delete containers without deleting objects inside it
 --

 Key: JCLOUDS-684
 URL: https://issues.apache.org/jira/browse/JCLOUDS-684
 Project: jclouds
  Issue Type: New Feature
  Components: jclouds-blobstore
Affects Versions: 1.8.0
Reporter: Shri Javadekar

 Some blobstores such as Microsoft Azure[1] have the ability to delete 
 containers even when they are not empty. These object stores simply return 
 after marking the containers for deletion and asynchronously delete the blobs 
 and container in which the blobs exist.
 jclouds should have an option by which calling deleteContainer() should 
 simply issue the delete request to the blobstore. It should not internally 
 try and delete all the blobs in the container.
 [1] http://msdn.microsoft.com/en-us/library/azure/dd179408.aspx



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Comment Edited] (JCLOUDS-684) Add option to delete containers without deleting objects inside it

2014-08-25 Thread Shri Javadekar (JIRA)

[ 
https://issues.apache.org/jira/browse/JCLOUDS-684?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14109831#comment-14109831
 ] 

Shri Javadekar edited comment on JCLOUDS-684 at 8/25/14 10:42 PM:
--

Great to know that jclouds already does the right thing for Azure.

However, an option to delete containers without first clearing the container 
will also be useful for other blobstores. Cleversafe is a private object store 
with an S3 API. It supports deleting containers when they are not empty.


was (Author: shrinand):
Great to know that jclouds already does the right thing for Azure.

However, an option to delete containers without first clearing the container 
will also be useful for other blobstores. Cleversafe is a private object store 
with an S3 API. It supports deleting containers even they are not empty.

 Add option to delete containers without deleting objects inside it
 --

 Key: JCLOUDS-684
 URL: https://issues.apache.org/jira/browse/JCLOUDS-684
 Project: jclouds
  Issue Type: New Feature
  Components: jclouds-blobstore
Affects Versions: 1.8.0
Reporter: Shri Javadekar

 Some blobstores such as Microsoft Azure[1] have the ability to delete 
 containers even when they are not empty. These object stores simply return 
 after marking the containers for deletion and asynchronously delete the blobs 
 and container in which the blobs exist.
 jclouds should have an option by which calling deleteContainer() should 
 simply issue the delete request to the blobstore. It should not internally 
 try and delete all the blobs in the container.
 [1] http://msdn.microsoft.com/en-us/library/azure/dd179408.aspx



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (JCLOUDS-712) ETAG Header with tempurls in the 'openstack-swift' provider consistently results in a 503 Service unavailable response

2014-09-09 Thread Shri Javadekar (JIRA)
Shri Javadekar created JCLOUDS-712:
--

 Summary: ETAG Header with tempurls in the 'openstack-swift' 
provider consistently results in a 503 Service unavailable response
 Key: JCLOUDS-712
 URL: https://issues.apache.org/jira/browse/JCLOUDS-712
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-blobstore
Affects Versions: 1.8.0
Reporter: Shri Javadekar
 Fix For: 1.8.1


I am testing the new openstack-swift provider. For testing purposes, I'm using 
Rackspace Cloudfiles US as the Swift blobstore. I set the:

provider= 'openstack-swift'
region='IAD'
endpoint='https://identity.api.rackspacecloud.com/v2.0'

While testing PUTs with tempurls, if the ETAG header representing the MD5 
checksum is absent, things work just fine.

pre
D 09-09 00:34:42.167 main jclouds.headers:56 |::]  PUT 
https://storage101.iad3.clouddrive.com/v1/MossoCloudFS_2eb7963d-0f04-4cad-93e0-2227eab8bd7b/my-bucket/my-blob?temp_url_sig=1f66e0b4baa197c416ed81c44927db6c69c3c2f9temp_url_expires=1410248982
 HTTP/1.1
D 09-09 00:34:42.168 main jclouds.headers:56 |::]  Content-Type: 
application/octet-stream
D 09-09 00:34:42.168 main jclouds.headers:56 |::]  Content-Length: 0
D 09-09 00:34:42.619 main o.j.h.i.JavaUrlHttpCommandExecutorService:56 |::] 
Receiving response -1558734241: HTTP/1.1 201 Created
D 09-09 00:34:42.620 main jclouds.headers:56 |::]  HTTP/1.1 201 Created
/pre

However, if the ETAG header is present, I *always* get a 503 Service 
Unavailable response from Swift.

pre
D 09-09 00:46:19.533 main jclouds.headers:56 |::]  PUT 
https://storage101.iad3.clouddrive.com/v1/MossoCloudFS_2eb7963d-0f04-4cad-93e0-2227eab8bd7b/my-bucket/my-blob?temp_url_sig=6c03d206cee09054be9189e5b40fb30dc6cb54aetemp_url_expires=1410249679
 HTTP/1.1
D 09-09 00:46:19.534 main jclouds.headers:56 |::]  ETag: 
93b885adfe0da089cdf634904fd59f71
D 09-09 00:46:19.534 main jclouds.headers:56 |::]  Content-Type: 
application/octet-stream
D 09-09 00:46:19.534 main jclouds.headers:56 |::]  Content-Length: 0
D 09-09 00:46:19.713 main o.j.h.i.JavaUrlHttpCommandExecutorService:56 |::] 
Receiving response -379684309: HTTP/1.1 503 Service Unavailable
D 09-09 00:46:19.714 main jclouds.headers:56 |::]  HTTP/1.1 503 Service 
Unavailable
D 09-09 00:46:19.714 main jclouds.headers:56 |::]  Date: Tue, 09 Sep 2014 
07:46:19 GMT
/pre

Not sure if this happens only against Rackspace CloudFiles. Haven't tested 
against other Swift blobstores.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (JCLOUDS-712) ETAG Header with tempurls in the 'openstack-swift' provider consistently results in a 503 Service unavailable response

2014-09-09 Thread Shri Javadekar (JIRA)

[ 
https://issues.apache.org/jira/browse/JCLOUDS-712?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14126729#comment-14126729
 ] 

Shri Javadekar commented on JCLOUDS-712:


[~jdaggett] Any ideas?

 ETAG Header with tempurls in the 'openstack-swift' provider consistently 
 results in a 503 Service unavailable response
 --

 Key: JCLOUDS-712
 URL: https://issues.apache.org/jira/browse/JCLOUDS-712
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-blobstore
Affects Versions: 1.8.0
Reporter: Shri Javadekar
 Fix For: 1.8.1


 I am testing the new openstack-swift provider. For testing purposes, I'm 
 using Rackspace Cloudfiles US as the Swift blobstore. I set the:
 provider= 'openstack-swift'
 region='IAD'
 endpoint='https://identity.api.rackspacecloud.com/v2.0'
 While testing PUTs with tempurls, if the ETAG header representing the MD5 
 checksum is absent, things work just fine.
 pre
 D 09-09 00:34:42.167 main jclouds.headers:56 |::]  PUT 
 https://storage101.iad3.clouddrive.com/v1/MossoCloudFS_2eb7963d-0f04-4cad-93e0-2227eab8bd7b/my-bucket/my-blob?temp_url_sig=1f66e0b4baa197c416ed81c44927db6c69c3c2f9temp_url_expires=1410248982
  HTTP/1.1
 D 09-09 00:34:42.168 main jclouds.headers:56 |::]  Content-Type: 
 application/octet-stream
 D 09-09 00:34:42.168 main jclouds.headers:56 |::]  Content-Length: 0
 D 09-09 00:34:42.619 main o.j.h.i.JavaUrlHttpCommandExecutorService:56 |::] 
 Receiving response -1558734241: HTTP/1.1 201 Created
 D 09-09 00:34:42.620 main jclouds.headers:56 |::]  HTTP/1.1 201 Created
 /pre
 However, if the ETAG header is present, I *always* get a 503 Service 
 Unavailable response from Swift.
 pre
 D 09-09 00:46:19.533 main jclouds.headers:56 |::]  PUT 
 https://storage101.iad3.clouddrive.com/v1/MossoCloudFS_2eb7963d-0f04-4cad-93e0-2227eab8bd7b/my-bucket/my-blob?temp_url_sig=6c03d206cee09054be9189e5b40fb30dc6cb54aetemp_url_expires=1410249679
  HTTP/1.1
 D 09-09 00:46:19.534 main jclouds.headers:56 |::]  ETag: 
 93b885adfe0da089cdf634904fd59f71
 D 09-09 00:46:19.534 main jclouds.headers:56 |::]  Content-Type: 
 application/octet-stream
 D 09-09 00:46:19.534 main jclouds.headers:56 |::]  Content-Length: 0
 D 09-09 00:46:19.713 main o.j.h.i.JavaUrlHttpCommandExecutorService:56 |::] 
 Receiving response -379684309: HTTP/1.1 503 Service Unavailable
 D 09-09 00:46:19.714 main jclouds.headers:56 |::]  HTTP/1.1 503 Service 
 Unavailable
 D 09-09 00:46:19.714 main jclouds.headers:56 |::]  Date: Tue, 09 Sep 2014 
 07:46:19 GMT
 /pre
 Not sure if this happens only against Rackspace CloudFiles. Haven't tested 
 against other Swift blobstores.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (JCLOUDS-635) Incorrect error codes when writing a blob to a non existent container for swift based object stores.

2014-09-09 Thread Shri Javadekar (JIRA)

[ 
https://issues.apache.org/jira/browse/JCLOUDS-635?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14127695#comment-14127695
 ] 

Shri Javadekar commented on JCLOUDS-635:


To add to what [~gaul] said, if we explicitly strip the expect header, 
jclouds-cli correctly returns ENOENT (2).

 Incorrect error codes when writing a blob to a non existent container for 
 swift based object stores.
 

 Key: JCLOUDS-635
 URL: https://issues.apache.org/jira/browse/JCLOUDS-635
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-blobstore
Affects Versions: 1.7.2
 Environment: Ubuntu 12.04
Reporter: Deepak Bobbarjung
Assignee: Shri Javadekar
 Fix For: 2.0.0


 Writing a blob to non existent container in an AWS objectstore fails with a 
 Container not found error and a status code of 2. However writing  a blob 
 to a non existent container in a swift based objectstore (we tried both 
 generic swift and rackspace) results in a  IO error: Server rejected 
 operation and a status code of 5. 
 pre
 user@ubuntu-host:/opt/some/directory$ 
 /opt/some/directory/jclouds-cli/bin/jclouds blobstore write 
 --provider=swift-keystone --identity=redacted --credential=redacted 
 --endpoint=http://swift-endpoint non-existent-container some-key 
 /tmp/some-file
 shell: JAVA_HOME not set; results may vary
 log4j:ERROR setFile(null,true) call failed.
 java.io.FileNotFoundException: /var/log/jclouds.log (Permission denied)
 ...
 ..
 IO error: Server rejected operation
 user@ubuntu-host:/opt/some/directory$ echo $?
 5
 user@ubuntu-host:/opt/some/direcoty$ 
 /opt/some/directory/jclouds-cli/bin/jclouds blobstore write --provider=aws-s3 
 --identity=redacted --credential=redacted non-existent-container 
 somekey /tmp/somefile
 shell: JAVA_HOME not set; results may vary
 log4j:ERROR setFile(null,true) call failed.
 java.io.FileNotFoundException: /var/log/jclouds.log (Permission denied)
 at java.io.FileOutputStream.open(Native Method)
 
 at org.jclouds.cli.runner.Main.main(Main.java:111)
 Container not found: non-existent-container.s3.amazonaws.com not found: The 
 specified bucket does not exist
 user@ubuntu-host:/opt/some/directory$ echo $?
 2
 /pre
 This makes it hard to programmatically catch the container not found error 
 and create containers only if the container does not exist without hacky 
 workarounds.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (JCLOUDS-727) openstack-swift provider's BlobRequestSigner.signPutBlob does not set payload and content lenght

2014-09-23 Thread Shri Javadekar (JIRA)
Shri Javadekar created JCLOUDS-727:
--

 Summary: openstack-swift provider's BlobRequestSigner.signPutBlob 
does not set payload and content lenght
 Key: JCLOUDS-727
 URL: https://issues.apache.org/jira/browse/JCLOUDS-727
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-blobstore
Affects Versions: 1.8.0
Reporter: Shri Javadekar
 Fix For: 1.8.1


The BlobRequestSigner.signPutBlob method in the new openstack-swift provider 
does seem to set the payload and content length. Callers have to explicitly set 
these on the returned HttpRequest object.

This is different from at least the swift-keystone provider.

HttpRequest returned by the with the swift-keystone provider:

Signed put request: {method=PUT, 
endpoint=http://10.50.23.43:8080/v1/AUTH_abcd/cloud-testing/erwe?temp_url_sig=6418a27f151ce00e044d798e2908bccd8ba9d3abtemp_url_expires=1411433648,
 headers={Expect=[100-continue], ETag=[9c48f2a4023ba27471a8fa259a000fa4, 
9c48f2a4023ba27471a8fa259a000fa4], Content-Type=[application/octet-stream]}, 
payload=[content=true, contentMetadata=[contentDisposition=null, 
contentEncoding=null, contentLanguage=null, contentLength=null, 
contentMD5=null, contentType=application/unknown, expires=null], written=false]}

HttpRequest returned by the new openstack-swift provider:

Signed put request : {method=PUT, 
endpoint=https://storage101.iad3.clouddrive.com/ 
v1/MossoCloudFS_asd/cloud-testing/sfsdfsd?temp_url_sig=99c9676a1c 
ef33ba408b6e35082a056f11a7d717temp_url_expires=1411454235, headers={}}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Closed] (JCLOUDS-510) Head-of-line blocking problem with DeleteAllKeysInList

2014-10-06 Thread Shri Javadekar (JIRA)

 [ 
https://issues.apache.org/jira/browse/JCLOUDS-510?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shri Javadekar closed JCLOUDS-510.
--
Resolution: Fixed

 Head-of-line blocking problem with DeleteAllKeysInList
 --

 Key: JCLOUDS-510
 URL: https://issues.apache.org/jira/browse/JCLOUDS-510
 Project: jclouds
  Issue Type: Improvement
  Components: jclouds-blobstore
Affects Versions: 1.7.1, 1.8.0
Reporter: Shri Javadekar
Assignee: Shri Javadekar
 Fix For: 1.8.0


 The current implementation of DeleteAllKeysInList suffers from the 
 head-of-line blocking problem. It gets a PageSet of blobs from the container, 
 creates futures for deleting them and waits for the futures to complete 
 before getting the next PageSet. 
 This issue was originally reported by Andrew Gaul [~gaul] [1]
 -Shri
 [1] https://github.com/jclouds/legacy-jclouds/issues/1087



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (JCLOUDS-874) IllegalArgumentException while setting incorrect MD5

2015-03-30 Thread Shri Javadekar (JIRA)

[ 
https://issues.apache.org/jira/browse/JCLOUDS-874?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14387535#comment-14387535
 ] 

Shri Javadekar commented on JCLOUDS-874:


How was this working in jclouds-1.8.1?

 IllegalArgumentException while setting incorrect MD5
 

 Key: JCLOUDS-874
 URL: https://issues.apache.org/jira/browse/JCLOUDS-874
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-blobstore
Affects Versions: 1.9.0
Reporter: Shri Javadekar
Assignee: Andrew Gaul
Priority: Minor

 I had a negative test case that would set the incorrect md5 checksum of a 
 blob. After upgrade to jclouds-1.9.0, this test fails with an 
 IllegalArgumentException with a message that the md5 checksum should be 128 
 bytes long but is 144 bytes.
 Here's the code for the test:
 {code:title=TestIncorrectMD5.java|borderStyle=solid}
 // Create a blob and set the incorrect md5 checksum
 public void testIncorrectMd5() throws Exception {
 {
 String blobName = test;
 ByteSource input = ByteSource.wrap(testdata.getBytes(
 StandardCharsets.UTF_8));
 String fakeHash = fakehash;
 byte[] blobHash = fakeHash.getBytes(Charsets.UTF_16);
 blobStore.blobBuilder(blobName)
 .payload(input)
 .contentLength(input.size())
 .contentMD5(HashCode.fromBytes(blobHash))
 .build();
 }
 {code}
 I wonder if computing of the HashCode has changed. If changed the fakeHash 
 String from fakehash to fakehas, the test worked fine.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


  1   2   >