megam_api 0.83 → 0.85

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f814ba34699702613f4170de436101ee77fd7f73
4
- data.tar.gz: 3679a992351bdc4526ed4587a451f1be3e9e9d3e
3
+ metadata.gz: e7b28d854d2bc822f5e8948f61a254d8de1c4873
4
+ data.tar.gz: d03f30284539a0b2cdef981edd4eef32cbc0e24d
5
5
  SHA512:
6
- metadata.gz: 9711406ffa238bf689b06deee32c0ab572730fc7bd05545a29e08f392cb6019a56a8ef7b518dfd88eebc7bb14fefa532c3ecaca281ee632d4a1e4e63fd3c645d
7
- data.tar.gz: 11a0ac3339a11c22814a9a26a581f61458d11c325496a37aab20719196e2fcfd4a09391676d358a89f072a2ac2235d63567658e94ac6491a465292313b2181e1
6
+ metadata.gz: b974cd6149d3efdd35b100a4520b7cc2bda5430673c86eadd46c88f747f5c8d17c54016736015d4ae94fd2c3a3c8c0c688bedd39251361ca8d96af65c6298d5f
7
+ data.tar.gz: c46041ec809c04fdffd5ebcb149361c9c69ebfd02a0b3c2bc23fcd27eac3ccbf6e7027a13f4bae190a76f1999c7da022f00d0eef2f9b521725139f2b94e9ecea
@@ -14,10 +14,8 @@ require 'megam/api/errors'
14
14
  require 'megam/api/version'
15
15
  require 'megam/api/accounts'
16
16
  require 'megam/api/requests'
17
- # require 'megam/api/cloud_tool_settings'
18
17
  require 'megam/api/sshkeys'
19
18
  require 'megam/api/marketplaces'
20
- require 'megam/api/marketplace_addons'
21
19
  require 'megam/api/organizations'
22
20
  require 'megam/api/domains'
23
21
  require 'megam/api/csars'
@@ -54,14 +52,10 @@ require 'megam/core/error'
54
52
  require 'megam/core/account'
55
53
  require 'megam/core/request'
56
54
  require 'megam/core/request_collection'
57
- # require 'megam/core/cloudtoolsetting'
58
- # require 'megam/core/cloudtoolsetting_collection'
59
55
  require 'megam/core/sshkey'
60
56
  require 'megam/core/sshkey_collection'
61
57
  require 'megam/core/marketplace'
62
58
  require 'megam/core/marketplace_collection'
63
- require 'megam/core/marketplace_addon'
64
- require 'megam/core/marketplace_addon_collection'
65
59
  require 'megam/core/organizations'
66
60
  require 'megam/core/organizations_collection'
67
61
  require 'megam/core/domains'
@@ -141,7 +135,7 @@ module Megam
141
135
  end
142
136
 
143
137
  def request(params, &block)
144
-
138
+
145
139
  just_color_debug("#{@options[:path]}")
146
140
  start = Time.now
147
141
  Megam::Log.debug('START')
@@ -1,5 +1,5 @@
1
1
  module Megam
2
2
  class API
3
- VERSION = "0.83"
3
+ VERSION = "0.85"
4
4
  end
5
5
  end
@@ -25,10 +25,6 @@ module Megam
25
25
  configuration.inspect
26
26
  end
27
27
 
28
- megam_api_server_url "http://localhost:9000"
29
-
30
- megam_api_version "v2"
31
-
32
28
  email nil
33
29
  api_key nil
34
30
 
@@ -35,12 +35,8 @@ module Megam
35
35
  MEGAM_BALANCESCOLLECTION = 'Megam::BalancesCollection'.freeze
36
36
  MEGAM_BILLEDHISTORIES = 'Megam::Billedhistories'.freeze
37
37
  MEGAM_BILLEDHISTORIESCOLLECTION = 'Megam::BilledhistoriesCollection'.freeze
38
- MEGAM_INVOICESCOLLECTION = 'Megam::InvoicesCollection'.freeze
39
- MEGAM_INVOICES = 'Megam::Invoices'.freeze
40
- MEGAM_BILLINGS = 'Megam::Billings'.freeze
38
+ MEGAM_BILLINGS = 'Megam::Billings'.freeze
41
39
  MEGAM_BILLINGSCOLLECTION = 'Megam::BillingsCollection'.freeze
42
- MEGAM_CLOUDTOOLSETTING = 'Megam::CloudToolSetting'.freeze
43
- MEGAM_CLOUDTOOLSETTINGCOLLECTION = 'Megam::CloudToolSettingCollection'.freeze
44
40
  MEGAM_COMPONENTS = 'Megam::Components'.freeze
45
41
  MEGAM_COMPONENTSCOLLECTION = 'Megam::ComponentsCollection'.freeze
46
42
  MEGAM_CREDITHISTORIES = 'Megam::Credithistories'.freeze
@@ -51,16 +47,16 @@ module Megam
51
47
  MEGAM_DISCOUNTS = 'Megam::Discounts'.freeze
52
48
  MEGAM_DISCOUNTSCOLLECTION = 'Megam::DiscountsCollection'.freeze
53
49
  MEGAM_ERROR = 'Megam::Error'.freeze
54
- MEGAM_SENSORS = 'Megam::Sensors'.freeze
55
- MEGAM_SENSORSCOLLECTION = 'Megam::SensorsCollection'.freeze
50
+ MEGAM_INVOICESCOLLECTION = 'Megam::InvoicesCollection'.freeze
51
+ MEGAM_INVOICES = 'Megam::Invoices'.freeze
56
52
  MEGAM_MARKETPLACE = 'Megam::MarketPlace'.freeze
57
53
  MEGAM_MARKETPLACECOLLECTION = 'Megam::MarketPlaceCollection'.freeze
58
- MEGAM_MARKETPLACEADDON = 'Megam::MarketPlaceAddons'.freeze
59
- MEGAM_MARKETPLACEADDONCOLLECTION = 'Megam::MarketPlaceAddonsCollection'.freeze
60
54
  MEGAM_ORGANIZATION = 'Megam::Organizations'.freeze
61
55
  MEGAM_ORGANIZATIONSCOLLECTION = 'Megam::OrganizationsCollection'.freeze
62
56
  MEGAM_REQUEST = 'Megam::Request'.freeze
63
57
  MEGAM_REQUESTCOLLECTION = 'Megam::RequestCollection'.freeze
58
+ MEGAM_SENSORS = 'Megam::Sensors'.freeze
59
+ MEGAM_SENSORSCOLLECTION = 'Megam::SensorsCollection'.freeze
64
60
  MEGAM_SSHKEY = 'Megam::SshKey'.freeze
65
61
  MEGAM_SSHKEYCOLLECTION = 'Megam::SshKeyCollection'.freeze
66
62
  MEGAM_SUBSCRIPTIONS = 'Megam::Subscriptions'.freeze
@@ -172,10 +168,6 @@ module Megam
172
168
  Megam::MarketPlace
173
169
  when MEGAM_MARKETPLACECOLLECTION
174
170
  Megam::MarketPlaceCollection
175
- when MEGAM_MARKETPLACEADDON
176
- Megam::MarketPlaceAddons
177
- when MEGAM_MARKETPLACEADDONCOLLECTION
178
- Megam::MarketPlaceAddonsCollection
179
171
  when MEGAM_ORGANIZATION
180
172
  Megam::Organizations
181
173
  when MEGAM_ORGANIZATIONSCOLLECTION
@@ -20,7 +20,6 @@ module Megam
20
20
  @cat_id = nil
21
21
  @name = nil
22
22
  @cattype = nil
23
- @command =nil
24
23
  @action = nil
25
24
  @category = nil
26
25
  @some_msg = {}
@@ -90,14 +89,6 @@ module Megam
90
89
  end
91
90
  end
92
91
 
93
- def command(arg=nil)
94
- if arg != nil
95
- @command = arg
96
- else
97
- @command
98
- end
99
- end
100
-
101
92
  def some_msg(arg=nil)
102
93
  if arg != nil
103
94
  @some_msg = arg
@@ -120,7 +111,6 @@ module Megam
120
111
  index_hash["cattype"] = cattype
121
112
  index_hash["action"] = action
122
113
  index_hash["category"] = category
123
- index_hash["command"] = command
124
114
  index_hash["created_at"] = created_at
125
115
  index_hash
126
116
  end
@@ -139,7 +129,6 @@ module Megam
139
129
  "cattype" => cattype,
140
130
  "action" => action,
141
131
  "category" => category,
142
- "command" => command,
143
132
  "created_at" => created_at
144
133
  }
145
134
  result
@@ -154,7 +143,6 @@ module Megam
154
143
  node.cattype(o["cattype"]) if o.has_key?("cattype")
155
144
  node.action(o["action"]) if o.has_key?("action")
156
145
  node.category(o["category"]) if o.has_key?("category")
157
- node.command(o["command"]) if o.has_key?("command")
158
146
  node.created_at(o["created_at"]) if o.has_key?("created_at")
159
147
  #success or error
160
148
  node.some_msg[:code] = o["code"] if o.has_key?("code")
@@ -177,7 +165,6 @@ module Megam
177
165
  @cattype = o[:cattype] if o.has_key?(:cattype)
178
166
  @action = o[:action] if o.has_key?(:action)
179
167
  @category = o[:category] if o.has_key?(:category)
180
- @command = o[:command] if o.has_key?(:command)
181
168
  @created_at = o[:created_at] if o.has_key?(:created_at)
182
169
  self
183
170
  end
@@ -206,7 +193,6 @@ module Megam
206
193
 
207
194
  def to_s
208
195
  Megam::Stuff.styled_hash(to_hash)
209
- #"---> Megam::Account:[error=#{error?}]\n"+
210
196
  end
211
197
 
212
198
  end
@@ -3,11 +3,11 @@ require File.expand_path("#{File.dirname(__FILE__)}/components")
3
3
  require File.expand_path("#{File.dirname(__FILE__)}/outputs")
4
4
 
5
5
  module Megam
6
- class Mixins
6
+ class Mixins
7
7
  class Assembly
8
8
  attr_reader :name, :components, :policies, :outputs, :mixins
9
9
  def initialize(params)
10
- params = Hash[params.map{ |k, v| [k.to_sym, v] }]
10
+ params = Hash[params.map { |k, v| [k.to_sym, v] }]
11
11
  @name = params[:assemblyname]
12
12
  @mixins = CommonDeployable.new(params)
13
13
  @outputs = Outputs.new(params)
@@ -17,9 +17,9 @@ module Megam
17
17
 
18
18
  def to_hash
19
19
  result = @mixins.to_hash
20
- result[:name] = @name if @name
21
- result[:components] = @components if @components
22
- result[:outputs] = @outputs.to_array if @outputs
20
+ result[:name] = @name if @name
21
+ result[:components] = @components if @components
22
+ result[:outputs] = @outputs.to_array if @outputs
23
23
  result[:policies] = @policies if @policies
24
24
  result
25
25
  end
@@ -38,7 +38,6 @@ module Megam
38
38
  @components = []
39
39
  end
40
40
  end
41
-
42
41
  end
43
42
  end
44
43
  end
@@ -20,8 +20,8 @@ module Megam
20
20
  end
21
21
 
22
22
  def initialize(params)
23
- @tosca_type = ""
24
- @status = "launching"
23
+ @tosca_type = ''
24
+ @status = 'launching'
25
25
  bld_toscatype(params)
26
26
  @inputs = InputGroupData.new(params)
27
27
  set_attributes(params)
@@ -29,9 +29,9 @@ module Megam
29
29
 
30
30
  def to_hash
31
31
  h = {
32
- :status => status,
33
- :tosca_type => tosca_type,
34
- :inputs => inputs.to_hash
32
+ status: status,
33
+ tosca_type: tosca_type,
34
+ inputs: inputs.to_hash
35
35
  }
36
36
  end
37
37
 
@@ -18,18 +18,18 @@ module Megam
18
18
 
19
19
  def to_hash
20
20
  result = @mixins.to_hash
21
- result[:name] = @name if @name
22
- result[:artifacts] = @artifacts if @artifacts
23
- result[:repo] = @repo if @repo
24
- result[:operations] = @operations if @operations
25
- result[:outputs] = @outputs.to_array if @outputs
21
+ result[:name] = @name if @name
22
+ result[:artifacts] = @artifacts if @artifacts
23
+ result[:repo] = @repo if @repo
24
+ result[:operations] = @operations if @operations
25
+ result[:outputs] = @outputs.to_array if @outputs
26
26
  result[:related_components] = @related_components if @related_components
27
27
  result
28
28
  end
29
29
 
30
- def to_a
31
- [to_hash]
32
- end
30
+ def to_a
31
+ [to_hash]
32
+ end
33
33
 
34
34
  private
35
35
 
@@ -38,13 +38,13 @@ module Megam
38
38
  end
39
39
 
40
40
  def add_related_components(params)
41
- related_components = []
41
+ related_components = []
42
42
  related_components << "#{params[:assemblyname]}.#{params[:domain]}/#{params[:componentname]}" if params.key?(:bind_type)
43
43
  end
44
44
 
45
45
  def add_operations(params)
46
46
  operations = []
47
- operations.push(create_operation(Operations::CI, Operations::CI_DESCRIPTON, params)) unless (params[:scm_name] && params[:scm_name].strip.empty?)
47
+ operations.push(create_operation(Operations::CI, Operations::CI_DESCRIPTON, params)) unless params[:scm_name] && params[:scm_name].strip.empty?
48
48
  operations.push(create_operation(Operations::BIND, Operations::BIND_DESCRIPTON, params)) if params.key?(:bind_type)
49
49
  end
50
50
 
@@ -74,18 +74,17 @@ module Megam
74
74
  set_attributes(params)
75
75
  @type = params[:type]
76
76
  @source = params[:scm_name]
77
- @url = params[:source]
78
- @oneclick = params[:oneclick]
77
+ @url = params[:source]
78
+ @oneclick = params[:oneclick]
79
79
  end
80
80
 
81
81
  def tohash
82
- { :rtype => @type,
83
- :source => @source,
84
- :oneclick => @oneclick,
85
- :url => @url
82
+ { rtype: @type,
83
+ source: @source,
84
+ oneclick: @oneclick,
85
+ url: @url
86
86
  }
87
87
  end
88
-
89
88
  end
90
89
 
91
90
  class Operations
@@ -94,16 +93,16 @@ module Megam
94
93
 
95
94
  ATTRIBUTES = []
96
95
 
97
- CI = "CI".freeze
98
- CI_DESCRIPTON = "always up to date code. sweet."
96
+ CI = 'CI'.freeze
97
+ CI_DESCRIPTON = 'always up to date code. sweet.'
99
98
 
100
- BIND = "bind".freeze
101
- BIND_DESCRIPTON = "bind. sweet."
102
- def initialize(params,type, desc)
99
+ BIND = 'bind'.freeze
100
+ BIND_DESCRIPTON = 'bind. sweet.'
101
+ def initialize(params, type, desc)
103
102
  @type = type
104
103
  @desc = desc
105
- #set_attributes(params)
106
- @prop = prop(params)
104
+ # set_attributes(params)
105
+ @prop = prop(params)
107
106
  end
108
107
 
109
108
  def attributes
@@ -111,19 +110,20 @@ module Megam
111
110
  end
112
111
 
113
112
  def tohash
114
- { :operation_type => @type,
115
- :description => @desc,
116
- :properties => @prop
113
+ { operation_type: @type,
114
+ description: @desc,
115
+ properties: @prop
117
116
  }
118
117
  end
119
- #Key_name mismatch. Key_name is to be changed.
120
- def prop(params)
121
- op = []
122
- op << { 'key' => 'type', 'value' => params[:scm_name] }
123
- op << { 'key' => 'token', 'value' => params[:scmtoken] || '' }
124
- op << { 'key' => 'username', 'value' => params[:scmowner] || '' }
125
- op
126
- end
118
+
119
+ # Key_name mismatch. Key_name is to be changed.
120
+ def prop(params)
121
+ op = []
122
+ op << { 'key' => 'type', 'value' => params[:scm_name] }
123
+ op << { 'key' => 'token', 'value' => params[:scmtoken] || '' }
124
+ op << { 'key' => 'username', 'value' => params[:scmowner] || '' }
125
+ op
126
+ end
127
127
  end
128
128
 
129
129
  class Artifacts
@@ -142,9 +142,9 @@ module Megam
142
142
  end
143
143
 
144
144
  def tohash
145
- { :artifact_type => "",
146
- :content => "",
147
- :requirements => []
145
+ { artifact_type: '',
146
+ content: '',
147
+ requirements: []
148
148
  }
149
149
  end
150
150
  end
@@ -1,14 +1,14 @@
1
1
  module Nilavu
2
2
  module MegamAttributes
3
3
  ATTRIBUTES = []
4
- KEY = "key".freeze
5
- VALUE = "value".freeze
4
+ KEY = 'key'.freeze
5
+ VALUE = 'value'.freeze
6
6
  attr_accessor *ATTRIBUTES
7
7
  def attributes
8
8
  NotImplementedError
9
9
  end
10
10
 
11
- def initialize(control_data={})
11
+ def initialize(control_data = {})
12
12
  set_attributes(control_data)
13
13
  end
14
14
 
@@ -19,6 +19,5 @@ module Megam
19
19
  def to_array
20
20
  array = []
21
21
  end
22
-
23
22
  end
24
23
  end
@@ -4,26 +4,24 @@ module Megam
4
4
  attr_reader :bind_type, :policymembers
5
5
 
6
6
  def initialize(params)
7
- @bind_type = params[:bind_type] if params.key?(:bind_type)
8
- @policymembers = params[:policymembers] if params.key?(:policymembers)
7
+ @bind_type = params[:bind_type] if params.key?(:bind_type)
8
+ @policymembers = params[:policymembers] if params.key?(:policymembers)
9
9
  end
10
10
 
11
11
  def to_array
12
- com = []
13
- if @bind_type && @bind_type != 'Unbound service'
14
- value = {
15
- name: 'bind policy',
16
- ptype: 'colocated',
17
- members: [
18
- @policymembers
19
- ]
20
- }
21
- com << value
22
- end
23
- com
12
+ com = []
13
+ if @bind_type && @bind_type != 'Unbound service'
14
+ value = {
15
+ name: 'bind policy',
16
+ ptype: 'colocated',
17
+ members: [
18
+ @policymembers
19
+ ]
20
+ }
21
+ com << value
22
+ end
23
+ com
24
24
  end
25
-
26
-
27
25
  end
28
26
  end
29
27
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: megam_api
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.83'
4
+ version: '0.85'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rajthilak, Kishorekumar Neelamegam, Thomas Alrin, Yeshwanth Kumar, Subash Sethurajan,
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-11-06 00:00:00.000000000 Z
12
+ date: 2015-11-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: excon
@@ -148,7 +148,6 @@ files:
148
148
  - lib/megam/api/errors.rb
149
149
  - lib/megam/api/invoices.rb
150
150
  - lib/megam/api/login.rb
151
- - lib/megam/api/marketplace_addons.rb
152
151
  - lib/megam/api/marketplaces.rb
153
152
  - lib/megam/api/organizations.rb
154
153
  - lib/megam/api/promos.rb
@@ -188,8 +187,6 @@ files:
188
187
  - lib/megam/core/konipai.rb
189
188
  - lib/megam/core/log.rb
190
189
  - lib/megam/core/marketplace.rb
191
- - lib/megam/core/marketplace_addon.rb
192
- - lib/megam/core/marketplace_addon_collection.rb
193
190
  - lib/megam/core/marketplace_collection.rb
194
191
  - lib/megam/core/monologger.rb
195
192
  - lib/megam/core/organizations.rb
@@ -264,8 +261,36 @@ required_rubygems_version: !ruby/object:Gem::Requirement
264
261
  version: '0'
265
262
  requirements: []
266
263
  rubyforge_project:
267
- rubygems_version: 2.4.7
264
+ rubygems_version: 2.4.8
268
265
  signing_key:
269
266
  specification_version: 4
270
267
  summary: Ruby Client for the Megam
271
- test_files: []
268
+ test_files:
269
+ - test/mixins/test_assemblies.rb
270
+ - test/mixins/test_assembly.rb
271
+ - test/mixins/test_component.rb
272
+ - test/test_accounts.rb
273
+ - test/test_assemblies.rb
274
+ - test/test_assembly.rb
275
+ - test/test_availableunits.rb
276
+ - test/test_balances.rb
277
+ - test/test_billedhistories.rb
278
+ - test/test_billings.rb
279
+ - test/test_cat_requests.rb
280
+ - test/test_components.rb
281
+ - test/test_credithistories.rb
282
+ - test/test_csars.rb
283
+ - test/test_discounts.rb
284
+ - test/test_domains.rb
285
+ - test/test_helper.rb
286
+ - test/test_invoices.rb
287
+ - test/test_login.rb
288
+ - test/test_marketplaceaddons.rb
289
+ - test/test_marketplaces.rb
290
+ - test/test_organizations.rb
291
+ - test/test_predefclouds.rb
292
+ - test/test_promos.rb
293
+ - test/test_requests.rb
294
+ - test/test_sensors.rb
295
+ - test/test_sshkeys.rb
296
+ - test/test_subscriptions.rb
@@ -1,27 +0,0 @@
1
- module Megam
2
- class API
3
-
4
- #=begin
5
- def get_addons(node_name)
6
- @options = {:path => "/marketplaceaddons/#{node_name}",:body => ""}.merge(@options)
7
-
8
- request(
9
- :expects => 200,
10
- :method => :get,
11
- :body => @options[:body]
12
- )
13
- end
14
- #=end
15
- def post_addon(new_addon)
16
- @options = {:path => '/marketplaceaddons/content',
17
- :body => Megam::JSONCompat.to_json(new_addon)}.merge(@options)
18
-
19
- request(
20
- :expects => 201,
21
- :method => :post,
22
- :body => @options[:body]
23
- )
24
- end
25
-
26
- end
27
- end
@@ -1,195 +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 MarketPlaceAddons< Megam::ServerAPI
18
-
19
- def initialize(email=nil, api_key=nil, host=nil)
20
- @id = nil
21
- @node_id = nil
22
- @node_name = nil
23
- @marketplace_id = nil
24
- @config = nil
25
- @config_id = nil
26
- @created_at = nil
27
- @some_msg = {}
28
- super(email,api_key,host)
29
- end
30
-
31
- def market_place_addons
32
- self
33
- end
34
-
35
-
36
- def id(arg=nil)
37
- if arg != nil
38
- @id = arg
39
- else
40
- @id
41
- end
42
- end
43
-
44
- def node_id(arg=nil)
45
- if arg != nil
46
- @node_id = arg
47
- else
48
- @node_id
49
- end
50
- end
51
-
52
- def node_name(arg=nil)
53
- if arg != nil
54
- @node_name = arg
55
- else
56
- @node_name
57
- end
58
- end
59
-
60
- def marketplace_id(arg=nil)
61
- if arg != nil
62
- @marketplace_id = arg
63
- else
64
- @marketplace_id
65
- end
66
- end
67
-
68
- def config_id(arg=nil)
69
- if arg != nil
70
- @config_id = arg
71
- else
72
- @config_id
73
- end
74
- end
75
-
76
- def config(arg=nil)
77
- if arg != nil
78
- @config = arg
79
- else
80
- @config
81
- end
82
- end
83
-
84
- def created_at(arg=nil)
85
- if arg != nil
86
- @created_at = arg
87
- else
88
- @created_at
89
- end
90
- end
91
- def some_msg(arg=nil)
92
- if arg != nil
93
- @some_msg = arg
94
- else
95
- @some_msg
96
- end
97
- end
98
-
99
- def error?
100
- crocked = true if (some_msg.has_key?(:msg_type) && some_msg[:msg_type] == "error")
101
- end
102
-
103
- # Transform the ruby obj -> to a Hash
104
- def to_hash
105
- index_hash = Hash.new
106
- index_hash["json_claz"] = self.class.name
107
- index_hash["id"] = id
108
- index_hash["node_id"] = node_id
109
- index_hash["node_name"] = node_name
110
- index_hash["marketplace_id"] = marketplace_id
111
- index_hash["config"] = config
112
- index_hash["config_id"] = config_id
113
- index_hash["created_at"] = created_at
114
- index_hash["some_msg"] = some_msg
115
- index_hash
116
- end
117
-
118
- # Serialize this object as a hash: called from JsonCompat.
119
- # Verify if this called from JsonCompat during testing.
120
- def to_json(*a)
121
- for_json.to_json(*a)
122
- end
123
-
124
- def for_json
125
- result = {
126
- "id" => id,
127
- "node_id" => node_id,
128
- "node_name" => node_name,
129
- "marketplace_id" => marketplace_id,
130
- "config" => {},
131
- "config_id" => config_id,
132
- "created_at" => created_at
133
- }
134
- result
135
- end
136
-
137
-
138
- def self.json_create(o)
139
- addon = new
140
- addon.id(o["id"]) if o.has_key?("id")
141
- addon.node_id(o["node_id"]) if o.has_key?("node_id")
142
- addon.node_name(o["node_name"]) if o.has_key?("node_name")
143
- addon.marketplace_id(o["marketplace_id"]) if o.has_key?("marketplace_id")
144
- addon.config(o["config"]) if o.has_key?("config")
145
- addon.config_id(o["config_id"]) if o.has_key?("config_id")
146
- addon.created_at(o["created_at"]) if o.has_key?("created_at")
147
-
148
- addon.some_msg[:code] = o["code"] if o.has_key?("code")
149
- addon.some_msg[:msg_type] = o["msg_type"] if o.has_key?("msg_type")
150
- addon.some_msg[:msg]= o["msg"] if o.has_key?("msg")
151
- addon.some_msg[:links] = o["links"] if o.has_key?("links")
152
-
153
- addon
154
- end
155
-
156
- def self.from_hash(o,tmp_email=nil, tmp_api_key=nil, tmp_host=nil)
157
- addon = self.new(tmp_email, tmp_api_key, tmp_host)
158
- addon.from_hash(o)
159
- addon
160
- end
161
-
162
- def from_hash(o)
163
- @id = o["id"] if o.has_key?("id")
164
- @node_id = o["node_id"] if o.has_key?("node_id")
165
- @node_name = o["node_name"] if o.has_key?("node_name")
166
- @marketplace_id = o["marketplace_id"] if o.has_key?("marketplace_id")
167
- @config = o["config"] if o.has_key?("config")
168
- @config_id = o["config_id"] if o.has_key?("config_id")
169
- @created_at = o["created_at"] if o.has_key?("created_at")
170
- self
171
- end
172
-
173
- def self.create(o,tmp_email=nil, tmp_api_key=nil, tmp_host=nil)
174
- acct = from_hash(o,tmp_email, tmp_api_key, tmp_host)
175
- acct.create
176
- end
177
-
178
- # Create the addon via the REST API
179
- def create
180
- megam_rest.post_addon(to_hash)
181
- end
182
-
183
- # Load a account by email_p
184
- def self.list(node_name,tmp_email=nil, tmp_api_key=nil, tmp_host=nil)
185
- addon = self.new(tmp_email, tmp_api_key, tmp_host)
186
- addon.megam_rest.get_addons(node_name)
187
- #self
188
- end
189
-
190
- def to_s
191
- Megam::Stuff.styled_hash(to_hash)
192
- end
193
-
194
- end
195
- 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 MarketPlaceAddonsCollection
18
- include Enumerable
19
-
20
-
21
- attr_reader :iterator
22
- def initialize
23
- @addons = Array.new
24
- @addons_by_name = Hash.new
25
- @insert_after_idx = nil
26
- end
27
-
28
- def all_addons
29
- @addons
30
- end
31
-
32
- def [](index)
33
- @addons[index]
34
- end
35
-
36
- def []=(index, arg)
37
- is_megam_addon(arg)
38
- @addons[index] = arg
39
- @addons_by_name[arg.id] = index
40
- end
41
-
42
- def <<(*args)
43
- args.flatten.each do |a|
44
- is_megam_addon(a)
45
- @addons << a
46
- @addons_by_name[a.id] = @addons.length - 1
47
- end
48
- self
49
- end
50
-
51
- # 'push' is an alias method to <<
52
- alias_method :push, :<<
53
-
54
- def insert(addon)
55
- is_megam_addon(addon)
56
- if @insert_after_idx
57
- # in the middle of executing a run, so any addons inserted now should
58
- # be placed after the most recent addition done by the currently executing
59
- # addons
60
- @addons.insert(@insert_after_idx + 1, addon)
61
- # update name -> location mappings and register new addons
62
- @addons_by_name.each_key do |key|
63
- @addons_by_name[key] += 1 if @addons_by_name[key] > @insert_after_idx
64
- end
65
- @addons_by_name[addon.id] = @insert_after_idx + 1
66
- @insert_after_idx += 1
67
- else
68
- @addons << addon
69
- @addons_by_name[addon.id] = @addons.length - 1
70
- end
71
- end
72
-
73
- def each
74
- @addons.each do |addon|
75
- yield addon
76
- end
77
- end
78
-
79
- def each_index
80
- @addons.each_index do |i|
81
- yield i
82
- end
83
- end
84
-
85
- def empty?
86
- @addons.empty?
87
- end
88
-
89
- def lookup(addon)
90
- lookup_by = nil
91
- if addon.kind_of?(Megam::MarketPlaceAddons)
92
- lookup_by = addon.id
93
- elsif addon.kind_of?(String)
94
- lookup_by = addon
95
- else
96
- raise ArgumentError, "Must pass a Megam::MarketPlaceAddons or String to lookup"
97
- end
98
- res = @addons_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
- @addons[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 |addon|
109
- index_hash[addon.id] = addon.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 |addons_list|
124
- addons_array = addons_list.kind_of?(Array) ? addons_list : [ addons_list ]
125
- addons_array.each do |addon|
126
- collection.insert(addon)
127
- end
128
- end
129
- collection
130
- end
131
-
132
- private
133
-
134
-
135
-
136
- def is_megam_addon(arg)
137
- unless arg.kind_of?(Megam::MarketPlaceAddons)
138
- raise ArgumentError, "Members must be Megam::MarketPlaceAddons"
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