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
@@ -1,195 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Squall::Params do
4
- before(:each) do
5
- @params = Squall::Params.new
6
- end
7
-
8
- describe "#new" do
9
- it "sets @valid to {}" do
10
- @params.valid.should be_empty
11
- end
12
-
13
- it "sets @optional to {}" do
14
- @params.optional.should be_empty
15
- end
16
- end
17
-
18
- describe "#required" do
19
- it "stores keys in @valid with an Array" do
20
- params = [:one, :two]
21
- @params.required params
22
- @params.valid.size.should == 2
23
- @params.valid.should include(:one, :two)
24
- end
25
-
26
- it "stores uniq keys only" do
27
- @params.required :one, :one
28
- @params.valid.size.should == 1
29
- @params.valid.should include(:one)
30
- end
31
-
32
- it "adds @valid to @optional" do
33
- params = [:one, :two]
34
- @params.required params
35
- @params.valid.size.should == 2
36
- @params.optional.size.should == 2
37
-
38
- @params.valid.should include(:one, :two)
39
- @params.optional.should include(:one, :two)
40
- end
41
-
42
- it "returns self" do
43
- @params.required([:one, :two]).should be_a(Squall::Params)
44
- end
45
-
46
- it "resets @valid" do
47
- params = [:one, :two]
48
- @params.required params
49
- @params.valid.size.should == 2
50
- @params.valid.should include(:one, :two)
51
-
52
- params = [:three, :four]
53
- @params.required params
54
- @params.valid.size.should == 2
55
- @params.valid.should include(:three, :four)
56
- end
57
- end
58
-
59
- describe "#accepts" do
60
- it "stores keys in @optional with an Array" do
61
- params = [:one, :two]
62
- @params.accepts params
63
- @params.optional.size.should == 2
64
- @params.optional.should include(:one, :two)
65
- end
66
-
67
- it "stores uniq keys only" do
68
- @params.accepts :one, :one
69
- @params.optional.size.should == 1
70
- @params.optional.should include(:one)
71
- end
72
-
73
- it "doesn't reset @valid" do
74
- @params.required(:two)
75
- @params.accepts(:one)
76
-
77
- @params.optional.uniq.size.should be(2)
78
- @params.optional.uniq.should include(:one, :two)
79
- end
80
-
81
-
82
- it "returns self" do
83
- @params.accepts([:one, :two]).should be_a(Squall::Params)
84
- end
85
-
86
- it "resets @optional" do
87
- params = [:one, :two]
88
- @params.accepts params
89
- @params.optional.size.should == 2
90
- @params.optional.should include(:one, :two)
91
-
92
- params = [:three, :four]
93
- @params.accepts params
94
- @params.optional.size.should == 4
95
- @params.optional.should include(:three, :four)
96
- end
97
- end
98
-
99
- describe "#validate_required!" do
100
- describe "Array param input" do
101
- it "raises an error with missing options" do
102
- params = [:one, :two]
103
- @params.required params
104
- expect { @params.validate_required!(:three) }.to raise_error(ArgumentError)
105
- end
106
-
107
- it "does not raise an error with valid" do
108
- params = [:one, :two]
109
- @params.required params
110
- @params.validate_required!(:one, :two)
111
- end
112
-
113
- it "does not raise an error when empty" do
114
- @params.required []
115
- @params.validate_required! :whatever
116
- end
117
- end
118
-
119
- describe "Hash param input" do
120
- it "raises an error with missing options" do
121
- params = [:one, :two]
122
- @params.required params
123
- expect { @params.validate_required!({:three => 'three'}) }.to raise_error(ArgumentError)
124
- end
125
-
126
- it "does not raise an error with valid" do
127
- params = [:one, :two]
128
- @params.required params
129
- @params.validate_required!(:one => 1, :two => 2)
130
- end
131
- end
132
-
133
- describe "String param input" do
134
- it "raises an error with missing options" do
135
- params = [:one, :two]
136
- @params.required params
137
- expect { @params.validate_required!({'three' => 'three'}) }.to raise_error(ArgumentError)
138
- end
139
-
140
- it "does not raise an error with valid" do
141
- params = [:one, :two]
142
- @params.required params
143
- @params.validate_required!('one' => 1, 'two' => 2)
144
- end
145
- end
146
-
147
- describe "Chained execution" do
148
- it "raises an error with missing options" do
149
- params = [:one, :two]
150
- expect { @params.required(params).validate_required!({'three' => 'three'}) }.to raise_error(ArgumentError)
151
- end
152
-
153
- it "does not raise an error with valid" do
154
- params = [:one, :two]
155
- @params.required(params).validate_required!('one' => 1, 'two' => 2)
156
- end
157
- end
158
- end
159
-
160
- describe "#validate_optionals!" do
161
- it "raises an error with unknown params" do
162
- @params.accepts :one, :two
163
- expect { @params.validate_optionals!({:three => 3}) }.to raise_error(ArgumentError)
164
- end
165
-
166
- it "allows a known param" do
167
- @params.accepts :one
168
- @params.validate_optionals!({:one => 1}).should be_true
169
- end
170
-
171
- it "allows multiple known param" do
172
- @params.accepts :one, :two
173
- @params.validate_optionals!({:one => 1, :two => 2}).should be_true
174
- end
175
-
176
- it "allows 2 of 3 known param" do
177
- @params.accepts :one, :two, :three
178
- @params.validate_optionals!({:one => 1, :two => 2}).should be_true
179
- end
180
- end
181
-
182
- describe "#validate!" do
183
- it "calls #validate_required!" do
184
- @params.valid = [:one, :two]
185
- @params.should_receive(:validate_required!).with(:one, :two)
186
- @params.validate!(:one, :two)
187
- end
188
-
189
- it "calls #validate_optionals!" do
190
- @params.optional = [:one, :two]
191
- @params.should_receive(:validate_optionals!).with(:one, :two)
192
- @params.validate!(:one, :two)
193
- end
194
- end
195
- end
data/squall.gemspec DELETED
@@ -1,32 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
3
- require "squall/support/version"
4
-
5
- Gem::Specification.new do |s|
6
- s.name = "squall"
7
- s.version = Squall::VERSION
8
- s.platform = Gem::Platform::RUBY
9
- s.authors = ["Justin Mazzi"]
10
- s.email = ["jmazzi@site5.com"]
11
- s.homepage = ""
12
- s.summary = %q{A Ruby library for working with the OnApp REST API}
13
- s.description = %q{A Ruby library for working with the OnApp REST API}
14
-
15
- s.rubyforge_project = "squall"
16
-
17
- s.add_runtime_dependency 'faraday', '~> 0.8.1'
18
- s.add_runtime_dependency 'faraday_middleware', '~> 0.8.7'
19
- s.add_runtime_dependency 'json', '~> 1.7.3'
20
- s.add_runtime_dependency('jruby-openssl', '~> 0.7.3') if RUBY_PLATFORM == 'java'
21
-
22
- s.add_development_dependency 'rspec', '~> 2.10.0'
23
- s.add_development_dependency 'fakeweb', '~> 1.3'
24
- s.add_development_dependency 'vcr', '~> 1.8'
25
- s.add_development_dependency 'awesome_print', '~> 1.0.2'
26
- s.add_development_dependency 'rake', '~> 0.9.2.2'
27
-
28
- s.files = `git ls-files`.split("\n")
29
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
30
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
31
- s.require_paths = ["lib"]
32
- end