drb_fileserver_plus 0.2.2 → 0.3.3
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/drb_fileserver_plus.rb +91 -54
- data.tar.gz.sig +0 -0
- metadata +34 -34
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f3099814efbfd218fc0ec33eed45722f9e3fda934e080fc52f6711b0a0f99f2d
|
4
|
+
data.tar.gz: acab144c56daa01231ac1e36a576587a555b9d5aa3a605bf04467bacf9eb0426
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e69242e361fe8f53903d3a90b4c62018e87cfef60eaa61cb1d44aa9f7721efd6045fcc379f1b2b47f34df7229f3c45bb160fbaac5a2f15e6226c2ec85f51a19
|
7
|
+
data.tar.gz: 3f98de7bcbca9c4da006d1bfce8af85baa750e10a9ea517266491fa9c64944d750d3b55fa43465e48eb25de735f21930016bc2d67efa18454924b804fbca8d57
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/drb_fileserver_plus.rb
CHANGED
@@ -10,151 +10,187 @@ require 'drb_fileclient'
|
|
10
10
|
|
11
11
|
|
12
12
|
class DRbFileServer
|
13
|
-
|
13
|
+
|
14
14
|
attr_accessor :nodes
|
15
15
|
|
16
16
|
def initialize(nodes, sps: nil, topic: 'file')
|
17
|
-
|
17
|
+
|
18
18
|
@nodes = nodes
|
19
19
|
@failcount = 0
|
20
20
|
@sps, @topic = sps, topic
|
21
|
-
|
21
|
+
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
|
+
def chmod(permissions, fname)
|
25
|
+
|
26
|
+
node = ''
|
27
|
+
|
28
|
+
file_op do |f|
|
29
|
+
node = 'dfs://' + @nodes.first
|
30
|
+
f.chmod permissions, File.join(node, fname)
|
31
|
+
end
|
32
|
+
|
33
|
+
if @sps then
|
34
|
+
@sps.notice "%s/chmod: %d %s" % [@topic, permissions,
|
35
|
+
File.join(node, fname)]
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
|
24
41
|
def cp(path, path2)
|
25
|
-
|
42
|
+
|
26
43
|
node = ''
|
27
|
-
|
44
|
+
|
28
45
|
file_op do |f|
|
29
|
-
node = 'dfs://' + @nodes.first
|
46
|
+
node = 'dfs://' + @nodes.first
|
30
47
|
f.cp File.join(node, path), File.join(node, path2)
|
31
48
|
end
|
32
|
-
|
49
|
+
|
33
50
|
if @sps then
|
34
|
-
@sps.notice "%s/copy: %s %s" % [@topic, File.join(node, path),
|
51
|
+
@sps.notice "%s/copy: %s %s" % [@topic, File.join(node, path),
|
35
52
|
File.join(node, path2)]
|
36
53
|
end
|
37
54
|
|
38
|
-
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def directory?(fname)
|
58
|
+
|
59
|
+
file_op do |f|
|
60
|
+
node = 'dfs://' + @nodes.first
|
61
|
+
f.directory? File.join(node, fname)
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
39
65
|
|
40
66
|
def exists?(fname)
|
41
|
-
|
42
|
-
file_op do |f|
|
67
|
+
|
68
|
+
file_op do |f|
|
69
|
+
node = 'dfs://' + @nodes.first
|
70
|
+
f.exists? File.join(node, fname)
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
def glob(path)
|
76
|
+
|
77
|
+
file_op do |f|
|
43
78
|
node = 'dfs://' + @nodes.first
|
44
|
-
f.
|
79
|
+
f.glob File.join(node, path)
|
45
80
|
end
|
46
81
|
|
47
|
-
end
|
48
|
-
|
82
|
+
end
|
83
|
+
|
84
|
+
|
49
85
|
def ls(path)
|
50
|
-
|
51
|
-
file_op do |f|
|
86
|
+
|
87
|
+
file_op do |f|
|
52
88
|
node = 'dfs://' + @nodes.first
|
53
89
|
f.ls File.join(node, path)
|
54
90
|
end
|
55
91
|
|
56
|
-
end
|
57
|
-
|
92
|
+
end
|
93
|
+
|
58
94
|
def mkdir(path)
|
59
95
|
|
60
96
|
node = ''
|
61
|
-
|
62
|
-
file_op do |f|
|
97
|
+
|
98
|
+
file_op do |f|
|
63
99
|
node = 'dfs://' + @nodes.first
|
64
100
|
f.mkdir File.join(node, path)
|
65
101
|
end
|
66
|
-
|
102
|
+
|
67
103
|
if @sps then
|
68
|
-
@sps.notice "%s/mkdir: %s" % [@topic, File.join(node, path)]
|
104
|
+
@sps.notice "%s/mkdir: %s" % [@topic, File.join(node, path)]
|
69
105
|
end
|
70
106
|
|
71
107
|
end
|
72
|
-
|
108
|
+
|
73
109
|
def mkdir_p(path)
|
74
110
|
|
75
|
-
node = ''
|
111
|
+
node = ''
|
76
112
|
|
77
113
|
file_op do |f|
|
78
114
|
node = 'dfs://' + @nodes.first
|
79
115
|
f.mkdir_p File.join(node, path)
|
80
116
|
end
|
81
|
-
|
117
|
+
|
82
118
|
if @sps then
|
83
119
|
@sps.notice "%s/mkdir_p: %s" % [@topic, File.join(node, path)]
|
84
120
|
end
|
85
|
-
|
121
|
+
|
86
122
|
end
|
87
|
-
|
123
|
+
|
88
124
|
def mv(path, path2)
|
89
125
|
|
90
126
|
node = ''
|
91
|
-
|
127
|
+
|
92
128
|
file_op do |f|
|
93
129
|
node = 'dfs://' + @nodes.first
|
94
130
|
f.mv File.join(node, path), File.join(node, path2)
|
95
131
|
end
|
96
|
-
|
132
|
+
|
97
133
|
if @sps then
|
98
|
-
@sps.notice "%s/mv: %s %s" % [@topic, File.join(node, path),
|
134
|
+
@sps.notice "%s/mv: %s %s" % [@topic, File.join(node, path),
|
99
135
|
File.join(node, path2)]
|
100
136
|
end
|
101
137
|
|
102
|
-
end
|
103
|
-
|
138
|
+
end
|
139
|
+
|
104
140
|
def read(fname)
|
105
|
-
|
141
|
+
|
106
142
|
file_op do |f|
|
107
143
|
node = 'dfs://' + @nodes.first
|
108
144
|
f.read File.join(node, fname)
|
109
145
|
end
|
110
146
|
|
111
147
|
end
|
112
|
-
|
148
|
+
|
113
149
|
def rm(fname)
|
114
150
|
|
115
151
|
node = ''
|
116
|
-
|
152
|
+
|
117
153
|
file_op do |f|
|
118
154
|
node = 'dfs://' + @nodes.first
|
119
155
|
f.rm File.join(node, fname)
|
120
156
|
end
|
121
|
-
|
157
|
+
|
122
158
|
if @sps then
|
123
159
|
@sps.notice "%s/rm: %s" % [@topic, File.join(node, fname)]
|
124
160
|
end
|
125
161
|
|
126
|
-
end
|
162
|
+
end
|
127
163
|
|
128
164
|
def write(fname, content)
|
129
165
|
|
130
166
|
node = ''
|
131
|
-
|
167
|
+
|
132
168
|
file_op do |f|
|
133
169
|
node = 'dfs://' + @nodes.first
|
134
170
|
f.write File.join(node, fname), content
|
135
171
|
end
|
136
|
-
|
172
|
+
|
137
173
|
if @sps then
|
138
174
|
@sps.notice("%s/write: %s" % [@topic, File.join(node, fname)])
|
139
175
|
end
|
140
|
-
|
176
|
+
|
141
177
|
end
|
142
|
-
|
178
|
+
|
143
179
|
def zip(fname, a)
|
144
|
-
|
180
|
+
|
145
181
|
node = ''
|
146
|
-
|
182
|
+
|
147
183
|
file_op do |f|
|
148
184
|
node = 'dfs://' + @nodes.first
|
149
185
|
f.zip File.join(node, fname), a
|
150
186
|
end
|
151
|
-
|
187
|
+
|
152
188
|
if @sps then
|
153
189
|
@sps.notice "%s/zip: %s" % [@topic, File.join(node, fname)]
|
154
190
|
end
|
155
|
-
|
156
|
-
end
|
157
|
-
|
191
|
+
|
192
|
+
end
|
193
|
+
|
158
194
|
|
159
195
|
private
|
160
196
|
|
@@ -165,11 +201,12 @@ class DRbFileServer
|
|
165
201
|
@failcount = 0
|
166
202
|
r
|
167
203
|
rescue
|
204
|
+
raise $! if ($!).inspect =~ /No such file or directory/
|
168
205
|
puts 'warning: ' + ($!).inspect
|
169
206
|
@nodes.rotate!
|
170
207
|
@failcount += 1
|
171
208
|
retry unless @failcount > @nodes.length
|
172
|
-
raise 'DRbFileServerPlus nodes
|
209
|
+
raise 'DRbFileServerPlus nodes exhausted2'
|
173
210
|
end
|
174
211
|
|
175
212
|
end
|
@@ -179,21 +216,21 @@ end
|
|
179
216
|
class DRbFileServerPlus
|
180
217
|
|
181
218
|
|
182
|
-
def initialize(host: 'localhost', port: '61010', nodes: [], sps_host: nil,
|
219
|
+
def initialize(host: 'localhost', port: '61010', nodes: [], sps_host: nil,
|
183
220
|
sps_port: '59010', sps_topic: 'file')
|
184
221
|
|
185
222
|
@host, @port, @nodes = host, port, nodes
|
186
|
-
|
223
|
+
|
187
224
|
if sps_host then
|
188
|
-
@sps = SPSPub.new(host: sps_host, port: sps_port)
|
225
|
+
@sps = SPSPub.new(host: sps_host, port: sps_port)
|
189
226
|
@topic = sps_topic
|
190
227
|
end
|
191
228
|
|
192
229
|
end
|
193
230
|
|
194
231
|
def start()
|
195
|
-
|
196
|
-
DRb.start_service "druby://#{@host}:#{@port}",
|
232
|
+
|
233
|
+
DRb.start_service "druby://#{@host}:#{@port}",
|
197
234
|
DRbFileServer.new(@nodes, sps: @sps, topic: @topic)
|
198
235
|
DRb.thread.join
|
199
236
|
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: drb_fileserver_plus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -11,52 +11,52 @@ cert_chain:
|
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
13
|
MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
14
|
+
YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjIwMTE3MjExODE0WhcN
|
15
|
+
MjMwMTE3MjExODE0WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
|
16
|
+
cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDJmoH7
|
17
|
+
qtUrW6rfbZ7EC29fiedZY/da3pB3Y22dyx493ue53m7ijEIC9tVCja+3T7sQ7DOe
|
18
|
+
hAabX4KwhWTbq3SOHEzPeLqOgtciZPNRVo5g5UdOEp/7+ZSeBlm/BJO+RMbYfME+
|
19
|
+
NxpJB9BfW4vKgdYUU0mKZZhld6iFfpe/L9C7/OKXGy2EtHqs5/iHZcuhqC9c9dkS
|
20
|
+
zDR0FEWgRFvB2ZHoq0V5VmBeuC/0izTZMToYV2B/hQjSenkMSIO6s39Omf1ciRfs
|
21
|
+
wbZItRzNHfDgPJL4cuxWbNqrICluAP97a1k7FT/huhsjIIhFotw4fg7Z0Y9RkDZz
|
22
|
+
3p3Zd+nK7sBQFHMIejdmCZAQ1L+hNYEoSKJgaaVWN1Edz0tIzPaepW42Jlc8czPi
|
23
|
+
XZI5Gpal/sobpP4b2PbD+101ZXALel9+VBdUoM4hJohlKbV6BB9TZ+ZKdZAu4G34
|
24
|
+
LqsTiUuPYVpifonAvvCK/sHZFv06rkPr+bJJwzSUBIDK3WnHKl2ak7iLy28CAwEA
|
25
|
+
AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUMqiMl7vY
|
26
|
+
doLRPPh2YANnlg4pBAAwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
|
27
27
|
c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
28
|
+
BgkqhkiG9w0BAQsFAAOCAYEAcwXlaQYBtgbcM3aGSuse6SyR6v+PPcdAKj9l2JCa
|
29
|
+
0E1ziB1NZdFe71iuA24zAmkWfMr1dvlsuQ5W1ETPO67yyxOw7MZzjTomLlhKW3Bv
|
30
|
+
FDbU8D7hoMjjTfOsdSWjwly/j8b2WnYOwFYHKqgc/Zj4J2PE13v4t44CQV1ofnd9
|
31
|
+
bvgUHjEWElZL8j/ADbNcc5b8NrOzq3lI9J3rQ2dyEOX00eRLMrOK9Gc3jLpn4vrP
|
32
|
+
ej8MaD6CTt/k36lVZTFOeBOzbulRTCfBct+ILDXpvCotrKgOqUa5Phyza1/k9+5k
|
33
|
+
eqd0/0Hhn955Wvk9EEElxPHTDfdMGxw6/wk2hhqG8RKPJONr67wbZVV8jTGqoZ8O
|
34
|
+
LXnxD2cEcXYHq0H40uYhF0kT+DClasFvaoKsHcfls3AwshME9UPCpIXZ9yqwWB5v
|
35
|
+
c2ssLUM61klg6aqPwYrT/aNWFy0+dGbhfdCqFHED5VAqdJ9CDJK+ftycl4+P8wjl
|
36
|
+
BN8isQ//6vwALlrUdDbZ2v7l
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date:
|
38
|
+
date: 2022-01-18 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: drb_fileclient
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
|
-
- - "~>"
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: '0.4'
|
47
44
|
- - ">="
|
48
45
|
- !ruby/object:Gem::Version
|
49
|
-
version: 0.
|
46
|
+
version: 0.6.0
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '0.6'
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
|
-
- - "~>"
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: '0.4'
|
57
54
|
- - ">="
|
58
55
|
- !ruby/object:Gem::Version
|
59
|
-
version: 0.
|
56
|
+
version: 0.6.0
|
57
|
+
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '0.6'
|
60
60
|
- !ruby/object:Gem::Dependency
|
61
61
|
name: sps-pub
|
62
62
|
requirement: !ruby/object:Gem::Requirement
|
@@ -78,7 +78,7 @@ dependencies:
|
|
78
78
|
- !ruby/object:Gem::Version
|
79
79
|
version: 0.5.5
|
80
80
|
description:
|
81
|
-
email:
|
81
|
+
email: digital.robertson@gmail.com
|
82
82
|
executables: []
|
83
83
|
extensions: []
|
84
84
|
extra_rdoc_files: []
|
@@ -104,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
104
104
|
version: '0'
|
105
105
|
requirements: []
|
106
106
|
rubyforge_project:
|
107
|
-
rubygems_version: 2.7.
|
107
|
+
rubygems_version: 2.7.10
|
108
108
|
signing_key:
|
109
109
|
specification_version: 4
|
110
110
|
summary: Designed to provide fault tolerant access to a DRb file server when 2 or
|
metadata.gz.sig
CHANGED
Binary file
|