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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 573638c78f79eab8e16adc802c53f1f96e37e7bb3493d18cdbc26a1caffacbdd
4
- data.tar.gz: 05be70a6d7c7fe3d0cd17d8c9905c99448514fb71576c5a07f3eff4eaf9805fa
3
+ metadata.gz: 6efdef1e9c8fe2f5652d04a2f7a628c5eea7fea394f55ed8272d6a5bdc9f9487
4
+ data.tar.gz: faffb6adf206b32bfcff004cacc8124e6e795e1d8208f261bffc304a8601da53
5
5
  SHA512:
6
- metadata.gz: 9969c2d31419011f1192cbeb0744ae3b50a7dbd99d9b73bf960a974d5173ac2c399fd66efe74715bd6a36b8a2336935497680e7b2b1883fd56148e22ae50c595
7
- data.tar.gz: 71bcf3ffc2c48928b3ba40bb8901c49355ff38961c7a156180da7ba484741ee03f23c70579127230427dfff29d856b2e4b0d3ac6f9094f998a7816f13f58a4f3
6
+ metadata.gz: 4b62cc3dce2a349f203b4b9f2e6fb1cfd8cff478fc900d695986bae586ea7281384fec76b61fadf278548be8c3341d534e6b45aab4cc20fddff3ed8e0602aec8
7
+ data.tar.gz: f22db5b7b86e5a7b50a90780ddc4250bf89dfa48dcec7ea11af5812f716e679de3b06aaaaaee2773bf56969f479e5b160ca00cb02c0444a3a716378f554d5cfb
checksums.yaml.gz.sig CHANGED
Binary file
@@ -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.0
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
- YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTgwODIyMTAzMzQ3WhcN
15
- MTkwODIyMTAzMzQ3WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
- cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQClKaO5
17
- OJW0sxpai9US4G/mLYTlk/F0KsII6NStyEmHkwFj8iWodj7eGZ60UQ1ZC38IcyBG
18
- 62sCsnjMUZOC1h3Ss9mIp8fYJfHPC9AxC71jMClbbTDBNGs/aBaIrvjcQ0qpmVh1
19
- wE+rC5K/Knt/r7/OHiMwX1NmOINAyidT1N2EGXCKB5VTH2GrmRHi4B9PTQ7FFdYW
20
- R9duTW7ka36Rh6eCOfpEr/icTxcUxAg6YuEgPlKw8qgbGl2T9FFQZtjplQg/UlOM
21
- dcGBIMojDDK/4A4dnHNLMYtchHssd7pVZ8eamgz/3rrJbzC7PFjIHc1Yh9rQ9/+z
22
- I3Js8CVNe4M8neCgtlploxC2XnbcPdrytRqYZUWYvL7i8LUvI3vYivGePSAZ9zej
23
- +LMlZhGDXu6ZgdbZ6EofLIiFuBGHxH/caD5hl1x5pIn+jL16DQhTMcIv/gGa6BYs
24
- 2zlhDk1fReBUXX+acDxFOhSnWlImNBZyJjrOwnPiGCwGQ3+YI1C8278lnukCAwEA
25
- AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU+LOUDasm
26
- JdneaJyCt2Cd55sH7a4wJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
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
- BgkqhkiG9w0BAQsFAAOCAYEAoiyX2/xwOsj7KOku/r5y9ViD1yhaMUBBwhmIIvge
29
- EnMZt+FPBZmy1pz9+eIKBAWz6uCGRz2aAtnCwYVO+3QidMNQzDXTZZW7MzpT8APQ
30
- kV7FlzXcZI3+lXq9n+QQiHUKt3kwSY2+XXH8vPfCC0bZuRMNeJ/qXICnosuCkXhB
31
- ncMc3qbCU4Za/kPrYX++Z4fH1k2YxZ11yaZ02KYoLaoXlc2haApI44QtO6JQgw69
32
- Zd6EtP36AxDx32jZpfMCs8TVJZru0FD9BtonYIRc1iwm2pxoXNP8zbfyjgWyO+bu
33
- ZuhpGaqTxZeyrMDu5n3pdStASltSTpEXW7a+8PHsMHb+FKBCoQm/aAqoNj/HGe1c
34
- 9Q9C3/cpFcqxt4w1h99W8wKDVa7LxIxOurF/jTJCzUFVpbWw2keJvUvRHaZwkDci
35
- IzajbtHbQOY56M17vmJw7Y9ei8bGWzjVxfRUg33mVpGQQIWHA2JpaJ8+jpwrxdbF
36
- DfzPJWgIRbTOgE4v1XGQcqsO
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: 2018-10-08 00:00:00.000000000 Z
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.4.5
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.4.5
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: james@jamesrobertson.eu
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.6
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