squall 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +1 -1
  3. data/README.md +64 -41
  4. data/Rakefile +3 -9
  5. data/lib/squall/data_store_zone.rb +20 -26
  6. data/lib/squall/disk.rb +174 -0
  7. data/lib/squall/firewall_rule.rb +34 -41
  8. data/lib/squall/hypervisor.rb +40 -38
  9. data/lib/squall/hypervisor_zone.rb +51 -63
  10. data/lib/squall/ip_address.rb +32 -37
  11. data/lib/squall/ip_address_join.rb +13 -22
  12. data/lib/squall/network.rb +36 -33
  13. data/lib/squall/network_zone.rb +27 -29
  14. data/lib/squall/payment.rb +22 -32
  15. data/lib/squall/role.rb +30 -37
  16. data/lib/squall/statistic.rb +3 -1
  17. data/lib/squall/support/base.rb +35 -31
  18. data/lib/squall/support/config.rb +25 -1
  19. data/lib/squall/support/version.rb +1 -1
  20. data/lib/squall/template.rb +7 -5
  21. data/lib/squall/transaction.rb +6 -4
  22. data/lib/squall/user.rb +84 -83
  23. data/lib/squall/user_group.rb +17 -30
  24. data/lib/squall/virtual_machine.rb +154 -178
  25. data/lib/squall/whitelist.rb +29 -40
  26. data/lib/squall.rb +27 -25
  27. data/spec/spec_helper.rb +6 -11
  28. data/spec/squall/data_store_zone_spec.rb +2 -20
  29. data/spec/squall/disk_spec.rb +189 -0
  30. data/spec/squall/firewall_rule_spec.rb +2 -32
  31. data/spec/squall/hypervisor_spec.rb +3 -47
  32. data/spec/squall/hypervisor_zone_spec.rb +3 -28
  33. data/spec/squall/ip_address_join_spec.rb +1 -15
  34. data/spec/squall/ip_address_spec.rb +10 -35
  35. data/spec/squall/network_spec.rb +20 -31
  36. data/spec/squall/network_zone_spec.rb +2 -36
  37. data/spec/squall/payment_spec.rb +2 -21
  38. data/spec/squall/role_spec.rb +4 -16
  39. data/spec/squall/support/base_spec.rb +10 -16
  40. data/spec/squall/template_spec.rb +0 -4
  41. data/spec/squall/transaction_spec.rb +1 -3
  42. data/spec/squall/user_group_spec.rb +1 -17
  43. data/spec/squall/user_spec.rb +4 -92
  44. data/spec/squall/virtual_machine_spec.rb +8 -242
  45. data/spec/squall/whitelist_spec.rb +2 -40
  46. data/spec/squall_spec.rb +2 -2
  47. data/spec/vcr_cassettes/disk/add_schedule.yml +40 -0
  48. data/spec/vcr_cassettes/disk/auto_backup_off.yml +40 -0
  49. data/spec/vcr_cassettes/disk/auto_backup_on.yml +40 -0
  50. data/spec/vcr_cassettes/disk/backups.yml +40 -0
  51. data/spec/vcr_cassettes/disk/build.yml +40 -0
  52. data/spec/vcr_cassettes/disk/create.yml +40 -0
  53. data/spec/vcr_cassettes/disk/delete.yml +38 -0
  54. data/spec/vcr_cassettes/disk/edit.yml +40 -0
  55. data/spec/vcr_cassettes/disk/iops_usage.yml +40 -0
  56. data/spec/vcr_cassettes/disk/list.yml +40 -0
  57. data/spec/vcr_cassettes/disk/migrate.yml +38 -0
  58. data/spec/vcr_cassettes/disk/schedules.yml +40 -0
  59. data/spec/vcr_cassettes/disk/unlock.yml +40 -0
  60. data/spec/vcr_cassettes/disk/vm_disk_list.yml +40 -0
  61. data/spec/vcr_cassettes/network/rebuild.yml +41 -0
  62. metadata +217 -66
  63. data/.gitignore +0 -13
  64. data/.rspec +0 -2
  65. data/.rvmrc +0 -41
  66. data/.travis.yml +0 -17
  67. data/lib/squall/support/params.rb +0 -50
  68. data/lib/squall/support/yaml.rb +0 -5
  69. data/spec/squall/support/params_spec.rb +0 -195
  70. data/squall.gemspec +0 -32
@@ -7,53 +7,12 @@ describe Squall::User do
7
7
  "used_cpus", "group_id", "id", "used_memory", "payment_amount", "last_name", "remember_token",
8
8
  "disk_space_available", "time_zone", "outstanding_amount", "login", "roles", "email", "first_name"]
9
9
  @user = Squall::User.new
10
- @valid = {:login => 'johndoe', :email => 'johndoe@example.com', :password => 'CD2480A3413F',
11
- :password_confirmation => 'CD2480A3413F', :first_name => 'John', :last_name => 'Doe' }
10
+ @valid = {login: 'johndoe', email: 'johndoe@example.com', password: 'CD2480A3413F',
11
+ password_confirmation: 'CD2480A3413F', first_name: 'John', last_name: 'Doe' }
12
12
  end
13
13
 
14
14
  describe "#create" do
15
15
  use_vcr_cassette "user/create"
16
- it "requires login" do
17
- invalid = @valid.reject{|k,v| k == :login }
18
- requires_attr(:login) { @user.create(invalid) }
19
- end
20
-
21
- it "requires email" do
22
- invalid = @valid.reject{|k,v| k == :email }
23
- requires_attr(:email) { @user.create(invalid) }
24
- end
25
-
26
- it "requires password" do
27
- invalid = @valid.reject{|k,v| k == :password }
28
- requires_attr(:password) { @user.create(invalid) }
29
- end
30
-
31
- it "requires password confirmation" do
32
- invalid = @valid.reject{|k,v| k == :password_confirmation }
33
- requires_attr(:password_confirmation) { @user.create(invalid) }
34
- end
35
-
36
- it "requires first name" do
37
- invalid = @valid.reject{|k,v| k == :first_name }
38
- requires_attr(:first_name) { @user.create(invalid) }
39
- end
40
-
41
- it "requires last name" do
42
- invalid = @valid.reject{|k,v| k == :last_name }
43
- requires_attr(:last_name) { @user.create(invalid) }
44
- end
45
-
46
- it "allows all optional params" do
47
- optional = [:role, :time_zone, :locale, :status, :billing_plan_id, :role_ids, :suspend_after_hours, :suspend_at]
48
- @user.should_receive(:request).exactly(optional.size).times.and_return Hash.new("user" => {})
49
- optional.each do |param|
50
- @user.create(@valid.merge(param => "test"))
51
- end
52
- end
53
-
54
- it "raises error on unknown params" do
55
- expect { @user.create(@valid.merge(:what => 'what')) }.to raise_error(ArgumentError, 'Unknown params: what')
56
- end
57
16
 
58
17
  it "creates a user" do
59
18
  user = @user.create(@valid)
@@ -64,26 +23,15 @@ describe Squall::User do
64
23
  describe "#edit" do
65
24
  use_vcr_cassette "user/edit"
66
25
 
67
- it "allows select params" do
68
- optional = [:email, :password, :password_confirmation, :first_name, :last_name, :user_group_id, :billing_plan_id, :role_ids, :suspend_at]
69
- @user.should_receive(:request).exactly(optional.size).times.and_return Hash.new()
70
- optional.each do |param|
71
- @user.edit(1, param => "test")
72
- end
73
- end
74
-
75
- it "raises error on unknown params" do
76
- expect { @user.edit(1, :what => 'what') }.to raise_error(ArgumentError, 'Unknown params: what')
77
- end
78
-
79
26
  it "edits a user" do
80
- user = @user.edit(1, :first_name => "Test")
27
+ user = @user.edit(1, first_name: "Test")
81
28
  @user.success.should be_true
82
29
  end
83
30
  end
84
31
 
85
32
  describe "#list" do
86
33
  use_vcr_cassette "user/list"
34
+
87
35
  it "returns a user list" do
88
36
  users = @user.list
89
37
  users.should be_an(Array)
@@ -97,9 +45,6 @@ describe Squall::User do
97
45
 
98
46
  describe "#show" do
99
47
  use_vcr_cassette "user/show"
100
- it "requires an id" do
101
- expect { @user.show }.to raise_error(ArgumentError)
102
- end
103
48
 
104
49
  it "returns a user" do
105
50
  user = @user.show(1)
@@ -109,9 +54,6 @@ describe Squall::User do
109
54
 
110
55
  describe "#generate_api_key" do
111
56
  use_vcr_cassette "user/generate_api_key"
112
- it "requires an id" do
113
- expect { @user.generate_api_key }.to raise_error(ArgumentError)
114
- end
115
57
 
116
58
  it "generates a new key" do
117
59
  user = @user.generate_api_key(1)
@@ -121,9 +63,6 @@ describe Squall::User do
121
63
 
122
64
  describe "#suspend" do
123
65
  use_vcr_cassette "user/suspend"
124
- it "requires an id" do
125
- expect { @user.suspend }.to raise_error(ArgumentError)
126
- end
127
66
 
128
67
  it "suspends a user" do
129
68
  user = @user.suspend(1)
@@ -133,9 +72,6 @@ describe Squall::User do
133
72
 
134
73
  describe "#activate" do
135
74
  use_vcr_cassette "user/activate"
136
- it "requires an id" do
137
- expect { @user.activate }.to raise_error(ArgumentError)
138
- end
139
75
 
140
76
  it "activates a user" do
141
77
  user = @user.activate(1)
@@ -149,9 +85,6 @@ describe Squall::User do
149
85
 
150
86
  describe "#delete" do
151
87
  use_vcr_cassette "user/delete"
152
- it "requires an id" do
153
- expect { @user.delete }.to raise_error(ArgumentError)
154
- end
155
88
 
156
89
  it "deletes a user" do
157
90
  @user.delete(1)
@@ -161,9 +94,6 @@ describe Squall::User do
161
94
 
162
95
  describe "#stats" do
163
96
  use_vcr_cassette "user/stats"
164
- it "requires an id" do
165
- expect { @user.stats }.to raise_error(ArgumentError)
166
- end
167
97
 
168
98
  it "returns stats" do
169
99
  stats = @user.stats(1)
@@ -173,9 +103,6 @@ describe Squall::User do
173
103
 
174
104
  describe "#monthly_bills" do
175
105
  use_vcr_cassette "user/monthly_bills"
176
- it "requires an id" do
177
- expect { @user.monthly_bills }.to raise_error(ArgumentError)
178
- end
179
106
 
180
107
  it "returns an array of bills for the user" do
181
108
  stats = @user.monthly_bills(1)
@@ -185,9 +112,6 @@ describe Squall::User do
185
112
 
186
113
  describe "#virtual_machines" do
187
114
  use_vcr_cassette "user/virtual_machines"
188
- it "requires an id" do
189
- expect { @user.virtual_machines }.to raise_error(ArgumentError)
190
- end
191
115
 
192
116
  it "returns the virtual_machines" do
193
117
  virtual_machines = @user.virtual_machines(1)
@@ -197,9 +121,6 @@ describe Squall::User do
197
121
 
198
122
  describe "#hypervisors" do
199
123
  use_vcr_cassette "user/hypervisors"
200
- it "requires an id" do
201
- expect { @user.hypervisors }.to raise_error(ArgumentError)
202
- end
203
124
 
204
125
  it "returns the virtual_machines" do
205
126
  hypervisors = @user.hypervisors(1)
@@ -209,9 +130,6 @@ describe Squall::User do
209
130
 
210
131
  describe "#data_store_zones" do
211
132
  use_vcr_cassette "user/data_store_zones"
212
- it "requires an id" do
213
- expect { @user.data_store_zones }.to raise_error(ArgumentError)
214
- end
215
133
 
216
134
  it "returns the virtual_machines" do
217
135
  data_store_zones = @user.data_store_zones(1)
@@ -221,9 +139,6 @@ describe Squall::User do
221
139
 
222
140
  describe "#network_zones" do
223
141
  use_vcr_cassette "user/network_zones"
224
- it "requires an id" do
225
- expect { @user.network_zones }.to raise_error(ArgumentError)
226
- end
227
142
 
228
143
  it "returns the network_zones" do
229
144
  network_zones = @user.network_zones(1)
@@ -233,9 +148,6 @@ describe Squall::User do
233
148
 
234
149
  describe "#limits" do
235
150
  use_vcr_cassette "user/limits"
236
- it "requires an id" do
237
- expect { @user.limits }.to raise_error(ArgumentError)
238
- end
239
151
 
240
152
  it "returns the limits" do
241
153
  limits = @user.limits(1)
@@ -3,8 +3,8 @@ require 'spec_helper'
3
3
  describe Squall::VirtualMachine do
4
4
  before(:each) do
5
5
  @virtual_machine = Squall::VirtualMachine.new
6
- @valid = {:label => 'testmachine', :hostname => 'testmachine', :memory => 512, :cpus => 1,
7
- :cpu_shares => 10, :primary_disk_size => 10, :template_id => 1}
6
+ @valid = {label: 'testmachine', hostname: 'testmachine', memory: 512, cpus: 1,
7
+ cpu_shares: 10, primary_disk_size: 10, template_id: 1}
8
8
  @keys = ["monthly_bandwidth_used", "cpus", "label", "created_at", "operating_system_distro",
9
9
  "cpu_shares", "operating_system", "template_id", "allowed_swap", "local_remote_access_port",
10
10
  "memory", "updated_at", "allow_resize_without_reboot", "recovery_mode", "hypervisor_id", "id",
@@ -29,9 +29,6 @@ describe Squall::VirtualMachine do
29
29
 
30
30
  describe "#show" do
31
31
  use_vcr_cassette "virtual_machine/show"
32
- it "requires an id" do
33
- expect { @virtual_machine.show }.to raise_error(ArgumentError)
34
- end
35
32
 
36
33
  it "returns a virtual_machine" do
37
34
  virtual_machine = @virtual_machine.show(1)
@@ -42,71 +39,6 @@ describe Squall::VirtualMachine do
42
39
 
43
40
  describe "#create" do
44
41
  use_vcr_cassette "virtual_machine/create"
45
- # validates :label, :hypervisor_id, :hostname, :memory, :cpus, :presence => true
46
- it "requires label" do
47
- requires_attr(:label) { @virtual_machine.create }
48
- end
49
-
50
- it "requires hostname" do
51
- requires_attr(:hostname) {
52
- @virtual_machine.create(:label => @valid[:label])
53
- }
54
- end
55
-
56
- it "requires memory" do
57
- requires_attr(:memory) {
58
- @virtual_machine.create(:label => @valid[:label], :hostname => @valid[:hostname])
59
- }
60
- end
61
-
62
- it "requires cpus" do
63
- requires_attr(:cpus) {
64
- @virtual_machine.create(:label => @valid[:label], :hostname => @valid[:hostname],
65
- :memory => @valid[:memory])
66
- }
67
- end
68
-
69
- it "requires cpu_shares" do
70
- requires_attr(:cpu_shares) {
71
- @virtual_machine.create(:label => @valid[:label], :hostname => @valid[:hostname],
72
- :memory => @valid[:memory], :cpus => @valid[:cpu_shares])
73
- }
74
- end
75
-
76
- it "requires primary_disk_size" do
77
- requires_attr(:primary_disk_size) {
78
- @virtual_machine.create(:label => @valid[:label], :hostname => @valid[:hostname],
79
- :memory => @valid[:memory], :cpus => @valid[:cpu_shares],
80
- :cpu_shares => @valid[:cpu_shares])
81
- }
82
- end
83
-
84
- it "raises error on unknown params" do
85
- expect {
86
- @virtual_machine.create(@valid.merge(:what => 'what'))
87
- }.to raise_error(ArgumentError, 'Unknown params: what')
88
- end
89
-
90
- it "allows all optional params" do
91
- optional = [:swap_disk_size,
92
- :primary_network_id,
93
- :required_automatic_backup,
94
- :rate_limit,
95
- :required_ip_address_assignment,
96
- :required_virtual_machine_build,
97
- :admin_note,
98
- :note,
99
- :allowed_hot_migrate,
100
- :hypervisor_id,
101
- :initial_root_password,
102
- :hypervisor_group_id
103
- ]
104
-
105
- @virtual_machine.should_receive(:request).exactly(optional.size).times.and_return Hash.new('virtual_machine' => [])
106
- optional.each do |param|
107
- @virtual_machine.create(@valid.merge(param => "test"))
108
- end
109
- end
110
42
 
111
43
  it "creates a virtual_machine" do
112
44
  pending "broken in OnApp (triggering the Network Interfaces error): see README (and update when fixed)" do
@@ -120,24 +52,9 @@ describe Squall::VirtualMachine do
120
52
 
121
53
  describe "#build" do
122
54
  use_vcr_cassette "virtual_machine/build"
123
- it "requires an id" do
124
- expect { @virtual_machine.build }.to raise_error(ArgumentError)
125
- @virtual_machine.success.should be_false
126
- end
127
-
128
- it "accepts :template_id and :required_startup" do
129
- hash = [:post, "/virtual_machines/1/build.json", {:query=>{:virtual_machine=>{:template_id=>1, :required_startup=>1}}}]
130
- @virtual_machine.should_receive(:request).with(*hash).once.and_return({'virtual_machine'=>{}})
131
- @virtual_machine.build(1, :template_id => 1, :required_startup => 1)
132
- end
133
-
134
- it "raises error on unknown params" do
135
- expect { @virtual_machine.build(1, :template_id => 1, :asdf => 1) }.to raise_error(ArgumentError, 'Unknown params: asdf')
136
- @virtual_machine.success.should be_false
137
- end
138
55
 
139
56
  it "builds the VM" do
140
- build = @virtual_machine.build(72, :template_id => 1)
57
+ build = @virtual_machine.build(72, template_id: 1)
141
58
 
142
59
  @virtual_machine.success.should be_true
143
60
  end
@@ -146,62 +63,15 @@ describe Squall::VirtualMachine do
146
63
  describe "#edit" do
147
64
  use_vcr_cassette "virtual_machine/edit"
148
65
 
149
- it "requires an id" do
150
- expect { @virtual_machine.edit }.to raise_error(ArgumentError)
151
- @virtual_machine.success.should be_false
152
- end
153
-
154
- it "raises error on unknown params" do
155
- expect { @virtual_machine.edit(1, :blah => 1) }.to raise_error(ArgumentError, 'Unknown params: blah')
156
- @virtual_machine.success.should be_false
157
- end
158
-
159
- it "accepts all valid keys" do
160
- keys = [:label,
161
- :hypervisor_id,
162
- :hostname,
163
- :memory,
164
- :cpus,
165
- :cpu_shares,
166
- :primary_disk_size,
167
- :cpu_shares,
168
- :swap_disk_size,
169
- :primary_network_id,
170
- :required_automatic_backup,
171
- :rate_limit,
172
- :required_ip_address_assignment,
173
- :required_virtual_machine_build,
174
- :admin_note,
175
- :note,
176
- :allowed_hot_migrate,
177
- :template_id,
178
- :initial_root_password
179
- ]
180
- keys.each do |k|
181
- opts = @virtual_machine.default_params(k.to_sym => 1)
182
- args = [:put, '/virtual_machines/1.json', opts]
183
- @virtual_machine.should_receive(:request).with(*args).once.and_return([])
184
- @virtual_machine.edit(1, k.to_sym => 1 )
185
- end
186
- end
187
-
188
66
  it "updates the label" do
189
- @virtual_machine.edit(1, :label => 'testing')
67
+ virtual_machine = @virtual_machine.edit(1, label: 'testing')
190
68
  @virtual_machine.success.should be_true
69
+ virtual_machine['label'].should == 'testing'
191
70
  end
192
71
  end
193
72
 
194
73
  describe "#change_owner" do
195
74
  use_vcr_cassette "virtual_machine/change_owner"
196
- it "requires an id" do
197
- expect { @virtual_machine.change_owner }.to raise_error(ArgumentError)
198
- @virtual_machine.success.should be_false
199
- end
200
-
201
- it "requires a user_id" do
202
- expect { @virtual_machine.change_owner 1 }.to raise_error(ArgumentError)
203
- @virtual_machine.success.should be_false
204
- end
205
75
 
206
76
  pending "this should raise a 422 on OnApp's side, but it's currently raising a 500 which causes HTTParty to explode, see README (and update when fixed)" do
207
77
  it "returns error on unknown user" do
@@ -220,15 +90,6 @@ describe Squall::VirtualMachine do
220
90
 
221
91
  describe "#change_password" do
222
92
  use_vcr_cassette "virtual_machine/change_password"
223
- it "requires an id" do
224
- expect { @virtual_machine.change_password }.to raise_error(ArgumentError)
225
- @virtual_machine.success.should be_false
226
- end
227
-
228
- it "requires a password" do
229
- expect { @virtual_machine.change_password 1 }.to raise_error(ArgumentError)
230
- @virtual_machine.success.should be_false
231
- end
232
93
 
233
94
  it "changes the password" do
234
95
  result = @virtual_machine.change_password(1, 'passwordsareimportant')
@@ -238,10 +99,6 @@ describe Squall::VirtualMachine do
238
99
 
239
100
  describe "#set_ssh_keys" do
240
101
  use_vcr_cassette "virtual_machine/set_ssh_keys"
241
- it "requires an id" do
242
- expect { @virtual_machine.set_ssh_keys }.to raise_error(ArgumentError)
243
- @virtual_machine.success.should be_false
244
- end
245
102
 
246
103
  it "sets the SSH keys" do
247
104
  result = @virtual_machine.set_ssh_keys(1)
@@ -251,25 +108,10 @@ describe Squall::VirtualMachine do
251
108
 
252
109
  describe "#migrate" do
253
110
  use_vcr_cassette "virtual_machine/migrate"
254
- it "requires an id" do
255
- expect { @virtual_machine.migrate }.to raise_error(ArgumentError)
256
- @virtual_machine.success.should be_false
257
- end
258
-
259
- it "requires a destination" do
260
- requires_attr(:destination) { @virtual_machine.migrate 1 }
261
- @virtual_machine.success.should be_false
262
- end
263
-
264
- it "accepts cold_migrate_on_rollback" do
265
- hash = [:post, "/virtual_machines/1/migrate.json", {:query => {:virtual_machine => {:destination => 1, :cold_migrate_on_rollback => 1}} }]
266
- @virtual_machine.should_receive(:request).with(*hash).once.and_return({'virtual_machine'=>{}})
267
- @virtual_machine.migrate 1, :destination => 1, :cold_migrate_on_rollback => 1
268
- end
269
111
 
270
112
  it "changes the hypervisor" do
271
113
  pending "Broken in OnApp" do
272
- result = @virtual_machine.migrate(1, :destination => 2)
114
+ result = @virtual_machine.migrate(1, destination: 2)
273
115
  @virtual_machine.success.should be_true
274
116
  result['virtual_machine']['hypervisor_id'].should == 2
275
117
  end
@@ -278,9 +120,6 @@ describe Squall::VirtualMachine do
278
120
 
279
121
  describe "#set_vip" do
280
122
  use_vcr_cassette "virtual_machine/set_vip"
281
- it "requires an id" do
282
- expect { @virtual_machine.set_vip }.to raise_error(ArgumentError)
283
- end
284
123
 
285
124
  it "deletes a virtual_machine" do
286
125
  @virtual_machine.set_vip(1)
@@ -298,9 +137,6 @@ describe Squall::VirtualMachine do
298
137
 
299
138
  describe "#delete" do
300
139
  use_vcr_cassette "virtual_machine/delete"
301
- it "requires an id" do
302
- expect { @virtual_machine.delete }.to raise_error(ArgumentError)
303
- end
304
140
 
305
141
  it "deletes a virtual_machine" do
306
142
  virtual_machine = @virtual_machine.delete(1)
@@ -310,51 +146,17 @@ describe Squall::VirtualMachine do
310
146
 
311
147
  describe "#resize" do
312
148
  use_vcr_cassette "virtual_machine/resize"
313
- it "requires an id" do
314
- expect { @virtual_machine.resize }.to raise_error(ArgumentError)
315
- end
316
-
317
- it "accepts memory" do
318
- hash = [:post, "/virtual_machines/1/resize.json", @virtual_machine.default_params(:memory => 1)]
319
- @virtual_machine.should_receive(:request).with(*hash).once.and_return({'virtual_machine'=>{}})
320
- @virtual_machine.resize 1, :memory => 1
321
- end
322
-
323
- it "accepts cpus" do
324
- hash = [:post, "/virtual_machines/1/resize.json", @virtual_machine.default_params(:cpus => 1)]
325
- @virtual_machine.should_receive(:request).with(*hash).once.and_return({'virtual_machine'=>{}})
326
- @virtual_machine.resize 1, :cpus => 1
327
- end
328
-
329
- it "accepts cpu_shares" do
330
- hash = [:post, "/virtual_machines/1/resize.json", @virtual_machine.default_params(:cpu_shares => 1)]
331
- @virtual_machine.should_receive(:request).with(*hash).once.and_return({'virtual_machine'=>{}})
332
- @virtual_machine.resize 1, :cpu_shares => 1
333
- end
334
-
335
- it "accepts allow_cold_resize" do
336
- hash = [:post, "/virtual_machines/1/resize.json", @virtual_machine.default_params(:allow_cold_resize => 1)]
337
- @virtual_machine.should_receive(:request).with(*hash).once.and_return({'virtual_machine'=>{}})
338
- @virtual_machine.resize 1, :allow_cold_resize => 1
339
- end
340
149
 
341
150
  it "resizes a virtual_machine" do
342
- virtual_machine = @virtual_machine.resize(1, :memory => 1000)
151
+ virtual_machine = @virtual_machine.resize(1, memory: 1000)
343
152
  @virtual_machine.success.should be_true
344
153
 
345
154
  virtual_machine['memory'].should == 1000
346
155
  end
347
-
348
- it "requires at least one option" do
349
- expect { @virtual_machine.resize(1) }.to raise_error(ArgumentError)
350
- end
351
156
  end
352
157
 
353
158
  describe "#suspend" do
354
159
  use_vcr_cassette "virtual_machine/suspend"
355
- it "requires an id" do
356
- expect { @virtual_machine.suspend }.to raise_error(ArgumentError)
357
- end
358
160
 
359
161
  it "suspends a virtual_machine" do
360
162
  virtual_machine = @virtual_machine.suspend(1)
@@ -364,9 +166,6 @@ describe Squall::VirtualMachine do
364
166
 
365
167
  describe "#unlock" do
366
168
  use_vcr_cassette "virtual_machine/unlock"
367
- it "requires an id" do
368
- expect { @virtual_machine.unlock }.to raise_error(ArgumentError)
369
- end
370
169
 
371
170
  it "unlocks a virtual_machine" do
372
171
  virtual_machine = @virtual_machine.unlock(1)
@@ -376,10 +175,6 @@ describe Squall::VirtualMachine do
376
175
 
377
176
  describe "#startup" do
378
177
  use_vcr_cassette "virtual_machine/startup"
379
- it "requires an id" do
380
- expect { @virtual_machine.startup }.to raise_error(ArgumentError)
381
- @virtual_machine.success.should be_false
382
- end
383
178
 
384
179
  it "startups a virtual_machine" do
385
180
  @virtual_machine.startup(1)
@@ -389,10 +184,6 @@ describe Squall::VirtualMachine do
389
184
 
390
185
  describe "#shutdown" do
391
186
  use_vcr_cassette "virtual_machine/shutdown"
392
- it "requires an id" do
393
- expect { @virtual_machine.shutdown }.to raise_error(ArgumentError)
394
- @virtual_machine.success.should be_false
395
- end
396
187
 
397
188
  it "will shutdown a virtual_machine" do
398
189
  virtual_machine = @virtual_machine.shutdown(1)
@@ -402,10 +193,6 @@ describe Squall::VirtualMachine do
402
193
 
403
194
  describe "#stop" do
404
195
  use_vcr_cassette "virtual_machine/stop"
405
- it "requires an id" do
406
- expect { @virtual_machine.stop }.to raise_error(ArgumentError)
407
- @virtual_machine.success.should be_false
408
- end
409
196
 
410
197
  it "will stop a virtual_machine" do
411
198
  virtual_machine = @virtual_machine.stop(1)
@@ -415,10 +202,6 @@ describe Squall::VirtualMachine do
415
202
 
416
203
  describe "#reboot" do
417
204
  use_vcr_cassette "virtual_machine/reboot"
418
- it "requires an id" do
419
- expect { @virtual_machine.reboot }.to raise_error(ArgumentError)
420
- @virtual_machine.success.should be_false
421
- end
422
205
 
423
206
  it "will reboot a virtual_machine" do
424
207
  virtual_machine = @virtual_machine.reboot(1)
@@ -426,7 +209,7 @@ describe Squall::VirtualMachine do
426
209
  end
427
210
 
428
211
  it "reboots in recovery" do
429
- hash = [:post, "/virtual_machines/1/reboot.json", {:query => {:mode => :recovery}}]
212
+ hash = [:post, "/virtual_machines/1/reboot.json", {query: {mode: :recovery}}]
430
213
  @virtual_machine.should_receive(:request).with(*hash).once.and_return({'virtual_machine'=>{}})
431
214
  @virtual_machine.reboot 1, true
432
215
  end
@@ -434,15 +217,6 @@ describe Squall::VirtualMachine do
434
217
 
435
218
  describe "#segregate" do
436
219
  use_vcr_cassette "virtual_machine/segregate"
437
- it "requires an id" do
438
- expect { @virtual_machine.segregate }.to raise_error(ArgumentError)
439
- @virtual_machine.success.should be_false
440
- end
441
-
442
- it "requires a target_vm_id" do
443
- expect { @virtual_machine.segregate 1 }.to raise_error(ArgumentError)
444
- @virtual_machine.success.should be_false
445
- end
446
220
 
447
221
  it "segregates the VMS with given ids" do
448
222
  result = @virtual_machine.segregate(1, 2)
@@ -452,10 +226,6 @@ describe Squall::VirtualMachine do
452
226
 
453
227
  describe "#console" do
454
228
  use_vcr_cassette "virtual_machine/console"
455
- it "requires an id" do
456
- expect { @virtual_machine.console }.to raise_error(ArgumentError)
457
- @virtual_machine.success.should be_false
458
- end
459
229
 
460
230
  it "will reboot a virtual_machine" do
461
231
  pending "broken on OnApp (returning 500)" do
@@ -467,10 +237,6 @@ describe Squall::VirtualMachine do
467
237
 
468
238
  describe "#stats" do
469
239
  use_vcr_cassette "virtual_machine/stats"
470
- it "requires an id" do
471
- expect { @virtual_machine.stats }.to raise_error(ArgumentError)
472
- @virtual_machine.success.should be_false
473
- end
474
240
 
475
241
  it "will stop a virtual_machine" do
476
242
  pending "broken on OnApp (returning 500)" do
@@ -3,16 +3,12 @@ require 'spec_helper'
3
3
  describe Squall::Whitelist do
4
4
  before(:each) do
5
5
  @whitelist = Squall::Whitelist.new
6
- @valid = {:ip => "192.168.1.1"}
6
+ @valid = {ip: "192.168.1.1"}
7
7
  end
8
8
 
9
9
  describe "#list" do
10
10
  use_vcr_cassette "whitelist/list"
11
11
 
12
- it "requires user id" do
13
- expect { @whitelist.list }.to raise_error(ArgumentError)
14
- end
15
-
16
12
  it "returns a user's whitelists" do
17
13
  whitelists = @whitelist.list(1)
18
14
  whitelists.should be_an(Array)
@@ -26,9 +22,6 @@ describe Squall::Whitelist do
26
22
 
27
23
  describe "#show" do
28
24
  use_vcr_cassette "whitelist/show"
29
- it "requires an id" do
30
- expect { @whitelist.show(1) }.to raise_error(ArgumentError)
31
- end
32
25
 
33
26
  it "returns a whitelist" do
34
27
  whitelist = @whitelist.show(1, 2)
@@ -38,22 +31,6 @@ describe Squall::Whitelist do
38
31
 
39
32
  describe "#create" do
40
33
  use_vcr_cassette "whitelist/create"
41
- it "requires amount" do
42
- invalid = @valid.reject{|k,v| k == :ip }
43
- requires_attr(:ip) { @whitelist.create(1, invalid) }
44
- end
45
-
46
- it "allows all optional params" do
47
- optional = [:description]
48
- @whitelist.should_receive(:request).exactly(optional.size).times.and_return Hash.new("whitelist" => {})
49
- optional.each do |param|
50
- @whitelist.create(1, @valid.merge(param => "test"))
51
- end
52
- end
53
-
54
- it "raises error on unknown params" do
55
- expect { @whitelist.create(1, @valid.merge(:what => 'what')) }.to raise_error(ArgumentError, 'Unknown params: what')
56
- end
57
34
 
58
35
  it "creates a whitelist for a user" do
59
36
  @whitelist.create(1, @valid)
@@ -64,29 +41,14 @@ describe Squall::Whitelist do
64
41
  describe "#edit" do
65
42
  use_vcr_cassette "whitelist/edit"
66
43
 
67
- it "allows select params" do
68
- optional = [:ip, :description]
69
- @whitelist.should_receive(:request).exactly(optional.size).times.and_return Hash.new()
70
- optional.each do |param|
71
- @whitelist.edit(1, 1, param => "test")
72
- end
73
- end
74
-
75
- it "raises error on unknown params" do
76
- expect { @whitelist.edit(1, 1, :what => 'what') }.to raise_error(ArgumentError, 'Unknown params: what')
77
- end
78
-
79
44
  it "edits a whitelist" do
80
- @whitelist.edit(1, 1, :description => "This is actually a different computer.")
45
+ @whitelist.edit(1, 1, description: "This is actually a different computer.")
81
46
  @whitelist.success.should be_true
82
47
  end
83
48
  end
84
49
 
85
50
  describe "#delete" do
86
51
  use_vcr_cassette "whitelist/delete"
87
- it "requires an id" do
88
- expect { @whitelist.delete }.to raise_error(ArgumentError)
89
- end
90
52
 
91
53
  it "deletes a whitelist" do
92
54
  @whitelist.delete(1, 1)