This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new a976048 [CAMEL-16595] Swift getall filter path (#5529)
a976048 is described below
commit a976048690168c67dc9c008d93efc7949e03ff12
Author: gasdia73 <[email protected]>
AuthorDate: Sat May 8 07:55:02 2021 +0200
[CAMEL-16595] Swift getall filter path (#5529)
* Added option to filter getAll by path
* Fix in ObjectProducer because of failing test
* Check for non empty path
* fix check for non empty path
Co-authored-by: Roberto Gasdia <[email protected]>
---
.../component/openstack/swift/producer/ObjectProducer.java | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git
a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/swift/producer/ObjectProducer.java
b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/swift/producer/ObjectProducer.java
index 28c4d8d..fcf8281 100644
---
a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/swift/producer/ObjectProducer.java
+++
b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/swift/producer/ObjectProducer.java
@@ -31,6 +31,7 @@ import org.openstack4j.api.OSClient;
import org.openstack4j.model.common.ActionResponse;
import org.openstack4j.model.common.Payload;
import org.openstack4j.model.storage.object.SwiftObject;
+import org.openstack4j.model.storage.object.options.ObjectListOptions;
import org.openstack4j.model.storage.object.options.ObjectLocation;
public class ObjectProducer extends AbstractOpenstackProducer {
@@ -93,7 +94,18 @@ public class ObjectProducer extends
AbstractOpenstackProducer {
final String name = msg.getHeader(SwiftConstants.CONTAINER_NAME,
msg.getHeader(OpenstackConstants.NAME, String.class),
String.class);
StringHelper.notEmpty(name, "Container name");
- final List<? extends SwiftObject> out =
os.objectStorage().objects().list(name);
+ final String path = msg.getHeader(SwiftConstants.PATH, String.class);
+
+ List<? extends SwiftObject> out;
+ if (path != null) {
+ StringHelper.notEmpty(path, "Path");
+ ObjectListOptions objectListOptions = ObjectListOptions.create();
+ objectListOptions.startsWith(path).delimiter('/');
+ out = os.objectStorage().objects().list(name, objectListOptions);
+ } else {
+ out = os.objectStorage().objects().list(name);
+ }
+
exchange.getIn().setBody(out);
}