rbarman 0.0.8 → 0.0.9
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.
- data/lib/rbarman/backup.rb +11 -1
- data/lib/rbarman/cli_command.rb +22 -16
- data/lib/rbarman/server.rb +4 -0
- data/lib/rbarman/version.rb +1 -1
- data/lib/rbarman/wal_file.rb +4 -0
- metadata +21 -5
- checksums.yaml +0 -7
data/lib/rbarman/backup.rb
CHANGED
@@ -13,6 +13,9 @@ module RBarman
|
|
13
13
|
# @return [String, nil] name of the server to which the backup belongs.
|
14
14
|
attr_accessor :server
|
15
15
|
|
16
|
+
# @return [Integer, nil] the backup's PostgreSQL version
|
17
|
+
attr_accessor :pg_version
|
18
|
+
|
16
19
|
# @overload id
|
17
20
|
# @return [String, nil] id (like '20130304T080002') which identifies
|
18
21
|
# the backup and is unique among all backups of a server.
|
@@ -211,7 +214,14 @@ module RBarman
|
|
211
214
|
if @begin_wal.xlog == xlog.to_s.rjust(8,'0')
|
212
215
|
start = @begin_wal.segment.to_i(16)
|
213
216
|
end
|
214
|
-
|
217
|
+
|
218
|
+
# http://wiki.postgresql.org/wiki/What's_new_in_PostgreSQL_9.3#WAL_filenames_may_end_in_FF
|
219
|
+
end_segment = 255
|
220
|
+
if @pg_version.nil? || @pg_version < 90300
|
221
|
+
end_segment = 254
|
222
|
+
end
|
223
|
+
|
224
|
+
(start..end_segment).each do |seg|
|
215
225
|
w = WalFile.new
|
216
226
|
w.timeline = @begin_wal.timeline
|
217
227
|
w.xlog = xlog.rjust(8,'0')
|
data/lib/rbarman/cli_command.rb
CHANGED
@@ -117,13 +117,13 @@ module RBarman
|
|
117
117
|
def wal_files(server, backup_id)
|
118
118
|
lines = run_barman_command("list-files --target wal #{server} #{backup_id}")
|
119
119
|
wal_files = parse_wal_files_list(lines)
|
120
|
-
|
120
|
+
xlog_db = read_xlog_db(server)
|
121
121
|
wal_files.each do |w|
|
122
122
|
wal = "#{w.timeline}#{w.xlog}#{w.segment}"
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
123
|
+
entry = xlog_db[wal]
|
124
|
+
w.size = entry[:size]
|
125
|
+
w.compression = entry[:compression].downcase.to_sym
|
126
|
+
w.created = entry[:created].to_i
|
127
127
|
end
|
128
128
|
return wal_files
|
129
129
|
end
|
@@ -162,6 +162,8 @@ module RBarman
|
|
162
162
|
s.base_backups_dir = value
|
163
163
|
when "wals_directory"
|
164
164
|
s.wals_dir = value
|
165
|
+
when "server_txt_version"
|
166
|
+
s.pg_version = value
|
165
167
|
end
|
166
168
|
end
|
167
169
|
return s
|
@@ -249,21 +251,12 @@ module RBarman
|
|
249
251
|
backup.end_wal = WalFile.parse(value)
|
250
252
|
when "pgdata"
|
251
253
|
backup.pgdata = value
|
254
|
+
when "version"
|
255
|
+
backup.pg_version = value.to_i
|
252
256
|
end
|
253
257
|
end
|
254
258
|
end
|
255
259
|
|
256
|
-
# Assigns size, created and compression values to a {WalFile} by parsing a line from xlog.db
|
257
|
-
# @param [WalFile] wal_file the wal file
|
258
|
-
# @param [String] line a string like '00000001000005A9000000BC\\t4684503\t1360568429.0\\tbzip2'
|
259
|
-
# @return [void]
|
260
|
-
def wal_file_info_from_xlog_db_line(wal_file, line)
|
261
|
-
splitted = line.split("\t")
|
262
|
-
wal_file.size = splitted[1]
|
263
|
-
wal_file.created = splitted[2].to_i
|
264
|
-
wal_file.compression = splitted[3].downcase.to_sym
|
265
|
-
end
|
266
|
-
|
267
260
|
# Converts the size according to the unit to bytes
|
268
261
|
# @param [Numeric] size the size
|
269
262
|
# @param [String] unit the unit, like `B`, `KiB`, `MiB`, `GiB` or `TiB`
|
@@ -356,5 +349,18 @@ module RBarman
|
|
356
349
|
def file_content(path)
|
357
350
|
return File.readlines(path).map { |l| l.chomp }
|
358
351
|
end
|
352
|
+
|
353
|
+
def read_xlog_db(server)
|
354
|
+
result = Hash.new
|
355
|
+
File.readlines("#{@barman_home}/#{server}/wals/xlog.db").each do |line|
|
356
|
+
splitted = line.chomp.split("\t")
|
357
|
+
result[splitted[0]] = {
|
358
|
+
:size => splitted[1],
|
359
|
+
:created => splitted[2],
|
360
|
+
:compression => splitted[3].downcase.to_sym
|
361
|
+
}
|
362
|
+
end
|
363
|
+
result
|
364
|
+
end
|
359
365
|
end
|
360
366
|
end
|
data/lib/rbarman/server.rb
CHANGED
@@ -45,6 +45,10 @@ module RBarman
|
|
45
45
|
# @return [Backups, nil] server backups
|
46
46
|
attr_accessor :backups
|
47
47
|
|
48
|
+
# @param [String] PostgreSQL version
|
49
|
+
# @return [String] PostgreSQL version
|
50
|
+
attr_accessor :pg_version
|
51
|
+
|
48
52
|
|
49
53
|
# Creates a new instance of {Server}
|
50
54
|
def initialize(name)
|
data/lib/rbarman/version.rb
CHANGED
data/lib/rbarman/wal_file.rb
CHANGED
metadata
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbarman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Holger Amann
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2013-10-
|
12
|
+
date: 2013-10-21 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: bundler
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
19
|
- - ~>
|
18
20
|
- !ruby/object:Gem::Version
|
@@ -20,6 +22,7 @@ dependencies:
|
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
27
|
- - ~>
|
25
28
|
- !ruby/object:Gem::Version
|
@@ -27,6 +30,7 @@ dependencies:
|
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: rake
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
35
|
- - '>='
|
32
36
|
- !ruby/object:Gem::Version
|
@@ -34,6 +38,7 @@ dependencies:
|
|
34
38
|
type: :runtime
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
43
|
- - '>='
|
39
44
|
- !ruby/object:Gem::Version
|
@@ -41,6 +46,7 @@ dependencies:
|
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: rspec
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
51
|
- - ~>
|
46
52
|
- !ruby/object:Gem::Version
|
@@ -48,6 +54,7 @@ dependencies:
|
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
59
|
- - ~>
|
53
60
|
- !ruby/object:Gem::Version
|
@@ -55,6 +62,7 @@ dependencies:
|
|
55
62
|
- !ruby/object:Gem::Dependency
|
56
63
|
name: mixlib-shellout
|
57
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
58
66
|
requirements:
|
59
67
|
- - ~>
|
60
68
|
- !ruby/object:Gem::Version
|
@@ -62,6 +70,7 @@ dependencies:
|
|
62
70
|
type: :runtime
|
63
71
|
prerelease: false
|
64
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
65
74
|
requirements:
|
66
75
|
- - ~>
|
67
76
|
- !ruby/object:Gem::Version
|
@@ -88,25 +97,32 @@ files:
|
|
88
97
|
homepage: https://github.com/sauspiel/rbarman
|
89
98
|
licenses:
|
90
99
|
- MIT
|
91
|
-
metadata: {}
|
92
100
|
post_install_message:
|
93
101
|
rdoc_options: []
|
94
102
|
require_paths:
|
95
103
|
- lib
|
96
104
|
required_ruby_version: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
97
106
|
requirements:
|
98
107
|
- - '>='
|
99
108
|
- !ruby/object:Gem::Version
|
100
109
|
version: '0'
|
110
|
+
segments:
|
111
|
+
- 0
|
112
|
+
hash: -547344130825939559
|
101
113
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
102
115
|
requirements:
|
103
116
|
- - '>='
|
104
117
|
- !ruby/object:Gem::Version
|
105
118
|
version: '0'
|
119
|
+
segments:
|
120
|
+
- 0
|
121
|
+
hash: -547344130825939559
|
106
122
|
requirements: []
|
107
123
|
rubyforge_project:
|
108
|
-
rubygems_version:
|
124
|
+
rubygems_version: 1.8.25
|
109
125
|
signing_key:
|
110
|
-
specification_version:
|
126
|
+
specification_version: 3
|
111
127
|
summary: Wrapper for 2ndQuadrant's PostgreSQL backup tool 'barman'
|
112
128
|
test_files: []
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 51204ed022e1cb170e2b95a345423251ce9cfbfb
|
4
|
-
data.tar.gz: 02c0228594aaea19f4e6526645b74212ca55d895
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 2f0e62639147bab58e67c0067f8590217dc267337ca40d72362d4e90eeb9372db410937627e4cb57012369fc2a625c2c782fc463237efb772667e2ae1815ef65
|
7
|
-
data.tar.gz: fb0fc2ff0e19e5d5a711ac03add7a53a2f1ff740140c9d8d11ff9e49747de6295e8c5a5fcd3a9899b2f8e5b3b43e2d66f40ceb370cfb5b387fd2fae5ac9629bd
|