drb_fileserver_plus 0.2.1 → 0.3.2
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 +123 -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: 920882a50cd419bef05ecb0c67c2dbe51742c4669b48d30d286fc15271885609
|
4
|
+
data.tar.gz: 2f5785281225cf121c05f7a323e5e84304f3c0deab856eb4287cacec24e06311
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a7631f9ac2ba21c3361b710264b9ce20803a4f4c02fe57d0217e28e3c8290b84f5ba1e106f1d158c648d34804ed240b27067d95a14216c46b3c26755b59348ac
|
7
|
+
data.tar.gz: ddd5c5191228f7884e2f91a6c6f9eacec531d55807cdaabab8a40442cc4486c7eace00df7db05c0a773f1f9d0896aa653a5ed0b4a1c9d5d024d88d4298fbfd29
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/drb_fileserver_plus.rb
CHANGED
@@ -11,108 +11,176 @@ require 'drb_fileclient'
|
|
11
11
|
|
12
12
|
class DRbFileServer
|
13
13
|
|
14
|
+
attr_accessor :nodes
|
15
|
+
|
14
16
|
def initialize(nodes, sps: nil, topic: 'file')
|
15
|
-
|
16
|
-
@nodes = nodes
|
17
|
+
|
18
|
+
@nodes = nodes
|
17
19
|
@failcount = 0
|
18
20
|
@sps, @topic = sps, topic
|
19
|
-
|
21
|
+
|
22
|
+
end
|
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
|
+
|
20
38
|
end
|
21
|
-
|
39
|
+
|
40
|
+
|
22
41
|
def cp(path, path2)
|
23
|
-
|
42
|
+
|
43
|
+
node = ''
|
44
|
+
|
24
45
|
file_op do |f|
|
25
|
-
|
46
|
+
node = 'dfs://' + @nodes.first
|
47
|
+
f.cp File.join(node, path), File.join(node, path2)
|
26
48
|
end
|
27
|
-
|
49
|
+
|
28
50
|
if @sps then
|
29
|
-
@sps.notice "%s/copy: %s %s" % [@topic, File.join(
|
30
|
-
File.join(
|
51
|
+
@sps.notice "%s/copy: %s %s" % [@topic, File.join(node, path),
|
52
|
+
File.join(node, path2)]
|
31
53
|
end
|
32
54
|
|
33
|
-
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
|
34
65
|
|
35
66
|
def exists?(fname)
|
36
67
|
|
37
|
-
file_op
|
68
|
+
file_op do |f|
|
69
|
+
node = 'dfs://' + @nodes.first
|
70
|
+
f.exists? File.join(node, fname)
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
38
74
|
|
39
|
-
end
|
40
|
-
|
41
75
|
def ls(path)
|
42
76
|
|
43
|
-
file_op
|
77
|
+
file_op do |f|
|
78
|
+
node = 'dfs://' + @nodes.first
|
79
|
+
f.ls File.join(node, path)
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
44
83
|
|
45
|
-
end
|
46
|
-
|
47
84
|
def mkdir(path)
|
48
85
|
|
49
|
-
|
50
|
-
|
86
|
+
node = ''
|
87
|
+
|
88
|
+
file_op do |f|
|
89
|
+
node = 'dfs://' + @nodes.first
|
90
|
+
f.mkdir File.join(node, path)
|
91
|
+
end
|
92
|
+
|
51
93
|
if @sps then
|
52
|
-
@sps.notice "%s/mkdir: %s" % [@topic, File.join(
|
94
|
+
@sps.notice "%s/mkdir: %s" % [@topic, File.join(node, path)]
|
53
95
|
end
|
54
96
|
|
55
97
|
end
|
56
|
-
|
98
|
+
|
57
99
|
def mkdir_p(path)
|
58
100
|
|
59
|
-
|
60
|
-
|
101
|
+
node = ''
|
102
|
+
|
103
|
+
file_op do |f|
|
104
|
+
node = 'dfs://' + @nodes.first
|
105
|
+
f.mkdir_p File.join(node, path)
|
106
|
+
end
|
107
|
+
|
61
108
|
if @sps then
|
62
|
-
@sps.notice "%s/mkdir_p: %s" % [@topic, File.join(
|
109
|
+
@sps.notice "%s/mkdir_p: %s" % [@topic, File.join(node, path)]
|
63
110
|
end
|
64
|
-
|
111
|
+
|
65
112
|
end
|
66
|
-
|
113
|
+
|
67
114
|
def mv(path, path2)
|
68
115
|
|
116
|
+
node = ''
|
117
|
+
|
69
118
|
file_op do |f|
|
70
|
-
|
119
|
+
node = 'dfs://' + @nodes.first
|
120
|
+
f.mv File.join(node, path), File.join(node, path2)
|
71
121
|
end
|
72
|
-
|
122
|
+
|
73
123
|
if @sps then
|
74
|
-
@sps.notice "%s/mv: %s %s" % [@topic, File.join(
|
75
|
-
File.join(
|
124
|
+
@sps.notice "%s/mv: %s %s" % [@topic, File.join(node, path),
|
125
|
+
File.join(node, path2)]
|
76
126
|
end
|
77
127
|
|
78
|
-
end
|
79
|
-
|
128
|
+
end
|
129
|
+
|
80
130
|
def read(fname)
|
81
131
|
|
82
|
-
file_op
|
132
|
+
file_op do |f|
|
133
|
+
node = 'dfs://' + @nodes.first
|
134
|
+
f.read File.join(node, fname)
|
135
|
+
end
|
83
136
|
|
84
137
|
end
|
85
|
-
|
138
|
+
|
86
139
|
def rm(fname)
|
87
140
|
|
88
|
-
|
89
|
-
|
141
|
+
node = ''
|
142
|
+
|
143
|
+
file_op do |f|
|
144
|
+
node = 'dfs://' + @nodes.first
|
145
|
+
f.rm File.join(node, fname)
|
146
|
+
end
|
147
|
+
|
90
148
|
if @sps then
|
91
|
-
@sps.notice "%s/rm: %s" % [@topic, File.join(
|
149
|
+
@sps.notice "%s/rm: %s" % [@topic, File.join(node, fname)]
|
92
150
|
end
|
93
151
|
|
94
|
-
end
|
152
|
+
end
|
95
153
|
|
96
154
|
def write(fname, content)
|
97
155
|
|
98
|
-
|
99
|
-
|
156
|
+
node = ''
|
157
|
+
|
158
|
+
file_op do |f|
|
159
|
+
node = 'dfs://' + @nodes.first
|
160
|
+
f.write File.join(node, fname), content
|
161
|
+
end
|
162
|
+
|
100
163
|
if @sps then
|
101
|
-
@sps.notice("%s/write: %s" % [@topic, File.join(
|
164
|
+
@sps.notice("%s/write: %s" % [@topic, File.join(node, fname)])
|
102
165
|
end
|
103
|
-
|
166
|
+
|
104
167
|
end
|
105
|
-
|
168
|
+
|
106
169
|
def zip(fname, a)
|
107
170
|
|
108
|
-
|
109
|
-
|
171
|
+
node = ''
|
172
|
+
|
173
|
+
file_op do |f|
|
174
|
+
node = 'dfs://' + @nodes.first
|
175
|
+
f.zip File.join(node, fname), a
|
176
|
+
end
|
177
|
+
|
110
178
|
if @sps then
|
111
|
-
@sps.notice "%s/zip: %s" % [@topic, File.join(
|
179
|
+
@sps.notice "%s/zip: %s" % [@topic, File.join(node, fname)]
|
112
180
|
end
|
113
|
-
|
114
|
-
end
|
115
|
-
|
181
|
+
|
182
|
+
end
|
183
|
+
|
116
184
|
|
117
185
|
private
|
118
186
|
|
@@ -123,11 +191,12 @@ class DRbFileServer
|
|
123
191
|
@failcount = 0
|
124
192
|
r
|
125
193
|
rescue
|
194
|
+
raise $! if ($!).inspect =~ /No such file or directory/
|
126
195
|
puts 'warning: ' + ($!).inspect
|
127
196
|
@nodes.rotate!
|
128
197
|
@failcount += 1
|
129
198
|
retry unless @failcount > @nodes.length
|
130
|
-
raise 'DRbFileServerPlus nodes
|
199
|
+
raise 'DRbFileServerPlus nodes exhausted2'
|
131
200
|
end
|
132
201
|
|
133
202
|
end
|
@@ -137,21 +206,21 @@ end
|
|
137
206
|
class DRbFileServerPlus
|
138
207
|
|
139
208
|
|
140
|
-
def initialize(host: 'localhost', port: '61010', nodes: [], sps_host: nil,
|
209
|
+
def initialize(host: 'localhost', port: '61010', nodes: [], sps_host: nil,
|
141
210
|
sps_port: '59010', sps_topic: 'file')
|
142
211
|
|
143
212
|
@host, @port, @nodes = host, port, nodes
|
144
|
-
|
213
|
+
|
145
214
|
if sps_host then
|
146
|
-
@sps = SPSPub.new(host: sps_host, port: sps_port)
|
215
|
+
@sps = SPSPub.new(host: sps_host, port: sps_port)
|
147
216
|
@topic = sps_topic
|
148
217
|
end
|
149
218
|
|
150
219
|
end
|
151
220
|
|
152
221
|
def start()
|
153
|
-
|
154
|
-
DRb.start_service "druby://#{@host}:#{@port}",
|
222
|
+
|
223
|
+
DRb.start_service "druby://#{@host}:#{@port}",
|
155
224
|
DRbFileServer.new(@nodes, sps: @sps, topic: @topic)
|
156
225
|
DRb.thread.join
|
157
226
|
|
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.2
|
4
|
+
version: 0.3.2
|
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-17 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
|