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
data/lib/squall.rb CHANGED
@@ -1,13 +1,12 @@
1
+ require 'yaml'
1
2
  require 'faraday'
2
3
  require 'faraday_middleware'
3
4
 
4
5
  require 'squall/support/version'
5
6
  require 'squall/support/exception'
6
- require 'squall/support/yaml'
7
7
 
8
8
  module Squall
9
9
  # Support
10
- autoload :Params, 'squall/support/params'
11
10
  autoload :Config, 'squall/support/config'
12
11
  autoload :Base, 'squall/support/base'
13
12
  # Api
@@ -28,6 +27,7 @@ module Squall
28
27
  autoload :DataStoreZone, 'squall/data_store_zone'
29
28
  autoload :NetworkZone, 'squall/network_zone'
30
29
  autoload :HypervisorZone, 'squall/hypervisor_zone'
30
+ autoload :Disk, 'squall/disk'
31
31
 
32
32
  extend self
33
33
 
@@ -39,53 +39,55 @@ module Squall
39
39
 
40
40
  self.configuration ||= Squall::Config.new
41
41
 
42
- # Specificy the config via block
42
+ # Public: Configures Squall.
43
43
  #
44
- # ==== Attributes
44
+ # Yields Squall.configuration if a block is given.
45
45
  #
46
- # * +base_uri+ - URL of your OnApp instance
47
- # * +username+ - API username
48
- # * +password+ - API Password
49
- # * +debug+ - Toggle debug mode to log HTTParty
46
+ # Example
50
47
  #
51
- # ==== Example
48
+ # Squall.config do |c|
49
+ # c.base_uri 'http://onapp.myserver.com'
50
+ # c.username 'myuser'
51
+ # c.password 'mypass'
52
+ # c.debug true
53
+ # end
52
54
  #
53
- # Squall.config do |c|
54
- # c.base_uri 'http://onapp.myserver.com'
55
- # c.username 'myuser'
56
- # c.password 'mypass'
57
- # end
55
+ # Returns a Hash.
58
56
  def config
59
57
  yield self.configuration if block_given?
60
58
  self.configuration.config
61
59
  end
62
60
 
63
- # Load the config from a YAML file
61
+ # Public: Load the config from a YAML file.
64
62
  #
65
- # ==== Options
63
+ # file - Path to the YAML file, defaults to `~/.squall.yml`
66
64
  #
67
- # * +file+ - Path to the YAML file (default is ~/.squall.yml)
65
+ # Raises ArgumentError if the config file does not exist.
68
66
  #
69
- # ==== Example
67
+ # Example
70
68
  #
71
- # Squall.config_file # (loads ~/.squall.yml)
69
+ # # Load default config file at `~/.squall.yml`:
70
+ # Squall.config_file
72
71
  #
73
- # Squall.config_file '/path/to/squall.yml'
72
+ # # Load custom config file:
73
+ # Squall.config_file '/path/to/squall.yml'
74
74
  #
75
- def config_file(file = nil)
76
- file = File.expand_path(File.expand_path(File.join(ENV['HOME'], '.squall.yml'))) if file.nil?
75
+ # Returns nothing.
76
+ def config_file(file = File.expand_path("~/.squall.yml"))
77
77
  if File.exists?(file)
78
78
  self.configuration_file = file
79
79
  else
80
80
  raise ArgumentError, "Config file doesn't exist '#{file}'"
81
81
  end
82
- settings = YAML::load_file(file)
82
+
83
83
  config do |c|
84
- settings.each { |k, v| c.send(k, v) }
84
+ YAML::load_file(file).each { |k, v| c.send(k, v) }
85
85
  end
86
86
  end
87
87
 
88
- # Reset the config (aka, clear it)
88
+ # Public: Reset the config (aka, clear it)
89
+ #
90
+ # Returns an instance of Squall::Config.
89
91
  def reset_config
90
92
  self.configuration = Squall::Config.new
91
93
  end
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,3 @@
1
- require 'yaml'
2
1
  require 'rspec'
3
2
  require 'vcr'
4
3
  require 'squall'
@@ -7,9 +6,9 @@ VCR.config do |c|
7
6
  c.cassette_library_dir = 'spec/vcr_cassettes'
8
7
  c.stub_with :fakeweb
9
8
  if ENV['RERECORD']
10
- c.default_cassette_options = {:record => :all}
9
+ c.default_cassette_options = {record: :all}
11
10
  else
12
- c.default_cassette_options = {:record => :none}
11
+ c.default_cassette_options = {record: :none}
13
12
  end
14
13
  c.filter_sensitive_data("Basic <REDACTED>") { |i| [i.request.headers['authorization']].flatten.first }
15
14
  c.filter_sensitive_data("<REDACTED>") { |i| [i.response.headers['set-cookie']].flatten.first }
@@ -30,7 +29,7 @@ end
30
29
 
31
30
  def configure_for_tests
32
31
  if ENV['RERECORD']
33
- Squall.config_file
32
+ Squall.config_file
34
33
  else
35
34
  Squall.config do |c|
36
35
  c.username "test"
@@ -40,13 +39,9 @@ def configure_for_tests
40
39
  end
41
40
  end
42
41
 
43
- def requires_attr(attr, &block)
44
- expect { block.call }.to raise_error(ArgumentError, /Missing required params: #{attr}/i)
45
- end
46
-
47
42
  def mock_request(meth, path, options = {})
48
43
  config = Squall.config
49
- uri = URI.parse(Squall.config[:base_uri])
44
+ uri = URI.parse(config[:base_uri])
50
45
  url = "#{uri.scheme}://#{config[:username]}:#{config[:password]}@#{uri.host}:#{uri.port}#{path}"
51
- FakeWeb.register_uri(meth, url, {:content_type => 'application/json'}.merge(options))
52
- end
46
+ FakeWeb.register_uri(meth, url, {content_type: 'application/json'}.merge(options))
47
+ end
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe Squall::DataStoreZone do
4
4
  before(:each) do
5
5
  @data_store_zone = Squall::DataStoreZone.new
6
- @valid = {:label => "My zone"}
6
+ @valid = {label: "My zone"}
7
7
  end
8
8
 
9
9
  describe "#list" do
@@ -22,9 +22,6 @@ describe Squall::DataStoreZone do
22
22
 
23
23
  describe "#show" do
24
24
  use_vcr_cassette "data_store_zone/show"
25
- it "requires an id" do
26
- expect { @data_store_zone.show }.to raise_error(ArgumentError)
27
- end
28
25
 
29
26
  it "returns a data store zone" do
30
27
  data_store_zone = @data_store_zone.show(1)
@@ -34,14 +31,6 @@ describe Squall::DataStoreZone do
34
31
 
35
32
  describe "#create" do
36
33
  use_vcr_cassette "data_store_zone/create"
37
- it "requires label" do
38
- invalid = @valid.reject{|k,v| k == :label }
39
- requires_attr(:label) { @data_store_zone.create(invalid) }
40
- end
41
-
42
- it "raises error on unknown params" do
43
- expect { @data_store_zone.create(@valid.merge(:what => 'what')) }.to raise_error(ArgumentError, 'Unknown params: what')
44
- end
45
34
 
46
35
  it "creates a data store zone" do
47
36
  @data_store_zone.create(@valid)
@@ -60,21 +49,14 @@ describe Squall::DataStoreZone do
60
49
  end
61
50
  end
62
51
 
63
- it "raises error on unknown params" do
64
- expect { @data_store_zone.edit(1, @valid.merge(:what => 'what')) }.to raise_error(ArgumentError, 'Unknown params: what')
65
- end
66
-
67
52
  it "edits a data store zone" do
68
- @data_store_zone.edit(1, :label => "Updated zone")
53
+ @data_store_zone.edit(1, label: "Updated zone")
69
54
  @data_store_zone.success.should be_true
70
55
  end
71
56
  end
72
57
 
73
58
  describe "#delete" do
74
59
  use_vcr_cassette "data_store_zone/delete"
75
- it "requires an id" do
76
- expect { @data_store_zone.delete }.to raise_error(ArgumentError)
77
- end
78
60
 
79
61
  it "deletes a data store zone" do
80
62
  @data_store_zone.delete(1)
@@ -0,0 +1,189 @@
1
+ require 'spec_helper'
2
+
3
+ describe Squall::Disk do
4
+ before(:each) do
5
+ @disk = Squall::Disk.new
6
+ @valid = { data_store_id: 1, disk_size: 2, is_swap: 0,
7
+ mount_point: '/disk2', add_to_linux_fstab: 0,
8
+ require_format_disk: 1 }
9
+ end
10
+
11
+ describe "#list" do
12
+ use_vcr_cassette "disk/list"
13
+
14
+ it "returns all disk" do
15
+ disks = @disk.list
16
+ disks.should be_an(Array)
17
+ end
18
+
19
+ it "contains the disk data" do
20
+ disks = @disk.list
21
+ disks.all? { |w| w.is_a?(Hash) }.should be_true
22
+ end
23
+
24
+ it "contains correct disk data" do
25
+ disks = @disk.list
26
+ disks.all? { |w| !w['disk_vm_number'].nil? }.should be_true
27
+ end
28
+ end
29
+
30
+ describe "#vm_disk_list" do
31
+ use_vcr_cassette "disk/vm_disk_list"
32
+
33
+ it "returns all VM disk" do
34
+ disks = @disk.vm_disk_list(58)
35
+ disks.should be_an(Array)
36
+ end
37
+
38
+ it "contains the disk data" do
39
+ disks = @disk.vm_disk_list(58)
40
+ disks.all? { |w| w.is_a?(Hash) }.should be_true
41
+ end
42
+
43
+ it "contains correct disk data" do
44
+ disks = @disk.vm_disk_list(58)
45
+ disks.all? { |w| !w['disk_vm_number'].nil? }.should be_true
46
+ end
47
+ end
48
+
49
+ describe "#create" do
50
+ use_vcr_cassette "disk/create"
51
+
52
+ it "creates a disk" do
53
+ @disk.create(58, @valid)
54
+ @disk.success.should be_true
55
+ end
56
+ end
57
+
58
+ describe "#edit" do
59
+ use_vcr_cassette "disk/edit"
60
+
61
+ it "accepts valid params" do
62
+ @disk.edit(78, disk_size: 3)
63
+ @disk.success.should be_true
64
+ end
65
+ end
66
+
67
+
68
+ describe "#migrate" do
69
+ use_vcr_cassette "disk/migrate"
70
+
71
+ it "should return association error" do
72
+ migrate = @disk.migrate(58, 78, data_store_id: 2)
73
+ @disk.success.should be_false
74
+ migrate['errors'].should include("Data store cannot be associated with this virtual machine.")
75
+ end
76
+ end
77
+
78
+ describe "#iops_usage" do
79
+ use_vcr_cassette "disk/iops_usage"
80
+
81
+ it "returns a disk IOPS usage" do
82
+ usage = @disk.iops_usage(77)
83
+ usage.should be_a(Array)
84
+ usage.all? { |w| w.is_a?(Hash) }.should be_true
85
+ usage.all? { |w| !w['stat_time'].nil? }.should be_true
86
+ end
87
+ end
88
+
89
+ describe "#build" do
90
+ use_vcr_cassette "disk/build"
91
+
92
+ it "builds a disk" do
93
+ @disk.build(78)
94
+ @disk.success.should be_true
95
+ end
96
+
97
+ it "returns disk info" do
98
+ build = @disk.build(78)
99
+ build.should be_a(Hash)
100
+ build['id'].should eq 78
101
+ end
102
+ end
103
+
104
+ describe "#unlock" do
105
+ use_vcr_cassette "disk/unlock"
106
+
107
+ it "unlocks a disk" do
108
+ @disk.unlock(78)
109
+ @disk.success.should be_true
110
+ end
111
+
112
+ it "returns disk info" do
113
+ unlock = @disk.unlock(78)
114
+ unlock.should be_a(Hash)
115
+ unlock['id'].should eq 78
116
+ end
117
+ end
118
+
119
+ describe "#auto_backup_on" do
120
+ use_vcr_cassette "disk/auto_backup_on"
121
+
122
+ it "enable auto_backup for disk" do
123
+ @disk.auto_backup_on(78)
124
+ @disk.success.should be_true
125
+ end
126
+
127
+ it "returns disk info" do
128
+ backup = @disk.auto_backup_on(78)
129
+ backup.should be_a(Hash)
130
+ backup['id'].should eq 78
131
+ end
132
+ end
133
+
134
+ describe "#auto_backup_off" do
135
+ use_vcr_cassette "disk/auto_backup_off"
136
+
137
+ it "disable auto_backup for disk" do
138
+ @disk.auto_backup_off(78)
139
+ @disk.success.should be_true
140
+ end
141
+
142
+ it "returns disk info" do
143
+ backup = @disk.auto_backup_off(78)
144
+ backup.should be_a(Hash)
145
+ backup['id'].should eq 78
146
+ end
147
+ end
148
+
149
+ describe "#schedules" do
150
+ use_vcr_cassette "disk/schedules"
151
+
152
+ it "returns schedules for a disk" do
153
+ schedules = @disk.schedules(78)
154
+ schedules.should be_a(Array)
155
+ schedules.all? { |w| !w['target_id'].nil? }.should be_true
156
+ end
157
+ end
158
+
159
+ describe "#add_schedule" do
160
+ use_vcr_cassette "disk/add_schedule"
161
+
162
+ it "adds schedule for a disk" do
163
+ disk = @disk.add_schedule(78, action: 'autobackup', duration: 1, period: 'days')
164
+ @disk.success.should be_true
165
+ disk.should be_a(Array)
166
+ end
167
+ end
168
+
169
+ describe "#backups" do
170
+ use_vcr_cassette "disk/backups"
171
+
172
+ it "lists backups for a disk" do
173
+ backups = @disk.backups(78)
174
+ @disk.success.should be_true
175
+ backups.should be_a(Array)
176
+ backups.all? { |w| !w['disk_id'].nil? }.should be_true
177
+ end
178
+ end
179
+
180
+ describe "#delete" do
181
+ use_vcr_cassette "disk/delete"
182
+
183
+ it "deletes a disk" do
184
+ @disk.delete(78)
185
+ @disk.success.should be_true
186
+ end
187
+ end
188
+
189
+ end
@@ -3,16 +3,12 @@ require 'spec_helper'
3
3
  describe Squall::FirewallRule do
4
4
  before(:each) do
5
5
  @firewall_rule = Squall::FirewallRule.new
6
- @valid = {:command => "DROP", :protocol => "TCP", :network_interface_id => 1}
6
+ @valid = {command: "DROP", protocol: "TCP", network_interface_id: 1}
7
7
  end
8
8
 
9
9
  describe "#list" do
10
10
  use_vcr_cassette "firewall_rule/list"
11
11
 
12
- it "requires vm id" do
13
- expect { @firewall_rule.list }.to raise_error(ArgumentError)
14
- end
15
-
16
12
  it "returns a list of firewall rules for a vm" do
17
13
  firewall_rules = @firewall_rule.list(1)
18
14
  firewall_rules.should be_an(Array)
@@ -26,20 +22,6 @@ describe Squall::FirewallRule do
26
22
 
27
23
  describe "#create" do
28
24
  use_vcr_cassette "firewall_rule/create"
29
- it "requires command" do
30
- invalid = @valid.reject{|k,v| k == :command }
31
- requires_attr(:command) { @firewall_rule.create(1, invalid) }
32
- end
33
-
34
- it "requires protocol" do
35
- invalid = @valid.reject{|k,v| k == :protocol }
36
- requires_attr(:protocol) { @firewall_rule.create(1, invalid) }
37
- end
38
-
39
- it "requires network_interface_id" do
40
- invalid = @valid.reject{|k,v| k == :network_interface_id }
41
- requires_attr(:network_interface_id) { @firewall_rule.create(1, invalid) }
42
- end
43
25
 
44
26
  it "allows all optional params" do
45
27
  optional = [:network_interface_id, :address, :port]
@@ -49,10 +31,6 @@ describe Squall::FirewallRule do
49
31
  end
50
32
  end
51
33
 
52
- it "raises error on unknown params" do
53
- expect { @firewall_rule.create(1, @valid.merge(:what => 'what')) }.to raise_error(ArgumentError, 'Unknown params: what')
54
- end
55
-
56
34
  it "creates a firewall rule for a virtual machine" do
57
35
  @firewall_rule.create(1, @valid)
58
36
  @firewall_rule.success.should be_true
@@ -70,12 +48,8 @@ describe Squall::FirewallRule do
70
48
  end
71
49
  end
72
50
 
73
- it "raises error on unknown params" do
74
- expect { @firewall_rule.edit(1, 1, :what => 'what') }.to raise_error(ArgumentError, 'Unknown params: what')
75
- end
76
-
77
51
  it "edits a firewall rule" do
78
- @firewall_rule.edit(1, 1, :port => 1000)
52
+ @firewall_rule.edit(1, 1, port: 1000)
79
53
  @firewall_rule.success.should be_true
80
54
  end
81
55
  end
@@ -83,10 +57,6 @@ describe Squall::FirewallRule do
83
57
  describe "#delete" do
84
58
  use_vcr_cassette "firewall_rule/delete"
85
59
 
86
- it "requires an id" do
87
- expect { @firewall_rule.delete }.to raise_error(ArgumentError)
88
- end
89
-
90
60
  it "deletes a firewall rule" do
91
61
  @firewall_rule.delete(1, 1)
92
62
  @firewall_rule.success.should be_true
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe Squall::Hypervisor do
4
4
  before(:each) do
5
5
  @hv = Squall::Hypervisor.new
6
- @valid = {:label => 'A new hypervisor', :ip_address => '127.126.126.126', :hypervisor_type => 'xen'}
6
+ @valid = {label: 'A new hypervisor', ip_address: '127.126.126.126', hypervisor_type: 'xen'}
7
7
  end
8
8
 
9
9
  describe "#list" do
@@ -23,9 +23,6 @@ describe Squall::Hypervisor do
23
23
 
24
24
  describe "#show" do
25
25
  use_vcr_cassette "hypervisor/show"
26
- it "requires an id" do
27
- expect { @hv.show }.to raise_error(ArgumentError)
28
- end
29
26
 
30
27
  it "returns a hv" do
31
28
  @hv.show(1)
@@ -35,23 +32,6 @@ describe Squall::Hypervisor do
35
32
 
36
33
  describe "#create" do
37
34
  use_vcr_cassette "hypervisor/create"
38
- it "requires label" do
39
- invalid = @valid.reject{|k,v| k == :label }
40
- requires_attr(:label) { @hv.create(invalid) }
41
- @hv.success.should be_false
42
- end
43
-
44
- it "requires ip_address" do
45
- invalid = @valid.reject{|k,v| k == :ip_address }
46
- requires_attr(:ip_address) { @hv.create(invalid) }
47
- @hv.success.should be_false
48
- end
49
-
50
- it "requires hypervisor_type" do
51
- invalid = @valid.reject{|k,v| k == :hypervisor_type }
52
- requires_attr(:hypervisor_type) { @hv.create(invalid) }
53
- @hv.success.should be_false
54
- end
55
35
 
56
36
  it "creates a hypervisor" do
57
37
  @hv.create(@valid)
@@ -61,28 +41,15 @@ describe Squall::Hypervisor do
61
41
 
62
42
  describe "#edit" do
63
43
  use_vcr_cassette 'hypervisor/edit'
64
- it "requires an id" do
65
- expect { @hv.edit }.to raise_error(ArgumentError)
66
- @hv.success.should be_false
67
- end
68
-
69
- it "raises an error with unknown param " do
70
- expect { @hv.edit(1, :blah => 1)}.to raise_error(ArgumentError)
71
- @hv.success.should be_false
72
- end
73
44
 
74
45
  it "edits the hypervisor" do
75
- edit = @hv.edit(1, :label => 'A new label')
46
+ edit = @hv.edit(1, label: 'A new label')
76
47
  @hv.success.should be_true
77
48
  end
78
49
  end
79
50
 
80
51
  describe "#reboot" do
81
52
  use_vcr_cassette 'hypervisor/reboot'
82
- it "requires an id" do
83
- expect { @hv.reboot }.to raise_error(ArgumentError)
84
- @hv.success.should be_false
85
- end
86
53
 
87
54
  it "reboots the hypervisor" do
88
55
  reboot = @hv.reboot(1)
@@ -92,9 +59,6 @@ describe Squall::Hypervisor do
92
59
 
93
60
  describe "#delete" do
94
61
  use_vcr_cassette "hypervisor/delete"
95
- it "requires an id" do
96
- expect { @hv.delete }.to raise_error(ArgumentError)
97
- end
98
62
 
99
63
  it "returns a hv" do
100
64
  @hv.delete(1)
@@ -155,16 +119,8 @@ describe Squall::Hypervisor do
155
119
  describe "#add_network_join" do
156
120
  use_vcr_cassette "hypervisor/add_network_join"
157
121
 
158
- it "requires network id" do
159
- requires_attr(:network_id) { @hv.add_network_join(1, :interface => "interface") }
160
- end
161
-
162
- it "requires interface" do
163
- requires_attr(:interface) { @hv.add_network_join(1, :network_id => 1) }
164
- end
165
-
166
122
  it "adds the network to the hypervisor zone" do
167
- @hv.add_network_join(1, :network_id => 1, :interface => "interface")
123
+ @hv.add_network_join(1, network_id: 1, interface: "interface")
168
124
  @hv.success.should be_true
169
125
  end
170
126
 
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe Squall::HypervisorZone do
4
4
  before(:each) do
5
5
  @hypervisor_zone = Squall::HypervisorZone.new
6
- @valid = {:label => "My zone"}
6
+ @valid = {label: "My zone"}
7
7
  end
8
8
 
9
9
  describe "#list" do
@@ -22,9 +22,6 @@ describe Squall::HypervisorZone do
22
22
 
23
23
  describe "#show" do
24
24
  use_vcr_cassette "hypervisor_zones/show"
25
- it "requires an id" do
26
- expect { @hypervisor_zone.show }.to raise_error(ArgumentError)
27
- end
28
25
 
29
26
  it "returns a hypervisor zone" do
30
27
  hypervisor_zones = @hypervisor_zone.show(1)
@@ -34,14 +31,6 @@ describe Squall::HypervisorZone do
34
31
 
35
32
  describe "#create" do
36
33
  use_vcr_cassette "hypervisor_zones/create"
37
- it "requires label" do
38
- invalid = @valid.reject{|k,v| k == :label }
39
- requires_attr(:label) { @hypervisor_zone.create(invalid) }
40
- end
41
-
42
- it "raises error on unknown params" do
43
- expect { @hypervisor_zone.create(@valid.merge(:what => 'what')) }.to raise_error(ArgumentError, 'Unknown params: what')
44
- end
45
34
 
46
35
  it "creates a hypervisor zone" do
47
36
  @hypervisor_zone.create(@valid)
@@ -60,12 +49,8 @@ describe Squall::HypervisorZone do
60
49
  end
61
50
  end
62
51
 
63
- it "raises error on unknown params" do
64
- expect { @hypervisor_zone.edit(1, @valid.merge(:what => 'what')) }.to raise_error(ArgumentError, 'Unknown params: what')
65
- end
66
-
67
52
  it "edits a hypervisor zone" do
68
- @hypervisor_zone.edit(1, :label => "Updated zone")
53
+ @hypervisor_zone.edit(1, label: "Updated zone")
69
54
  @hypervisor_zone.success.should be_true
70
55
  end
71
56
  end
@@ -150,16 +135,8 @@ describe Squall::HypervisorZone do
150
135
  describe "#add_network_join" do
151
136
  use_vcr_cassette "hypervisor_zones/add_network_join"
152
137
 
153
- it "requires network id" do
154
- requires_attr(:network_id) { @hypervisor_zone.add_network_join(1, :interface => "interface") }
155
- end
156
-
157
- it "requires interface" do
158
- requires_attr(:interface) { @hypervisor_zone.add_network_join(1, :network_id => 1) }
159
- end
160
-
161
138
  it "adds the network to the hypervisor zone" do
162
- @hypervisor_zone.add_network_join(1, :network_id => 1, :interface => "interface")
139
+ @hypervisor_zone.add_network_join(1, network_id: 1, interface: "interface")
163
140
  @hypervisor_zone.success.should be_true
164
141
  end
165
142
 
@@ -172,7 +149,5 @@ describe Squall::HypervisorZone do
172
149
  @hypervisor_zone.remove_network_join(1, 1)
173
150
  @hypervisor_zone.success.should be_true
174
151
  end
175
-
176
152
  end
177
-
178
153
  end
@@ -8,10 +8,6 @@ describe Squall::IpAddressJoin do
8
8
  describe "#list" do
9
9
  use_vcr_cassette 'ipaddress_join/list'
10
10
 
11
- it "requires virtual machine ID" do
12
- expect { @join.list }.to raise_error(ArgumentError)
13
- end
14
-
15
11
  it "returns list of ip_addresses" do
16
12
  ips = @join.list(1)
17
13
  ips.should be_an(Array)
@@ -26,13 +22,8 @@ describe Squall::IpAddressJoin do
26
22
  describe "#assign" do
27
23
  use_vcr_cassette "ipaddress_join/assign"
28
24
 
29
- it "raises ArgumentError without required arguments" do
30
- expect { @join.assign }.to raise_error(ArgumentError)
31
- expect { @join.assign(1) }.to raise_error(ArgumentError)
32
- end
33
-
34
25
  it "assigns the IP join" do
35
- join = @join.assign(1, {:ip_address_id => 1, :network_interface_id => 1})
26
+ join = @join.assign(1, {ip_address_id: 1, network_interface_id: 1})
36
27
  @join.success.should be_true
37
28
  end
38
29
  end
@@ -40,11 +31,6 @@ describe Squall::IpAddressJoin do
40
31
  describe "#delete" do
41
32
  use_vcr_cassette "ipaddress_join/delete"
42
33
 
43
- it "raises ArgumentError without required arguments" do
44
- expect { @join.delete }.to raise_error(ArgumentError)
45
- expect { @join.delete(1) }.to raise_error(ArgumentError)
46
- end
47
-
48
34
  it "deletes the IP join" do
49
35
  @join.delete(1, 1)
50
36
  @join.success.should be_true