rivet 2.0.0 → 3.0.0

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 (44) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +4 -4
  4. data/.travis.yml +5 -5
  5. data/CHANGELOG.md +7 -0
  6. data/Gemfile +4 -2
  7. data/Gemfile.lock +42 -26
  8. data/README.md +61 -10
  9. data/bin/rivet +14 -9
  10. data/example/ec2/defaults.rb +6 -0
  11. data/example/ec2/example.rb +8 -0
  12. data/example/ec2/user_data.erb +2 -0
  13. data/lib/rivet/{autoscale.rb → as/autoscale.rb} +33 -4
  14. data/lib/rivet/{config.rb → as/autoscale_config.rb} +3 -33
  15. data/lib/rivet/{launch_config.rb → as/launch_config.rb} +8 -11
  16. data/lib/rivet/{aws_utils.rb → common/aws_utils.rb} +27 -29
  17. data/lib/rivet/common/base_aws_attributes.rb +15 -0
  18. data/lib/rivet/common/base_config.rb +40 -0
  19. data/lib/rivet/{client.rb → common/client.rb} +11 -10
  20. data/lib/rivet/ec2/ec2.rb +163 -0
  21. data/lib/rivet/ec2/ec2_config.rb +19 -0
  22. data/lib/rivet/utils.rb +4 -3
  23. data/lib/rivet/version.rb +1 -1
  24. data/lib/rivet.rb +16 -11
  25. data/rivet.gemspec +6 -5
  26. data/spec/as/autoscale_config_spec.rb +65 -0
  27. data/spec/{aws_autoscale_wrapper_spec.rb → as/aws_autoscale_wrapper_spec.rb} +1 -1
  28. data/spec/aws_utils_spec.rb +44 -0
  29. data/spec/base_config_spec.rb +31 -0
  30. data/spec/bootstrap_spec.rb +1 -1
  31. data/spec/ec2/ec2_config_spec.rb +29 -0
  32. data/spec/launch_config_spec.rb +1 -1
  33. data/spec/shared_examples/a_config.rb +98 -0
  34. data/spec/shared_examples/a_config_util.rb +33 -0
  35. data/spec/spec_setup.rb +63 -39
  36. data/spec/util_spec.rb +16 -23
  37. metadata +63 -43
  38. data/lib/rivet/deep_merge.rb +0 -29
  39. data/spec/config_spec.rb +0 -168
  40. /data/lib/rivet/{aws_autoscale_wrapper.rb → as/aws_autoscale_wrapper.rb} +0 -0
  41. /data/lib/rivet/{bootstrap.rb → common/bootstrap.rb} +0 -0
  42. /data/lib/rivet/{config_proxy.rb → common/config_proxy.rb} +0 -0
  43. /data/lib/rivet/{logger.rb → common/logger.rb} +0 -0
  44. /data/lib/rivet/{open_state.rb → common/open_state.rb} +0 -0
data/spec/config_spec.rb DELETED
@@ -1,168 +0,0 @@
1
- # encoding: UTF-8
2
- require_relative './spec_setup'
3
-
4
- include SpecHelpers
5
-
6
-
7
- describe 'rivet config' do
8
- let(:default_config) { Rivet::Config.new('default_unit_test_config') }
9
- let(:config) { Rivet::Config.new('unit_test_config') { eval(DSL_CONFIG_CONTENT) } }
10
-
11
- context 'without DSL content' do
12
- describe '#new' do
13
- it 'returns a Rivet::Config object' do
14
- default_config.should be_an_instance_of Rivet::Config
15
- end
16
- end
17
-
18
- describe '#name' do
19
- it 'returns the name' do
20
- default_config.name.should == 'default_unit_test_config'
21
- end
22
- end
23
-
24
- describe '#bootstrap' do
25
- before do
26
- default_config.bootstrap.unit_test 'goat simulator'
27
- end
28
-
29
- it 'should allow you to set an arbitrary bootstrap value' do
30
- default_config.bootstrap.unit_test.should == 'goat simulator'
31
- end
32
- end
33
-
34
- describe '#path' do
35
- context 'with no arguments' do
36
- it 'returns the default . path' do
37
- default_config.path.should == '.'
38
- end
39
- end
40
- context 'with an argument' do
41
- it 'returns the set path joined with the argument' do
42
- default_config.path('test').should == './test'
43
- end
44
- end
45
- end
46
-
47
- describe '#normalize_availability_zones' do
48
- before do
49
- default_config.region 'us-west-2'
50
- default_config.availability_zones %w(c a b)
51
- end
52
-
53
- it 'should return a sorted array of zones with the region prepended' do
54
- default_config.normalize_availability_zones.should == %w(us-west-2a us-west-2b us-west-2c)
55
- end
56
- end
57
-
58
- describe '#normalize_security_groups' do
59
- before do
60
- default_config.security_groups %w(group2 group1 group3)
61
- end
62
-
63
- it 'should return a sorted array of security groups' do
64
- default_config.normalize_security_groups.should == %w(group1 group2 group3)
65
- end
66
- end
67
-
68
- describe '#normalize_load_balancers' do
69
- before do
70
- default_config.load_balancers %w(balancer2 balancer1)
71
- end
72
-
73
- it 'should return a sorted array of load balancers' do
74
- default_config.normalize_load_balancers.should == %w(balancer1 balancer2)
75
- end
76
- end
77
-
78
- describe '#normalize_subnets' do
79
- before do
80
- default_config.subnets %w(192.168.1.2 192.168.1.3 192.168.1.1)
81
- end
82
-
83
- it 'should return a sorted array of subnets' do
84
- default_config.normalize_subnets.should == %w(192.168.1.1 192.168.1.2 192.168.1.3)
85
- end
86
- end
87
-
88
- describe '#normalize_tags' do
89
- before do
90
- default_config.tags [
91
- { key: 'Name', value: 'unit test' },
92
- { key: 'Other', value: 'sasquatch', propagate_at_launch: false }
93
- ]
94
- end
95
-
96
- it 'should return a normalized array of hashes' do
97
- expected_result = [
98
- { propagate_at_launch: true, key: 'Name', value: 'unit test' },
99
- { propagate_at_launch: false, key: 'Other', value: 'sasquatch' }
100
- ]
101
- default_config.normalize_tags.should == expected_result
102
- end
103
- end
104
- end
105
-
106
- context 'with DSL content' do
107
-
108
- describe '#new' do
109
- it 'returns a Rivet::Config object' do
110
- config.should be_an_instance_of Rivet::Config
111
- end
112
- end
113
-
114
- describe '#name' do
115
- it 'returns the name' do
116
- config.name.should == 'unit_test_config'
117
- end
118
- end
119
-
120
- describe 'generated attributes' do
121
- it 'should contain all the attributes defined in the DSL CONTENT' do
122
- DSL_VALUES.each_pair do |k, v|
123
- # bootstrap is an attribute of the Config class, not a generated one
124
- unless k == :bootstrap
125
- config.generated_attributes.should include(k)
126
- end
127
- end
128
- end
129
-
130
- it 'should have all values properly set according to the DSL CONTENT' do
131
- DSL_VALUES.each_pair do |k, v|
132
- unless k == :bootstrap
133
- config.send(k).should == eval(v)
134
- end
135
- end
136
- DSL_VALUES[:bootstrap].each_pair do |k, v|
137
- config.bootstrap.send(k).should == eval(v)
138
- end
139
- end
140
- end
141
- end
142
-
143
- tempdir_context 'with DSL content inside of a file on disk' do
144
- let(:config_from_file) { Rivet::Config.from_file(File.join('.', 'unit_test.rb')) }
145
-
146
- before do
147
- File.open('unit_test.rb', 'w') { |f| f.write(DSL_CONFIG_CONTENT) }
148
- end
149
-
150
- describe '::from_file' do
151
- it 'returns an instance of Rivet::Config' do
152
- config_from_file.should be_an_instance_of Rivet::Config
153
- end
154
-
155
- it 'should have all values properly set according to the DSL CONTENT' do
156
- DSL_VALUES.each_pair do |k, v|
157
- unless k == :bootstrap
158
- config_from_file.send(k).should == eval(v)
159
- end
160
- end
161
- DSL_VALUES[:bootstrap].each_pair do |k, v|
162
- config_from_file.bootstrap.send(k).should == eval(v)
163
- end
164
- end
165
- end
166
- end
167
-
168
- end
File without changes
File without changes
File without changes