[GitHub] nacx opened a new pull request #2: PR build test. Do not merge

2019-01-18 Thread GitBox
nacx opened a new pull request #2: PR build test. Do not merge
URL: https://github.com/apache/jclouds-site/pull/2
 
 
   PR build test. Do not merge


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] nacx closed pull request #2: PR build test. Do not merge

2019-01-18 Thread GitBox
nacx closed pull request #2: PR build test. Do not merge
URL: https://github.com/apache/jclouds-site/pull/2
 
 
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[jira] [Commented] (JCLOUDS-1488) Filesystem list call with prefix is slow in large containers

2019-01-18 Thread Andrew Gaul (JIRA)


[ 
https://issues.apache.org/jira/browse/JCLOUDS-1488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16746537#comment-16746537
 ] 

Andrew Gaul commented on JCLOUDS-1488:
--

I agree with your diagnosis and this is a long-standing shortcoming of the 
filesystem provider.  Could you submit a pull request with your proposed 
solution?  See also 
[JCLOUDS-1371|https://issues.apache.org/jira/browse/JCLOUDS-1371].

> Filesystem list call with prefix is slow in large containers
> 
>
> Key: JCLOUDS-1488
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1488
> Project: jclouds
>  Issue Type: Bug
>  Components: jclouds-blobstore
>Affects Versions: 2.1.1
> Environment: Java version: java version "1.8.0_131"
> Operating system: Fedora 27 x86_64
>Reporter: Lari Sinisalo
>Priority: Major
>  Labels: filesystem
> Attachments: JCLOUDS1488.java
>
>
> When the filesystem blobstore is used, running the following code takes very 
> long if there are a lot of files in the container:
> {code:java}
>     ListContainerOptions options = new ListContainerOptions();
>     options.prefix("test-container-subdirectory/");
>     Set results =
>   blobStore.list("test-container",options);
> {code}
> See the attached Java source file [^JCLOUDS1488.java] for the full code.
> On my system, running the attached Java code takes over 10 seconds to list a 
> single file if there are 500,000 files in the container outside that prefix.
> Output from the attached code:
> {code:java}
> Number of blobs listed: 1
> First listed blob: test-container-subdirectory/file-to-list
> Time it took to list the blobs: 13256 ms
> {code}
> A more general version of this problem was reported previously in 
> JCLOUDS-1371.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


Re: [jclouds/jclouds] JCLOUDS-769: streaming putBlob (#1129)

2019-01-18 Thread Ignasi Barrera
Hm, I see where you're going.

The main issue I see with this approach is that a client won't know actually 
when a streaming request has finished, and won't have access to the response 
code, which might be important...
How are we handling streaming requests to endpoints return a redirect (3xx) we 
should follow before posting the content?

Access to the response status is important, and that was one of my reasons to 
suggest the specialized payload approach. My thinking was something like having 
a specialised binding for, say, `Writer` parameters in API methods, and handle 
that at the writer level by blocking until the writer is done, then completing 
the method call and returning following the existing flows and response and 
error handling mechanisms.

Something like:

```java
@Named("PutObject")
@PUT
@Path("/{key}")
@Headers(keys = EXPECT, values = "100-continue")
@ResponseParser(ReturnOutputStream.class)
ETagOutputStream putObjectStreaming(
  @Bucket @EndpointParam(parser = AssignCorrectHostnameForBucket.class) 
@BinderParam(BindAsHostPrefixIfConfigured.class) 
@ParamValidators(BucketNameValidator.class) String bucketName,
  @PathParam("key") @ParamParser(ObjectKey.class) 
@BinderParam(BindS3ObjectMetadataToRequest.class) S3Object object,
  Writer streamingContent,   // This is an object the client controlls that 
should be piped to the request outputstream
  PutObjectOptions... options);
```

Does this make sense?

-- 
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/1129#issuecomment-455596882

Re: [jclouds/jclouds-labs] JCLOUDS-1407 Add dimensiondata server API v2.7 supportServer API 2.7 support (#447)

2019-01-18 Thread Ignasi Barrera
Also please rebase to make sure there are no conflicts.

And apologies for the delay in the review. We've been busy with jclouds 
housekeeping stuff these months.

-- 
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-labs/pull/447#issuecomment-455590418

Re: [jclouds/jclouds-labs] JCLOUDS-1407 Add dimensiondata server API v2.7 supportServer API 2.7 support (#447)

2019-01-18 Thread Ignasi Barrera
nacx approved this pull request.

There are just minor and cosmetic comments. Model looks very good and clean. 
Thanks!
I'll merge the PR as soon as comments are addressed.

> +import java.util.List;
+
+@AutoValue
+public abstract class IdeController {
+
+   public abstract String id();
+
+   public abstract int key();
+
+   public abstract int channel();
+
+   public abstract State state();
+
+   public abstract String adapterType();
+
+   @Nullable

This can never be null as per the builder.

> +import java.util.List;
+
+@AutoValue
+public abstract class SataController {
+
+   public abstract String id();
+
+   public abstract int key();
+
+   public abstract int busNumber();
+
+   public abstract State state();
+
+   public abstract String adapterType();
+
+   @Nullable

Can't be null given the builder.

> +import java.util.List;
+
+@AutoValue
+public abstract class ScsiController {
+
+   public abstract String id();
+
+   public abstract int key();
+
+   public abstract int busNumber();
+
+   public abstract State state();
+
+   public abstract String adapterType();
+
+   @Nullable

Remove.

> +  public abstract Builder key(int key);
+
+  public abstract Builder busNumber(int busNumber);
+
+  public abstract Builder state(State state);
+
+  public abstract Builder adapterType(String adapterType);
+
+  abstract ScsiController autoBuild();
+
+  abstract List disks();
+
+  public abstract Builder disks(List disks);
+
+  public ScsiController build() {
+ disks(disks() != null ? ImmutableList.copyOf(disks()) : new 
ArrayList());

Enforce an immutable list in all cases.

> @@ -60,10 +63,19 @@ public static Builder builder() {
public abstract int memoryGb();
 
@Nullable
-   public abstract List disks();
+   public abstract NetworkInfo networkInfo();
+
+   @Nullable

Remove nullable annotations from all lists that have presence enforced in the 
builder. Apply this pattern in general.

> @@ -61,7 +61,7 @@
 
 @RequestFilters({ BasicAuthentication.class, OrganisationIdFilter.class })
 @Consumes(MediaType.APPLICATION_JSON)
-@Path("/caas/{jclouds.api-version}/server")
+@Path("/caas/2.7/server")

I guess some domain model stuff is preventing us from upgrading all APIs?

-- 
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-labs/pull/447#pullrequestreview-194153973

[GitHub] nacx opened a new pull request #2: PR build test. Do not merge

2019-01-18 Thread GitBox
nacx opened a new pull request #2: PR build test. Do not merge
URL: https://github.com/apache/jclouds-site/pull/2
 
 
   PR build test. Do not merge


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


Re: [jclouds/jclouds-labs] JCLOUDS-1486 - Fix NPE and Remove Nullable osImageKey From OsImage (#453)

2019-01-18 Thread Ignasi Barrera
Thanks @jawnclarke! Merged to master and 2.1.x. Please open further PRs in the 
[apache org repo](https://github.com/apache/jclouds-labs).

-- 
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-labs/pull/453#issuecomment-455582487

Re: [jclouds/jclouds-labs] JCLOUDS-1486 - Fix NPE and Remove Nullable osImageKey From OsImage (#453)

2019-01-18 Thread Ignasi Barrera
Closed #453.

-- 
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-labs/pull/453#event-2083184604

Re: [jclouds/jclouds-labs] JCLOUDS-1486 - Fix NPE and Remove Nullable osImageKey From OsImage (#453)

2019-01-18 Thread Ignasi Barrera
nacx approved this pull request.





-- 
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-labs/pull/453#pullrequestreview-194139976

[jira] [Commented] (JCLOUDS-1428) Support for SAS token based Authentication for Azure Blob Storage

2019-01-18 Thread Ignasi Barrera (JIRA)


[ 
https://issues.apache.org/jira/browse/JCLOUDS-1428?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16746375#comment-16746375
 ] 

Ignasi Barrera commented on JCLOUDS-1428:
-

{quote}
Anyway, I would be really glad someone could invite me to the jclouds slack 
channel, as I have no access to the community. 
{quote}

Done!

> Support for SAS token based Authentication for Azure Blob Storage
> -
>
> Key: JCLOUDS-1428
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1428
> Project: jclouds
>  Issue Type: Improvement
>  Components: jclouds-blobstore
>Reporter: Himanshu Jain
>Priority: Major
>  Labels: azureblob
>
> Hi,
> We have one use case where we want to provide limited access to objects in 
> our storage accounts. We figured that the best way to do  this is by using 
> SAS token based authentication mechanism to upload/download objects to Azure 
> Blob Storage - [SAS based 
> Authentication|https://docs.microsoft.com/en-us/azure/storage/common/storage-dotnet-shared-access-signature-part-1]
> We found that JClouds client library provides support for Azure Blob Storage 
> using account keys which might not fit our use case because of security 
> reasons.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (JCLOUDS-1488) Filesystem list call with prefix is slow in large containers

2019-01-18 Thread Lari Sinisalo (JIRA)
Lari Sinisalo created JCLOUDS-1488:
--

 Summary: Filesystem list call with prefix is slow in large 
containers
 Key: JCLOUDS-1488
 URL: https://issues.apache.org/jira/browse/JCLOUDS-1488
 Project: jclouds
  Issue Type: Bug
  Components: jclouds-blobstore
Affects Versions: 2.1.1
 Environment: Java version: java version "1.8.0_131"
Operating system: Fedora 27 x86_64
Reporter: Lari Sinisalo


When the filesystem blobstore is used, running the following code takes very 
long if there are a lot of files in the container:

{code}
    ListContainerOptions options = new ListContainerOptions();

    options.prefix("test-container-subdirectory/");

    Set results =
  blobStore.list("test-container",options);
{code}

See the attached Java source file for the full code.

On my system, running the attached Java code takes over 10 seconds to list a 
single file if there are 500,000 files in the container outside that prefix.

Output from the attached code:

{code}
Number of blobs listed: 1
First listed blob: test-container-subdirectory/file-to-list
Time it took to list the blobs: 13256 ms
{code}

A more general version of this problem was reported previously in JCLOUDS-1371.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (JCLOUDS-1488) Filesystem list call with prefix is slow in large containers

2019-01-18 Thread Lari Sinisalo (JIRA)


[ 
https://issues.apache.org/jira/browse/JCLOUDS-1488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16746126#comment-16746126
 ] 

Lari Sinisalo commented on JCLOUDS-1488:


In org.jclouds.blobstore.config.LocalBlobStore.list(String, 
ListContainerOptions), there is the following code:

{code}
  // Loading blobs from container
  Iterable blobBelongingToContainer = null;
  try {
 blobBelongingToContainer = 
storageStrategy.getBlobKeysInsideContainer(containerName);
  } catch (IOException e) {
 logger.error(e, "An error occurred loading blobs contained into container 
%s", containerName);
 propagate(e);
  }
{code}

This getBlobKeysInsideContainer lists the keys of all blobs inside the 
container. It takes only the container name as a parameter, so it will always 
ignore the prefix in the ListContainerOptions.

The getBlobKeysInsideContainer implementation in FilesystemStorageStrategyImpl 
is as follows:

{code}
   /**
    * Returns all the blobs key inside a container
    *
    * @param container
    * @return
    * @throws IOException
    */
   @Override
   public Iterable getBlobKeysInsideContainer(String container) throws 
IOException {
  filesystemContainerNameValidator.validate(container);
  // check if container exists
  // TODO maybe an error is more appropriate
  Set blobNames = Sets.newHashSet();
  if (!containerExists(container)) {
 return blobNames;
  }

  File containerFile = openFolder(container);
  final int containerPathLength = containerFile.getAbsolutePath().length() 
+ 1;
  populateBlobKeysInContainer(containerFile, blobNames, new 
Function() {
 @Override
 public String apply(String string) {
    return denormalize(string.substring(containerPathLength));
 }
  });
  return blobNames;
   }
{code}

The openFolder call here opens the container root directory. It seems that if 
this call would receive a subdirectory path instead, the list call would be 
much more efficient.

I am not quite sure what would be the appropriate way to extract the 
subdirectory path from the prefix. This would need to be done in a way that 
does not allow path traversal outside the container root directory. Passing the 
necessary information to getBlobKeysInsideContainer would also require 
interface changes.

> Filesystem list call with prefix is slow in large containers
> 
>
> Key: JCLOUDS-1488
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1488
> Project: jclouds
>  Issue Type: Bug
>  Components: jclouds-blobstore
>Affects Versions: 2.1.1
> Environment: Java version: java version "1.8.0_131"
> Operating system: Fedora 27 x86_64
>Reporter: Lari Sinisalo
>Priority: Major
>  Labels: filesystem
> Attachments: JCLOUDS1488.java
>
>
> When the filesystem blobstore is used, running the following code takes very 
> long if there are a lot of files in the container:
> {code:java}
>     ListContainerOptions options = new ListContainerOptions();
>     options.prefix("test-container-subdirectory/");
>     Set results =
>   blobStore.list("test-container",options);
> {code}
> See the attached Java source file [^JCLOUDS1488.java] for the full code.
> On my system, running the attached Java code takes over 10 seconds to list a 
> single file if there are 500,000 files in the container outside that prefix.
> Output from the attached code:
> {code:java}
> Number of blobs listed: 1
> First listed blob: test-container-subdirectory/file-to-list
> Time it took to list the blobs: 13256 ms
> {code}
> A more general version of this problem was reported previously in 
> JCLOUDS-1371.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (JCLOUDS-1488) Filesystem list call with prefix is slow in large containers

2019-01-18 Thread Lari Sinisalo (JIRA)


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

Lari Sinisalo updated JCLOUDS-1488:
---
Attachment: JCLOUDS1488.java

> Filesystem list call with prefix is slow in large containers
> 
>
> Key: JCLOUDS-1488
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1488
> Project: jclouds
>  Issue Type: Bug
>  Components: jclouds-blobstore
>Affects Versions: 2.1.1
> Environment: Java version: java version "1.8.0_131"
> Operating system: Fedora 27 x86_64
>Reporter: Lari Sinisalo
>Priority: Major
>  Labels: filesystem
> Attachments: JCLOUDS1488.java
>
>
> When the filesystem blobstore is used, running the following code takes very 
> long if there are a lot of files in the container:
> {code}
>     ListContainerOptions options = new ListContainerOptions();
>     options.prefix("test-container-subdirectory/");
>     Set results =
>   blobStore.list("test-container",options);
> {code}
> See the attached Java source file for the full code.
> On my system, running the attached Java code takes over 10 seconds to list a 
> single file if there are 500,000 files in the container outside that prefix.
> Output from the attached code:
> {code}
> Number of blobs listed: 1
> First listed blob: test-container-subdirectory/file-to-list
> Time it took to list the blobs: 13256 ms
> {code}
> A more general version of this problem was reported previously in 
> JCLOUDS-1371.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (JCLOUDS-1488) Filesystem list call with prefix is slow in large containers

2019-01-18 Thread Lari Sinisalo (JIRA)


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

Lari Sinisalo updated JCLOUDS-1488:
---
Description: 
When the filesystem blobstore is used, running the following code takes very 
long if there are a lot of files in the container:
{code:java}
    ListContainerOptions options = new ListContainerOptions();

    options.prefix("test-container-subdirectory/");

    Set results =
  blobStore.list("test-container",options);
{code}
See the attached Java source file [^JCLOUDS1488.java] for the full code.

On my system, running the attached Java code takes over 10 seconds to list a 
single file if there are 500,000 files in the container outside that prefix.

Output from the attached code:
{code:java}
Number of blobs listed: 1
First listed blob: test-container-subdirectory/file-to-list
Time it took to list the blobs: 13256 ms
{code}
A more general version of this problem was reported previously in JCLOUDS-1371.

  was:
When the filesystem blobstore is used, running the following code takes very 
long if there are a lot of files in the container:

{code}
    ListContainerOptions options = new ListContainerOptions();

    options.prefix("test-container-subdirectory/");

    Set results =
  blobStore.list("test-container",options);
{code}

See the attached Java source file for the full code.

On my system, running the attached Java code takes over 10 seconds to list a 
single file if there are 500,000 files in the container outside that prefix.

Output from the attached code:

{code}
Number of blobs listed: 1
First listed blob: test-container-subdirectory/file-to-list
Time it took to list the blobs: 13256 ms
{code}

A more general version of this problem was reported previously in JCLOUDS-1371.


> Filesystem list call with prefix is slow in large containers
> 
>
> Key: JCLOUDS-1488
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1488
> Project: jclouds
>  Issue Type: Bug
>  Components: jclouds-blobstore
>Affects Versions: 2.1.1
> Environment: Java version: java version "1.8.0_131"
> Operating system: Fedora 27 x86_64
>Reporter: Lari Sinisalo
>Priority: Major
>  Labels: filesystem
> Attachments: JCLOUDS1488.java
>
>
> When the filesystem blobstore is used, running the following code takes very 
> long if there are a lot of files in the container:
> {code:java}
>     ListContainerOptions options = new ListContainerOptions();
>     options.prefix("test-container-subdirectory/");
>     Set results =
>   blobStore.list("test-container",options);
> {code}
> See the attached Java source file [^JCLOUDS1488.java] for the full code.
> On my system, running the attached Java code takes over 10 seconds to list a 
> single file if there are 500,000 files in the container outside that prefix.
> Output from the attached code:
> {code:java}
> Number of blobs listed: 1
> First listed blob: test-container-subdirectory/file-to-list
> Time it took to list the blobs: 13256 ms
> {code}
> A more general version of this problem was reported previously in 
> JCLOUDS-1371.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (JCLOUDS-1483) Removing a blob from a Swift container using BlobStore.removeBlob fails.

2019-01-18 Thread Biswa Ranjan Ray (JIRA)


[ 
https://issues.apache.org/jira/browse/JCLOUDS-1483?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16746054#comment-16746054
 ] 

Biswa Ranjan Ray commented on JCLOUDS-1483:
---

_Trial 1:_
 _b. Build failed because of testcase failure at line 117 of 
testReplaceManifestUnicodeUTF8() method in StaticLargeObjectApiMockTest class._

I could able to fix the build issue but I had to set UTF8 encoding in java and 
maven: 
 *set JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8*
 *set MAVEN_OPTS=-Duser.language=en -Dfile.encoding=UTF-8*
 Shouldn't it be handle by pom?

_Trial 2:_
 _c. It still throws the same exception as reported earlier :_
 _com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: 
Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $_
 _This is very strange. Do you run your tests against OpenStack Swift or 
another implementation?_
  
 Putting the steps just to make sure if I'm doing right.
 Step 1. I forked the project from [jclouds|https://github.com/apache/jclouds] 
and cloned into my system.

Step 2. I modified 
[StaticLargeObjectApi|https://github.com/apache/jclouds/blob/master/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/StaticLargeObjectApi.java]
 by replacing the existing code at line at 117 with 
 *@QueryParams(keys = \{"format", "multipart-manifest"}, values = \{"json", 
"delete"})*

Step 3. Then Modified 
[StaticLargeObjectApiMockTest|https://github.com/apache/jclouds/blob/master/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/StaticLargeObjectApiMockTest.java]
 by replacing the existing code at line 230 and 252 with 
 *assertRequest(server.takeRequest(), "DELETE", 
"/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject?format=json=delete");*

Step 4. To ensure if my changes are taken into effect, I added a print stmt in 
removeBlob() method of RegionScopedSwiftBlobStore class to print the container 
name.

Step 5. Triggered a build on 
[openstack-swift|https://github.com/apache/jclouds/tree/master/apis/openstack-swift]
 project and added this to my project pom. Debugged and found the container 
name is printed when attempted to delete a blob.

It still throws: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
 Am I missing anything?

> Removing a blob from a Swift container using BlobStore.removeBlob fails.
> 
>
> Key: JCLOUDS-1483
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1483
> Project: jclouds
>  Issue Type: Bug
>  Components: jclouds-blobstore
>Affects Versions: 2.1.1
>Reporter: Biswa Ranjan Ray
>Priority: Major
>  Labels: openstack-swift
> Attachments: BuildException.txt, NullPointerException.txt, 
> StaticLargeObjectApiMockTest.html, stacktrace.txt
>
>
>  
> *Usecase*: Try to delete a blob (size ~ 107kb) from a swift container using 
> BlobStore.removBlob() api of jclouds.
> *Issue*: Following exception is found in console: 
> com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: 
> *Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $*.
> *Code*: Sharing the code snippet that I've used to delete a blob from a swift 
> container.
> BlobStore blobStore = getBlobStoreContext();              
> blobStore.removeBlob(containerName, fileName);
> {code:java}
> //To get the BlobStoreContext for OpenStack Swift
> private BlobStoreContext getBlobStoreContext() {
>  final Properties override = new Properties();
>  override.put(KeystoneProperties.KEYSTONE_VERSION, "3");
>  override.put(KeystoneProperties.SCOPE, "project:" + 
> swiftConfig.getProject());
>  
>  final String credential = swiftConfig.getPassword();
>  final String identity = swiftConfig.getUserDomain() + ":" + 
> swiftConfig.getUsername();
>  final String authUrl = swiftConfig.getAuthUrl();
>  
>  return ContextBuilder.newBuilder("openstack-swift")
>  .endpoint(authUrl+"/v3")
>  .credentials(identity,credential)
>  .overrides(override)
>  .buildApi(BlobStoreContext.class);
>  }
> {code}
>  *Debug:* Following are my observations after debugging the code.
>  # The type of the blobstore is found to be RegionScopedSwiftBlobStore.
>  # stepinto blobStore.*removeBlob*(containerName, fileName);                  
>                       at line 396 in *RegionScopedSwiftBlobStore* class, I 
> found it expects a response from *StaticLargeObjectApi* as shown in the below 
> code and this is where the exception occurs:                                  
>                    **                                                  
> DeleteStaticLargeObjectResponse response = 
> api.getStaticLargeObjectApi(regionId, container).delete(name); 
> *Analysis*: While the api BlobStore.removeBlob fails to delete a blob in a 
> Swift container, it works fine in AWS 

[jira] [Issue Comment Deleted] (JCLOUDS-1483) Removing a blob from a Swift container using BlobStore.removeBlob fails.

2019-01-18 Thread Biswa Ranjan Ray (JIRA)


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

Biswa Ranjan Ray updated JCLOUDS-1483:
--
Comment: was deleted

(was: I investigated and figured out the build issue I was facing in Trial 1. 
Its utf8 character encoding issue. In the 
StaticLargeObjectApiMockTest.testReplaceManifestUnicodeUTF8 method, the 
expected and actual json doesn't match because the expected json expects a 
string i.e *unic₪de* which doesn't match with the actual i.e *unic₪de*. 
My OS is windows 10. Although its a trivial issue I'm trying to fix it setting 
maven to UTF8.

But the actual issue w.r.t delete() method in StaticLargeObjectApi is still a 
concern.)

> Removing a blob from a Swift container using BlobStore.removeBlob fails.
> 
>
> Key: JCLOUDS-1483
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1483
> Project: jclouds
>  Issue Type: Bug
>  Components: jclouds-blobstore
>Affects Versions: 2.1.1
>Reporter: Biswa Ranjan Ray
>Priority: Major
>  Labels: openstack-swift
> Attachments: BuildException.txt, NullPointerException.txt, 
> StaticLargeObjectApiMockTest.html, stacktrace.txt
>
>
>  
> *Usecase*: Try to delete a blob (size ~ 107kb) from a swift container using 
> BlobStore.removBlob() api of jclouds.
> *Issue*: Following exception is found in console: 
> com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: 
> *Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $*.
> *Code*: Sharing the code snippet that I've used to delete a blob from a swift 
> container.
> BlobStore blobStore = getBlobStoreContext();              
> blobStore.removeBlob(containerName, fileName);
> {code:java}
> //To get the BlobStoreContext for OpenStack Swift
> private BlobStoreContext getBlobStoreContext() {
>  final Properties override = new Properties();
>  override.put(KeystoneProperties.KEYSTONE_VERSION, "3");
>  override.put(KeystoneProperties.SCOPE, "project:" + 
> swiftConfig.getProject());
>  
>  final String credential = swiftConfig.getPassword();
>  final String identity = swiftConfig.getUserDomain() + ":" + 
> swiftConfig.getUsername();
>  final String authUrl = swiftConfig.getAuthUrl();
>  
>  return ContextBuilder.newBuilder("openstack-swift")
>  .endpoint(authUrl+"/v3")
>  .credentials(identity,credential)
>  .overrides(override)
>  .buildApi(BlobStoreContext.class);
>  }
> {code}
>  *Debug:* Following are my observations after debugging the code.
>  # The type of the blobstore is found to be RegionScopedSwiftBlobStore.
>  # stepinto blobStore.*removeBlob*(containerName, fileName);                  
>                       at line 396 in *RegionScopedSwiftBlobStore* class, I 
> found it expects a response from *StaticLargeObjectApi* as shown in the below 
> code and this is where the exception occurs:                                  
>                    **                                                  
> DeleteStaticLargeObjectResponse response = 
> api.getStaticLargeObjectApi(regionId, container).delete(name); 
> *Analysis*: While the api BlobStore.removeBlob fails to delete a blob in a 
> Swift container, it works fine in AWS S3 and GCS container. I also observed 
> that if I use *ObjectApi.delete(objectName)* instead of 
> *BlobStore.removeBlob* then the blob gets deleted from the swift container 
> without any issue. As per the java doc of StaticLargeObjectApi, it is in beta 
> and still under evaluation. Is this api stable?
> Any help is highly appreciated.
> Thank you.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)