1 | {promise, lift} = require "when"
|
2 | async = (require "when/generator").lift
|
3 | {discover} = require "./client"
|
4 |
|
5 |
|
6 |
|
7 | pause = (duration) ->
|
8 | promise (resolve, reject) ->
|
9 | callback = -> resolve()
|
10 | setTimeout callback, duration
|
11 |
|
12 | module.exports =
|
13 |
|
14 |
|
15 | create_cluster: async (args) ->
|
16 | {url} = args
|
17 |
|
18 | api = (yield discover url)
|
19 | clusters = (api.clusters)
|
20 | {response: {headers: {location}}} =
|
21 | (yield clusters.create args)
|
22 |
|
23 | location
|
24 |
|
25 | delete_cluster: async ({cluster_url, secret_token, url}) ->
|
26 |
|
27 | api = (yield discover url)
|
28 | cluster = (api.cluster cluster_url)
|
29 | result = (yield cluster.delete())
|
30 |
|
31 | get_cluster_status: async ({cluster_url, secret_token, url}) ->
|
32 |
|
33 | api = (yield discover url)
|
34 | cluster = (api.cluster cluster_url)
|
35 | {data} = (yield cluster.get())
|
36 | data = (yield data)
|
37 |
|
38 | wait_on_cluster: async ({cluster_url, secret_token, url}) ->
|
39 |
|
40 | api = (yield discover url)
|
41 | cluster = (api.cluster cluster_url)
|
42 | while true
|
43 | {data} = (yield cluster.get())
|
44 | {cluster_status} = yield data
|
45 | console.log "*****current cluster_status: ", cluster_status.message
|
46 | if(cluster_status.message == "The cluster is confirmed to be online and ready.")
|
47 | return cluster_status
|
48 | else
|
49 | yield pause 5000
|
50 |
|
51 |
|
52 | create_user: async ({aws, email, url, key_pair, public_keys}) ->
|
53 |
|
54 | api = (yield discover url)
|
55 | users = (api.users)
|
56 | {data} = (yield users.create {aws, email, key_pair, public_keys})
|
57 | data = (yield data)
|
58 |
|