megam_api 0.17 → 0.18

Sign up to get free protection for your applications and to get access to all the features.
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,148 +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 AppRequestCollection
18
- include Enumerable
19
-
20
-
21
- attr_reader :iterator
22
- def initialize
23
- @appreqs = Array.new
24
- @appreqs_by_name = Hash.new
25
- @insert_after_idx = nil
26
- end
27
-
28
- def all_appreqs
29
- @appreqs
30
- end
31
-
32
- def [](index)
33
- @appreqs[index]
34
- end
35
-
36
- def []=(index, arg)
37
- is_megam_appreq(arg)
38
- @appreqs[index] = arg
39
- @appreqs_by_name[arg.id] = index
40
- end
41
-
42
- def <<(*args)
43
- args.flatten.each do |a|
44
- is_megam_appreq(a)
45
- @appreqs << a
46
- @appreqs_by_name[a.id] = @appreqs.length - 1
47
- end
48
- self
49
- end
50
-
51
- # 'push' is an alias method to <<
52
- alias_method :push, :<<
53
-
54
- def insert(appreq)
55
- is_megam_appreq(appreq)
56
- if @insert_after_idx
57
- # in the middle of executing a run, so any Appreqss inserted now should
58
- # be placed after the most recent addition done by the currently executing
59
- # appreqs
60
- @appreqs.insert(@insert_after_idx + 1, appreq)
61
- # update name -> location mappings and register new appreqs
62
- @appreqs_by_name.each_key do |key|
63
- @appreqs_by_name[key] += 1 if @appreqs_by_name[key] > @insert_after_idx
64
- end
65
- @appreqs_by_name[appreq.id] = @insert_after_idx + 1
66
- @insert_after_idx += 1
67
- else
68
- @appreqs << appreq
69
- @appreqs_by_name[appreq.id] = @appreqs.length - 1
70
- end
71
- end
72
-
73
- def each
74
- @appreqs.each do |appreq|
75
- yield appreq
76
- end
77
- end
78
-
79
- def each_index
80
- @appreqs.each_index do |i|
81
- yield i
82
- end
83
- end
84
-
85
- def empty?
86
- @appreqs.empty?
87
- end
88
-
89
- def lookup(appreq)
90
- lookup_by = nil
91
- if appreq.kind_of?(Megam::AppRequest)
92
- lookup_by = appreq.id
93
- elsif appreq.kind_of?(String)
94
- lookup_by = appreq
95
- else
96
- raise ArgumentError, "Must pass a Megam::Appreqs or String to lookup"
97
- end
98
- res = @appreqs_by_name[lookup_by]
99
- unless res
100
- raise ArgumentError, "Cannot find a appreq matching #{lookup_by} (did you define it first?)"
101
- end
102
- @appreqs[res]
103
- end
104
-
105
- # Transform the ruby obj -> to a Hash
106
- def to_hash
107
- index_hash = Hash.new
108
- self.each do |appreq|
109
- index_hash[appreq.id] = appreq.to_s
110
- end
111
- index_hash
112
- end
113
-
114
- # Serialize this object as a hash: called from JsonCompat.
115
- # Verify if this called from JsonCompat during testing.
116
- def to_json(*a)
117
- for_json.to_json(*a)
118
- end
119
-
120
-
121
- def self.json_create(o)
122
- collection = self.new()
123
- o["results"].each do |appreqs_list|
124
- appreqs_array = appreqs_list.kind_of?(Array) ? appreqs_list : [ appreqs_list ]
125
- appreqs_array.each do |appreq|
126
- collection.insert(appreq)
127
- end
128
- end
129
- collection
130
- end
131
-
132
- private
133
-
134
-
135
-
136
- def is_megam_appreq(arg)
137
- unless arg.kind_of?(Megam::AppRequest)
138
- raise ArgumentError, "Members must be Megam::Appreq's"
139
- end
140
- true
141
- end
142
-
143
- def to_s
144
- Megam::Stuff.styled_hash(to_hash)
145
- end
146
-
147
- end
148
- end
@@ -1,182 +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 Appdefns < Megam::ServerAPI
18
-
19
- def initialize(email=nil, api_key=nil)
20
- @id = nil
21
- @node_id = nil
22
- @node_name = nil
23
- @appdefns ={}
24
- @created_at = nil
25
- @some_msg = {}
26
- super(email, api_key)
27
- end
28
-
29
- def appdefns
30
- self
31
- end
32
-
33
-
34
- def id(arg=nil)
35
- if arg != nil
36
- @id = arg
37
- else
38
- @id
39
- end
40
- end
41
-
42
- def node_id(arg=nil)
43
- if arg != nil
44
- @node_id = arg
45
- else
46
- @node_id
47
- end
48
- end
49
-
50
- def node_name(arg=nil)
51
- if arg != nil
52
- @node_name = arg
53
- else
54
- @node_name
55
- end
56
- end
57
-
58
- def appdefns(arg=nil)
59
- if arg != nil
60
- @appdefns = arg
61
- else
62
- @appdefns
63
- end
64
- end
65
-
66
- def created_at(arg=nil)
67
- if arg != nil
68
- @created_at = arg
69
- else
70
- @created_at
71
- end
72
- end
73
-
74
- def some_msg(arg=nil)
75
- if arg != nil
76
- @some_msg = arg
77
- else
78
- @some_msg
79
- end
80
- end
81
-
82
- def error?
83
- crocked = true if (some_msg.has_key?(:msg_type) && some_msg[:msg_type] == "error")
84
- end
85
-
86
- # Transform the ruby obj -> to a Hash
87
- def to_hash
88
- index_hash = Hash.new
89
- index_hash["json_claz"] = self.class.name
90
- index_hash["id"] = id
91
- index_hash["node_id"] = node_id
92
- index_hash["node_name"] = node_name
93
- index_hash["appdefns"] = appdefns
94
- index_hash["created_at"] = created_at
95
- index_hash["some_msg"] = some_msg
96
- index_hash
97
- end
98
-
99
- # Serialize this object as a hash: called from JsonCompat.
100
- # Verify if this called from JsonCompat during testing.
101
- def to_json(*a)
102
- for_json.to_json(*a)
103
- end
104
-
105
- def for_json
106
- result = {
107
- "id" => id,
108
- "node_id" => node_id,
109
- "node_name" => node_name,
110
- "appdefns" => appdefns,
111
- "created_at" => created_at
112
- }
113
- result
114
- end
115
-
116
-
117
- def self.json_create(o)
118
- appdefns = new
119
- appdefns.id(o["id"]) if o.has_key?("id")
120
- appdefns.node_id(o["node_id"]) if o.has_key?("node_id")
121
- appdefns.node_name(o["node_name"]) if o.has_key?("node_name")
122
- appdefns.created_at(o["created_at"]) if o.has_key?("created_at")
123
-
124
- #APP DEFINITIONS
125
- op = o["appdefns"]
126
- appdefns.appdefns[:timetokill] = op["timetokill"] if op && op.has_key?("timetokill")
127
- appdefns.appdefns[:metered] = op["metered"] if op && op.has_key?("metered")
128
- appdefns.appdefns[:logging]= op["logging"] if op && op.has_key?("logging")
129
- appdefns.appdefns[:runtime_exec] = op["runtime_exec"] if op && op.has_key?("runtime_exec")
130
- appdefns.appdefns[:env_sh] = op["env_sh"] if op && op.has_key?("env_sh")
131
-
132
- appdefns.some_msg[:code] = o["code"] if o.has_key?("code")
133
- appdefns.some_msg[:msg_type] = o["msg_type"] if o.has_key?("msg_type")
134
- appdefns.some_msg[:msg]= o["msg"] if o.has_key?("msg")
135
- appdefns.some_msg[:links] = o["links"] if o.has_key?("links")
136
-
137
- appdefns
138
- end
139
-
140
- def self.from_hash(o,tmp_email=nil, tmp_api_key=nil)
141
- appdefns = self.new(tmp_email, tmp_api_key)
142
- appdefns.from_hash(o)
143
- appdefns
144
- end
145
-
146
- def from_hash(o)
147
- @id = o["id"] if o.has_key?("id")
148
- @node_id = o["node_id"] if o.has_key?("node_id")
149
- @node_name = o["node_name"] if o.has_key?("node_name")
150
- @appdefns = o["appdefns"] if o.has_key?("appdefns")
151
- @created_at = o["created_at"] if o.has_key?("created_at")
152
- self
153
- end
154
-
155
- def self.create(o,tmp_email=nil, tmp_api_key=nil)
156
- acct = from_hash(o,tmp_email, tmp_api_key)
157
- acct.create
158
- end
159
-
160
- # Create the node via the REST API
161
- def create
162
- megam_rest.post_appdefn(to_hash)
163
- end
164
-
165
- # Load a account by email_p
166
- def self.show(id,tmp_email=nil, tmp_api_key=nil)
167
- appdefns = self.new(tmp_email, tmp_api_key)
168
- appdefns.megam_rest.get_appdefn(id)
169
- end
170
-
171
- # Load a account by email_p
172
- def self.show_by_node(node_name, id,tmp_email=nil, tmp_api_key=nil)
173
- appdefns = self.new(tmp_email, tmp_api_key)
174
- appdefns.megam_rest.get_appdefn(node_name,id)
175
- end
176
-
177
- def to_s
178
- Megam::Stuff.styled_hash(to_hash)
179
- end
180
-
181
- end
182
- end
@@ -1,148 +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 AppdefnsCollection
18
- include Enumerable
19
-
20
-
21
- attr_reader :iterator
22
- def initialize
23
- @appdefns = Array.new
24
- @appdefns_by_name = Hash.new
25
- @insert_after_idx = nil
26
- end
27
-
28
- def all_appdefns
29
- @appdefns
30
- end
31
-
32
- def [](index)
33
- @appdefns[index]
34
- end
35
-
36
- def []=(index, arg)
37
- is_megam_appdefn(arg)
38
- @appdefns[index] = arg
39
- @appdefns_by_name[arg.id] = index
40
- end
41
-
42
- def <<(*args)
43
- args.flatten.each do |a|
44
- is_megam_appdefn(a)
45
- @appdefns << a
46
- @appdefns_by_name[a.id] = @appdefns.length - 1
47
- end
48
- self
49
- end
50
-
51
- # 'push' is an alias method to <<
52
- alias_method :push, :<<
53
-
54
- def insert(appdefn)
55
- is_megam_appdefn(appdefn)
56
- if @insert_after_idx
57
- # in the middle of executing a run, so any Appdefnss inserted now should
58
- # be placed after the most recent addition done by the currently executing
59
- # appdefns
60
- @appdefns.insert(@insert_after_idx + 1, appdefn)
61
- # update name -> location mappings and register new appdefns
62
- @appdefns_by_name.each_key do |key|
63
- @appdefns_by_name[key] += 1 if @appdefns_by_name[key] > @insert_after_idx
64
- end
65
- @appdefns_by_name[appdefn.id] = @insert_after_idx + 1
66
- @insert_after_idx += 1
67
- else
68
- @appdefns << appdefn
69
- @appdefns_by_name[appdefn.id] = @appdefns.length - 1
70
- end
71
- end
72
-
73
- def each
74
- @appdefns.each do |appdefn|
75
- yield appdefn
76
- end
77
- end
78
-
79
- def each_index
80
- @appdefns.each_index do |i|
81
- yield i
82
- end
83
- end
84
-
85
- def empty?
86
- @appdefns.empty?
87
- end
88
-
89
- def lookup(appdefn)
90
- lookup_by = nil
91
- if appdefn.kind_of?(Megam::Appdefns)
92
- lookup_by = appdefn.id
93
- elsif appdefn.kind_of?(String)
94
- lookup_by = appdefn
95
- else
96
- raise ArgumentError, "Must pass a Megam::Appdefns or String to lookup"
97
- end
98
- res = @appdefns_by_name[lookup_by]
99
- unless res
100
- raise ArgumentError, "Cannot find a appdefn matching #{lookup_by} (did you define it first?)"
101
- end
102
- @appdefns[res]
103
- end
104
-
105
- # Transform the ruby obj -> to a Hash
106
- def to_hash
107
- index_hash = Hash.new
108
- self.each do |appdefn|
109
- index_hash[appdefn.id] = appdefn.to_s
110
- end
111
- index_hash
112
- end
113
-
114
- # Serialize this object as a hash: called from JsonCompat.
115
- # Verify if this called from JsonCompat during testing.
116
- def to_json(*a)
117
- for_json.to_json(*a)
118
- end
119
-
120
-
121
- def self.json_create(o)
122
- collection = self.new()
123
- o["results"].each do |appdefns_list|
124
- appdefns_array = appdefns_list.kind_of?(Array) ? appdefns_list : [ appdefns_list ]
125
- appdefns_array.each do |appdefn|
126
- collection.insert(appdefn)
127
- end
128
- end
129
- collection
130
- end
131
-
132
- private
133
-
134
-
135
-
136
- def is_megam_appdefn(arg)
137
- unless arg.kind_of?(Megam::Appdefns)
138
- raise ArgumentError, "Members must be Megam::Appdefn's"
139
- end
140
- true
141
- end
142
-
143
- def to_s
144
- Megam::Stuff.styled_hash(to_hash)
145
- end
146
-
147
- end
148
- end