You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@jclouds.apache.org by "gpicavet (JIRA)" <ji...@apache.org> on 2018/04/06 12:32:00 UTC
[jira] [Created] (JCLOUDS-1403) swift token not renewed with bulk
api
gpicavet created JCLOUDS-1403:
---------------------------------
Summary: swift token not renewed with bulk api
Key: JCLOUDS-1403
URL: https://issues.apache.org/jira/browse/JCLOUDS-1403
Project: jclouds
Issue Type: Bug
Affects Versions: 2.1.0
Environment: debian 8 / openjdk 8
Reporter: gpicavet
Hello,
After some time using bulkApi with SwiftApi, no more objects will be created in swift . Moreover, Response of extractArchive reports no error.
This problem seems to be correlated with token expiration.
There's no error using ObjectApi (token appears to be correctly renewed)
Here is the test case i used. (Swift Token expiration is set to 5 minutes, no object will be created after this delai).
{code:java}
import java.io.*;
import org.apache.commons.compress.archivers.tar.*;
import org.jclouds.*;
import org.jclouds.io.payloads.*;
import org.jclouds.openstack.swift.v1.*;
import org.jclouds.openstack.swift.v1.domain.*;
import org.jclouds.openstack.swift.v1.features.*;
public class TokenTestCaseBulk {
public static void main(String[] args) throws Exception {
try(SwiftApi swiftApi=ContextBuilder.newBuilder("openstack-swift")
.endpoint("http://swift:35357/v2.0")
.credentials("tenant:user","password")
.buildApi(SwiftApi.class)) {
String region = swiftApi.getConfiguredRegions().stream().findFirst().orElseThrow(()->new RuntimeException("no region found"));
for(int i=0;i<6*60000/5000;i++) {
BulkApi bulkApi = swiftApi.getBulkApi(region);
try(ByteArrayOutputStream os = new ByteArrayOutputStream();
TarArchiveOutputStream out = new TarArchiveOutputStream(os)) {
byte[] data = new byte[]{0,0,0,0,0};
out.setLongFileMode(TarArchiveOutputStream.LONGFILE_POSIX);
TarArchiveEntry entry = new TarArchiveEntry("testbulk");
entry.setSize(data.length);
out.putArchiveEntry(entry);
out.write(data);
out.closeArchiveEntry();
Object res = bulkApi.extractArchive("test", new ByteArrayPayload(os.toByteArray()), "tar");
System.out.format("%s - %s%n", new java.util.Date(), res);
}
Thread.sleep(5000);
}
}
}
}{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)