syncwrap 2.7.1 → 2.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/History.rdoc +61 -0
- data/Manifest.txt +3 -0
- data/lib/syncwrap/base.rb +1 -1
- data/lib/syncwrap/change_key_listener.rb +56 -0
- data/lib/syncwrap/cli.rb +71 -8
- data/lib/syncwrap/components/arch.rb +8 -10
- data/lib/syncwrap/components/bundle.rb +3 -6
- data/lib/syncwrap/components/bundled_iyyov_daemon.rb +3 -8
- data/lib/syncwrap/components/bundler_gem.rb +2 -2
- data/lib/syncwrap/components/cruby_vm.rb +9 -5
- data/lib/syncwrap/components/debian.rb +13 -11
- data/lib/syncwrap/components/iyyov.rb +21 -4
- data/lib/syncwrap/components/jruby_vm.rb +5 -4
- data/lib/syncwrap/components/postgresql.rb +28 -7
- data/lib/syncwrap/components/puma.rb +112 -35
- data/lib/syncwrap/components/qpid.rb +2 -2
- data/lib/syncwrap/components/rhel.rb +65 -34
- data/lib/syncwrap/components/run_user.rb +11 -4
- data/lib/syncwrap/components/source_tree.rb +5 -1
- data/lib/syncwrap/components/tarpit_gem.rb +2 -2
- data/lib/syncwrap/components/users.rb +2 -1
- data/lib/syncwrap/context.rb +15 -2
- data/lib/syncwrap/distro.rb +5 -7
- data/lib/syncwrap/shell.rb +2 -2
- data/lib/syncwrap/systemd_service.rb +140 -0
- data/lib/syncwrap.rb +4 -3
- data/sync/etc/systemd/system/puma.service.erb +3 -0
- data/sync/etc/systemd/system/puma.socket.erb +15 -0
- data/sync/postgresql/postgresql.conf.erb +25 -5
- data/test/test_components.rb +14 -2
- data/test/test_context.rb +1 -1
- data/test/test_context_rput.rb +1 -1
- data/test/test_rsync.rb +1 -1
- data/test/test_shell.rb +2 -1
- data/test/test_space.rb +22 -1
- data/test/test_space_main.rb +6 -2
- data/test/test_version_support.rb +1 -1
- data/test/test_zone_balancer.rb +2 -2
- 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.
|
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
|
|
@@ -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
|
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
|
-
#
|
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
|
data/test/test_components.rb
CHANGED
@@ -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 ) ? [
|
137
|
+
( rand(2) == 1 ) ? [ [ 'something', 'somefile' ] ] : []
|
126
138
|
end
|
127
139
|
|
128
140
|
end
|
129
141
|
|
130
|
-
class TestComponents <
|
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
data/test/test_context_rput.rb
CHANGED
data/test/test_rsync.rb
CHANGED
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 <
|
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 <
|
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
|
data/test/test_space_main.rb
CHANGED
@@ -22,7 +22,11 @@ require_relative 'setup'
|
|
22
22
|
require 'syncwrap'
|
23
23
|
require 'syncwrap/version_support.rb'
|
24
24
|
|
25
|
-
class
|
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
|
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] ) &&
|
data/test/test_zone_balancer.rb
CHANGED
@@ -21,10 +21,10 @@ require_relative 'setup'
|
|
21
21
|
|
22
22
|
require 'syncwrap'
|
23
23
|
|
24
|
-
class TestZoneBalancer <
|
24
|
+
class TestZoneBalancer < Minitest::Test
|
25
25
|
include SyncWrap
|
26
26
|
|
27
|
-
def
|
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.
|
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-
|
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:
|
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:
|
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
|