[ARVADOS] updated: a74ae790b5a0682fa00423626103482c145e1b91
git at public.curoverse.com
git at public.curoverse.com
Wed Apr 30 21:13:40 EDT 2014
Summary of changes:
sdk/java/README | 23 +++-
.../main/java/org/arvados/sdk/java/Arvados.java | 120 ++++----------------
.../java/org/arvados/sdk/java/ArvadosTest.java | 51 ++-------
3 files changed, 52 insertions(+), 142 deletions(-)
via a74ae790b5a0682fa00423626103482c145e1b91 (commit)
from 66d12ae6dc72d45cc3cb3fcc007cb41371371616 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit a74ae790b5a0682fa00423626103482c145e1b91
Author: radhika <radhika at curoverse.com>
Date: Wed Apr 30 21:13:00 2014 -0400
2525: add apiVersion to constructor args
diff --git a/sdk/java/README b/sdk/java/README
index d270ccb..423cf97 100644
--- a/sdk/java/README
+++ b/sdk/java/README
@@ -18,10 +18,25 @@
== Setting up the environment
- - The following three environment variables are required by the SDK
-
- ARVADOS_API_TOKEN, ARVADOS_API_HOST, ARVADOS_API_HOST_INSECURE
-
+ - The SDK requires a running Arvados API server. The information about the
+ API server needs to be passed to the SDK using environment variables.
+
+ - The following two environment variables are required by the SDK
+
+ ARVADOS_API_TOKEN, ARVADOS_API_HOST
+
+ Below are examples using a .bashrc file:
+
+ export ARVADOS_API_TOKEN=z40gplmla6i58rsg96jhg5u41ewdl5rj4g1py2xg6s6e2lsc3
+ export ARVADOS_API_HOST=localhost:3001
+
+ - You can also set ARVADOS_API_HOST_INSECURE to true if you are using
+ self-signed certificates and want to bypass certificate validations.
+
+ Below is an example using a .bashrc file:
+
+ export ARVADOS_API_HOST_INSECURE=true
+
== Building the Arvados SDK
diff --git a/sdk/java/src/main/java/org/arvados/sdk/java/Arvados.java b/sdk/java/src/main/java/org/arvados/sdk/java/Arvados.java
index f8a7dad..260b68d 100644
--- a/sdk/java/src/main/java/org/arvados/sdk/java/Arvados.java
+++ b/sdk/java/src/main/java/org/arvados/sdk/java/Arvados.java
@@ -32,7 +32,7 @@ import java.util.regex.Pattern;
import org.apache.log4j.Logger;
public class Arvados {
- // HttpTransport and JsonFactory are thread-safe. So, use global instances.
+ // HttpTransport and JsonFactory are thread-safe. So, use global instances.
private static HttpTransport HTTP_TRANSPORT;
private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();
@@ -40,7 +40,7 @@ public class Arvados {
private static String ARVADOS_API_TOKEN;
private static String ARVADOS_API_HOST;
- private static String ARVADOS_API_HOST_INSECURE;
+ private static boolean ARVADOS_API_HOST_INSECURE;
private static String ARVADOS_ROOT_URL;
@@ -48,88 +48,14 @@ public class Arvados {
// Get it on a discover call and reuse on the call requests
RestDescription restDescription = null;
+ String apiName = null;
+ String apiVersion = null;
- public static void main(String[] args) throws Exception {
- if (args.length == 0) {
- showMainHelp();
- error(null, "Missing input args");
- } else {
- String command = args[0];
- if (command.equals("help")) {
- help(args);
- } else if (command.equals("call")) {
- List<String> params = Arrays.asList(args);
-
- if (args.length == 1) {
- error("call", "missing api name");
- }
-
- Arvados arv = new Arvados(args[1]);
- String response = arv.call(params);
- System.out.println (response);
- } else if (command.equals("discover")) {
- List<String> params = Arrays.asList(args);
-
- if (args.length == 1) {
- error("call", "missing api name");
- }
-
- Arvados arv = new Arvados(args[1]);
- RestDescription restDescription = arv.discover(params);
- System.out.println(restDescription);
- } else {
- error(null, "unknown command: " + command);
- }
- }
- }
-
- protected static void help(String[] args) throws Exception {
- if (args.length == 1) {
- showMainHelp();
- } else {
- String helpCommand = args[1];
- if (helpCommand.equals("call")) {
- StringBuffer buffer = new StringBuffer();
- buffer.append("\nUsage: Arvados call methodName [parameters]");
- buffer.append("\nExamples:");
- buffer.append("\n Arvados call arvados v1 users.list");
- buffer.append("\n Arvados call arvados v1 users.get <uuid>");
- buffer.append("\n Arvados call arvados v1 pipeline_instances.list");
- logger.debug(buffer.toString());
- System.out.println(buffer.toString());
- } else if (helpCommand.equals("discover")) {
- StringBuffer buffer = new StringBuffer();
- buffer.append("\nUsage");
- buffer.append("\nExamples:");
- buffer.append("\n Arvados discover arvados v1");
- logger.debug(buffer.toString());
- System.out.println(buffer.toString());
- } else {
- error(null, "unknown command: " + helpCommand);
- }
- }
- }
-
- protected static void showMainHelp() {
- StringBuffer buffer = new StringBuffer();
- buffer.append("\narvados");
- buffer.append("\nFor more help on a specific command, type one of:");
- buffer.append("\n Arvados help call");
- buffer.append("\n Arvados help discover");
- logger.debug(buffer.toString());
- System.out.println(buffer.toString());
- }
-
- private static void error(String command, String detail) throws Exception {
- String errorDetail = "ERROR: " + detail +
- "For help, type: Arvados" + (command == null ? "" : " help " + command);
-
- logger.debug(errorDetail);
- throw new Exception(errorDetail);
- }
-
- public Arvados (String apiName){
+ public Arvados (String apiName, String apiVersion){
try {
+ this.apiName = apiName;
+ this.apiVersion = apiVersion;
+
// Read needed environmental variables
ARVADOS_API_TOKEN = System.getenv().get("ARVADOS_API_TOKEN");
if (ARVADOS_API_TOKEN == null) {
@@ -144,14 +70,13 @@ public class Arvados {
ARVADOS_ROOT_URL = "https://" + ARVADOS_API_HOST;
ARVADOS_ROOT_URL += (ARVADOS_API_HOST.endsWith("/")) ? "" : "/";
- ARVADOS_API_HOST_INSECURE = System.getenv().get("ARVADOS_API_HOST_INSECURE");
- if (ARVADOS_API_HOST_INSECURE == null) {
- throw new Exception("Missing environment variable: ARVADOS_API_HOST_INSECURE");
- }
+ ARVADOS_API_HOST_INSECURE = "true".equals(System.getenv().get("ARVADOS_API_HOST_INSECURE")) ? true : false;
// Create HTTP_TRANSPORT object
NetHttpTransport.Builder builder = new NetHttpTransport.Builder();
- builder.doNotValidateCertificate();
+ if (ARVADOS_API_HOST_INSECURE) {
+ builder.doNotValidateCertificate();
+ }
HTTP_TRANSPORT = builder.build();
} catch (Throwable t) {
t.printStackTrace();
@@ -164,14 +89,8 @@ public class Arvados {
* @return
* @throws Exception
*/
- public RestDescription discover(List<String> params) throws Exception {
- if (params.size() == 1) {
- error("call", "missing api name");
- } else if (params.size() == 2) {
- error("call", "missing api version");
- }
-
- restDescription = loadArvadosApi(params.get(1), params.get(2));
+ public RestDescription discover() throws Exception {
+ restDescription = loadArvadosApi(apiName, apiVersion);
// compute method details
ArrayList<MethodDetails> result = Lists.newArrayList();
@@ -182,7 +101,7 @@ public class Arvados {
Collections.sort(result);
StringBuffer buffer = new StringBuffer();
for (MethodDetails methodDetail : result) {
- buffer.append("\nArvados call " + params.get(1) + " " + params.get(2) + " " + methodDetail.name);
+ buffer.append("\nArvados call " + apiName + " " + apiVersion + " " + methodDetail.name);
for (String param : methodDetail.requiredParameters) {
buffer.append(" <" + param + ">");
}
@@ -429,5 +348,14 @@ public class Arvados {
error("call", "duplicate parameter: " + argName);
}
}
+
+ private static void error(String command, String detail) throws Exception {
+ String errorDetail = "ERROR: " + detail +
+ "For help, type: Arvados" + (command == null ? "" : " help " + command);
+
+ logger.debug(errorDetail);
+ throw new Exception(errorDetail);
+ }
+
}
diff --git a/sdk/java/src/test/java/org/arvados/sdk/java/ArvadosTest.java b/sdk/java/src/test/java/org/arvados/sdk/java/ArvadosTest.java
index e2dbc19..77157e5 100644
--- a/sdk/java/src/test/java/org/arvados/sdk/java/ArvadosTest.java
+++ b/sdk/java/src/test/java/org/arvados/sdk/java/ArvadosTest.java
@@ -20,48 +20,15 @@ import org.json.simple.parser.JSONParser;
*/
public class ArvadosTest {
- @Test(expected=Exception.class)
- public void testMainWithNoParams() throws Exception {
- String[] args = new String[0];
- Arvados.main(args);
- }
-
- @Test(expected=Exception.class)
- public void testHelp() throws Exception {
- String[] args = new String[1];
-
- args[0] = "help";
- Arvados.help(args); // expect this to succeed with no problems
-
- args = new String[2];
-
- args[0] = "help";
- args[1] = "call";
- Arvados.main(args); // call via main
-
- args[0] = "help";
- args[1] = "discover";
- Arvados.help(args); // call help directly
-
- args[0] = "help";
- args[1] = "unknown";
- Arvados.help(args); // expect exception
- }
-
/**
* test discover method
* @throws Exception
*/
@Test
public void testDiscover() throws Exception {
- Arvados arv = new Arvados("arvados");
-
- List<String> params = new ArrayList<String>();
- params.add("discover");
- params.add("arvados");
- params.add("v1");
+ Arvados arv = new Arvados("arvados", "v1");
- RestDescription restDescription = arv.discover(params);
+ RestDescription restDescription = arv.discover();
// The discover method returns the supported methods
Map<String, RestResource> resources = restDescription.getResources();
@@ -81,7 +48,7 @@ public class ArvadosTest {
*/
@Test
public void testCallUsersList() throws Exception {
- Arvados arv = new Arvados("arvados");
+ Arvados arv = new Arvados("arvados", "v1");
List<String> params = new ArrayList<String>();
params.add("call");
@@ -116,7 +83,7 @@ public class ArvadosTest {
*/
@Test
public void testCallUsersGet() throws Exception {
- Arvados arv = new Arvados("arvados");
+ Arvados arv = new Arvados("arvados", "v1");
// call user.system and get uuid of this user
List<String> params = new ArrayList<String>();
@@ -158,7 +125,7 @@ public class ArvadosTest {
*/
@Test
public void testCreateUser() throws Exception {
- Arvados arv = new Arvados("arvados");
+ Arvados arv = new Arvados("arvados", "v1");
File file = new File(getClass().getResource( "/create_user.json" ).toURI());
String filePath = file.getPath();
@@ -183,7 +150,7 @@ public class ArvadosTest {
*/
@Test
public void testUnsupportedApiName() throws Exception {
- Arvados arv = new Arvados("not_arvados");
+ Arvados arv = new Arvados("not_arvados", "v1");
List<String> params = new ArrayList<String>();
params.add("call");
@@ -208,7 +175,7 @@ public class ArvadosTest {
*/
@Test
public void testUnsupportedVersion() throws Exception {
- Arvados arv = new Arvados("arvados");
+ Arvados arv = new Arvados("arvados", "v1");
List<String> params = new ArrayList<String>();
params.add("call");
@@ -233,7 +200,7 @@ public class ArvadosTest {
*/
@Test
public void testCallWithTooFewParams() throws Exception {
- Arvados arv = new Arvados("arvados");
+ Arvados arv = new Arvados("arvados", "v1");
List<String> params = new ArrayList<String>();
params.add("call");
@@ -257,7 +224,7 @@ public class ArvadosTest {
*/
@Test
public void testCreateAndGetPipelineTemplate() throws Exception {
- Arvados arv = new Arvados("arvados");
+ Arvados arv = new Arvados("arvados", "v1");
File file = new File(getClass().getResource( "/first_pipeline.json" ).toURI());
String filePath = file.getPath();
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list