megam_api 0.92 → 0.93

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 071caa7bd474a339b47140544b4e0a8d91db1c35
4
- data.tar.gz: fc7453b06ad55819e3c56effb9d7f87b04f277c6
3
+ metadata.gz: d8a15e5000dc77156d71acc72cfd7e6938bdd22a
4
+ data.tar.gz: fb4fcafb4e1bd33e7a0813524d1b6c80fb4fed2f
5
5
  SHA512:
6
- metadata.gz: 4c8cdd71db440428818116497f3eb0e0fe4a9271a3a25e0f8978f1595d7274d26da043f1677d482efa1a1a9a51bdc38ea28df7193befc18f57143b5f142895fb
7
- data.tar.gz: d9cc61b373ee547b96a23dc3d683eff055b25a4d670647bb359c4d219f0952b9092030015f5c610269418727ae25b71f3c0c0cdbb656c53650de8b52b298136a
6
+ metadata.gz: 58ef61fcfeeef6795df7fbb9f94ba8cf884d24b6e78e03e3b0ec3663d552bb572698a2218bba9441a178109921ea42bd5a6621ead97126a562aa55cdd658204a
7
+ data.tar.gz: 267663ea7f418aa31a6cad29e0d1155ea941b0f223283c0145dbf7652d624dbd3ab31d03123e1b1d2cf9f75fc9052cd2d30baeffac2ce6b8a1d06e0cc8031da3
data/lib/megam/api.rb CHANGED
@@ -98,6 +98,7 @@ module Megam
98
98
  X_Megam_DATE = 'X-Megam-DATE'.freeze
99
99
  X_Megam_HMAC = 'X-Megam-HMAC'.freeze
100
100
  X_Megam_OTTAI = 'X-Megam-OTTAI'.freeze
101
+ X_Megam_ORG = 'X-Megam-ORG'.freeze
101
102
 
102
103
  HEADERS = {
103
104
  'Accept' => 'application/json',
@@ -131,7 +132,9 @@ module Megam
131
132
  @options = OPTIONS.merge(options)
132
133
  @api_key = @options.delete(:api_key) || ENV['MEGAM_API_KEY']
133
134
  @email = @options.delete(:email)
134
- fail Megam::API::Errors::AuthKeysMissing if @email.nil? || @api_key.nil?
135
+ @password = @options.delete(:password)
136
+ @org_id = @options.delete(:org_id)
137
+ fail Megam::API::Errors::AuthKeysMissing if (@email.nil? && @api_key.nil?) || (@email.nil? && @password.nil?)
135
138
  end
136
139
 
137
140
  def request(params, &block)
@@ -184,7 +187,7 @@ module Megam
184
187
  Megam::Log.debug("#{response.body}")
185
188
 
186
189
  begin
187
- unless response.headers[X_Megam_OTTAI]
190
+ unless response.headers[X_Megam_OTTAI]
188
191
  response.body = Megam::JSONCompat.from_json(response.body.chomp)
189
192
  Megam::Log.debug('RESPONSE: Ruby Object')
190
193
  else
@@ -214,8 +217,8 @@ module Megam
214
217
  @options[:path] = API_VERSION2 + @options[:path]
215
218
  encoded_api_header = encode_header(@options)
216
219
  @options[:headers] = HEADERS.merge(X_Megam_HMAC => encoded_api_header[:hmac],
217
- X_Megam_DATE => encoded_api_header[:date]).merge(@options[:headers])
218
-
220
+ X_Megam_DATE => encoded_api_header[:date], X_Megam_ORG => "#{@org_id}").merge(@options[:headers])
221
+ @options[:headers] = @options[:headers].merge('X-Megam-PUTTUSAVI' => "true") unless (@password == "" || @password.nil?)
219
222
  Megam::Log.debug('HTTP Request Data:')
220
223
  Megam::Log.debug("> HTTP #{@options[:scheme]}://#{@options[:host]}")
221
224
  @options.each do |key, value|
@@ -248,8 +251,12 @@ module Megam
248
251
  data = "#{current_date}" + "\n" + "#{cmd_parms[:path]}" + "\n" + "#{body_base64}"
249
252
 
250
253
  digest = OpenSSL::Digest.new('sha1')
251
- movingFactor = data.rstrip!
252
- hash = OpenSSL::HMAC.hexdigest(digest, @api_key, movingFactor)
254
+ movingFactor = data.rstrip!
255
+ if !(@password.nil?)
256
+ hash = OpenSSL::HMAC.hexdigest(digest, Base64.strict_decode64(@password), movingFactor)
257
+ else
258
+ hash = OpenSSL::HMAC.hexdigest(digest, @api_key, movingFactor)
259
+ end
253
260
  final_hmac = @email + ':' + hash
254
261
  header_params = { hmac: final_hmac, date: current_date }
255
262
  end
@@ -1,7 +1,6 @@
1
1
  module Megam
2
2
  class API
3
3
 
4
- # GET /nodes
5
4
  def get_marketplaceapps
6
5
  @options = {:path => '/marketplaces',:body => ""}.merge(@options)
7
6
 
@@ -1,57 +1,51 @@
1
1
  module Megam
2
2
  class API
3
+ def get_organizations
3
4
 
4
- def get_organizations
5
+ @options = {:path => '/organizations',:body => ''}.merge(@options)
5
6
 
6
- @options = {:path => '/organizations',:body => ''}.merge(@options)
7
-
8
- request(
7
+ request(
9
8
  :expects => 200,
10
9
  :method => :get,
11
10
  :body => @options[:body]
12
11
 
13
12
  )
14
- end
13
+ end
15
14
 
16
- def get_organization(id)
15
+ def get_organization(id)
17
16
 
18
- @options = {:path => "/organizations/#{id}",
17
+ @options = {:path => "/organizations/#{id}",
19
18
  :body => ''}.merge(@options)
20
19
 
21
- request(
20
+ request(
22
21
  :expects => 200,
23
22
  :method => :get,
24
23
  :body => @options[:body]
25
24
  )
26
- end
25
+ end
27
26
 
28
-
29
- def post_organization(new_organization)
27
+ def post_organization(new_organization)
30
28
 
31
29
  @options = {:path => '/organizations/content',
32
30
  :body => Megam::JSONCompat.to_json(new_organization)}.merge(@options)
33
31
 
34
-
35
- request(
32
+ request(
36
33
  :expects => 201,
37
34
  :method => :post,
38
35
  :body => @options[:body]
39
36
  )
40
- end
41
-
42
-
37
+ end
43
38
 
44
39
  def update_organization(new_organization)
45
40
 
46
- @options = {:path => '/organizations/update',
41
+ @options = {:path => '/organizations/update',
47
42
  :body => Megam::JSONCompat.to_json(new_organization)}.merge(@options)
48
43
 
49
-
50
- request(
44
+ request(
51
45
  :expects => 201,
52
46
  :method => :post,
53
47
  :body => @options[:body]
54
48
  )
55
- end
56
- end
49
+ end
50
+ end
57
51
  end
@@ -1,5 +1,5 @@
1
1
  module Megam
2
2
  class API
3
- VERSION = "0.92"
3
+ VERSION = "0.93"
4
4
  end
5
5
  end
@@ -15,7 +15,7 @@
15
15
  #
16
16
  module Megam
17
17
  class Account < Megam::ServerAPI
18
- def initialize(email=nil, api_key=nil, host=nil)
18
+ def initialize(o)
19
19
  @id = nil
20
20
  @email = nil
21
21
  @api_key = nil
@@ -28,7 +28,7 @@ module Megam
28
28
  @password_reset_sent_at = nil
29
29
  @created_at = nil
30
30
  @some_msg = {}
31
- super(email, api_key, host)
31
+ super({:email => o[:email], :api_key => o[:api_key], :host => o[:host], :password => o[:password], :org_id => o[:org_id]})
32
32
  end
33
33
 
34
34
  #used by resque workers and any other background job
@@ -181,7 +181,7 @@ module Megam
181
181
 
182
182
  # Create a Megam::Account from JSON (used by the backgroud job workers)
183
183
  def self.json_create(o)
184
- acct = new
184
+ acct = new({})
185
185
  acct.id(o["id"]) if o.has_key?("id")
186
186
  acct.email(o["email"]) if o.has_key?("email")
187
187
  acct.api_key(o["api_key"]) if o.has_key?("api_key")
@@ -201,7 +201,7 @@ module Megam
201
201
  end
202
202
 
203
203
  def self.from_hash(o)
204
- acct = self.new(o[:email], o[:api_key], o[:host])
204
+ acct = self.new({:email => o[:email], :api_key => o[:api_key], :host => o[:host], :password => o[:password], :org_id => o[:org_id]})
205
205
  acct.from_hash(o)
206
206
  acct
207
207
  end
@@ -231,13 +231,19 @@ module Megam
231
231
  megam_rest.post_accounts(to_hash)
232
232
  end
233
233
 
234
-
234
+ =begin
235
235
  # Load a account by email_p
236
- def self.show(email,api_key,host=nil)
237
- acct = self.new(email, api_key, host)
236
+ def self.show(email,api_key,host=nil,password=nil)
237
+ acct = self.new(email, api_key, host, password)
238
238
  acct.megam_rest.get_accounts(email)
239
239
  end
240
+ =end
240
241
 
242
+ # Load a account by email_p
243
+ def self.show(o)
244
+ acct = self.new({:email => o[:email], :api_key => o[:api_key], :host => o[:host], :password => o[:password], :org_id => o[:org_id]})
245
+ acct.megam_rest.get_accounts(o[:email])
246
+ end
241
247
 
242
248
  def self.update(o)
243
249
  acct = from_hash(o)
@@ -16,22 +16,22 @@
16
16
 
17
17
  module Megam
18
18
  class Assemblies < Megam::ServerAPI
19
- def initialize(email=nil, api_key=nil, host=nil)
19
+ def initialize(o)
20
20
  @id = nil
21
21
  @accounts_id = nil
22
22
  @org_id = nil
23
23
  @name = nil
24
+ @password = nil
24
25
  @assemblies = []
25
26
  @inputs = []
26
27
  @created_at = nil
27
- super(email, api_key, host)
28
+ super(o)
28
29
  end
29
30
 
30
31
  def assemblies
31
32
  self
32
33
  end
33
34
 
34
-
35
35
  def id(arg=nil)
36
36
  if arg != nil
37
37
  @id = arg
@@ -47,7 +47,7 @@ module Megam
47
47
  @accounts_id
48
48
  end
49
49
  end
50
-
50
+
51
51
  def org_id(arg=nil)
52
52
  if arg != nil
53
53
  @org_id = arg
@@ -56,6 +56,14 @@ module Megam
56
56
  end
57
57
  end
58
58
 
59
+ def password(arg=nil)
60
+ if arg != nil
61
+ @password = arg
62
+ else
63
+ @password
64
+ end
65
+ end
66
+
59
67
  def name(arg=nil)
60
68
  if arg != nil
61
69
  @name = arg
@@ -72,7 +80,6 @@ module Megam
72
80
  end
73
81
  end
74
82
 
75
-
76
83
  def inputs(arg=[])
77
84
  if arg != []
78
85
  @inputs = arg
@@ -127,7 +134,7 @@ module Megam
127
134
  end
128
135
 
129
136
  def self.json_create(o)
130
- asm = new
137
+ asm = new({})
131
138
  asm.id(o["id"]) if o.has_key?("id")
132
139
  asm.name(o["name"]) if o.has_key?("name")
133
140
  asm.accounts_id(o["accounts_id"]) if o.has_key?("accounts_id")
@@ -138,8 +145,8 @@ module Megam
138
145
  asm
139
146
  end
140
147
 
141
- def self.from_hash(o,tmp_email=nil, tmp_api_key=nil, tmp_host=nil)
142
- asm = self.new(tmp_email, tmp_api_key, tmp_host)
148
+ def self.from_hash(o)
149
+ asm = self.new(o)
143
150
  asm.from_hash(o)
144
151
  asm
145
152
  end
@@ -148,15 +155,15 @@ module Megam
148
155
  @id = o["id"] if o.has_key?("id")
149
156
  @name = o["name"] if o.has_key?("name")
150
157
  @accounts_id = o["accounts_id"] if o.has_key?("accounts_id")
151
- @org_id = o["org_id"] if o.has_key?("org_id")
158
+ @org_id = o["org_id"] if o.has_key?("org_id")
152
159
  @assemblies = o["assemblies"] if o.has_key?("assemblies")
153
- @inputs = o["inputs"] if o.has_key?("inputs")
160
+ @inputs = o["inputs"] if o.has_key?("inputs")
154
161
  @created_at = o["created_at"] if o.has_key?("created_at")
155
162
  self
156
163
  end
157
164
 
158
165
  def self.create(params)
159
- asm = from_hash(params, params["email"] || params[:email], params["api_key"] || params[:api_key], params["host"] || params[:host])
166
+ asm = from_hash(params)
160
167
  asm.create
161
168
  end
162
169
 
@@ -166,13 +173,13 @@ module Megam
166
173
  end
167
174
 
168
175
  # Load a account by email_p
169
- def self.show(one_assemblies_id, tmp_email=nil, tmp_api_key=nil, tmp_host=nil)
170
- asm = self.new(tmp_email, tmp_api_key, tmp_host)
171
- asm.megam_rest.get_one_assemblies(one_assemblies_id)
176
+ def self.show(o)
177
+ asm = self.new(o)
178
+ asm.megam_rest.get_one_assemblies(o[:assemblies_id])
172
179
  end
173
180
 
174
181
  def self.list(params)
175
- asm = self.new(params["email"], params["api_key"], params["host"])
182
+ asm = self.new(params)
176
183
  asm.megam_rest.get_assemblies
177
184
  end
178
185
 
@@ -16,7 +16,7 @@
16
16
 
17
17
  module Megam
18
18
  class Assembly < Megam::ServerAPI
19
- def initialize(email = nil, api_key = nil, host = nil)
19
+ def initialize(o)
20
20
  @id = nil
21
21
  @asms_id = nil
22
22
  @name = nil
@@ -28,7 +28,7 @@ module Megam
28
28
  @status = nil
29
29
  @created_at = nil
30
30
 
31
- super(email, api_key, host)
31
+ super(o)
32
32
  end
33
33
 
34
34
  def assembly
@@ -124,7 +124,7 @@ module Megam
124
124
  index_hash = {}
125
125
  index_hash['json_claz'] = self.class.name
126
126
  index_hash['id'] = id
127
- index_hash["asms_id"] = asms_id
127
+ index_hash["asms_id"] = asms_id
128
128
  index_hash['name'] = name
129
129
  index_hash['components'] = components
130
130
  index_hash['tosca_type'] = tosca_type
@@ -159,7 +159,7 @@ module Megam
159
159
  end
160
160
 
161
161
  def self.json_create(o)
162
- asm = new
162
+ asm = new({})
163
163
  asm.id(o['id']) if o.key?('id')
164
164
  asm.asms_id(o["asms_id"]) if o.has_key?("asms_id")
165
165
  asm.name(o['name']) if o.key?('name')
@@ -173,15 +173,15 @@ module Megam
173
173
  asm
174
174
  end
175
175
 
176
- def self.from_hash(o, tmp_email = nil, tmp_api_key = nil, tmp_host = nil)
177
- asm = new(tmp_email, tmp_api_key, tmp_host)
176
+ def self.from_hash(o)
177
+ asm = new(o)
178
178
  asm.from_hash(o)
179
179
  asm
180
180
  end
181
181
 
182
182
  def from_hash(o)
183
183
  @id = o['id'] if o.key?('id')
184
- @asms_id = o["asms_id"] if o.has_key?("asms_id")
184
+ @asms_id = o["asms_id"] if o.has_key?("asms_id")
185
185
  @name = o['name'] if o.key?('name')
186
186
  @components = o['components'] if o.key?('components')
187
187
  @tosca_type = o['tosca_type'] if o.key?('tosca_type')
@@ -194,17 +194,17 @@ module Megam
194
194
  end
195
195
 
196
196
  def self.show(params)
197
- asm = new(params['email'], params['api_key'], params['host'])
197
+ asm = new(params)
198
198
  asm.megam_rest.get_one_assembly(params['id'])
199
199
  end
200
200
 
201
201
  def self.update(params)
202
- asm = from_hash(params, params['email'] || params[:email], params['api_key'] || params[:api_key], params['host'] || params[:host])
202
+ asm = from_hash(params)
203
203
  asm.update
204
204
  end
205
205
 
206
206
  def self.upgrade(params)
207
- asm = from_hash(params, params['email'] || params[:email], params['api_key'] || params[:api_key], params['host'] || params[:host])
207
+ asm = from_hash(params)
208
208
  asm.megam_rest.upgrade_assembly(params['id'])
209
209
  end
210
210
 
@@ -218,3 +218,4 @@ module Megam
218
218
  end
219
219
  end
220
220
  end
221
+
@@ -113,7 +113,7 @@ module Megam
113
113
 
114
114
  #
115
115
  def self.json_create(o)
116
- aunit = new
116
+ aunit = new({})
117
117
  aunit.id(o["id"]) if o.has_key?("id")
118
118
  aunit.name(o["name"]) if o.has_key?("name")
119
119
  aunit.duration(o["duration"]) if o.has_key?("duration")
@@ -179,3 +179,4 @@ module Megam
179
179
 
180
180
  end
181
181
  end
182
+
@@ -199,3 +199,4 @@ module Megam
199
199
 
200
200
  end
201
201
  end
202
+
@@ -203,3 +203,4 @@ module Megam
203
203
 
204
204
  end
205
205
  end
206
+
@@ -16,7 +16,7 @@
16
16
 
17
17
  module Megam
18
18
  class Components < Megam::ServerAPI
19
- def initialize(email = nil, api_key = nil, host = nil)
19
+ def initialize(o)
20
20
  @id = nil
21
21
  @name = nil
22
22
  @tosca_type = nil
@@ -37,7 +37,7 @@ module Megam
37
37
  @url = nil
38
38
  @created_at = nil
39
39
 
40
- super(email, api_key, host)
40
+ super(o)
41
41
  end
42
42
 
43
43
  def components
@@ -244,7 +244,7 @@ module Megam
244
244
  end
245
245
 
246
246
  def self.json_create(o)
247
- asm = new
247
+ asm = new({})
248
248
  asm.id(o['id']) if o.key?('id')
249
249
  asm.name(o['name']) if o.key?('name')
250
250
  asm.tosca_type(o['tosca_type']) if o.key?('tosca_type')
@@ -269,8 +269,8 @@ module Megam
269
269
  asm
270
270
  end
271
271
 
272
- def self.from_hash(o, tmp_email = nil, tmp_api_key = nil, tmp_host = nil)
273
- asm = new(tmp_email, tmp_api_key, tmp_host)
272
+ def self.from_hash(o)
273
+ asm = new(o)
274
274
  asm.from_hash(o)
275
275
  asm
276
276
  end
@@ -292,18 +292,18 @@ module Megam
292
292
  end
293
293
 
294
294
  def self.create(params)
295
- asm = from_hash(params, params['email'], params['api_key'], params['host'])
295
+ asm = from_hash(params)
296
296
  asm.create
297
297
  end
298
298
 
299
299
  # Load a account by email_p
300
300
  def self.show(params)
301
- asm = new(params['email'], params['api_key'], params['host'])
301
+ asm = new(params)
302
302
  asm.megam_rest.get_components(params['id'])
303
303
  end
304
304
 
305
305
  def self.update(params)
306
- asm = from_hash(params, params['email'] || params[:email], params['api_key'] || params[:api_key], params['host'] || params[:host])
306
+ asm = from_hash(params)
307
307
  asm.update
308
308
  end
309
309