syncwrap 2.7.1 → 2.8.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 (40) hide show
  1. checksums.yaml +4 -4
  2. data/History.rdoc +61 -0
  3. data/Manifest.txt +3 -0
  4. data/lib/syncwrap/base.rb +1 -1
  5. data/lib/syncwrap/change_key_listener.rb +56 -0
  6. data/lib/syncwrap/cli.rb +71 -8
  7. data/lib/syncwrap/components/arch.rb +8 -10
  8. data/lib/syncwrap/components/bundle.rb +3 -6
  9. data/lib/syncwrap/components/bundled_iyyov_daemon.rb +3 -8
  10. data/lib/syncwrap/components/bundler_gem.rb +2 -2
  11. data/lib/syncwrap/components/cruby_vm.rb +9 -5
  12. data/lib/syncwrap/components/debian.rb +13 -11
  13. data/lib/syncwrap/components/iyyov.rb +21 -4
  14. data/lib/syncwrap/components/jruby_vm.rb +5 -4
  15. data/lib/syncwrap/components/postgresql.rb +28 -7
  16. data/lib/syncwrap/components/puma.rb +112 -35
  17. data/lib/syncwrap/components/qpid.rb +2 -2
  18. data/lib/syncwrap/components/rhel.rb +65 -34
  19. data/lib/syncwrap/components/run_user.rb +11 -4
  20. data/lib/syncwrap/components/source_tree.rb +5 -1
  21. data/lib/syncwrap/components/tarpit_gem.rb +2 -2
  22. data/lib/syncwrap/components/users.rb +2 -1
  23. data/lib/syncwrap/context.rb +15 -2
  24. data/lib/syncwrap/distro.rb +5 -7
  25. data/lib/syncwrap/shell.rb +2 -2
  26. data/lib/syncwrap/systemd_service.rb +140 -0
  27. data/lib/syncwrap.rb +4 -3
  28. data/sync/etc/systemd/system/puma.service.erb +3 -0
  29. data/sync/etc/systemd/system/puma.socket.erb +15 -0
  30. data/sync/postgresql/postgresql.conf.erb +25 -5
  31. data/test/test_components.rb +14 -2
  32. data/test/test_context.rb +1 -1
  33. data/test/test_context_rput.rb +1 -1
  34. data/test/test_rsync.rb +1 -1
  35. data/test/test_shell.rb +2 -1
  36. data/test/test_space.rb +22 -1
  37. data/test/test_space_main.rb +6 -2
  38. data/test/test_version_support.rb +1 -1
  39. data/test/test_zone_balancer.rb +2 -2
  40. metadata +7 -4
@@ -0,0 +1,140 @@
1
+ #--
2
+ # Copyright (c) 2011-2016 David Kellum
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License"); you
5
+ # may not use this file except in compliance with the License. You may
6
+ # obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
13
+ # implied. See the License for the specific language governing
14
+ # permissions and limitations under the License.
15
+ #++
16
+
17
+ module SyncWrap
18
+
19
+ # Support module for components which install SystemD
20
+ # services. Provide unit file installation with `systemctl` calls,
21
+ # and also provides standard #start, #restart, #stop, and #status
22
+ # commands for use in the CLI.
23
+ #
24
+ # Host component dependencies: <Distro>
25
+ module SystemDService
26
+
27
+ protected
28
+
29
+ # The name of a systemd service unit file to create/rput. The name
30
+ # should include a ".service" suffix. Will rput the same name (or
31
+ # .erb extended template) under :sync_paths /etc/systemd/system.
32
+ # (Required for use of public interface)
33
+ attr_accessor :systemd_service
34
+
35
+ # The name of the systemd socket unit file to create/rput for
36
+ # socket activation. If specified, the name should include a
37
+ # ".socket" suffix. Will rput the same name (or .erb extended
38
+ # template) under :sync_paths /etc/systemd/system.
39
+ attr_accessor :systemd_socket
40
+
41
+ # An array of ListenStream configuration values for #systemd_socket
42
+ # (Default: nil -> unspecified and will raise if accessed)
43
+ attr_writer :listen_streams
44
+
45
+ def listen_streams
46
+ @listen_streams or raise "#{self.class.name}#listen_streams not specified"
47
+ end
48
+
49
+ def initialize( opts = {} )
50
+ @systemd_service = nil
51
+ @systemd_socket = nil
52
+ @listen_streams = nil
53
+ super
54
+ end
55
+
56
+ public
57
+
58
+ # Install the systemd units files by #rput_unit_files, detecting
59
+ # changes and performs `systemctl` daemon-reload, (re-)enable, and
60
+ # #restart or #start as required. If restart_required evaluates to
61
+ # true, for example given other external changes, a #restart is
62
+ # mandated.
63
+ def install_units( restart_required = false )
64
+ require_systemd_service!
65
+ units_d = rput_unit_files
66
+
67
+ sock_d = systemd_socket &&
68
+ units_d.find { |_,f| File.basename( f ) == systemd_socket }
69
+
70
+ if !units_d.empty?
71
+ systemctl( 'daemon-reload' )
72
+ systemctl( 'reenable', *systemd_units )
73
+ end
74
+
75
+ if ( restart_required || !units_d.empty? )
76
+ restart( with_socket: !!sock_d )
77
+ else
78
+ start
79
+ end
80
+
81
+ units_d
82
+ end
83
+
84
+ # Start all #systemd_units.
85
+ def start
86
+ require_systemd_service!
87
+ systemctl( 'start', *systemd_units )
88
+ end
89
+
90
+ # Restart the service. If option :with_socket is passed as true,
91
+ # restart all #systemd_units which includes #systemd_socket if
92
+ # present.
93
+ def restart( opts = {} )
94
+ require_systemd_service!
95
+ if opts[ :with_socket ]
96
+ systemctl( 'restart', *systemd_units )
97
+ else
98
+ systemctl( 'restart', systemd_service )
99
+ end
100
+ end
101
+
102
+ # Stop all #systemd_units.
103
+ def stop
104
+ require_systemd_service!
105
+ systemctl( 'stop', *systemd_units )
106
+ end
107
+
108
+ # Output status of #systemd_units (useful via CLI with --verbose)
109
+ def status
110
+ require_systemd_service!
111
+ systemctl( 'status', *systemd_units )
112
+ end
113
+
114
+ protected
115
+
116
+ # Perform rput of systemd unit files and return changes
117
+ # array. This can be overridden, for example to use system
118
+ # provided units (no-op and return `[]`) or for additional "drop-in"
119
+ # config files (e.g. foo.service.d/overrides.conf). Any changes
120
+ # signal that the service (or if included in changes, the socket)
121
+ # should be restarted.
122
+ def rput_unit_files
123
+ srcs = systemd_units.map { |u| "/etc/systemd/system/" + u }
124
+ rput( *srcs, "/etc/systemd/system/", user: :root )
125
+ end
126
+
127
+ # Return Array of the unit names that were specified (not nil)
128
+ # via #systemd_service and #systemd_socket.
129
+ def systemd_units
130
+ [systemd_socket, systemd_service].compact
131
+ end
132
+
133
+ # Raise if systemd_service not specified.
134
+ def require_systemd_service!
135
+ raise "#{self.class.name}#systemd_service not set" unless systemd_service
136
+ end
137
+
138
+ end
139
+
140
+ end
data/lib/syncwrap.rb CHANGED
@@ -359,11 +359,10 @@ module SyncWrap
359
359
  opts[ :flush_component ] ? "start" : "enqueue" )
360
360
  end
361
361
 
362
- comp.send( mth )
363
-
364
- ctx.flush if opts[ :flush_component ]
362
+ comp.public_send( mth )
365
363
 
366
364
  if opts[ :flush_component ]
365
+ ctx.flush
367
366
  formatter.sync do
368
367
  formatter.write_component( host, comp, mth, "complete" )
369
368
  end
@@ -423,7 +422,9 @@ module SyncWrap
423
422
 
424
423
  # Additional autoloads (optional support)
425
424
  autoload :AmazonEC2, 'syncwrap/amazon_ec2'
425
+ autoload :ChangeKeyListener, 'syncwrap/change_key_listener'
426
426
  autoload :GitHelp, 'syncwrap/git_help'
427
+ autoload :SystemDService, 'syncwrap/systemd_service'
427
428
  autoload :UserData, 'syncwrap/user_data'
428
429
  autoload :ZoneBalancer, 'syncwrap/zone_balancer'
429
430
 
@@ -1,6 +1,9 @@
1
1
  [Unit]
2
2
  Description=Puma HTTP Server
3
3
  After=network.target
4
+ <% if systemd_socket %>
5
+ Requires=<%= systemd_socket %>
6
+ <% end %>
4
7
 
5
8
  [Service]
6
9
  Type=simple
@@ -0,0 +1,15 @@
1
+ [Unit]
2
+ Description=Puma HTTP Server Accept Sockets
3
+
4
+ [Socket]
5
+ <% listen_streams.each do |s| %>
6
+ ListenStream=<%= s %>
7
+ <% end %>
8
+
9
+ # Socket options matching Puma defaults
10
+ NoDelay=true
11
+ ReusePort=true
12
+ Backlog=1024
13
+
14
+ [Install]
15
+ WantedBy=sockets.target
@@ -79,8 +79,6 @@ listen_addresses = '*'
79
79
  # defaults to 'localhost'; use '*' for all
80
80
  # (change requires restart)
81
81
  #port = 5432 # (change requires restart)
82
- # Note: In RHEL-like installations, you can't set the port number here;
83
- # adjust it in the service file instead.
84
82
  max_connections = 100 # (change requires restart)
85
83
  # Note: Increasing max_connections costs ~400 bytes of shared memory per
86
84
  # connection slot, plus lock space (see max_locks_per_transaction).
@@ -136,6 +134,7 @@ max_connections = 100 # (change requires restart)
136
134
  shared_buffers = <%= shared_buffers %> # min 128kB
137
135
  # (change requires restart)
138
136
  #huge_pages = try # on, off, or try (9.4+)
137
+ # (change requires restart)
139
138
  #temp_buffers = 8MB # min 800kB
140
139
  #max_prepared_transactions = 0 # zero disables the feature
141
140
  # (change requires restart)
@@ -145,6 +144,8 @@ shared_buffers = <%= shared_buffers %> # min 128kB
145
144
  # actively intend to use prepared transactions.
146
145
  work_mem = <%= work_mem %> # min 64kB
147
146
  maintenance_work_mem = <%= maintenance_work_mem %> # min 1MB
147
+ #replacement_sort_tuples = 150000 # limits use of replacement selection sort (9.6+)
148
+ #autovacuum_work_mem = -1 # min 1MB, or -1 to use maintenance_work_mem (9.4+)
148
149
  max_stack_depth = <%= max_stack_depth %> # min 100kB
149
150
  #dynamic_shared_memory_type = posix # the default is the first option (9.4+)
150
151
  # supported by the operating system:
@@ -177,13 +178,20 @@ max_stack_depth = <%= max_stack_depth %> # min 100kB
177
178
 
178
179
  #bgwriter_delay = 200ms # 10-10000ms between rounds
179
180
  #bgwriter_lru_maxpages = 100 # 0-1000 max buffers written/round
180
- #bgwriter_lru_multiplier = 2.0 # 0-10.0 multipler on buffers scanned/round
181
+ #bgwriter_lru_multiplier = 2.0 # 0-10.0 multiplier on buffers scanned/round
182
+ #bgwriter_flush_after = 0 # 0 disables,
183
+ # default is 512kb on linux, 0 otherwise (9.6+)
181
184
 
182
185
  # - Asynchronous Behavior -
183
186
 
184
187
  effective_io_concurrency = <%= effective_io_concurrency %>
185
188
  # 1-1000; 0 disables prefetching
186
- #max_worker_processes = 8 # (9.4+)
189
+ #max_worker_processes = 8 # (change requires restart, 9.4+)
190
+ #max_parallel_workers_per_gather = 2 # taken from max_worker_processes (9.6+)
191
+ #old_snapshot_threshold = -1 # 1min-60d; -1 disables; 0 is immediate (9.6+)
192
+ # (change requires restart)
193
+ #backend_flush_after = 0 # 0 disables,
194
+ # default is 128kb on linux, 0 otherwise (9.6+)
187
195
 
188
196
  #------------------------------------------------------------------------------
189
197
  # WRITE AHEAD LOG
@@ -192,6 +200,7 @@ effective_io_concurrency = <%= effective_io_concurrency %>
192
200
  # - Settings -
193
201
 
194
202
  #wal_level = minimal # minimal, archive, hot_standby, or logical
203
+ # 9.6+: minimal, replica, or logical
195
204
  # (change requires restart)
196
205
  #fsync = on # turns forced synchronization on or off
197
206
  synchronous_commit = <%= synchronous_commit %> # synchronization level;
@@ -210,6 +219,7 @@ synchronous_commit = <%= synchronous_commit %> # synchronization level;
210
219
  #wal_buffers = -1 # min 32kB, -1 sets based on shared_buffers
211
220
  # (change requires restart)
212
221
  #wal_writer_delay = 200ms # 1-10000 milliseconds
222
+ #wal_writer_flush_after = 1MB # 0 disables (9.6+)
213
223
 
214
224
  commit_delay = <%= commit_delay %> # range 0-100000, in microseconds
215
225
  #commit_siblings = 5 # range 1-1000
@@ -227,6 +237,8 @@ checkpoint_segments = <%= checkpoint_segments %> # in logfile segments, min 1, 1
227
237
  <% end %>
228
238
  #checkpoint_timeout = 5min # range 30s-1h
229
239
  #checkpoint_completion_target = 0.5 # checkpoint target duration, 0.0 - 1.0
240
+ #checkpoint_flush_after = 0 # 0 disables,
241
+ # default is 256kb on linux, 0 otherwise
230
242
  #checkpoint_warning = 30s # 0 disables
231
243
 
232
244
  # - Archiving -
@@ -314,7 +326,10 @@ checkpoint_segments = <%= checkpoint_segments %> # in logfile segments, min 1, 1
314
326
  #cpu_tuple_cost = 0.01 # same scale as above
315
327
  #cpu_index_tuple_cost = 0.005 # same scale as above
316
328
  #cpu_operator_cost = 0.0025 # same scale as above
317
- #effective_cache_size = 4GB # 128MB default < 9.4
329
+ #parallel_tuple_cost = 0.1 # same scale as above (9.6+)
330
+ #parallel_setup_cost = 1000.0 # same scale as above (9.6+)
331
+ #min_parallel_relation_size = 8MB # (9.6+)
332
+ #effective_cache_size = 4GB # (128MB was default < 9.4)
318
333
 
319
334
  # - Genetic Query Optimizer -
320
335
 
@@ -334,6 +349,7 @@ checkpoint_segments = <%= checkpoint_segments %> # in logfile segments, min 1, 1
334
349
  #from_collapse_limit = 8
335
350
  #join_collapse_limit = 8 # 1 disables collapsing of explicit
336
351
  # JOIN clauses
352
+ #force_parallel_mode = off # (9.6+)
337
353
 
338
354
  #------------------------------------------------------------------------------
339
355
  # ERROR REPORTING AND LOGGING
@@ -376,6 +392,8 @@ log_rotation_size = 0 # Automatic rotation of logfiles will
376
392
  # These are relevant when logging to syslog:
377
393
  #syslog_facility = 'LOCAL0'
378
394
  #syslog_ident = 'postgres'
395
+ #syslog_sequence_numbers = on # (9.6+)
396
+ #syslog_split_messages = on # (9.6+)
379
397
 
380
398
  # This is only relevant when logging to eventlog (win32):
381
399
  #event_source = 'PostgreSQL'
@@ -447,6 +465,7 @@ log_line_prefix = '< %m >' # special values:
447
465
  # %p = process ID
448
466
  # %t = timestamp without milliseconds
449
467
  # %m = timestamp with milliseconds
468
+ # %n = timestamp with milliseconds (Unix epoch, 9.6+)
450
469
  # %i = command tag
451
470
  # %e = SQL state
452
471
  # %c = session ID
@@ -540,6 +559,7 @@ log_timezone = 'UTC'
540
559
  #session_replication_role = 'origin'
541
560
  #statement_timeout = 0 # in milliseconds, 0 is disabled
542
561
  #lock_timeout = 0 # in milliseconds, 0 is disabled
562
+ #idle_in_transaction_session_timeout = 0 # in milliseconds, 0 is disabled
543
563
  #vacuum_freeze_min_age = 50000000
544
564
  #vacuum_freeze_table_age = 150000000
545
565
  #vacuum_multixact_freeze_min_age = 5000000
@@ -23,6 +23,12 @@ require 'syncwrap'
23
23
 
24
24
  module SyncWrap
25
25
 
26
+ class RpmUrlInstaller < Component
27
+ def install
28
+ dist_install( "http://foo.bar/goo-3.3.4.x86_64.rpm" )
29
+ end
30
+ end
31
+
26
32
  # Each of the following are default auto test construction plans,
27
33
  # for all components, used below. The last component is under test
28
34
  # and run via #install if implemented. The prior components are
@@ -57,6 +63,11 @@ module SyncWrap
57
63
  [ RHEL, RunUser, JRubyVM, BundlerGem,
58
64
  SourceTree, { source_dir: 'lib', require_clean: false },
59
65
  Bundle, Puma, systemd_unit: 'puma.service' ],
66
+ [ RHEL, RunUser, JRubyVM, BundlerGem,
67
+ SourceTree, { source_dir: 'lib', require_clean: false },
68
+ Bundle, Puma, { systemd_service: 'puma.service',
69
+ systemd_socket: 'puma.socket',
70
+ puma_flags: { port: 5811 } } ],
60
71
  [ Debian, OpenJDK, JRubyVM, Hashdot ],
61
72
  [ RHEL, JRubyVM, RunUser, Iyyov ],
62
73
  [ Ubuntu, JRubyVM, RunUser, Iyyov, IyyovDaemon, name: 'test', version: '0' ],
@@ -81,6 +92,7 @@ module SyncWrap
81
92
  [ RHEL, Qpid ],
82
93
  [ CentOS, QpidRepo, qpid_prebuild_repo: 'http://localhost' ],
83
94
  [ RHEL ],
95
+ [ RHEL, RpmUrlInstaller ],
84
96
  [ RunUser ],
85
97
  [ RHEL, CRubyVM, TarpitGem ],
86
98
  [ RHEL, JRubyVM, TarpitGem ],
@@ -122,12 +134,12 @@ module SyncWrap
122
134
  # Don't run rsync. Return some or no changes at random.
123
135
  def rsync( srcs, target, opts )
124
136
  @commands << rsync_args( host, srcs, target, opts )
125
- ( rand(2) == 1 ) ? [ :something ] : []
137
+ ( rand(2) == 1 ) ? [ [ 'something', 'somefile' ] ] : []
126
138
  end
127
139
 
128
140
  end
129
141
 
130
- class TestComponents < MiniTest::Unit::TestCase
142
+ class TestComponents < Minitest::Test
131
143
 
132
144
  def with_test_context( sp, host )
133
145
  ctx = TestContext.new( host, sp.default_options )
data/test/test_context.rb CHANGED
@@ -21,7 +21,7 @@ require_relative 'setup'
21
21
 
22
22
  require 'syncwrap'
23
23
 
24
- class TestContext < MiniTest::Unit::TestCase
24
+ class TestContext < Minitest::Test
25
25
  include SyncWrap
26
26
 
27
27
  def sp
@@ -21,7 +21,7 @@ require_relative 'setup'
21
21
 
22
22
  require 'syncwrap'
23
23
 
24
- class TestContextRput < MiniTest::Unit::TestCase
24
+ class TestContextRput < Minitest::Test
25
25
  include SyncWrap
26
26
 
27
27
  VERBOSE = ARGV.include?( '--verbose' )
data/test/test_rsync.rb CHANGED
@@ -22,7 +22,7 @@ require_relative 'setup'
22
22
  require 'syncwrap'
23
23
  require 'syncwrap/rsync'
24
24
 
25
- class TestRsync < MiniTest::Unit::TestCase
25
+ class TestRsync < Minitest::Test
26
26
  include SyncWrap::Rsync
27
27
 
28
28
  def test_expand_implied_target
data/test/test_shell.rb CHANGED
@@ -21,7 +21,7 @@ require_relative 'setup'
21
21
 
22
22
  require 'syncwrap/shell'
23
23
 
24
- class TestShell < MiniTest::Unit::TestCase
24
+ class TestShell < Minitest::Test
25
25
  include TestOptions
26
26
  include SyncWrap::Shell
27
27
 
@@ -243,6 +243,7 @@ class TestShell < MiniTest::Unit::TestCase
243
243
  done
244
244
  SH
245
245
  exit_code, outputs = capture3( cmd )
246
+ assert_equal( 0, exit_code )
246
247
  assert_equal( 36_000, collect_stream( :err, outputs ).length )
247
248
  assert_equal( 0, collect_stream( :out, outputs ).length )
248
249
  end
data/test/test_space.rb CHANGED
@@ -21,7 +21,7 @@ require_relative 'setup'
21
21
 
22
22
  require 'syncwrap'
23
23
 
24
- class TestSpace < MiniTest::Unit::TestCase
24
+ class TestSpace < Minitest::Test
25
25
  include SyncWrap
26
26
 
27
27
  def sp
@@ -30,6 +30,10 @@ class TestSpace < MiniTest::Unit::TestCase
30
30
  # for test access:
31
31
  public :resolve_component_methods
32
32
  end
33
+ f = s.formatter
34
+ def f.write_component( *args )
35
+ #disable
36
+ end
33
37
  end
34
38
 
35
39
  end
@@ -65,6 +69,15 @@ class TestSpace < MiniTest::Unit::TestCase
65
69
  class Turnip
66
70
  end
67
71
 
72
+ class CompFailure < RuntimeError
73
+ end
74
+
75
+ class CompFail < Component
76
+ def install
77
+ raise CompFailure, "always fail"
78
+ end
79
+ end
80
+
68
81
  def test_host_roles
69
82
  sp.host( 'localhost' )
70
83
  assert_equal( 'localhost', sp.host( 'localhost' ).name )
@@ -219,4 +232,12 @@ class TestSpace < MiniTest::Unit::TestCase
219
232
  end
220
233
  end
221
234
 
235
+ def test_fail_raise
236
+ sp.host( 'localhost', CompFail.new )
237
+ sp.host( 'other', CompFail.new )
238
+ assert_raises( CompFailure ) do
239
+ sp.execute
240
+ end
241
+ end
242
+
222
243
  end
@@ -22,7 +22,11 @@ require_relative 'setup'
22
22
  require 'syncwrap'
23
23
  require 'syncwrap/version_support.rb'
24
24
 
25
- class TestSpaceMain < MiniTest::Unit::TestCase
25
+ class SyncWrap::IyyovDaemon
26
+ public :daemon_service_dir
27
+ end
28
+
29
+ class TestSpaceMain < Minitest::Test
26
30
  include SyncWrap
27
31
  include VersionSupport
28
32
 
@@ -35,7 +39,7 @@ class TestSpaceMain < MiniTest::Unit::TestCase
35
39
  end
36
40
  end
37
41
 
38
- def test
42
+ def test_wrap
39
43
  skip if ( defined?( JRUBY_VERSION ) &&
40
44
  ( version_lt?( JRUBY_VERSION, [1,7,24] ) ||
41
45
  ( version_gte?( JRUBY_VERSION, [9] ) &&
@@ -21,7 +21,7 @@ require_relative 'setup'
21
21
 
22
22
  require 'syncwrap/version_support'
23
23
 
24
- class TestVersionSupport < MiniTest::Unit::TestCase
24
+ class TestVersionSupport < Minitest::Test
25
25
  include SyncWrap::VersionSupport
26
26
 
27
27
  def test_to_a
@@ -21,10 +21,10 @@ require_relative 'setup'
21
21
 
22
22
  require 'syncwrap'
23
23
 
24
- class TestZoneBalancer < MiniTest::Unit::TestCase
24
+ class TestZoneBalancer < Minitest::Test
25
25
  include SyncWrap
26
26
 
27
- def test
27
+ def test_balance
28
28
  sp = Space.new
29
29
  zb = ZoneBalancer
30
30
  sp.with do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: syncwrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.1
4
+ version: 2.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Kellum
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-02 00:00:00.000000000 Z
11
+ date: 2016-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: term-ansicolor
@@ -98,14 +98,14 @@ dependencies:
98
98
  requirements:
99
99
  - - "~>"
100
100
  - !ruby/object:Gem::Version
101
- version: 4.7.4
101
+ version: 5.8.4
102
102
  type: :development
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
105
105
  requirements:
106
106
  - - "~>"
107
107
  - !ruby/object:Gem::Version
108
- version: 4.7.4
108
+ version: 5.8.4
109
109
  - !ruby/object:Gem::Dependency
110
110
  name: rdoc
111
111
  requirement: !ruby/object:Gem::Requirement
@@ -169,6 +169,7 @@ files:
169
169
  - lib/syncwrap/amazon_ec2.rb
170
170
  - lib/syncwrap/amazon_ws.rb
171
171
  - lib/syncwrap/base.rb
172
+ - lib/syncwrap/change_key_listener.rb
172
173
  - lib/syncwrap/cli.rb
173
174
  - lib/syncwrap/component.rb
174
175
  - lib/syncwrap/components/amazon_linux.rb
@@ -212,6 +213,7 @@ files:
212
213
  - lib/syncwrap/ruby_support.rb
213
214
  - lib/syncwrap/shell.rb
214
215
  - lib/syncwrap/systemd.rb
216
+ - lib/syncwrap/systemd_service.rb
215
217
  - lib/syncwrap/user_data.rb
216
218
  - lib/syncwrap/version_support.rb
217
219
  - lib/syncwrap/zone_balancer.rb
@@ -225,6 +227,7 @@ files:
225
227
  - sync/etc/sysctl.d/61-postgresql-shm.conf.erb
226
228
  - sync/etc/systemd/system/iyyov.service.erb
227
229
  - sync/etc/systemd/system/puma.service.erb
230
+ - sync/etc/systemd/system/puma.socket.erb
228
231
  - sync/jruby/bin/jgem
229
232
  - sync/postgresql/environment
230
233
  - sync/postgresql/pg_ctl.conf