syncwrap 2.7.1 → 2.8.0

Sign up to get free protection for your applications and to get access to all the features.
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