-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathOWskClient.java
More file actions
63 lines (51 loc) · 2.09 KB
/
OWskClient.java
File metadata and controls
63 lines (51 loc) · 2.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package org.projectodd.openwhisk;
import org.projectodd.openwhisk.invoker.ApiClient;
import org.projectodd.openwhisk.invoker.JSON;
import static java.lang.String.format;
import static java.nio.charset.StandardCharsets.ISO_8859_1;
import static okio.ByteString.encodeString;
import java.io.IOException;
public class OWskClient {
private ApiClient client;
private Configuration configuration;
public OWskClient() throws IOException {
configure(Configuration.load());
}
public void configure(final Configuration configuration) throws IOException {
this.configuration = configuration;
client = new ApiClient();
client.setBasePath(format("https://%s:%s/api/v1", configuration.getHost(), configuration.getPort()));
final JSON json = client.getJSON();
json.setGson(json.getGson().newBuilder().disableHtmlEscaping().create());
client.setVerifyingSsl(!configuration.isInsecure());
if(getConfiguration().getAuth()!= null) {
if (configuration.useOauth()) {
OauthManager oauthManager = new OauthManager(
configuration.getOauthTokenUrl(),
configuration.getOauthTokenRequestParameters(),
configuration.getOauthTokenRequestHeaders());
client.getHttpClient().interceptors().add(oauthManager);
client.getHttpClient().setAuthenticator(oauthManager);
} else {
client.addDefaultHeader(
"Authorization",
"Basic " + encodeString(getConfiguration().getAuth(), ISO_8859_1)
.base64());
}
}
client.setUserAgent("Incubating Apache OpenWhisk Java client");
client.setDebugging(configuration.isDebugging());
}
public Configuration getConfiguration() {
return configuration;
}
ApiClient getClient() {
return client;
}
public Actions actions() {
return new Actions(this);
}
public Activations activations() {
return new Activations(this);
}
}