drb_fileserver_plus 0.3.0 → 0.3.4
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 +104 -53
- 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: 6efdef1e9c8fe2f5652d04a2f7a628c5eea7fea394f55ed8272d6a5bdc9f9487
|
4
|
+
data.tar.gz: faffb6adf206b32bfcff004cacc8124e6e795e1d8208f261bffc304a8601da53
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4b62cc3dce2a349f203b4b9f2e6fb1cfd8cff478fc900d695986bae586ea7281384fec76b61fadf278548be8c3341d534e6b45aab4cc20fddff3ed8e0602aec8
|
7
|
+
data.tar.gz: f22db5b7b86e5a7b50a90780ddc4250bf89dfa48dcec7ea11af5812f716e679de3b06aaaaaee2773bf56969f479e5b160ca00cb02c0444a3a716378f554d5cfb
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/drb_fileserver_plus.rb
CHANGED
@@ -10,151 +10,202 @@ 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
|
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|
|
43
69
|
node = 'dfs://' + @nodes.first
|
44
|
-
f.exists? File.join(node, fname)
|
70
|
+
f.exists? File.join(node, fname)
|
45
71
|
end
|
46
72
|
|
47
|
-
end
|
48
|
-
|
73
|
+
end
|
74
|
+
|
75
|
+
def glob(path)
|
76
|
+
|
77
|
+
file_op do |f|
|
78
|
+
node = 'dfs://' + @nodes.first
|
79
|
+
f.glob File.join(node, path)
|
80
|
+
end
|
81
|
+
|
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
|
163
|
+
|
164
|
+
def touch(fname, mtime: Time.now)
|
165
|
+
|
166
|
+
node = ''
|
167
|
+
|
168
|
+
file_op do |f|
|
169
|
+
node = 'dfs://' + @nodes.first
|
170
|
+
f.touch File.join(node, fname), mtime: mtime
|
171
|
+
end
|
172
|
+
|
173
|
+
if @sps then
|
174
|
+
@sps.notice "%s/touch: %s" % [@topic, File.join(node, fname)]
|
175
|
+
end
|
176
|
+
|
177
|
+
end
|
127
178
|
|
128
179
|
def write(fname, content)
|
129
180
|
|
130
181
|
node = ''
|
131
|
-
|
182
|
+
|
132
183
|
file_op do |f|
|
133
184
|
node = 'dfs://' + @nodes.first
|
134
185
|
f.write File.join(node, fname), content
|
135
186
|
end
|
136
|
-
|
187
|
+
|
137
188
|
if @sps then
|
138
189
|
@sps.notice("%s/write: %s" % [@topic, File.join(node, fname)])
|
139
190
|
end
|
140
|
-
|
191
|
+
|
141
192
|
end
|
142
|
-
|
193
|
+
|
143
194
|
def zip(fname, a)
|
144
|
-
|
195
|
+
|
145
196
|
node = ''
|
146
|
-
|
197
|
+
|
147
198
|
file_op do |f|
|
148
199
|
node = 'dfs://' + @nodes.first
|
149
200
|
f.zip File.join(node, fname), a
|
150
201
|
end
|
151
|
-
|
202
|
+
|
152
203
|
if @sps then
|
153
204
|
@sps.notice "%s/zip: %s" % [@topic, File.join(node, fname)]
|
154
205
|
end
|
155
|
-
|
156
|
-
end
|
157
|
-
|
206
|
+
|
207
|
+
end
|
208
|
+
|
158
209
|
|
159
210
|
private
|
160
211
|
|
@@ -180,21 +231,21 @@ end
|
|
180
231
|
class DRbFileServerPlus
|
181
232
|
|
182
233
|
|
183
|
-
def initialize(host: 'localhost', port: '61010', nodes: [], sps_host: nil,
|
234
|
+
def initialize(host: 'localhost', port: '61010', nodes: [], sps_host: nil,
|
184
235
|
sps_port: '59010', sps_topic: 'file')
|
185
236
|
|
186
237
|
@host, @port, @nodes = host, port, nodes
|
187
|
-
|
238
|
+
|
188
239
|
if sps_host then
|
189
|
-
@sps = SPSPub.new(host: sps_host, port: sps_port)
|
240
|
+
@sps = SPSPub.new(host: sps_host, port: sps_port)
|
190
241
|
@topic = sps_topic
|
191
242
|
end
|
192
243
|
|
193
244
|
end
|
194
245
|
|
195
246
|
def start()
|
196
|
-
|
197
|
-
DRb.start_service "druby://#{@host}:#{@port}",
|
247
|
+
|
248
|
+
DRb.start_service "druby://#{@host}:#{@port}",
|
198
249
|
DRbFileServer.new(@nodes, sps: @sps, topic: @topic)
|
199
250
|
DRb.thread.join
|
200
251
|
|
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.4
|
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-08 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
|