megam_api 0.17 → 0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +1 -1
  3. data/lib/megam/api.rb +20 -35
  4. data/lib/megam/api/{nodes.rb → assemblies.rb} +9 -9
  5. data/lib/megam/api/domains.rb +30 -0
  6. data/lib/megam/api/organizations.rb +30 -0
  7. data/lib/megam/api/version.rb +1 -1
  8. data/lib/megam/core/assemblies.rb +180 -0
  9. data/lib/megam/core/{node_collection.rb → assemblies_collection.rb} +44 -65
  10. data/lib/megam/core/csar.rb +0 -1
  11. data/lib/megam/core/domains.rb +129 -0
  12. data/lib/megam/core/json_compat.rb +17 -4
  13. data/lib/megam/core/organizations.rb +129 -0
  14. data/test/test_accounts.rb +1 -1
  15. data/test/test_assemblies.rb +10 -0
  16. data/test/test_domains.rb +27 -0
  17. data/test/test_helper.rb +25 -16
  18. data/test/test_organizations.rb +26 -0
  19. metadata +12 -38
  20. data/lib/megam/api/app_request.rb +0 -27
  21. data/lib/megam/api/appdefns.rb +0 -47
  22. data/lib/megam/api/bolt_request.rb +0 -27
  23. data/lib/megam/api/boltdefns.rb +0 -39
  24. data/lib/megam/api/cloud_tools.rb +0 -35
  25. data/lib/megam/api/logs.rb +0 -18
  26. data/lib/megam/api/predefs.rb +0 -35
  27. data/lib/megam/builder/delete_node.rb +0 -107
  28. data/lib/megam/builder/make_node.rb +0 -133
  29. data/lib/megam/core/app_request.rb +0 -227
  30. data/lib/megam/core/app_request_collection.rb +0 -148
  31. data/lib/megam/core/appdefns.rb +0 -182
  32. data/lib/megam/core/appdefns_collection.rb +0 -148
  33. data/lib/megam/core/bolt_request.rb +0 -225
  34. data/lib/megam/core/bolt_request_collection.rb +0 -148
  35. data/lib/megam/core/boltdefns.rb +0 -207
  36. data/lib/megam/core/boltdefns_collection.rb +0 -148
  37. data/lib/megam/core/cloudinstruction.rb +0 -110
  38. data/lib/megam/core/cloudinstruction_collection.rb +0 -145
  39. data/lib/megam/core/cloudinstruction_group.rb +0 -99
  40. data/lib/megam/core/cloudtemplate.rb +0 -127
  41. data/lib/megam/core/cloudtemplate_collection.rb +0 -145
  42. data/lib/megam/core/cloudtool.rb +0 -152
  43. data/lib/megam/core/cloudtool_collection.rb +0 -145
  44. data/lib/megam/core/node.rb +0 -366
  45. data/lib/megam/core/predef.rb +0 -201
  46. data/lib/megam/core/predef_collection.rb +0 -164
  47. data/test/test_appdefns.rb +0 -35
  48. data/test/test_appreqs.rb +0 -25
  49. data/test/test_boltdefns.rb +0 -32
  50. data/test/test_boltreqs.rb +0 -26
  51. data/test/test_cloudtools.rb +0 -22
  52. data/test/test_nodes.rb +0 -140
  53. data/test/test_predefs.rb +0 -72
@@ -1,366 +0,0 @@
1
- # Copyright:: Copyright (c) 2012, 2014 Megam Systems
2
- # License:: Apache License, Version 2.0
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
- #
16
- require 'hashie'
17
-
18
- module Megam
19
- class Node < Megam::ServerAPI
20
- def initialize(email=nil, api_key=nil)
21
- @id = nil
22
- @node_name = nil
23
- @accounts_id = nil
24
- @node_type = nil
25
- @req_type = nil
26
- @status=nil
27
- @noofinstances=0
28
- @request ={}
29
- @predefs={}
30
- @some_msg = {}
31
- @command = Hashie::Mash.new
32
- @appdefnsid = nil
33
- @boltdefnsid = nil
34
- @appdefns = {}
35
- @boltdefns = {}
36
- @created_at = nil
37
- super(email, api_key)
38
- end
39
-
40
- def node
41
- self
42
- end
43
-
44
-
45
- def node_name(arg=nil)
46
- if arg != nil
47
- @node_name = arg
48
- else
49
- @node_name
50
- end
51
- end
52
-
53
- def noofinstances(arg=nil)
54
- if arg != nil
55
- @noofinstances = arg
56
- else
57
- @noofinstances
58
- end
59
- end
60
-
61
- def command(arg=nil)
62
- if arg != nil
63
- @command = arg
64
- else
65
- @command
66
- end
67
- end
68
-
69
- def id(arg=nil)
70
- if arg != nil
71
- @id = arg
72
- else
73
- @id
74
- end
75
- end
76
-
77
- def accounts_id(arg=nil)
78
- if arg != nil
79
- @accounts_id = arg
80
- else
81
- @accounts_id
82
- end
83
- end
84
-
85
- def node_type(arg=nil)
86
- if arg != nil
87
- @node_type = arg
88
- else
89
- @node_type
90
- end
91
- end
92
-
93
- def req_type(arg=nil)
94
- if arg != nil
95
- @req_type = arg
96
- else
97
- @req_type
98
- end
99
- end
100
-
101
- def status(arg=nil)
102
- if arg != nil
103
- @status = arg
104
- else
105
- @status
106
- end
107
- end
108
-
109
- def request(arg=nil)
110
- if arg != nil
111
- @request = arg
112
- else
113
- @request
114
- end
115
- end
116
-
117
- def predefs(arg=nil)
118
- if arg != nil
119
- @predefs = arg
120
- else
121
- @predefs
122
- end
123
- end
124
-
125
- def appdefns(arg=nil)
126
- if arg != nil
127
- @appdefns = arg
128
- else
129
- @appdefns
130
- end
131
- end
132
-
133
- def boltdefns(arg=nil)
134
- if arg != nil
135
- @boltdefns = arg
136
- else
137
- @boltdefns
138
- end
139
- end
140
-
141
- def appdefnsid(arg=nil)
142
- if arg != nil
143
- @appdefnsid = arg
144
- else
145
- @appdefnsid
146
- end
147
- end
148
-
149
- def boltdefnsid(arg=nil)
150
- if arg != nil
151
- @boltdefnsid = arg
152
- else
153
- @boltdefnsid
154
- end
155
- end
156
-
157
- def created_at(arg=nil)
158
- if arg != nil
159
- @created_at = arg
160
- else
161
- @created_at
162
- end
163
- end
164
-
165
- def some_msg(arg=nil)
166
- if arg != nil
167
- @some_msg = arg
168
- else
169
- @some_msg
170
- end
171
- end
172
-
173
- def error?
174
- crocked = true if (some_msg.has_key?(:msg_type) && some_msg[:msg_type] == "error")
175
- end
176
-
177
- # Transform the ruby obj -> to a Hash
178
- def to_hash
179
- index_hash = Hash.new
180
- index_hash["json_claz"] = self.class.name
181
- index_hash["id"] = id
182
- index_hash["node_name"] = node_name
183
- index_hash["accounts_id"] = accounts_id
184
- index_hash["node_type"] = node_type
185
- index_hash["req_type"] = req_type
186
- index_hash["status"] = status
187
- index_hash["command"] = command
188
- index_hash["request"] = request
189
- index_hash["predefs"] = predefs
190
- index_hash["appdefns"] = appdefns
191
- index_hash["boltdefns"] = boltdefns
192
- index_hash["some_msg"] = some_msg
193
- index_hash["noofinstances"] = noofinstances.to_i
194
- index_hash["appdefnsid"] = appdefnsid
195
- index_hash["boltdefnsid"] = boltdefnsid
196
- index_hash["created_at"] = created_at
197
- index_hash
198
- end
199
-
200
- # Serialize this object as a hash: called from JsonCompat.
201
- # Verify if this called from JsonCompat during testing.
202
- def to_json(*a)
203
- for_json.to_json(*a)
204
- end
205
-
206
- def for_json
207
- result = {
208
- "id" => id,
209
- "node_name" => node_name,
210
- "accounts_id" => accounts_id,
211
- "node_type" => node_type,
212
- "req_type" => req_type,
213
- "status" => status,
214
- "request" => request,
215
- "predefs" => predefs,
216
- "appdefns" => appdefns,
217
- "boltdefns" => boltdefns,
218
- "appdefnsid" => appdefnsid,
219
- "boltdefnsid" => boltdefnsid,
220
- "noofinstances" => noofinstances,
221
- "created_at" => created_at
222
- }
223
- result
224
- end
225
-
226
- # Create a Megam::Node from NodeResult-JSON
227
- #
228
- #[{
229
- #"id":"NOD362212018897289216",
230
- #"accounts_id":"ACT362211962353876992",
231
- #"json_claz":"Megam::Node",
232
- #"request":{
233
- #"req_id":"NOD362212018897289216",
234
- #"command":"commands"
235
- #},
236
- #"predefs":{
237
- #"name":"",
238
- #"scm":"",
239
- #"war":"",
240
- #"db":"",
241
- #"queue":""
242
- #}
243
- #}]
244
- #
245
- def self.json_create(o)
246
- node = new
247
- node.id(o["id"]) if o.has_key?("id")
248
- node.node_name(o["node_name"]) if o.has_key?("node_name")
249
- node.accounts_id(o["accounts_id"]) if o.has_key?("accounts_id")
250
- node.node_type(o["node_type"]) if o.has_key?("node_type")
251
- node.req_type(o["req_type"]) if o.has_key?("req_type")
252
- node.status(o["status"]) if o.has_key?("status")
253
- node.appdefnsid(o["appdefnsid"]) if o.has_key?("appdefnsid")
254
- node.boltdefnsid(o["boltdefnsid"]) if o.has_key?("boltdefnsid")
255
- node.noofinstances(o["noofinstances"]) if o.has_key?("noofinstances")
256
- node.created_at(o["created_at"]) if o.has_key?("created_at")
257
- #requests
258
- oq = o["request"]
259
- node.request[:req_id] = oq["req_id"] if oq && oq.has_key?("req_id")
260
- node.request[:req_type] = oq["req_type"] if oq && oq.has_key?("req_type")
261
- node.request[:command] = oq["command"] if oq && oq.has_key?("command")
262
-
263
- #Command
264
- =begin
265
- node.command[:systemprovider][:provider][:prov] = oc["systemprovider"]["provider"]["prov"]
266
- node.command[:compute][:cctype] = oc["compute"]["cctype"]
267
- node.command[:compute][:cc][:groups] = oc["compute"]["cc"]["groups"]
268
- node.command[:compute][:cc][:image] = oc["compute"]["cc"]["image"]
269
- node.command[:compute][:cc][:flavor] = oc["compute"]["cc"]["flavor"]
270
- node.command[:compute][:access][:ssh_key] = oc["compute"]["access"]["ssh_key"]
271
- node.command[:compute][:access][:identity_file] = oc["compute"]["access"]["identity_file"]
272
- node.command[:compute][:access][:ssh_user] = oc["compute"]["access"]["ssh_user"]
273
- node.command[:cloudtool][:chef][:command] = oc["cloudtool"]["chef"]["command"]
274
- node.command[:cloudtool][:chef][:plugin] = oc["cloudtool"]["chef"]["plugin"]
275
- node.command[:cloudtool][:chef][:run_list] = oc["cloudtool"]["chef"]["run_list"]
276
- node.command[:cloudtool][:chef][:name] = oc["cloudtool"]["chef"]["name"]
277
- =end
278
- #predef
279
- op = o["predefs"]
280
- node.predefs[:name] = op["name"] if op && op.has_key?("name")
281
- node.predefs[:scm] = op["scm"] if op && op.has_key?("scm")
282
- node.predefs[:war]= op["war"] if op && op.has_key?("war")
283
- node.predefs[:db] = op["db"] if op && op.has_key?("db")
284
- node.predefs[:queue] = op["queue"] if op && op.has_key?("queue")
285
-
286
- #APP DEFINITIONS
287
- op = o["appdefns"]
288
- node.appdefns[:timetokill] = op["timetokill"] if op && op.has_key?("timetokill")
289
- node.appdefns[:metered] = op["metered"] if op && op.has_key?("metered")
290
- node.appdefns[:logging]= op["logging"] if op && op.has_key?("logging")
291
- node.appdefns[:runtime_exec] = op["runtime_exec"] if op && op.has_key?("runtime_exec")
292
- node.appdefns[:env_sh] = op["env_sh"] if op && op.has_key?("env_sh")
293
-
294
- #BOLT DEFINITIONS
295
- op = o["boltdefns"]
296
- node.boltdefns[:username] = op["username"] if op && op.has_key?("username")
297
- node.boltdefns[:apikey] = op["apikey"] if op && op.has_key?("apikey")
298
- node.boltdefns[:store_name]= op["store_name"] if op && op.has_key?("store_name")
299
- node.boltdefns[:url] = op["url"] if op && op.has_key?("url")
300
- node.boltdefns[:timetokill] = op["timetokill"] if op && op.has_key?("timetokill")
301
- node.boltdefns[:metered] = op["metered"] if op && op.has_key?("metered")
302
- node.boltdefns[:logging]= op["logging"] if op && op.has_key?("logging")
303
- node.boltdefns[:runtime_exec] = op["runtime_exec"] if op && op.has_key?("runtime_exec")
304
- node.boltdefns[:env_sh] = op["env_sh"] if op && op.has_key?("env_sh")
305
-
306
- #success or error
307
- node.some_msg[:code] = o["code"] if o.has_key?("code")
308
- node.some_msg[:msg_type] = o["msg_type"] if o.has_key?("msg_type")
309
- node.some_msg[:msg]= o["msg"] if o.has_key?("msg")
310
- node.some_msg[:links] = o["links"] if o.has_key?("links")
311
-
312
- node
313
- end
314
-
315
- def self.from_hash(o,tmp_email=nil, tmp_api_key=nil)
316
- node = self.new(tmp_email, tmp_api_key)
317
- node.from_hash(o)
318
- node
319
- end
320
-
321
- def from_hash(o)
322
- @node_name = o["node_name"] if o.has_key?("node_name")
323
- @command = o["command"] if o.has_key?("command")
324
- @id = o["id"] if o.has_key?("id")
325
- @accounts_id = o["accounts_id"] if o.has_key?("accounts_id")
326
- @node_type = o["node_type"] if o.has_key?("node_type")
327
- @req_type = o["req_type"] if o.has_key?("req_type")
328
- @request = o["request"] if o.has_key?("request")
329
- @predefs = o["predefs"] if o.has_key?("predefs")
330
- @appdefns = o["appdefns"] if o.has_key?("appdefns")
331
- @boltdefns = o["boltdefns"] if o.has_key?("boltdefns")
332
- @appdefnsid = o["appdefnsid"] if o.has_key?("appdefnsid")
333
- @boltdefnsid = o["boltdefnsid"] if o.has_key?("boltdefnsid")
334
- @noofinstances = o["noofinstances"] if o.has_key?("noofinstances")
335
- @created_at = o["created_at"] if o.has_key?("created_at")
336
- self
337
- end
338
-
339
- def self.create(o,tmp_email=nil, tmp_api_key=nil)
340
- acct = from_hash(o, tmp_email, tmp_api_key)
341
- acct.create
342
- end
343
-
344
- # Create the node via the REST API
345
- def create
346
- megam_rest.post_node(to_hash)
347
- end
348
-
349
- # Load a account by email_p
350
- def self.show(node_name, tmp_email=nil, tmp_api_key=nil)
351
- node = self.new(tmp_email, tmp_api_key)
352
- node.megam_rest.get_node(node_name)
353
- end
354
-
355
- def self.list(tmp_email=nil, tmp_api_key=nil)
356
- node = self.new(tmp_email, tmp_api_key)
357
- node.megam_rest.get_nodes
358
- end
359
-
360
- def to_s
361
- Megam::Stuff.styled_hash(to_hash)
362
- #"---> Megam::Account:[error=#{error?}]\n"+
363
- end
364
-
365
- end
366
- end
@@ -1,201 +0,0 @@
1
- # Copyright:: Copyright (c) 2012, 2014 Megam Systems
2
- # License:: Apache License, Version 2.0
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
- #
16
- module Megam
17
- class Predef < Megam::ServerAPI
18
- def initialize(email=nil, api_key=nil)
19
- @id = nil
20
- @name = nil
21
- @provider = nil
22
- @provider_role =nil
23
- @build_monkey=nil
24
- @runtime_exec = nil
25
- @created_at = nil
26
- @some_msg = {}
27
- super(email, api_key)
28
- end
29
-
30
- def predef
31
- self
32
- end
33
-
34
- def id(arg=nil)
35
- if arg != nil
36
- @id = arg
37
- else
38
- @id
39
- end
40
- end
41
-
42
- def name(arg=nil)
43
- if arg != nil
44
- @name = arg
45
- else
46
- @name
47
- end
48
- end
49
-
50
- def runtime_exec(arg=nil)
51
- if arg != nil
52
- @runtime_exec = arg
53
- else
54
- @runtime_exec
55
- end
56
- end
57
-
58
- def provider(arg=nil)
59
- if arg != nil
60
- @provider = arg
61
- else
62
- @provider
63
- end
64
- end
65
-
66
- def provider_role(arg=nil)
67
- if arg != nil
68
- @provider_role = arg
69
- else
70
- @provider_role
71
- end
72
- end
73
-
74
- def build_monkey(arg=nil)
75
- if arg != nil
76
- @build_monkey = arg
77
- else
78
- @build_monkey
79
- end
80
- end
81
-
82
- def created_at(arg=nil)
83
- if arg != nil
84
- @created_at = arg
85
- else
86
- @created_at
87
- end
88
- end
89
-
90
- def some_msg(arg=nil)
91
- if arg != nil
92
- @some_msg = arg
93
- else
94
- @some_msg
95
- end
96
- end
97
-
98
- def error?
99
- crocked = true if (some_msg.has_key?(:msg_type) && some_msg[:msg_type] == "error")
100
- end
101
-
102
- # Transform the ruby obj -> to a Hash
103
- def to_hash
104
- index_hash = Hash.new
105
- index_hash["json_claz"] = self.class.name
106
- index_hash["id"] = id
107
- index_hash["name"] = name
108
- index_hash["provider"] = provider
109
- index_hash["provider_role"] = provider_role
110
- index_hash["build_monkey"] = build_monkey
111
- index_hash["runtime_exec"] = runtime_exec
112
- index_hash["created_at"] = created_at
113
- index_hash
114
- end
115
-
116
- # Serialize this object as a hash: called from JsonCompat.
117
- # Verify if this called from JsonCompat during testing.
118
- def to_json(*a)
119
- for_json.to_json(*a)
120
- end
121
-
122
- def for_json
123
- result = {
124
- "id" => id,
125
- "name" => name,
126
- "provider" => provider,
127
- "provider_role" => provider_role,
128
- "build_monkey" => build_monkey,
129
- "runtime_exec" => runtime_exec,
130
- "created_at" => created_at
131
- }
132
- result
133
- end
134
-
135
- #
136
- def self.json_create(o)
137
- node = new
138
- node.id(o["id"]) if o.has_key?("id")
139
- node.name(o["name"]) if o.has_key?("name")
140
- node.provider(o["provider"]) if o.has_key?("provider")
141
- node.provider_role(o["provider_role"]) if o.has_key?("provider_role")
142
- node.build_monkey(o["build_monkey"]) if o.has_key?("build_monkey")
143
- node.runtime_exec(o["runtime_exec"]) if o.has_key?("runtime_exec")
144
- node.created_at(o["created_at"]) if o.has_key?("created_at")
145
- #success or error
146
- node.some_msg[:code] = o["code"] if o.has_key?("code")
147
- node.some_msg[:msg_type] = o["msg_type"] if o.has_key?("msg_type")
148
- node.some_msg[:msg]= o["msg"] if o.has_key?("msg")
149
- node.some_msg[:links] = o["links"] if o.has_key?("links")
150
- node
151
- end
152
-
153
- def self.from_hash(o,tmp_email=nil, tmp_api_key=nil)
154
- node = self.new(tmp_email, tmp_api_key)
155
- node.from_hash(o)
156
- node
157
- end
158
-
159
- def from_hash(o)
160
- @id = o[:id] if o.has_key?(:id)
161
- @name = o[:name] if o.has_key?(:name)
162
- @provider = o[:provider] if o.has_key?(:provider)
163
- @provider_role = o[:provider_role] if o.has_key?(:provider_role)
164
- @build_monkey = o[:build_monkey] if o.has_key?(:build_monkey)
165
- @runtime_exec = o[:runtime_exec] if o.has_key?(:runtime_exec)
166
- @created_at = o[:created_at] if o.has_key?(:created_at)
167
- self
168
- end
169
-
170
- def self.create(o,tmp_email=nil, tmp_api_key=nil)
171
- predef = from_hash(o,tmp_email, tmp_api_key)
172
- predef.create
173
- end
174
-
175
- # Create the predef via the REST API
176
- def create(predef_input)
177
- megam_rest.post_predef(predef_input)
178
- self
179
- end
180
-
181
- # Load all predefs -
182
- # returns a PredefsCollection
183
- # don't return self. check if the Megam::PredefCollection is returned.
184
- def self.list(tmp_email=nil, tmp_api_key=nil)
185
- prede = self.new(tmp_email,tmp_api_key)
186
- prede.megam_rest.get_predefs
187
- end
188
-
189
- # Show a particular predef by name,
190
- # Megam::Predef
191
- def self.show(p_name,tmp_email=nil, tmp_api_key=nil)
192
- prede = self.new(tmp_email,tmp_api_key)
193
- prede.megam_rest.get_predef(p_name)
194
- end
195
-
196
- def to_s
197
- Megam::Stuff.styled_hash(to_hash)
198
- end
199
-
200
- end
201
- end