syncwrap 2.8.1 → 2.8.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/History.rdoc +7 -0
- data/Manifest.txt +1 -0
- data/README.rdoc +3 -1
- data/lib/syncwrap/base.rb +1 -1
- data/lib/syncwrap/components/change_guard.rb +94 -0
- data/lib/syncwrap/components/cruby_vm.rb +1 -1
- data/lib/syncwrap/components/jruby_vm.rb +3 -2
- data/lib/syncwrap.rb +2 -0
- data/sync/postgresql/postgresql.conf.erb +8 -16
- data/test/test_components.rb +8 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 91f6e24710b16135cac3fc92a2350595329679ab
|
4
|
+
data.tar.gz: b91395ed4ba0c475fc5e931109e5cba9dd8cced8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cef850f458be5b3c4a9238119fd78834883a36d44de41c0b75b0c7d7c9f95b90a7bd3357c3fc4322039e56f01572c052e817b921ed50a656d19002ae838841b2
|
7
|
+
data.tar.gz: 1da2ff5d17e30654a494d5f9d3e7b5126b2a5562fc869583b57cb57c8c6501c036685698cb8968a0043391edc84232f0cfd339509b53be3d16d24f12da5b3baf
|
data/History.rdoc
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
=== 2.8.2 (2016-11-1)
|
2
|
+
* Add new SyncWrap::ChangeGuard component to preserve change key state
|
3
|
+
in remote guard files, across any transient component failures.
|
4
|
+
* Upgrade SyncWrap::JRubyVM default version to 1.7.25 (+ hash for 1.7.26)
|
5
|
+
* Additional, comment-only updates to postgresql.conf as of version
|
6
|
+
9.6.1. Changes remain backward compatible with 9.1+.
|
7
|
+
|
1
8
|
=== 2.8.1 (2016-7-20)
|
2
9
|
* Add support for passing options to SyncWrap::SystemD#systemctl which
|
3
10
|
are passed though to sudo. Since systemctl returns non-zero for a
|
data/Manifest.txt
CHANGED
@@ -43,6 +43,7 @@ lib/syncwrap/components/bundle.rb
|
|
43
43
|
lib/syncwrap/components/bundled_iyyov_daemon.rb
|
44
44
|
lib/syncwrap/components/bundler_gem.rb
|
45
45
|
lib/syncwrap/components/centos.rb
|
46
|
+
lib/syncwrap/components/change_guard.rb
|
46
47
|
lib/syncwrap/components/commercial_jdk.rb
|
47
48
|
lib/syncwrap/components/cruby_vm.rb
|
48
49
|
lib/syncwrap/components/debian.rb
|
data/README.rdoc
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
* http://github.com/dekellum/syncwrap
|
4
4
|
* http://rdoc.gravitext.com/syncwrap/
|
5
|
-
* {<img src="https://travis-ci.org/dekellum/syncwrap.
|
5
|
+
* {<img src="https://travis-ci.org/dekellum/syncwrap.svg?branch=dev" />}[https://travis-ci.org/dekellum/syncwrap]
|
6
6
|
|
7
7
|
== Description
|
8
8
|
|
@@ -114,6 +114,8 @@ Components implementing \#install:
|
|
114
114
|
|
115
115
|
* SyncWrap::SourceTree, SyncWrap::Bundle
|
116
116
|
|
117
|
+
* SyncWrap::ChangeGuard
|
118
|
+
|
117
119
|
* SyncWrap::Puma
|
118
120
|
|
119
121
|
* SyncWrap::Iyyov - job scheduler and process monitor with
|
data/lib/syncwrap/base.rb
CHANGED
@@ -0,0 +1,94 @@
|
|
1
|
+
#--
|
2
|
+
# Copyright (c) 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
|
6
|
+
# may 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
|
+
require 'syncwrap/component'
|
17
|
+
require 'syncwrap/change_key_listener'
|
18
|
+
|
19
|
+
module SyncWrap
|
20
|
+
|
21
|
+
# Maintains a remote guard file to preserve change_key state across
|
22
|
+
# any transient failures which might occur in subsequent components
|
23
|
+
# up until a paired ChangeUnGuard.
|
24
|
+
#
|
25
|
+
# Components which rely on change key state (via ChangeKeyListener
|
26
|
+
# mixin or otherwise) may loose state due to transient failure and
|
27
|
+
# thus remain out-of-sync on subsequent runs. This is particularly
|
28
|
+
# common during concurrent development of such components.
|
29
|
+
#
|
30
|
+
# Typical usage using SourceTree as the change producer and Bundle
|
31
|
+
# as one of possibly several consumers:
|
32
|
+
#
|
33
|
+
# role( :my_role,
|
34
|
+
# SourceTree.new( change_key: :src_key ),
|
35
|
+
# *ChangeGuard.new( change_key: :src_key ).wrap(
|
36
|
+
# Bundle.new( change_key: :src_key ),
|
37
|
+
# # ...
|
38
|
+
# ) )
|
39
|
+
#
|
40
|
+
# Host component dependencies: RunUser, SourceTree?
|
41
|
+
class ChangeGuard < SyncWrap::Component
|
42
|
+
include SyncWrap::ChangeKeyListener
|
43
|
+
|
44
|
+
# Convenience method for constructed an array of
|
45
|
+
# [ ChangeGuard, *nested_components, ChangeUnGuard ].
|
46
|
+
def wrap( *nested_components )
|
47
|
+
[ self, *nested_components, ChangeUnGuard.new ]
|
48
|
+
end
|
49
|
+
|
50
|
+
# Remote path and file name to use as the guard file
|
51
|
+
# (Default: SourceTree#remote_source_path + '.changed')
|
52
|
+
attr_writer :change_guard_file
|
53
|
+
|
54
|
+
def change_guard_file
|
55
|
+
@change_guard_file || "#{remote_source_path}.changed"
|
56
|
+
end
|
57
|
+
|
58
|
+
def initialize( opts = {} )
|
59
|
+
@change_guard_file = nil
|
60
|
+
super
|
61
|
+
end
|
62
|
+
|
63
|
+
def install
|
64
|
+
if change_key_changes?
|
65
|
+
rudo <<-SH
|
66
|
+
touch #{change_guard_file}
|
67
|
+
SH
|
68
|
+
else
|
69
|
+
code,_ = capture( <<-SH, user: run_user, accept: [0,92] )
|
70
|
+
if [ -f "#{change_guard_file}" ]; then
|
71
|
+
exit 92
|
72
|
+
fi
|
73
|
+
SH
|
74
|
+
if code == 92
|
75
|
+
Array( change_key ).each do |key|
|
76
|
+
state[ key ] ||= []
|
77
|
+
state[ key ] << [ '*found', change_guard_file ]
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
# Removes ChangeGuard#change_guard_file, once all dependent
|
85
|
+
# components have successfully executed.
|
86
|
+
class ChangeUnGuard < SyncWrap::Component
|
87
|
+
def install
|
88
|
+
rudo <<-SH
|
89
|
+
rm -f #{change_guard_file}
|
90
|
+
SH
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
end
|
@@ -47,7 +47,7 @@ module SyncWrap
|
|
47
47
|
include HashSupport
|
48
48
|
|
49
49
|
# Default #ruby_version to install
|
50
|
-
DEFAULT_VERSION = '2.
|
50
|
+
DEFAULT_VERSION = '2.2.5'
|
51
51
|
|
52
52
|
# A set of known (sha256) cryptographic hashes, keyed by version
|
53
53
|
# string, for the source ruby-(version).tar.gz package.
|
@@ -32,7 +32,7 @@ module SyncWrap
|
|
32
32
|
include HashSupport
|
33
33
|
|
34
34
|
# Default #jruby_version to install
|
35
|
-
DEFAULT_VERSION = '1.7.
|
35
|
+
DEFAULT_VERSION = '1.7.25'
|
36
36
|
|
37
37
|
# A set of known cryptographic hashes, keyed by version
|
38
38
|
# string. Note, we prefer sha256 but sha1 is what is currently
|
@@ -40,7 +40,8 @@ module SyncWrap
|
|
40
40
|
KNOWN_HASHES = { '1.7.22' => '6b9e310a04ad8173d0d6dbe299da04c0ef85fc15',
|
41
41
|
'1.7.23' => '2b5e796feeed2bcfab02f8bf2ff3d77ca318e310',
|
42
42
|
'1.7.24' => '0c321d2192768dfec419bee6b44c7190f4db32e1',
|
43
|
-
'1.7.25' => 'cd15aef419f97cff274491e53fcfb8b88ec36785'
|
43
|
+
'1.7.25' => 'cd15aef419f97cff274491e53fcfb8b88ec36785',
|
44
|
+
'1.7.26' => 'cca25a1ffb8b75a8d4a4d4667e7f6b20341c2b74' }
|
44
45
|
|
45
46
|
# JRuby version to install (default: DEFAULT_VERSION)
|
46
47
|
attr_accessor :jruby_version
|
data/lib/syncwrap.rb
CHANGED
@@ -393,6 +393,8 @@ module SyncWrap
|
|
393
393
|
autoload :BundlerGem, 'syncwrap/components/bundler_gem'
|
394
394
|
autoload :Arch, 'syncwrap/components/arch'
|
395
395
|
autoload :CentOS, 'syncwrap/components/centos'
|
396
|
+
autoload :ChangeGuard, 'syncwrap/components/change_guard'
|
397
|
+
autoload :ChangeUnGuard, 'syncwrap/components/change_guard'
|
396
398
|
autoload :CommercialJDK, 'syncwrap/components/commercial_jdk'
|
397
399
|
autoload :CRubyVM, 'syncwrap/components/cruby_vm'
|
398
400
|
autoload :Debian, 'syncwrap/components/debian'
|
@@ -80,8 +80,6 @@ listen_addresses = '*'
|
|
80
80
|
# (change requires restart)
|
81
81
|
#port = 5432 # (change requires restart)
|
82
82
|
max_connections = 100 # (change requires restart)
|
83
|
-
# Note: Increasing max_connections costs ~400 bytes of shared memory per
|
84
|
-
# connection slot, plus lock space (see max_locks_per_transaction).
|
85
83
|
#superuser_reserved_connections = 3 # (change requires restart)
|
86
84
|
#unix_socket_directory = '/var/run/postgresql' # < 9.3
|
87
85
|
#unix_socket_directories = '/var/run/postgresql, /tmp'
|
@@ -138,10 +136,8 @@ shared_buffers = <%= shared_buffers %> # min 128kB
|
|
138
136
|
#temp_buffers = 8MB # min 800kB
|
139
137
|
#max_prepared_transactions = 0 # zero disables the feature
|
140
138
|
# (change requires restart)
|
141
|
-
#
|
142
|
-
#
|
143
|
-
# It is not advisable to set max_prepared_transactions nonzero unless you
|
144
|
-
# actively intend to use prepared transactions.
|
139
|
+
# Caution: it is not advisable to set max_prepared_transactions nonzero unless
|
140
|
+
# you actively intend to use prepared transactions.
|
145
141
|
work_mem = <%= work_mem %> # min 64kB
|
146
142
|
maintenance_work_mem = <%= maintenance_work_mem %> # min 1MB
|
147
143
|
#replacement_sort_tuples = 150000 # limits use of replacement selection sort (9.6+)
|
@@ -157,7 +153,7 @@ max_stack_depth = <%= max_stack_depth %> # min 100kB
|
|
157
153
|
|
158
154
|
# - Disk -
|
159
155
|
|
160
|
-
#temp_file_limit = -1 # limits per-
|
156
|
+
#temp_file_limit = -1 # limits per-process temp file space
|
161
157
|
# in kB, or -1 for no limit
|
162
158
|
|
163
159
|
# - Kernel Resource Usage -
|
@@ -180,18 +176,17 @@ max_stack_depth = <%= max_stack_depth %> # min 100kB
|
|
180
176
|
#bgwriter_lru_maxpages = 100 # 0-1000 max buffers written/round
|
181
177
|
#bgwriter_lru_multiplier = 2.0 # 0-10.0 multiplier on buffers scanned/round
|
182
178
|
#bgwriter_flush_after = 0 # 0 disables,
|
183
|
-
# default is
|
179
|
+
# default is 512kB on linux, 0 otherwise (9.6+)
|
184
180
|
|
185
181
|
# - Asynchronous Behavior -
|
186
182
|
|
187
183
|
effective_io_concurrency = <%= effective_io_concurrency %>
|
188
184
|
# 1-1000; 0 disables prefetching
|
189
185
|
#max_worker_processes = 8 # (change requires restart, 9.4+)
|
190
|
-
#max_parallel_workers_per_gather =
|
186
|
+
#max_parallel_workers_per_gather = 0 # taken from max_worker_processes (9.6+)
|
191
187
|
#old_snapshot_threshold = -1 # 1min-60d; -1 disables; 0 is immediate (9.6+)
|
192
188
|
# (change requires restart)
|
193
|
-
#backend_flush_after = 0 # 0 disables,
|
194
|
-
# default is 128kb on linux, 0 otherwise (9.6+)
|
189
|
+
#backend_flush_after = 0 # 0 disables, default is 0
|
195
190
|
|
196
191
|
#------------------------------------------------------------------------------
|
197
192
|
# WRITE AHEAD LOG
|
@@ -235,10 +230,10 @@ max_wal_size = <%= max_wal_size %> # (9.5+)
|
|
235
230
|
<% else %>
|
236
231
|
checkpoint_segments = <%= checkpoint_segments %> # in logfile segments, min 1, 16MB each
|
237
232
|
<% end %>
|
238
|
-
#checkpoint_timeout = 5min # range 30s-
|
233
|
+
#checkpoint_timeout = 5min # range 30s-1d
|
239
234
|
#checkpoint_completion_target = 0.5 # checkpoint target duration, 0.0 - 1.0
|
240
235
|
#checkpoint_flush_after = 0 # 0 disables,
|
241
|
-
# default is
|
236
|
+
# default is 256kB on linux, 0 otherwise
|
242
237
|
#checkpoint_warning = 30s # 0 disables
|
243
238
|
|
244
239
|
# - Archiving -
|
@@ -609,9 +604,6 @@ default_text_search_config = 'pg_catalog.english'
|
|
609
604
|
#deadlock_timeout = 1s
|
610
605
|
#max_locks_per_transaction = 64 # min 10
|
611
606
|
# (change requires restart)
|
612
|
-
# Note: Each lock table slot uses ~270 bytes of shared memory, and there are
|
613
|
-
# max_locks_per_transaction * (max_connections + max_prepared_transactions)
|
614
|
-
# lock table slots.
|
615
607
|
#max_pred_locks_per_transaction = 64 # min 10
|
616
608
|
# (change requires restart)
|
617
609
|
|
data/test/test_components.rb
CHANGED
@@ -55,6 +55,14 @@ module SyncWrap
|
|
55
55
|
[ AmazonLinux, RunUser, CRubyVM, BundlerGem,
|
56
56
|
SourceTree, { source_dir: 'lib', require_clean: false },
|
57
57
|
Bundle ],
|
58
|
+
[ AmazonLinux, RunUser, CRubyVM, BundlerGem,
|
59
|
+
SourceTree, { source_dir: 'lib', require_clean: false },
|
60
|
+
ChangeGuard, { change_key: :source_tree } ],
|
61
|
+
[ AmazonLinux, RunUser, CRubyVM, BundlerGem,
|
62
|
+
SourceTree, { source_dir: 'lib', require_clean: false },
|
63
|
+
ChangeGuard, { change_key: :source_tree },
|
64
|
+
Bundle,
|
65
|
+
ChangeUnGuard ],
|
58
66
|
[ Ubuntu, RunUser, JRubyVM, BundlerGem, Iyyov,
|
59
67
|
SourceTree, { source_dir: 'lib', require_clean: false },
|
60
68
|
Bundle, BundledIyyovDaemon ],
|
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.8.
|
4
|
+
version: 2.8.2
|
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-11-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: term-ansicolor
|
@@ -178,6 +178,7 @@ files:
|
|
178
178
|
- lib/syncwrap/components/bundled_iyyov_daemon.rb
|
179
179
|
- lib/syncwrap/components/bundler_gem.rb
|
180
180
|
- lib/syncwrap/components/centos.rb
|
181
|
+
- lib/syncwrap/components/change_guard.rb
|
181
182
|
- lib/syncwrap/components/commercial_jdk.rb
|
182
183
|
- lib/syncwrap/components/cruby_vm.rb
|
183
184
|
- lib/syncwrap/components/debian.rb
|
@@ -283,7 +284,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
283
284
|
version: '0'
|
284
285
|
requirements: []
|
285
286
|
rubyforge_project:
|
286
|
-
rubygems_version: 2.
|
287
|
+
rubygems_version: 2.6.6
|
287
288
|
signing_key:
|
288
289
|
specification_version: 4
|
289
290
|
summary: A rather direct provisioning and deployment system in ruby, bash over ssh,
|