megam_api 1.10.7 → 1.10.8

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: 4b9daa0ffd474d2cb73d11336f48f1bdd6fb7bf8
4
- data.tar.gz: 8d44c5948aa53342744f25fc515b123da77e5ea9
3
+ metadata.gz: ef8179eb066686dd34c028f4d6c70be11e98011e
4
+ data.tar.gz: 706e01c77f578c3cdf19afb42d037111d1deeb8a
5
5
  SHA512:
6
- metadata.gz: 1bf098cde434ee2d0d7ba37786444ec33b2b00340e24a6bedc5b92fe9a1961beb2af92d32907b288d4ecdd5c3196f03c64dfbc8b0d2051339d1cccfbe1630c34
7
- data.tar.gz: f296c0d355dd6dcf65bd55dada2c96fffe1111484ceac28ce20f74e9183ed6e9f47b3e8a069859f1cbd77e24e77348ffcefa83efadabb2871c11b79260a7f3f6
6
+ metadata.gz: 593c248b60dc7d654e7a0e79cdae692ad306ff4c3cdb9d6be6cffd2c7703b2d4ee2b3bf9d271f39696964eb742efe46c78741423e97ee7de372c63cffeb9834a
7
+ data.tar.gz: 1596a21149c68610b9fc29d4982c64297a9f95b83b63a3eebf658397581204d6349b53a4f09b9806cf09b88c51b13327f5fd95697e38d361375aa49520bf8882
data/lib/megam/api.rb CHANGED
@@ -31,6 +31,7 @@ require 'megam/api/eventscontainer'
31
31
  require 'megam/api/eventsbilling'
32
32
  require 'megam/api/eventsstorage'
33
33
  require 'megam/api/snapshots'
34
+ require 'megam/api/backups'
34
35
  require 'megam/api/reports'
35
36
  require 'megam/api/quotas'
36
37
  require 'megam/api/disks'
@@ -88,6 +89,8 @@ require 'megam/core/sensors'
88
89
  require 'megam/core/sensors_collection'
89
90
  require 'megam/core/snapshots'
90
91
  require 'megam/core/snapshots_collection'
92
+ require 'megam/core/backups'
93
+ require 'megam/core/backups_collection'
91
94
  require 'megam/core/reports'
92
95
  require 'megam/core/reports_collection'
93
96
  require 'megam/core/quotas'
@@ -0,0 +1,46 @@
1
+ module Megam
2
+ class API
3
+ # GET /nodes
4
+ def list_backups
5
+ @options = {:path => "/backups",:body => ""}.merge(@options)
6
+
7
+ request(
8
+ :expects => 200,
9
+ :method => :get,
10
+ :body => @options[:body]
11
+ )
12
+ end
13
+
14
+ def get_backups(asm_id)
15
+ @options = {:path => "/backups/#{asm_id}",:body => ""}.merge(@options)
16
+
17
+ request(
18
+ :expects => 200,
19
+ :method => :get,
20
+ :body => @options[:body]
21
+ )
22
+ end
23
+ def post_backups(new_sps)
24
+ @options = {:path => '/backups/content',
25
+ :body => Megam::JSONCompat.to_json(new_sps)}.merge(@options)
26
+
27
+ request(
28
+ :expects => 201,
29
+ :method => :post,
30
+ :body => @options[:body]
31
+ )
32
+ end
33
+
34
+ def update_backups(update_sps)
35
+ @options = {:path => '/backups/update',
36
+ :body => Megam::JSONCompat.to_json(update_sps)}.merge(@options)
37
+
38
+ request(
39
+ :expects => 201,
40
+ :method => :post,
41
+ :body => @options[:body]
42
+ )
43
+ end
44
+
45
+ end
46
+ end
@@ -1,5 +1,5 @@
1
1
  module Megam
2
2
  class API
3
- VERSION = "1.10.7"
3
+ VERSION = "1.10.8"
4
4
  end
5
5
  end
@@ -0,0 +1,242 @@
1
+ module Megam
2
+ class Backups < Megam::RestAdapter
3
+ def initialize(o)
4
+ @id = nil
5
+ @account_id = nil
6
+ @asm_id = nil
7
+ @org_id = nil
8
+ @tosca_type = nil
9
+ @inputs = []
10
+ @outputs = []
11
+ @name= nil
12
+ @status=nil
13
+ @image_id=nil
14
+ @created_at = nil
15
+ @some_msg = {}
16
+ super(o)
17
+ end
18
+
19
+ def backups
20
+ self
21
+ end
22
+ def id(arg=nil)
23
+ if arg != nil
24
+ @id = arg
25
+ else
26
+ @id
27
+ end
28
+ end
29
+
30
+ def account_id(arg=nil)
31
+ if arg != nil
32
+ @account_id = arg
33
+ else
34
+ @account_id
35
+ end
36
+ end
37
+
38
+ def asm_id(arg=nil)
39
+ if arg != nil
40
+ @asm_id = arg
41
+ else
42
+ @asm_id
43
+ end
44
+ end
45
+
46
+ def org_id(arg=nil)
47
+ if arg != nil
48
+ @org_id = arg
49
+ else
50
+ @org_id
51
+ end
52
+ end
53
+
54
+ def tosca_type(arg = nil)
55
+ if !arg.nil?
56
+ @tosca_type = arg
57
+ else
58
+ @tosca_type
59
+ end
60
+ end
61
+
62
+ def inputs(arg = [])
63
+ if arg != []
64
+ @inputs = arg
65
+ else
66
+ @inputs
67
+ end
68
+ end
69
+
70
+ def outputs(arg = [])
71
+ if arg != []
72
+ @outputs = arg
73
+ else
74
+ @outputs
75
+ end
76
+ end
77
+
78
+ def name(arg=nil)
79
+ if arg != nil
80
+ @name = arg
81
+ else
82
+ @name
83
+ end
84
+ end
85
+
86
+ def status(arg=nil)
87
+ if arg != nil
88
+ @status = arg
89
+ else
90
+ @status
91
+ end
92
+ end
93
+
94
+ def image_id(arg=nil)
95
+ if arg != nil
96
+ @image_id = arg
97
+ else
98
+ @image_id
99
+ end
100
+ end
101
+
102
+ def created_at(arg=nil)
103
+ if arg != nil
104
+ @created_at = arg
105
+ else
106
+ @created_at
107
+ end
108
+ end
109
+
110
+ def error?
111
+ crocked = true if (some_msg.has_key?(:msg_type) && some_msg[:msg_type] == "error")
112
+ end
113
+
114
+
115
+ def some_msg(arg=nil)
116
+ if arg != nil
117
+ @some_msg = arg
118
+ else
119
+ @some_msg
120
+ end
121
+ end
122
+
123
+
124
+ # Transform the ruby obj -> to a Hash
125
+ def to_hash
126
+ index_hash = Hash.new
127
+ index_hash["json_claz"] = self.class.name
128
+ index_hash["id"] = id
129
+ index_hash["account_id"] = account_id
130
+ index_hash["asm_id"] = asm_id
131
+ index_hash["org_id"] = org_id
132
+ index_hash["tosca_type"] = tosca_type
133
+ index_hash["inputs"] = inputs
134
+ index_hash["outputs"] = outputs
135
+ index_hash["name"] = name
136
+ index_hash["status"] = status
137
+ index_hash["image_id"] = image_id
138
+ index_hash["created_at"] = created_at
139
+ index_hash["some_msg"] = some_msg
140
+ index_hash
141
+ end
142
+
143
+ # Serialize this object as a hash: called from JsonCompat.
144
+ # Verify if this called from JsonCompat during testing.
145
+ def to_json(*a)
146
+ for_json.to_json(*a)
147
+ end
148
+
149
+ def for_json
150
+ result = {
151
+ "id" => id,
152
+ "account_id" => account_id,
153
+ "asm_id" => asm_id,
154
+ "org_id" => org_id,
155
+ "tosca_type" => tosca_type,
156
+ "inputs" => inputs,
157
+ "outputs" => outputs,
158
+ "name" => name,
159
+ "status" => status,
160
+ "image_id" => image_id,
161
+ "created_at" => created_at
162
+ }
163
+ result
164
+ end
165
+
166
+ def self.json_create(o)
167
+ sps = new({})
168
+ sps.id(o["id"]) if o.has_key?("id")
169
+ sps.account_id(o["account_id"]) if o.has_key?("account_id")
170
+ sps.asm_id(o["asm_id"]) if o.has_key?("asm_id")
171
+ sps.org_id(o["org_id"]) if o.has_key?("org_id") #this will be an array? can hash store array?
172
+ sps.tosca_type(o['tosca_type']) if o.key?('tosca_type')
173
+ sps.inputs(o['inputs']) if o.key?('inputs')
174
+ sps.outputs(o['outputs']) if o.key?('outputs')
175
+ sps.name(o["name"]) if o.has_key?("name")
176
+ sps.status(o["status"]) if o.has_key?("status")
177
+ sps.image_id(o["image_id"]) if o.has_key?("image_id")
178
+ sps.created_at(o["created_at"]) if o.has_key?("created_at")
179
+ sps.some_msg[:code] = o["code"] if o.has_key?("code")
180
+ sps.some_msg[:msg_type] = o["msg_type"] if o.has_key?("msg_type")
181
+ sps.some_msg[:msg]= o["msg"] if o.has_key?("msg")
182
+ sps.some_msg[:links] = o["links"] if o.has_key?("links")
183
+ sps
184
+ end
185
+
186
+ def self.from_hash(o)
187
+ sps = self.new(o)
188
+ sps.from_hash(o)
189
+ sps
190
+ end
191
+
192
+ def from_hash(o)
193
+ @id = o[:id] if o.has_key?(:id)
194
+ @account_id = o[:account_id] if o.has_key?(:account_id)
195
+ @asm_id = o[:asm_id] if o.has_key?(:asm_id)
196
+ @org_id = o[:org_id] if o.has_key?(:org_id)
197
+ @tosca_type = o[:tosca_type] if o.key?(:tosca_type)
198
+ @inputs = o[:inputs] if o.key?(:inputs)
199
+ @outputs = o[:outputs] if o.key?(:outputs)
200
+ @name = o[:name] if o.has_key?(:name)
201
+ @status = o[:status] if o.has_key?(:status)
202
+ @image_id = o[:image_id] if o.has_key?(:image_id)
203
+ @created_at = o[:created_at] if o.has_key?(:created_at)
204
+ self
205
+ end
206
+
207
+ def self.create(params)
208
+ sps = from_hash(params)
209
+ sps.create
210
+ end
211
+
212
+ def self.update(params)
213
+ sps = from_hash(params)
214
+ sps.update
215
+ end
216
+
217
+ # Create the node via the REST API
218
+ def create
219
+ megam_rest.post_backups(to_hash)
220
+ end
221
+
222
+ # Load a account by email_p
223
+ def self.show(o)
224
+ sps = self.new(o)
225
+ sps.megam_rest.get_backups(o[:id])
226
+ end
227
+
228
+ def self.list(params)
229
+ sps = self.new(params)
230
+ sps.megam_rest.list_backups
231
+ end
232
+
233
+ def update
234
+ megam_rest.update_backups(to_hash)
235
+ end
236
+
237
+ def to_s
238
+ Megam::Stuff.styled_hash(to_hash)
239
+ end
240
+
241
+ end
242
+ end
@@ -0,0 +1,122 @@
1
+ module Megam
2
+ class BackupsCollection
3
+ include Enumerable
4
+
5
+ attr_reader :iterator
6
+ def initialize
7
+ @backups = Array.new
8
+ @backups_by_name = Hash.new
9
+ @insert_after_idx = nil
10
+ end
11
+
12
+ def all_backups
13
+ @backups
14
+ end
15
+
16
+ def [](index)
17
+ @backups[index]
18
+ end
19
+
20
+ def []=(index, arg)
21
+ is_megam_backups(arg)
22
+ @backups[index] = arg
23
+ @backups_by_name[arg.account_id] = index
24
+ end
25
+
26
+ def <<(*args)
27
+ args.flatten.each do |a|
28
+ is_megam_backups(a)
29
+ @backups << a
30
+ @backups_by_name[a.account_id] = @backups.length - 1
31
+ end
32
+ self
33
+ end
34
+
35
+ # 'push' is an alias method to <<
36
+ alias_method :push, :<<
37
+
38
+ def insert(backups)
39
+ is_megam_backups(backups)
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
+ @backups.insert(@insert_after_idx + 1, backups)
45
+ # update name -> location mappings and register new node
46
+ @backups_by_name.each_key do |key|
47
+ @backups_by_name[key] += 1 if @backups_by_name[key] > @insert_after_idx
48
+ end
49
+ @backups_by_name[backups.account_id] = @insert_after_idx + 1
50
+ @insert_after_idx += 1
51
+ else
52
+ @backups << backups
53
+ @backups_by_name[backups.account_id] = @backups.length - 1
54
+ end
55
+ end
56
+
57
+ def each
58
+ @backups.each do |backups|
59
+ yield backups
60
+ end
61
+ end
62
+
63
+ def each_index
64
+ @backups.each_index do |i|
65
+ yield i
66
+ end
67
+ end
68
+
69
+ def empty?
70
+ @backups.empty?
71
+ end
72
+
73
+ def lookup(backups)
74
+ lookup_by = nil
75
+ if events.kind_of?(Megam::Backups)
76
+ lookup_by = backups.account_id
77
+ elsif backups.kind_of?(String)
78
+ lookup_by = backups
79
+ else
80
+ raise ArgumentError, "Must pass a Megam::Backups or String to lookup"
81
+ end
82
+ res = @backups_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
+ @backups[res]
87
+ end
88
+
89
+ def to_s
90
+ @backups.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 |backups_list|
104
+ backups_array = backups_list.kind_of?(Array) ? backups_list : [ backups_list ]
105
+ backups_array.each do |backups|
106
+ collection.insert(backups)
107
+
108
+ end
109
+ end
110
+ collection
111
+ end
112
+
113
+ private
114
+
115
+ def is_megam_backups(arg)
116
+ unless arg.kind_of?(Megam::Backups)
117
+ raise ArgumentError, "Members must be Megam::Backups's"
118
+ end
119
+ true
120
+ end
121
+ end
122
+ end
@@ -40,6 +40,8 @@ module Megam
40
40
  MEGAM_SENSORSCOLLECTION = 'Megam::SensorsCollection'.freeze
41
41
  MEGAM_SNAPSHOTS = 'Megam::Snapshots'.freeze
42
42
  MEGAM_SNAPSHOTSCOLLECTION = 'Megam::SnapshotsCollection'.freeze
43
+ MEGAM_BACKUPS = 'Megam::Backups'.freeze
44
+ MEGAM_BACKUPSCOLLECTION = 'Megam::BackupsCollection'.freeze
43
45
  MEGAM_DISKS = 'Megam::Disks'.freeze
44
46
  MEGAM_DISKSCOLLECTION = 'Megam::DisksCollection'.freeze
45
47
  MEGAM_LICENSE = 'Megam::License'.freeze
@@ -218,6 +220,10 @@ module Megam
218
220
  Megam::Snapshots
219
221
  when MEGAM_SNAPSHOTSCOLLECTION
220
222
  Megam::SnapshotsCollection
223
+ when MEGAM_BACKUPS
224
+ Megam::Backups
225
+ when MEGAM_BACKUPSCOLLECTION
226
+ Megam::BackupsCollection
221
227
  when MEGAM_BALANCES
222
228
  Megam::Balances
223
229
  when MEGAM_BALANCESCOLLECTION
@@ -10,7 +10,8 @@ module Megam
10
10
  @outputs = []
11
11
  @name= nil
12
12
  @status=nil
13
- @image_id=nil
13
+ @disk_id=nil
14
+ @snap_id=nil
14
15
  @created_at = nil
15
16
  @some_msg = {}
16
17
  super(o)
@@ -91,11 +92,19 @@ module Megam
91
92
  end
92
93
  end
93
94
 
94
- def image_id(arg=nil)
95
+ def disk_id(arg=nil)
95
96
  if arg != nil
96
- @image_id = arg
97
+ @disk_id = arg
97
98
  else
98
- @image_id
99
+ @disk_id
100
+ end
101
+ end
102
+
103
+ def snap_id(arg=nil)
104
+ if arg != nil
105
+ @snap_id = arg
106
+ else
107
+ @snap_id
99
108
  end
100
109
  end
101
110
 
@@ -134,7 +143,8 @@ module Megam
134
143
  index_hash["outputs"] = outputs
135
144
  index_hash["name"] = name
136
145
  index_hash["status"] = status
137
- index_hash["image_id"] = image_id
146
+ index_hash["disk_id"] = disk_id
147
+ index_hash["snap_id"] = snap_id
138
148
  index_hash["created_at"] = created_at
139
149
  index_hash["some_msg"] = some_msg
140
150
  index_hash
@@ -157,7 +167,8 @@ module Megam
157
167
  "outputs" => outputs,
158
168
  "name" => name,
159
169
  "status" => status,
160
- "image_id" => image_id,
170
+ "disk_id" => disk_id,
171
+ "snap_id" => snap_id,
161
172
  "created_at" => created_at
162
173
  }
163
174
  result
@@ -174,7 +185,8 @@ module Megam
174
185
  sps.outputs(o['outputs']) if o.key?('outputs')
175
186
  sps.name(o["name"]) if o.has_key?("name")
176
187
  sps.status(o["status"]) if o.has_key?("status")
177
- sps.image_id(o["status"]) if o.has_key?("image_id")
188
+ sps.disk_id(o["disk_id"]) if o.has_key?("disk_id")
189
+ sps.snap_id(o["snap_id"]) if o.has_key?("snap_id")
178
190
  sps.created_at(o["created_at"]) if o.has_key?("created_at")
179
191
  sps.some_msg[:code] = o["code"] if o.has_key?("code")
180
192
  sps.some_msg[:msg_type] = o["msg_type"] if o.has_key?("msg_type")
@@ -199,7 +211,8 @@ module Megam
199
211
  @outputs = o[:outputs] if o.key?(:outputs)
200
212
  @name = o[:name] if o.has_key?(:name)
201
213
  @status = o[:status] if o.has_key?(:status)
202
- @image_id = o[:image_id] if o.has_key?(:image_id)
214
+ @disk_id = o[:disk_id] if o.has_key?(:disk_id)
215
+ @snap_id = o[:snap_id] if o.has_key?(:snap_id)
203
216
  @created_at = o[:created_at] if o.has_key?(:created_at)
204
217
  self
205
218
  end
@@ -0,0 +1,29 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/test_helper")
2
+
3
+ class TestApps < MiniTest::Unit::TestCase
4
+
5
+ def test_post_backups
6
+ tmp_hash = {
7
+ :account_id => "test@megam.io",
8
+ :asm_id => "ASM53557642376448623",
9
+ :org_id => "ORG787966332632133788",
10
+ :name => "pop.megambox.com",
11
+ :status => "progress",
12
+ :tosca_type => "torpedo",
13
+ }
14
+
15
+ response = megams.post_backups(tmp_hash)
16
+ assert_equal(201, response.status)
17
+ end
18
+ #=begin
19
+ def test_get_backups
20
+ response = megams.get_backups("ASM535576423764486230")
21
+ assert_equal(200, response.status)
22
+ end
23
+
24
+ def test_list_backups
25
+ response = megams.list_backups
26
+ assert_equal(200, response.status)
27
+ end
28
+ #=end
29
+ end
data/test/test_helper.rb CHANGED
@@ -20,8 +20,8 @@ end
20
20
 
21
21
  def megams_new(options={})
22
22
  s_options = SANDBOX_HOST_OPTIONS.merge({
23
- :email => "test@megam.io",
24
- :api_key => "faketest"
23
+ :email => "cd@ss.co",
24
+ :api_key => "1189a21d8965ee670536cbb61fd9f5afed8489c0",
25
25
  })
26
26
  options = s_options.merge(options)
27
27
  mg=Megam::API.new(options)
@@ -29,9 +29,9 @@ end
29
29
 
30
30
  def megams(options={})
31
31
  s_options = SANDBOX_HOST_OPTIONS.merge({
32
- :email => "raj@world.com",
33
- :api_key => "b2ae2ea08c465556cb7abd5aff00470f",
34
- :org_id => "ORG6974933279242510669",
32
+ :email => "cd@ss.co",
33
+ :api_key => "1189a21d8965ee670536cbb61fd9f5afed8489c0",
34
+ :org_id => "ORG8385278424580953898",
35
35
  #:password => "bWVnYW0="
36
36
  })
37
37
 
@@ -5,25 +5,26 @@ class TestApps < MiniTest::Unit::TestCase
5
5
  def test_post_snapshots
6
6
  tmp_hash = {
7
7
  :account_id => "test@megam.io",
8
- :asm_id => "ASM535576423764486230",
9
- :org_id => "ORG7879663326321337888",
8
+ :asm_id => "ASM53557642376448623",
9
+ :org_id => "ORG787966332632133788",
10
10
  :name => "pop.megambox.com",
11
11
  :status => "progress",
12
+ :tosca_type => "torpedo",
12
13
 
13
14
  }
14
15
 
15
16
  response = megams.post_snapshots(tmp_hash)
16
17
  assert_equal(201, response.status)
17
18
  end
19
+ #=begin
18
20
 
19
21
  def test_get_snapshots
20
22
  response = megams.get_snapshots("ASM535576423764486230")
21
23
  assert_equal(200, response.status)
22
24
  end
23
- =begin
24
25
  def test_list_snapshots
25
26
  response = megams.list_snapshots
26
27
  assert_equal(200, response.status)
27
28
  end
28
- =end
29
+ #=end
29
30
  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: 1.10.7
4
+ version: 1.10.8
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: 2017-01-30 00:00:00.000000000 Z
12
+ date: 2017-02-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: excon
@@ -140,6 +140,7 @@ files:
140
140
  - lib/megam/api/addons.rb
141
141
  - lib/megam/api/assemblies.rb
142
142
  - lib/megam/api/assembly.rb
143
+ - lib/megam/api/backups.rb
143
144
  - lib/megam/api/balances.rb
144
145
  - lib/megam/api/billedhistories.rb
145
146
  - lib/megam/api/billingtransactions.rb
@@ -173,6 +174,8 @@ files:
173
174
  - lib/megam/core/assemblies_collection.rb
174
175
  - lib/megam/core/assembly.rb
175
176
  - lib/megam/core/assembly_collection.rb
177
+ - lib/megam/core/backups.rb
178
+ - lib/megam/core/backups_collection.rb
176
179
  - lib/megam/core/balances.rb
177
180
  - lib/megam/core/balances_collection.rb
178
181
  - lib/megam/core/billedhistories.rb
@@ -243,6 +246,7 @@ files:
243
246
  - test/test_addons.rb
244
247
  - test/test_assemblies.rb
245
248
  - test/test_assembly.rb
249
+ - test/test_backups.rb
246
250
  - test/test_balances.rb
247
251
  - test/test_billedhistories.rb
248
252
  - test/test_billingtranscations.rb