2525: when using main method, print output to console.
[arvados.git] / sdk / java / ArvadosSDKJavaUser.java
1 /**
2  * This Sample test program is useful in getting started with working with Arvados Java SDK.
3  * Please also see arvadso 
4  * @author radhika
5  *
6  */
7
8 import java.io.File;
9 import java.io.BufferedWriter;
10 import java.io.FileWriter;
11
12 import java.util.ArrayList;
13 import java.util.List;
14
15 import org.arvados.sdk.java.Arvados;
16 import org.json.simple.JSONObject;
17 import org.json.simple.parser.JSONParser;
18
19 import com.google.api.services.discovery.model.RestDescription;
20
21 public class ArvadosSDKJavaUser {
22   /** Make sure the following environment variables are set before using Arvados:
23    *      ARVADOS_API_TOKEN, ARVADOS_API_HOST, ARVADOS_API_HOST_INSECURE
24    */
25   public static void main(String[] args) throws Exception {
26     String apiName = "arvados";
27     String apiVersion = "v1";
28
29     Arvados arv = new Arvados(apiName);
30
31     // Make a discover request. 
32     System.out.println("Making an arvados discovery api request");
33     List<String> params = new ArrayList<String>();
34     params.add("discover");
35     params.add("arvados");
36     params.add("v1");
37
38     RestDescription restDescription = arv.discover(params);
39     System.out.println("Arvados discovery docuemnt:\n" + restDescription);
40     
41     // Make a users.list call
42     System.out.println("Making an arvados users.list api call");
43
44     params = new ArrayList<String>();
45     params.add("call");
46     params.add("arvados");
47     params.add("v1");
48     params.add("users.list");
49
50     String response = arv.call(params);
51     System.out.println("Arvados users.list:\n" + response);
52
53     // get uuid of the first user from the response
54     JSONParser parser = new JSONParser();
55     Object obj = parser.parse(response);
56     JSONObject jsonObject = (JSONObject) obj;
57     List items = (List)jsonObject.get("items");
58
59     JSONObject firstUser = (JSONObject)items.get(0);
60     String userUuid = (String)firstUser.get("uuid");
61     
62     // Make a users.get call on the uuid obtained above
63     System.out.println("Making a users.get for " + userUuid);
64     params = new ArrayList<String>();
65     params.add("call");
66     params.add("arvados");
67     params.add("v1");
68     params.add("users.get");
69     params.add(userUuid);
70     response = arv.call(params);
71     System.out.println("Arvados users.get:\n" + response);
72
73     // Make a users.create call
74     System.out.println("Making a users.create call.");
75     
76     File file = new File("/tmp/arvados_test.json");
77     BufferedWriter output = new BufferedWriter(new FileWriter(file));
78     output.write("{}");
79     output.close();
80     String filePath = file.getPath();
81
82     params = new ArrayList<String>();
83     params.add("call");
84     params.add("arvados");
85     params.add("v1");
86     params.add("users.create");
87     params.add(filePath);
88     response = arv.call(params);
89     System.out.println("Arvados users.create:\n" + response);
90
91     // Make a pipeline_templates.list call
92     System.out.println("Making a pipeline_templates.list call.");
93
94     params = new ArrayList<String>();
95     params.add("call");
96     params.add("arvados");
97     params.add("v1");
98     params.add("pipeline_templates.list");
99     response = arv.call(params);
100
101     System.out.println("Arvados pipelinetempates.list:\n" + response);
102   }
103 }