virtengine_api 0.1.0

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 (151) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +21 -0
  3. data/.travis.yml +11 -0
  4. data/Gemfile +5 -0
  5. data/LICENSE +21 -0
  6. data/README.md +27 -0
  7. data/Rakefile +10 -0
  8. data/lib/megam/api.rb +329 -0
  9. data/lib/megam/api/accounts.rb +96 -0
  10. data/lib/megam/api/addons.rb +27 -0
  11. data/lib/megam/api/assemblies.rb +49 -0
  12. data/lib/megam/api/assembly.rb +56 -0
  13. data/lib/megam/api/backups.rb +57 -0
  14. data/lib/megam/api/balances.rb +45 -0
  15. data/lib/megam/api/billedhistories.rb +35 -0
  16. data/lib/megam/api/billingtransactions.rb +25 -0
  17. data/lib/megam/api/components.rb +24 -0
  18. data/lib/megam/api/credits.rb +34 -0
  19. data/lib/megam/api/disks.rb +44 -0
  20. data/lib/megam/api/domains.rb +25 -0
  21. data/lib/megam/api/errors.rb +29 -0
  22. data/lib/megam/api/eventsall.rb +36 -0
  23. data/lib/megam/api/eventsbilling.rb +35 -0
  24. data/lib/megam/api/eventscontainer.rb +35 -0
  25. data/lib/megam/api/eventsmarketplace.rb +35 -0
  26. data/lib/megam/api/eventsstorage.rb +24 -0
  27. data/lib/megam/api/eventsvm.rb +35 -0
  28. data/lib/megam/api/flavors.rb +56 -0
  29. data/lib/megam/api/license.rb +26 -0
  30. data/lib/megam/api/marketplaces.rb +68 -0
  31. data/lib/megam/api/organizations.rb +50 -0
  32. data/lib/megam/api/promos.rb +18 -0
  33. data/lib/megam/api/quotas.rb +47 -0
  34. data/lib/megam/api/rawimages.rb +36 -0
  35. data/lib/megam/api/reports.rb +24 -0
  36. data/lib/megam/api/requests.rb +36 -0
  37. data/lib/megam/api/sensors.rb +35 -0
  38. data/lib/megam/api/snapshots.rb +46 -0
  39. data/lib/megam/api/sshkeys.rb +35 -0
  40. data/lib/megam/api/subscriptions.rb +26 -0
  41. data/lib/megam/api/version.rb +6 -0
  42. data/lib/megam/core/account.rb +245 -0
  43. data/lib/megam/core/account_collection.rb +122 -0
  44. data/lib/megam/core/addons.rb +169 -0
  45. data/lib/megam/core/addons_collection.rb +121 -0
  46. data/lib/megam/core/assemblies.rb +191 -0
  47. data/lib/megam/core/assemblies_collection.rb +122 -0
  48. data/lib/megam/core/assembly.rb +226 -0
  49. data/lib/megam/core/assembly_collection.rb +122 -0
  50. data/lib/megam/core/backups.rb +259 -0
  51. data/lib/megam/core/backups_collection.rb +122 -0
  52. data/lib/megam/core/balances.rb +187 -0
  53. data/lib/megam/core/balances_collection.rb +121 -0
  54. data/lib/megam/core/billedhistories.rb +190 -0
  55. data/lib/megam/core/billedhistories_collection.rb +121 -0
  56. data/lib/megam/core/billingtransactions.rb +214 -0
  57. data/lib/megam/core/billingtransactions_collection.rb +122 -0
  58. data/lib/megam/core/components.rb +326 -0
  59. data/lib/megam/core/components_collection.rb +123 -0
  60. data/lib/megam/core/credits.rb +146 -0
  61. data/lib/megam/core/credits_collection.rb +121 -0
  62. data/lib/megam/core/disks.rb +199 -0
  63. data/lib/megam/core/disks_collection.rb +122 -0
  64. data/lib/megam/core/domain_collection.rb +122 -0
  65. data/lib/megam/core/domains.rb +118 -0
  66. data/lib/megam/core/error.rb +70 -0
  67. data/lib/megam/core/eventsall.rb +186 -0
  68. data/lib/megam/core/eventsall_collection.rb +122 -0
  69. data/lib/megam/core/eventsbilling.rb +174 -0
  70. data/lib/megam/core/eventsbilling_collection.rb +122 -0
  71. data/lib/megam/core/eventscontainer.rb +187 -0
  72. data/lib/megam/core/eventscontainer_collection.rb +122 -0
  73. data/lib/megam/core/eventsmarketplace.rb +187 -0
  74. data/lib/megam/core/eventsmarketplace_collection.rb +122 -0
  75. data/lib/megam/core/eventsstorage.rb +156 -0
  76. data/lib/megam/core/eventsstorage_collection.rb +122 -0
  77. data/lib/megam/core/eventsvm.rb +187 -0
  78. data/lib/megam/core/eventsvm_collection.rb +122 -0
  79. data/lib/megam/core/flavors.rb +294 -0
  80. data/lib/megam/core/flavors_collection.rb +121 -0
  81. data/lib/megam/core/json_compat.rb +289 -0
  82. data/lib/megam/core/konipai.rb +42 -0
  83. data/lib/megam/core/license.rb +101 -0
  84. data/lib/megam/core/license_collection.rb +122 -0
  85. data/lib/megam/core/log.rb +19 -0
  86. data/lib/megam/core/marketplace.rb +308 -0
  87. data/lib/megam/core/marketplace_collection.rb +123 -0
  88. data/lib/megam/core/monologger.rb +89 -0
  89. data/lib/megam/core/organizations.rb +142 -0
  90. data/lib/megam/core/organizations_collection.rb +121 -0
  91. data/lib/megam/core/promos.rb +145 -0
  92. data/lib/megam/core/quotas.rb +215 -0
  93. data/lib/megam/core/quotas_collection.rb +121 -0
  94. data/lib/megam/core/rawimages.rb +194 -0
  95. data/lib/megam/core/rawimages_collection.rb +121 -0
  96. data/lib/megam/core/reports.rb +176 -0
  97. data/lib/megam/core/reports_collection.rb +121 -0
  98. data/lib/megam/core/request.rb +197 -0
  99. data/lib/megam/core/request_collection.rb +121 -0
  100. data/lib/megam/core/rest_adapter.rb +44 -0
  101. data/lib/megam/core/sensors.rb +141 -0
  102. data/lib/megam/core/sensors_collection.rb +121 -0
  103. data/lib/megam/core/snapshots.rb +268 -0
  104. data/lib/megam/core/snapshots_collection.rb +122 -0
  105. data/lib/megam/core/sshkey.rb +173 -0
  106. data/lib/megam/core/sshkey_collection.rb +122 -0
  107. data/lib/megam/core/stuff.rb +22 -0
  108. data/lib/megam/core/subscriptions.rb +167 -0
  109. data/lib/megam/core/subscriptions_collection.rb +121 -0
  110. data/lib/megam/core/text.rb +87 -0
  111. data/lib/megam/core/text_formatter.rb +64 -0
  112. data/lib/megam/mixins/assemblies.rb +16 -0
  113. data/lib/megam/mixins/assembly.rb +59 -0
  114. data/lib/megam/mixins/common_deployable.rb +78 -0
  115. data/lib/megam/mixins/components.rb +182 -0
  116. data/lib/megam/mixins/megam_attributes.rb +30 -0
  117. data/lib/megam/mixins/outputs.rb +23 -0
  118. data/lib/megam/mixins/policies.rb +27 -0
  119. data/lib/megam_api.rb +1 -0
  120. data/megam_api.gemspec +26 -0
  121. data/test/mixins/test_assemblies.rb +113 -0
  122. data/test/mixins/test_assembly.rb +74 -0
  123. data/test/mixins/test_component.rb +19 -0
  124. data/test/test_accounts.rb +127 -0
  125. data/test/test_addons.rb +26 -0
  126. data/test/test_assemblies.rb +88 -0
  127. data/test/test_assembly.rb +37 -0
  128. data/test/test_backups.rb +29 -0
  129. data/test/test_balances.rb +38 -0
  130. data/test/test_billedhistories.rb +30 -0
  131. data/test/test_billingtranscations.rb +35 -0
  132. data/test/test_components.rb +42 -0
  133. data/test/test_credits.rb +28 -0
  134. data/test/test_disks.rb +25 -0
  135. data/test/test_domains.rb +29 -0
  136. data/test/test_eventsbilling.rb +30 -0
  137. data/test/test_eventscontainer.rb +26 -0
  138. data/test/test_eventsstorage.rb +12 -0
  139. data/test/test_eventsvm.rb +26 -0
  140. data/test/test_helper.rb +77 -0
  141. data/test/test_marketplaces.rb +38 -0
  142. data/test/test_organizations.rb +45 -0
  143. data/test/test_promos.rb +11 -0
  144. data/test/test_quotas.rb +33 -0
  145. data/test/test_reports.rb +32 -0
  146. data/test/test_requests.rb +95 -0
  147. data/test/test_sensors.rb +50 -0
  148. data/test/test_snapshots.rb +30 -0
  149. data/test/test_sshkeys.rb +50 -0
  150. data/test/test_subscriptions.rb +22 -0
  151. metadata +325 -0
@@ -0,0 +1,122 @@
1
+ module Megam
2
+ class EventsContainerCollection
3
+ include Enumerable
4
+
5
+ attr_reader :iterator
6
+ def initialize
7
+ @eventscontainer = Array.new
8
+ @eventscontainer_by_name = Hash.new
9
+ @insert_after_idx = nil
10
+ end
11
+
12
+ def all_eventscontainer
13
+ @eventscontainer
14
+ end
15
+
16
+ def [](index)
17
+ @eventscontainer[index]
18
+ end
19
+
20
+ def []=(index, arg)
21
+ is_megam_eventsvm(arg)
22
+ @eventscontainer[index] = arg
23
+ @eventscontainer_by_name[arg.account_id] = index
24
+ end
25
+
26
+ def <<(*args)
27
+ args.flatten.each do |a|
28
+ is_megam_events(a)
29
+ @eventscontainer << a
30
+ @eventscontainer_by_name[a.account_id] = @eventscontainer.length - 1
31
+ end
32
+ self
33
+ end
34
+
35
+ # 'push' is an alias method to <<
36
+ alias_method :push, :<<
37
+
38
+ def insert(eventscontainer)
39
+ is_megam_eventscontainer(eventscontainer)
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
+ @eventscontainer.insert(@insert_after_idx + 1, eventscontainer)
45
+ # update name -> location mappings and register new node
46
+ @eventscontainer_by_name.each_key do |key|
47
+ @eventscontainer_by_name[key] += 1 if @eventscontainer_by_name[key] > @insert_after_idx
48
+ end
49
+ @eventscontainer_by_name[eventscontainer.account_id] = @insert_after_idx + 1
50
+ @insert_after_idx += 1
51
+ else
52
+ @eventscontainer << eventscontainer
53
+ @eventscontainer_by_name[eventscontainer.account_id] = @eventscontainer.length - 1
54
+ end
55
+ end
56
+
57
+ def each
58
+ @eventscontainer.each do |eventscontainer|
59
+ yield eventscontainer
60
+ end
61
+ end
62
+
63
+ def each_index
64
+ @eventscontainer.each_index do |i|
65
+ yield i
66
+ end
67
+ end
68
+
69
+ def empty?
70
+ @eventscontainer.empty?
71
+ end
72
+
73
+ def lookup(eventscontainer)
74
+ lookup_by = nil
75
+ if events.kind_of?(Megam::EventsContainer)
76
+ lookup_by = eventscontainer.account_id
77
+ elsif eventscontainer.kind_of?(String)
78
+ lookup_by = eventscontainer
79
+ else
80
+ raise ArgumentError, "Must pass a Megam::EventsContainer or String to lookup"
81
+ end
82
+ res = @eventscontainer_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
+ @eventscontainer[res]
87
+ end
88
+
89
+ def to_s
90
+ @eventscontainer.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 |eventscontainer_list|
104
+ eventscontainer_array = eventscontainer_list.kind_of?(Array) ? eventscontainer_list : [ eventscontainer_list ]
105
+ eventscontainer_array.each do |eventscontainer|
106
+ collection.insert(eventscontainer)
107
+
108
+ end
109
+ end
110
+ collection
111
+ end
112
+
113
+ private
114
+
115
+ def is_megam_eventscontainer(arg)
116
+ unless arg.kind_of?(Megam::EventsContainer)
117
+ raise ArgumentError, "Members must be Megam::EventsContainer's"
118
+ end
119
+ true
120
+ end
121
+ end
122
+ end
@@ -0,0 +1,187 @@
1
+ module Megam
2
+ class EventsMarketplace < Megam::RestAdapter
3
+ def initialize(o)
4
+ @account_id = nil
5
+ @marketplace_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 eventsmarketplace
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 marketplace_id(arg=nil)
36
+ if arg != nil
37
+ @marketplace_id = arg
38
+ else
39
+ @marketplace_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["marketplace_id"] = marketplace_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
+ "marketplace_id" => marketplace_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.marketplace_id(o["marketplace_id"]) if o.has_key?("marketplace_id")
127
+ evt.id(o["id"]) if o.has_key?("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
+ @marketplace_id = o[:marketplace_id] if o.has_key?(:marketplace_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
+ # Load a account by email_p
167
+ def self.show(o)
168
+ evt = from_hash(o)
169
+ evt.megam_rest.get_eventsMarketplace(o[:limit], evt.from_hash(o).for_json)
170
+ end
171
+
172
+ def self.list(params)
173
+ asm = self.new(params)
174
+ asm.megam_rest.list_eventsMarketplace(params[:limit])
175
+ end
176
+
177
+ def self.index(params)
178
+ asm = self.new(params)
179
+ asm.megam_rest.index_eventsMarketplace
180
+ end
181
+
182
+ def to_s
183
+ Megam::Stuff.styled_hash(to_hash)
184
+ end
185
+
186
+ end
187
+ end
@@ -0,0 +1,122 @@
1
+ module Megam
2
+ class EventsMarketplaceCollection
3
+ include Enumerable
4
+
5
+ attr_reader :iterator
6
+ def initialize
7
+ @eventsmarketplace = Array.new
8
+ @eventsmarketplace_by_name = Hash.new
9
+ @insert_after_idx = nil
10
+ end
11
+
12
+ def all_eventsmarketplace
13
+ @eventsmarketplace
14
+ end
15
+
16
+ def [](index)
17
+ @eventsmarketplace[index]
18
+ end
19
+
20
+ def []=(index, arg)
21
+ is_megam_eventsvm(arg)
22
+ @eventsmarketplace[index] = arg
23
+ @eventsmarketplace_by_name[arg.account_id] = index
24
+ end
25
+
26
+ def <<(*args)
27
+ args.flatten.each do |a|
28
+ is_megam_events(a)
29
+ @eventsmarketplace << a
30
+ @eventsmarketplace_by_name[a.account_id] = @eventsmarketplace.length - 1
31
+ end
32
+ self
33
+ end
34
+
35
+ # 'push' is an alias method to <<
36
+ alias_method :push, :<<
37
+
38
+ def insert(eventsmarketplace)
39
+ is_megam_eventsmarketplace(eventsmarketplace)
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
+ @eventsmarketplace.insert(@insert_after_idx + 1, eventsmarketplace)
45
+ # update name -> location mappings and register new node
46
+ @eventsmarketplace_by_name.each_key do |key|
47
+ @eventsmarketplace_by_name[key] += 1 if @eventsmarketplace_by_name[key] > @insert_after_idx
48
+ end
49
+ @eventsmarketplace_by_name[eventsmarketplace.account_id] = @insert_after_idx + 1
50
+ @insert_after_idx += 1
51
+ else
52
+ @eventsmarketplace << eventsmarketplace
53
+ @eventsmarketplace_by_name[eventsmarketplace.account_id] = @eventsmarketplace.length - 1
54
+ end
55
+ end
56
+
57
+ def each
58
+ @eventsmarketplace.each do |eventsmarketplace|
59
+ yield eventsmarketplace
60
+ end
61
+ end
62
+
63
+ def each_index
64
+ @eventsmarketplace.each_index do |i|
65
+ yield i
66
+ end
67
+ end
68
+
69
+ def empty?
70
+ @eventsmarketplace.empty?
71
+ end
72
+
73
+ def lookup(eventsmarketplace)
74
+ lookup_by = nil
75
+ if events.kind_of?(Megam::EventsMarketplace)
76
+ lookup_by = eventsmarketplace.account_id
77
+ elsif eventsmarketplace.kind_of?(String)
78
+ lookup_by = eventsmarketplace
79
+ else
80
+ raise ArgumentError, "Must pass a Megam::EventsMarketplace or String to lookup"
81
+ end
82
+ res = @eventsmarketplace_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
+ @eventsmarketplace[res]
87
+ end
88
+
89
+ def to_s
90
+ @eventsmarketplace.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 |eventsmarketplace_list|
104
+ eventsmarketplace_array = eventsmarketplace_list.kind_of?(Array) ? eventsmarketplace_list : [ eventsmarketplace_list ]
105
+ eventsmarketplace_array.each do |eventsmarketplace|
106
+ collection.insert(eventsmarketplace)
107
+
108
+ end
109
+ end
110
+ collection
111
+ end
112
+
113
+ private
114
+
115
+ def is_megam_eventsmarketplace(arg)
116
+ unless arg.kind_of?(Megam::EventsMarketplace)
117
+ raise ArgumentError, "Members must be Megam::EventsMarketplace's"
118
+ end
119
+ true
120
+ end
121
+ end
122
+ end
@@ -0,0 +1,156 @@
1
+ module Megam
2
+ class EventsStorage < Megam::RestAdapter
3
+ def initialize(o)
4
+ @account_id = nil
5
+ @event_type = nil
6
+ @data = []
7
+ @created_at = nil
8
+ @limit = nil
9
+ @some_msg = {}
10
+ super(o)
11
+ end
12
+
13
+ def eventsstorage
14
+ self
15
+ end
16
+
17
+ def account_id(arg=nil)
18
+ if arg != nil
19
+ @account_id = arg
20
+ else
21
+ @account_id
22
+ end
23
+ end
24
+
25
+ def event_type(arg=nil)
26
+ if arg != nil
27
+ @event_type = arg
28
+ else
29
+ @event_type
30
+ end
31
+ end
32
+
33
+ def data(arg=[])
34
+ if arg != []
35
+ @data = arg
36
+ else
37
+ @data
38
+ end
39
+ end
40
+
41
+ def limit(arg=[])
42
+ if arg != []
43
+ @limit = arg
44
+ else
45
+ @limit
46
+ end
47
+ end
48
+
49
+ def created_at(arg=nil)
50
+ if arg != nil
51
+ @created_at = arg
52
+ else
53
+ @created_at
54
+ end
55
+ end
56
+
57
+ def error?
58
+ crocked = true if (some_msg.has_key?(:msg_type) && some_msg[:msg_type] == "error")
59
+ end
60
+
61
+
62
+ def some_msg(arg=nil)
63
+ if arg != nil
64
+ @some_msg = arg
65
+ else
66
+ @some_msg
67
+ end
68
+ end
69
+
70
+
71
+ # Transform the ruby obj -> to a Hash
72
+ def to_hash
73
+ index_hash = Hash.new
74
+ index_hash["json_claz"] = self.class.name
75
+ index_hash["account_id"] = account_id
76
+ index_hash["event_type"] = event_type
77
+ index_hash["data"] = data
78
+ index_hash["limit"] = limit
79
+ index_hash["created_at"] = created_at
80
+ index_hash["some_msg"] = some_msg
81
+ index_hash
82
+ end
83
+
84
+ # Serialize this object as a hash: called from JsonCompat.
85
+ # Verify if this called from JsonCompat during testing.
86
+ def to_json(*a)
87
+ for_json.to_json(*a)
88
+ end
89
+
90
+ def for_json
91
+ result = {
92
+ "account_id" => account_id,
93
+ "event_type" => event_type,
94
+ "data" => data,
95
+ "limit" => limit,
96
+ "created_at" => created_at
97
+ }
98
+ result
99
+ end
100
+
101
+ def self.json_create(o)
102
+ evt = new({})
103
+ evt.account_id(o["account_id"]) if o.has_key?("account_id")
104
+ evt.event_type(o["event_type"]) if o.has_key?("event_type") #this will be an array? can hash store array?
105
+ evt.data(o["data"]) if o.has_key?("data")
106
+ evt.limit(o["limit"]) if o.has_key?("limit")
107
+ evt.created_at(o["created_at"]) if o.has_key?("created_at")
108
+ evt.some_msg[:code] = o["code"] if o.has_key?("code")
109
+ evt.some_msg[:msg_type] = o["msg_type"] if o.has_key?("msg_type")
110
+ evt.some_msg[:msg]= o["msg"] if o.has_key?("msg")
111
+ evt.some_msg[:links] = o["links"] if o.has_key?("links")
112
+ evt
113
+ end
114
+
115
+ def self.from_hash(o)
116
+ evt = self.new(o)
117
+ evt.from_hash(o)
118
+ evt
119
+ end
120
+
121
+ def from_hash(o)
122
+ @account_id = o[:account_id] if o.has_key?(:account_id)
123
+ @event_type = o[:event_type] if o.has_key?(:event_type)
124
+ @data = o[:data] if o.has_key?(:data)
125
+ @limit = o[:limit] if o.has_key?(:limit)
126
+ @created_at = o[:created_at] if o.has_key?(:created_at)
127
+ self
128
+ end
129
+
130
+ def self.create(params)
131
+ evt = from_hash(params)
132
+ evt.create
133
+ end
134
+
135
+ # Create the node via the REST API
136
+ def create
137
+ megam_rest.post_events(to_hash)
138
+ end
139
+
140
+ # Load a account by email_p
141
+ def self.list(params)
142
+ asm = self.new(params)
143
+ asm.megam_rest.list_eventsstorage(params[:limit])
144
+ end
145
+
146
+ def self.index(params)
147
+ asm = self.new(params)
148
+ asm.megam_rest.index_eventsstorage
149
+ end
150
+
151
+ def to_s
152
+ Megam::Stuff.styled_hash(to_hash)
153
+ end
154
+
155
+ end
156
+ end