-
Notifications
You must be signed in to change notification settings - Fork 3
/
test.clj
67 lines (57 loc) · 2.56 KB
/
test.clj
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
64
65
66
67
(ns mescal.test
(:require [authy.core :as authy]
[cemerick.url :as curl]
[mescal.core :as mc]
[mescal.de :as md]))
(defn- get-agave-base-url []
(System/getenv "AGAVE_BASE_URL"))
(defn- get-agave-storage-system []
(System/getenv "AGAVE_STORAGE_SYSTEM"))
(defn- get-api-key []
(System/getenv "AGAVE_API_KEY"))
(defn- get-api-secret []
(System/getenv "AGAVE_API_SECRET"))
(defn- get-username []
(System/getenv "IPLANT_CAS_SHORT"))
(defn- get-password []
(System/getenv "IPLANT_CAS_PASS"))
(defn- get-oauth-info [base-url api-key api-secret]
{:api-name "agave"
:client-key api-key
:client-secret api-secret
:token-uri (str (curl/url base-url "oauth2" "token"))})
(defn- get-token [base-url api-key api-secret username password]
(let [oauth-info (get-oauth-info base-url api-key api-secret)]
(authy/get-access-token-for-credentials oauth-info username password)))
(defn get-test-agave-client
([]
(get-test-agave-client {}))
([agave-params]
(get-test-agave-client agave-params (get-username)))
([agave-params username]
(get-test-agave-client agave-params username (get-password)))
([agave-params username password]
(get-test-agave-client agave-params username password (get-api-key) (get-api-secret)))
([agave-params username password api-key api-secret]
(let [base-url (get-agave-base-url)
storage-system (get-agave-storage-system)
token-info (get-token base-url api-key api-secret username password)
agave-params (flatten (seq agave-params))]
(apply mc/agave-client-v2 base-url storage-system (constantly token-info) agave-params))))
(defn get-test-de-agave-client
([]
(get-test-de-agave-client {}))
([agave-params]
(get-test-de-agave-client agave-params true))
([agave-params jobs-enabled?]
(get-test-de-agave-client agave-params jobs-enabled? (get-username)))
([agave-params jobs-enabled? username]
(get-test-de-agave-client agave-params jobs-enabled? username (get-password)))
([agave-params jobs-enabled? username password]
(get-test-de-agave-client agave-params jobs-enabled? username password (get-api-key) (get-api-secret)))
([agave-params jobs-enabled? username password api-key api-secret]
(let [base-url (get-agave-base-url)
storage-system (get-agave-storage-system)
token-info (get-token base-url api-key api-secret username password)
agave-params (flatten (seq agave-params))]
(apply md/de-agave-client-v2 base-url storage-system (constantly token-info) jobs-enabled? agave-params))))