megam_api 1.7.8 → 1.8.0

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: e688fbe4d9c65ce6d84c379b41be88be58c7465a
4
- data.tar.gz: afca3ba773c8004115c796df39fdf440594225fc
3
+ metadata.gz: 0631ff9b4997baefff715b8a5dc2c82ec0dce250
4
+ data.tar.gz: f9a3d2dbfeb2883274f53e0c2dc39f724fd2b951
5
5
  SHA512:
6
- metadata.gz: 2a56e9fdf4d5d752466c1824bc917e853e675180f3f1f9d61c4be5b831fcb903b7b34eb3c538f352783692cc0919deb22d7f3dfbd9f8ef4c70b455e9f9f2d4dd
7
- data.tar.gz: 46ab486c5ff99f3c0705c995d7f2deed5077e94ad0e9592e039a6cbf746727fad28be2e0fbb1adc4fe1772f81ed8bff52137bbcd991b1bd71321c040e4a7da63
6
+ metadata.gz: a85e562067835c714a2f30fcec2fa465763ee6004e363562ac7a6506b9d839e900e0a4a219b58d5b4ee5fe1c3f7b0cf62e4338cfc9f1c3f3e74342816ada5fab
7
+ data.tar.gz: fcdae13dc07221fbead30ac4124fc6f834cc2e4c3582e1ed81047ced898b291183de19da6da824cdcfeffe74dd7cd6d949b46d8dd9f136aa6ce5c42e4034ae25
@@ -23,6 +23,7 @@ require 'megam/api/promos'
23
23
  require 'megam/api/requests'
24
24
  require 'megam/api/sensors'
25
25
  require 'megam/api/sshkeys'
26
+ require 'megam/api/eventsall'
26
27
  require 'megam/api/eventsvm'
27
28
  require 'megam/api/eventscontainer'
28
29
  require 'megam/api/eventsbilling'
@@ -52,7 +53,9 @@ require 'megam/core/request'
52
53
  require 'megam/core/request_collection'
53
54
  require 'megam/core/sshkey'
54
55
  require 'megam/core/sshkey_collection'
56
+ require 'megam/core/eventsall'
55
57
  require 'megam/core/eventsvm'
58
+ require 'megam/core/eventsall_collection'
56
59
  require 'megam/core/eventsvm_collection'
57
60
  require 'megam/core/eventscontainer'
58
61
  require 'megam/core/eventscontainer_collection'
@@ -0,0 +1,36 @@
1
+ module Megam
2
+ class API
3
+ # GET /nodes
4
+ def list_eventsall(limit)
5
+ @options = {:path => "/eventsvm/#{limit}",:body => ""}.merge(@options)
6
+
7
+ request(
8
+ :expects => 200,
9
+ :method => :get,
10
+ :body => @options[:body]
11
+ )
12
+ end
13
+
14
+
15
+ def get_eventsall(limit, new_events)
16
+ @options = {:path => "/eventsall/show/#{limit}",
17
+ :body => Megam::JSONCompat.to_json(new_events)}.merge(@options)
18
+ request(
19
+ :expects => 200,
20
+ :method => :post,
21
+ :body => @options[:body]
22
+ )
23
+ end
24
+
25
+
26
+ def index_eventsall
27
+ @options = {:path => "/eventsall",:body => ""}.merge(@options)
28
+
29
+ request(
30
+ :expects => 200,
31
+ :method => :get,
32
+ :body => @options[:body]
33
+ )
34
+ end
35
+ end
36
+ end
@@ -25,7 +25,6 @@ module Megam
25
25
  def post_request(new_req)
26
26
  @options = {:path => '/requests/content',
27
27
  :body => Megam::JSONCompat.to_json(new_req)}.merge(@options)
28
-
29
28
  request(
30
29
  :expects => 201,
31
30
  :method => :post,
@@ -1,5 +1,7 @@
1
1
  module Megam
2
2
  class API
3
- VERSION = "1.7.8"
3
+
4
+ VERSION = "1.8.0"
5
+
4
6
  end
5
7
  end
@@ -12,7 +12,6 @@ module Megam
12
12
  @status = nil
13
13
  @state = nil
14
14
  @created_at = nil
15
-
16
15
  super(o)
17
16
  end
18
17
 
@@ -0,0 +1,186 @@
1
+ module Megam
2
+ class EventsAll < Megam::RestAdapter
3
+ def initialize(o)
4
+ @account_id = nil
5
+ @assembly_id = nil
6
+ @event_type = nil
7
+ @data = []
8
+ @created_at = nil
9
+ @id = nil
10
+ @limit = nil
11
+ @some_msg = {}
12
+ super(o)
13
+ end
14
+
15
+ def eventsall
16
+ self
17
+ end
18
+
19
+ def account_id(arg=nil)
20
+ if arg != nil
21
+ @account_id = arg
22
+ else
23
+ @account_id
24
+ end
25
+ end
26
+
27
+ def id(arg=nil)
28
+ if arg != nil
29
+ @id = arg
30
+ else
31
+ @id
32
+ end
33
+ end
34
+
35
+ def assembly_id(arg=nil)
36
+ if arg != nil
37
+ @assembly_id = arg
38
+ else
39
+ @assembly_id
40
+ end
41
+ end
42
+
43
+ def event_type(arg=nil)
44
+ if arg != nil
45
+ @event_type = arg
46
+ else
47
+ @event_type
48
+ end
49
+ end
50
+
51
+
52
+ def data(arg=[])
53
+ if arg != []
54
+ @data = arg
55
+ else
56
+ @data
57
+ end
58
+ end
59
+
60
+ def limit(arg=[])
61
+ if arg != []
62
+ @limit = arg
63
+ else
64
+ @limit
65
+ end
66
+ end
67
+ def created_at(arg=nil)
68
+ if arg != nil
69
+ @created_at = arg
70
+ else
71
+ @created_at
72
+ end
73
+ end
74
+
75
+ def error?
76
+ crocked = true if (some_msg.has_key?(:msg_type) && some_msg[:msg_type] == "error")
77
+ end
78
+
79
+
80
+ def some_msg(arg=nil)
81
+ if arg != nil
82
+ @some_msg = arg
83
+ else
84
+ @some_msg
85
+ end
86
+ end
87
+
88
+
89
+ # Transform the ruby obj -> to a Hash
90
+ def to_hash
91
+ index_hash = Hash.new
92
+ index_hash["json_claz"] = self.class.name
93
+ index_hash["account_id"] = account_id
94
+ index_hash["assembly_id"] = assembly_id
95
+ index_hash["event_type"] = event_type
96
+ index_hash["data"] = data
97
+ index_hash["limit"] = limit
98
+ index_hash["created_at"] = created_at
99
+ index_hash["id"] = id
100
+ index_hash["some_msg"] = some_msg
101
+ index_hash
102
+ end
103
+
104
+ # Serialize this object as a hash: called from JsonCompat.
105
+ # Verify if this called from JsonCompat during testing.
106
+ def to_json(*a)
107
+ for_json.to_json(*a)
108
+ end
109
+
110
+ def for_json
111
+ result = {
112
+ "account_id" => account_id,
113
+ "assembly_id" => assembly_id,
114
+ "event_type" => event_type,
115
+ "data" => data,
116
+ "limit" => limit,
117
+ "created_at" => created_at,
118
+ "id" => id
119
+ }
120
+ result
121
+ end
122
+
123
+ def self.json_create(o)
124
+ evt = new({})
125
+ evt.account_id(o["account_id"]) if o.has_key?("account_id")
126
+ evt.id(o["id"]) if o.has_key?("id")
127
+ evt.assembly_id(o["assembly_id"]) if o.has_key?("assembly_id")
128
+ evt.event_type(o["event_type"]) if o.has_key?("event_type") #this will be an array? can hash store array?
129
+ evt.data(o["data"]) if o.has_key?("data")
130
+ evt.limit(o["limit"]) if o.has_key?("limit")
131
+ evt.created_at(o["created_at"]) if o.has_key?("created_at")
132
+ evt.some_msg[:code] = o["code"] if o.has_key?("code")
133
+ evt.some_msg[:msg_type] = o["msg_type"] if o.has_key?("msg_type")
134
+ evt.some_msg[:msg]= o["msg"] if o.has_key?("msg")
135
+ evt.some_msg[:links] = o["links"] if o.has_key?("links")
136
+ evt
137
+ end
138
+
139
+ def self.from_hash(o)
140
+ evt = self.new(o)
141
+ evt.from_hash(o)
142
+ evt
143
+ end
144
+
145
+ def from_hash(o)
146
+ @account_id = o[:account_id] if o.has_key?(:account_id)
147
+ @assembly_id = o[:assembly_id] if o.has_key?(:assembly_id)
148
+ @event_type = o[:event_type] if o.has_key?(:event_type)
149
+ @data = o[:data] if o.has_key?(:data)
150
+ @limit = o[:limit] if o.has_key?(:limit)
151
+ @created_at = o[:created_at] if o.has_key?(:created_at)
152
+ @id = o[:id] if o.has_key?(:id)
153
+ self
154
+ end
155
+
156
+ def self.create(params)
157
+ evt = from_hash(params)
158
+ evt.create
159
+ end
160
+
161
+ # Create the node via the REST API
162
+ def create
163
+ megam_rest.post_events(to_hash)
164
+ end
165
+
166
+ def self.show(o)
167
+ evt = from_hash(o)
168
+ evt.megam_rest.get_eventsall(o[:limit], evt.from_hash(o).for_json)
169
+ end
170
+
171
+ def self.list(params)
172
+ asm = self.new(params)
173
+ asm.megam_rest.list_eventsall(params[:limit])
174
+ end
175
+
176
+ def self.index(params)
177
+ asm = self.new(params)
178
+ asm.megam_rest.index_eventsall
179
+ end
180
+
181
+ def to_s
182
+ Megam::Stuff.styled_hash(to_hash)
183
+ end
184
+
185
+ end
186
+ end
@@ -0,0 +1,122 @@
1
+ module Megam
2
+ class EventsAllCollection
3
+ include Enumerable
4
+
5
+ attr_reader :iterator
6
+ def initialize
7
+ @eventsall = Array.new
8
+ @eventsall_by_name = Hash.new
9
+ @insert_after_idx = nil
10
+ end
11
+
12
+ def all_eventsall
13
+ @eventsall
14
+ end
15
+
16
+ def [](index)
17
+ @eventsall[index]
18
+ end
19
+
20
+ def []=(index, arg)
21
+ is_megam_eventsall(arg)
22
+ @eventsall[index] = arg
23
+ @eventsall_by_name[arg.account_id] = index
24
+ end
25
+
26
+ def <<(*args)
27
+ args.flatten.each do |a|
28
+ is_megam_events(a)
29
+ @eventsall << a
30
+ @eventsall_by_name[a.account_id] = @eventsall.length - 1
31
+ end
32
+ self
33
+ end
34
+
35
+ # 'push' is an alias method to <<
36
+ alias_method :push, :<<
37
+
38
+ def insert(eventsall)
39
+ is_megam_eventsall(eventsall)
40
+ if @insert_after_idx
41
+ # in the middle of executing a run, so any nodes inserted now should
42
+ # be placed after the most recent addition done by the currently executing
43
+ # node
44
+ @eventsall.insert(@insert_after_idx + 1, eventsall)
45
+ # update name -> location mappings and register new node
46
+ @eventsall_by_name.each_key do |key|
47
+ @eventsall_by_name[key] += 1 if @eventsall_by_name[key] > @insert_after_idx
48
+ end
49
+ @eventsall_by_name[eventsall.account_id] = @insert_after_idx + 1
50
+ @insert_after_idx += 1
51
+ else
52
+ @eventsall << eventsall
53
+ @eventsall_by_name[eventsall.account_id] = @eventsall.length - 1
54
+ end
55
+ end
56
+
57
+ def each
58
+ @eventsall.each do |eventsall|
59
+ yield eventsall
60
+ end
61
+ end
62
+
63
+ def each_index
64
+ @eventsall.each_index do |i|
65
+ yield i
66
+ end
67
+ end
68
+
69
+ def empty?
70
+ @eventsall.empty?
71
+ end
72
+
73
+ def lookup(eventsall)
74
+ lookup_by = nil
75
+ if events.kind_of?(Megam::EventsAll)
76
+ lookup_by = eventsall.account_id
77
+ elsif events.kind_of?(String)
78
+ lookup_by = eventsall
79
+ else
80
+ raise ArgumentError, "Must pass a Megam::EventsAll or String to lookup"
81
+ end
82
+ res = @eventsall_by_name[lookup_by]
83
+ unless res
84
+ raise ArgumentError, "Cannot find a node matching #{lookup_by} (did you define it first?)"
85
+ end
86
+ @eventsall[res]
87
+ end
88
+
89
+ def to_s
90
+ @eventsall.join(", ")
91
+ end
92
+
93
+ def for_json
94
+ to_a.map { |item| item.to_s }
95
+ end
96
+
97
+ def to_json(*a)
98
+ Megam::JSONCompat.to_json(for_json, *a)
99
+ end
100
+
101
+ def self.json_create(o)
102
+ collection = self.new()
103
+ o["results"].each do |eventsall_list|
104
+ eventsall_array = eventsall_list.kind_of?(Array) ? eventsall_list : [ eventsall_list ]
105
+ eventsall_array.each do |eventsall|
106
+ collection.insert(eventsall)
107
+
108
+ end
109
+ end
110
+ collection
111
+ end
112
+
113
+ private
114
+
115
+ def is_megam_eventsall(arg)
116
+ unless arg.kind_of?(Megam::EventsAll)
117
+ raise ArgumentError, "Members must be Megam::EventsAll's"
118
+ end
119
+ true
120
+ end
121
+ end
122
+ end
@@ -6,7 +6,7 @@ require "json"
6
6
 
7
7
  module Megam
8
8
  class JSONCompat
9
-
9
+
10
10
  JSON_MAX_NESTING = 1000
11
11
 
12
12
  JSON_CLAZ = 'json_claz'.freeze
@@ -41,6 +41,8 @@ module Megam
41
41
  MEGAM_DISKSCOLLECTION = 'Megam::DisksCollection'.freeze
42
42
  MEGAM_SSHKEY = 'Megam::SshKey'.freeze
43
43
  MEGAM_SSHKEYCOLLECTION = 'Megam::SshKeyCollection'.freeze
44
+ MEGAM_EVENTSALL = 'Megam::EventsAll'.freeze
45
+ MEGAM_EVENTSALLCOLLECTION = 'Megam::EventsAllCollection'.freeze
44
46
  MEGAM_EVENTSVM = 'Megam::EventsVm'.freeze
45
47
  MEGAM_EVENTSVMCOLLECTION = 'Megam::EventsVmCollection'.freeze
46
48
  MEGAM_EVENTSCONTAINER = 'Megam::EventsContainer'.freeze
@@ -164,6 +166,10 @@ module Megam
164
166
  Megam::EventsVm
165
167
  when MEGAM_EVENTSVMCOLLECTION
166
168
  Megam::EventsVmCollection
169
+ when MEGAM_EVENTSALL
170
+ Megam::EventsAll
171
+ when MEGAM_EVENTSALLCOLLECTION
172
+ Megam::EventsAllCollection
167
173
  when MEGAM_EVENTSCONTAINER
168
174
  Megam::EventsContainer
169
175
  when MEGAM_EVENTSCONTAINERCOLLECTION
@@ -55,13 +55,14 @@ module Megam
55
55
  class InputGroupData
56
56
  include Nilavu::MegamAttributes
57
57
 
58
- attr_reader :domain, :keypairoption, :sshkey, :provider, :cpu, :ram, :hdd,
58
+ attr_reader :domain, :keypairoption, :root_password, :sshkey, :provider, :cpu, :ram, :hdd,
59
59
  :version, :display_name, :password, :region, :resource, :storage_hddtype,
60
60
  :ipv4public, :ipv4private, :ipv6public, :ipv6private
61
61
 
62
62
  ATTRIBUTES = [
63
63
  :domain,
64
64
  :keypairoption,
65
+ :root_password,
65
66
  :sshkey,
66
67
  :provider,
67
68
  :cpu,
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: 1.7.8
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rajthilak, Kishorekumar Neelamegam, Ranjitha R, Vinodhini V, Rathish VBR, Rajesh
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-09-29 00:00:00.000000000 Z
12
+ date: 2016-10-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: excon
@@ -148,6 +148,7 @@ files:
148
148
  - lib/megam/api/disks.rb
149
149
  - lib/megam/api/domains.rb
150
150
  - lib/megam/api/errors.rb
151
+ - lib/megam/api/eventsall.rb
151
152
  - lib/megam/api/eventsbilling.rb
152
153
  - lib/megam/api/eventscontainer.rb
153
154
  - lib/megam/api/eventsstorage.rb
@@ -181,6 +182,8 @@ files:
181
182
  - lib/megam/core/domain_collection.rb
182
183
  - lib/megam/core/domains.rb
183
184
  - lib/megam/core/error.rb
185
+ - lib/megam/core/eventsall.rb
186
+ - lib/megam/core/eventsall_collection.rb
184
187
  - lib/megam/core/eventsbilling.rb
185
188
  - lib/megam/core/eventsbilling_collection.rb
186
189
  - lib/megam/core/eventscontainer.rb
@@ -271,30 +274,4 @@ rubygems_version: 2.5.1
271
274
  signing_key:
272
275
  specification_version: 4
273
276
  summary: Ruby Client for the Megam Vertice
274
- test_files:
275
- - test/mixins/test_assemblies.rb
276
- - test/mixins/test_assembly.rb
277
- - test/mixins/test_component.rb
278
- - test/test_accounts.rb
279
- - test/test_addons.rb
280
- - test/test_assemblies.rb
281
- - test/test_assembly.rb
282
- - test/test_balances.rb
283
- - test/test_billedhistories.rb
284
- - test/test_billingtranscations.rb
285
- - test/test_components.rb
286
- - test/test_disks.rb
287
- - test/test_domains.rb
288
- - test/test_eventsbilling.rb
289
- - test/test_eventscontainer.rb
290
- - test/test_eventsstorage.rb
291
- - test/test_eventsvm.rb
292
- - test/test_helper.rb
293
- - test/test_marketplaces.rb
294
- - test/test_organizations.rb
295
- - test/test_promos.rb
296
- - test/test_requests.rb
297
- - test/test_sensors.rb
298
- - test/test_snapshots.rb
299
- - test/test_sshkeys.rb
300
- - test/test_subscriptions.rb
277
+ test_files: []