drb_fileserver_plus 0.3.1 → 0.3.5
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 +115 -58
- data.tar.gz.sig +0 -0
- metadata +35 -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: ddf53d1ba8eb5eceeee7b82bcb1349d98c7a74894897fc3065f67f50505e8016
|
4
|
+
data.tar.gz: 8f867dfcdb2269d5edc2069fed2b3737278fe719987a34395619e8d1cbc1b372
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8fd8b711587995368338d0d68b278a0afe2c206f86ea9849dabc8d6a67b4cafa51296e1a5cbb5dd740f974d6b00501bfeaeaf54199494bdce8bfebae9fb120c
|
7
|
+
data.tar.gz: badbae8b42d177c68ad2750cb01ba61d6e2bdddd1875d1723884efa250e221395af051347d6f52fbae76139008021794ca6d8122c07c15c7a78c94640c741db5
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/drb_fileserver_plus.rb
CHANGED
@@ -10,160 +10,217 @@ 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
|
+
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
|
+
|
22
38
|
end
|
23
|
-
|
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
|
39
|
-
|
55
|
+
end
|
56
|
+
|
40
57
|
def directory?(fname)
|
41
|
-
|
42
|
-
file_op do |f|
|
58
|
+
|
59
|
+
file_op do |f|
|
43
60
|
node = 'dfs://' + @nodes.first
|
44
|
-
f.directory? File.join(node, fname)
|
61
|
+
f.directory? File.join(node, fname)
|
45
62
|
end
|
46
63
|
|
47
|
-
end
|
64
|
+
end
|
48
65
|
|
49
66
|
def exists?(fname)
|
50
|
-
|
51
|
-
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|
|
52
78
|
node = 'dfs://' + @nodes.first
|
53
|
-
f.
|
79
|
+
f.glob File.join(node, path)
|
54
80
|
end
|
55
81
|
|
56
|
-
end
|
57
|
-
|
82
|
+
end
|
83
|
+
|
84
|
+
|
58
85
|
def ls(path)
|
59
|
-
|
60
|
-
file_op do |f|
|
86
|
+
|
87
|
+
file_op do |f|
|
61
88
|
node = 'dfs://' + @nodes.first
|
62
89
|
f.ls File.join(node, path)
|
63
90
|
end
|
64
91
|
|
65
|
-
end
|
66
|
-
|
92
|
+
end
|
93
|
+
|
67
94
|
def mkdir(path)
|
68
95
|
|
69
96
|
node = ''
|
70
|
-
|
71
|
-
file_op do |f|
|
97
|
+
|
98
|
+
file_op do |f|
|
72
99
|
node = 'dfs://' + @nodes.first
|
73
100
|
f.mkdir File.join(node, path)
|
74
101
|
end
|
75
|
-
|
102
|
+
|
76
103
|
if @sps then
|
77
|
-
@sps.notice "%s/mkdir: %s" % [@topic, File.join(node, path)]
|
104
|
+
@sps.notice "%s/mkdir: %s" % [@topic, File.join(node, path)]
|
78
105
|
end
|
79
106
|
|
80
107
|
end
|
81
|
-
|
108
|
+
|
82
109
|
def mkdir_p(path)
|
83
110
|
|
84
|
-
node = ''
|
111
|
+
node = ''
|
85
112
|
|
86
113
|
file_op do |f|
|
87
114
|
node = 'dfs://' + @nodes.first
|
88
115
|
f.mkdir_p File.join(node, path)
|
89
116
|
end
|
90
|
-
|
117
|
+
|
91
118
|
if @sps then
|
92
119
|
@sps.notice "%s/mkdir_p: %s" % [@topic, File.join(node, path)]
|
93
120
|
end
|
94
|
-
|
121
|
+
|
95
122
|
end
|
96
|
-
|
123
|
+
|
97
124
|
def mv(path, path2)
|
98
125
|
|
99
126
|
node = ''
|
100
|
-
|
127
|
+
|
101
128
|
file_op do |f|
|
102
129
|
node = 'dfs://' + @nodes.first
|
103
130
|
f.mv File.join(node, path), File.join(node, path2)
|
104
131
|
end
|
105
|
-
|
132
|
+
|
106
133
|
if @sps then
|
107
|
-
@sps.notice "%s/mv: %s %s" % [@topic, File.join(node, path),
|
134
|
+
@sps.notice "%s/mv: %s %s" % [@topic, File.join(node, path),
|
108
135
|
File.join(node, path2)]
|
109
136
|
end
|
110
137
|
|
111
|
-
end
|
112
|
-
|
138
|
+
end
|
139
|
+
|
113
140
|
def read(fname)
|
114
|
-
|
141
|
+
|
115
142
|
file_op do |f|
|
116
143
|
node = 'dfs://' + @nodes.first
|
117
144
|
f.read File.join(node, fname)
|
118
145
|
end
|
119
146
|
|
120
147
|
end
|
121
|
-
|
148
|
+
|
122
149
|
def rm(fname)
|
123
150
|
|
124
151
|
node = ''
|
125
|
-
|
152
|
+
|
126
153
|
file_op do |f|
|
127
154
|
node = 'dfs://' + @nodes.first
|
128
155
|
f.rm File.join(node, fname)
|
129
156
|
end
|
130
|
-
|
157
|
+
|
131
158
|
if @sps then
|
132
159
|
@sps.notice "%s/rm: %s" % [@topic, File.join(node, fname)]
|
133
160
|
end
|
134
161
|
|
135
|
-
end
|
162
|
+
end
|
163
|
+
|
164
|
+
def rm_r(fname, force: false)
|
165
|
+
|
166
|
+
node = ''
|
167
|
+
|
168
|
+
file_op do |f|
|
169
|
+
node = 'dfs://' + @nodes.first
|
170
|
+
f.rm_r File.join(node, fname), force: force
|
171
|
+
end
|
172
|
+
|
173
|
+
if @sps then
|
174
|
+
@sps.notice "%s/rm_r: %s" % [@topic, File.join(node, fname)]
|
175
|
+
end
|
176
|
+
|
177
|
+
end
|
178
|
+
|
179
|
+
def touch(fname, mtime: Time.now)
|
180
|
+
|
181
|
+
node = ''
|
182
|
+
|
183
|
+
file_op do |f|
|
184
|
+
node = 'dfs://' + @nodes.first
|
185
|
+
f.touch File.join(node, fname), mtime: mtime
|
186
|
+
end
|
187
|
+
|
188
|
+
if @sps then
|
189
|
+
@sps.notice "%s/touch: %s" % [@topic, File.join(node, fname)]
|
190
|
+
end
|
191
|
+
|
192
|
+
end
|
136
193
|
|
137
194
|
def write(fname, content)
|
138
195
|
|
139
196
|
node = ''
|
140
|
-
|
197
|
+
|
141
198
|
file_op do |f|
|
142
199
|
node = 'dfs://' + @nodes.first
|
143
200
|
f.write File.join(node, fname), content
|
144
201
|
end
|
145
|
-
|
202
|
+
|
146
203
|
if @sps then
|
147
204
|
@sps.notice("%s/write: %s" % [@topic, File.join(node, fname)])
|
148
205
|
end
|
149
|
-
|
206
|
+
|
150
207
|
end
|
151
|
-
|
208
|
+
|
152
209
|
def zip(fname, a)
|
153
|
-
|
210
|
+
|
154
211
|
node = ''
|
155
|
-
|
212
|
+
|
156
213
|
file_op do |f|
|
157
214
|
node = 'dfs://' + @nodes.first
|
158
215
|
f.zip File.join(node, fname), a
|
159
216
|
end
|
160
|
-
|
217
|
+
|
161
218
|
if @sps then
|
162
219
|
@sps.notice "%s/zip: %s" % [@topic, File.join(node, fname)]
|
163
220
|
end
|
164
|
-
|
165
|
-
end
|
166
|
-
|
221
|
+
|
222
|
+
end
|
223
|
+
|
167
224
|
|
168
225
|
private
|
169
226
|
|
@@ -189,21 +246,21 @@ end
|
|
189
246
|
class DRbFileServerPlus
|
190
247
|
|
191
248
|
|
192
|
-
def initialize(host: 'localhost', port: '61010', nodes: [], sps_host: nil,
|
249
|
+
def initialize(host: 'localhost', port: '61010', nodes: [], sps_host: nil,
|
193
250
|
sps_port: '59010', sps_topic: 'file')
|
194
251
|
|
195
252
|
@host, @port, @nodes = host, port, nodes
|
196
|
-
|
253
|
+
|
197
254
|
if sps_host then
|
198
|
-
@sps = SPSPub.new(host: sps_host, port: sps_port)
|
255
|
+
@sps = SPSPub.new(host: sps_host, port: sps_port)
|
199
256
|
@topic = sps_topic
|
200
257
|
end
|
201
258
|
|
202
259
|
end
|
203
260
|
|
204
261
|
def start()
|
205
|
-
|
206
|
-
DRb.start_service "druby://#{@host}:#{@port}",
|
262
|
+
|
263
|
+
DRb.start_service "druby://#{@host}:#{@port}",
|
207
264
|
DRbFileServer.new(@nodes, sps: @sps, topic: @topic)
|
208
265
|
DRb.thread.join
|
209
266
|
|
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.3.
|
4
|
+
version: 0.3.5
|
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-02-09 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: []
|
@@ -103,7 +103,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
103
103
|
- !ruby/object:Gem::Version
|
104
104
|
version: '0'
|
105
105
|
requirements: []
|
106
|
-
|
106
|
+
rubyforge_project:
|
107
|
+
rubygems_version: 2.7.10
|
107
108
|
signing_key:
|
108
109
|
specification_version: 4
|
109
110
|
summary: Designed to provide fault tolerant access to a DRb file server when 2 or
|
metadata.gz.sig
CHANGED
Binary file
|