squall 1.3.0 → 1.3.1

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 (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)