drb_fileserver_plus 0.2.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 17d1dddceaf3c825e2da89a9a9dc96ac2d86fab7839d44a544af74db8a7581f2
4
- data.tar.gz: f9d8147a5c84c69427292c23d4dece3fb0902da8d7d2ae1c4abba65e4df6793b
3
+ metadata.gz: f3099814efbfd218fc0ec33eed45722f9e3fda934e080fc52f6711b0a0f99f2d
4
+ data.tar.gz: acab144c56daa01231ac1e36a576587a555b9d5aa3a605bf04467bacf9eb0426
5
5
  SHA512:
6
- metadata.gz: 28f129af88a0a6c18c87758830a6e92ae33a707ac7f24c91fb90e4fef6ffdba9ce3da22bce4cb7a05bd11c7233835599f543dfa84a96dd0bca53aefb0e8653cb
7
- data.tar.gz: f1bfc398a716f146db25d51d8355627f79d549899370e87b47368a5ca601883806b1065fc3799c86ba1a36bdd2d3b8ca180ed4d7cd37da0b15e3af4c90b6beb0
6
+ metadata.gz: 7e69242e361fe8f53903d3a90b4c62018e87cfef60eaa61cb1d44aa9f7721efd6045fcc379f1b2b47f34df7229f3c45bb160fbaac5a2f15e6226c2ec85f51a19
7
+ data.tar.gz: 3f98de7bcbca9c4da006d1bfce8af85baa750e10a9ea517266491fa9c64944d750d3b55fa43465e48eb25de735f21930016bc2d67efa18454924b804fbca8d57
checksums.yaml.gz.sig CHANGED
Binary file
@@ -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.exists? File.join(node, fname)
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 exhausted'
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.2.2
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
- 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-08-24 00:00:00.000000000 Z
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.4.4
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.4
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