UNPKG

1.86 kBtext/coffeescriptView Raw
1{promise, lift} = require "when"
2async = (require "when/generator").lift
3{discover} = require "./client"
4
5# This is a wrap of setTimeout with ES6 technology that forces a non-blocking
6# # pause in execution for the specified duration (in ms).
7pause = (duration) ->
8 promise (resolve, reject) ->
9 callback = -> resolve()
10 setTimeout callback, duration
11
12module.exports =
13
14 #create_cluster: async ({cluster_name, email, secret_token, url}) ->
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 #(yield clusters.create {cluster_name, email, secret_token})
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 # The cluster formation complete.
48 else
49 yield pause 5000 # Not complete, keep going.
50
51 # FIXME: filter out secret keys in response
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