drb_fileserver_plus 0.2.1 → 0.3.2

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: 2a343182e14b15cd40f4d6ada733281b605d7dfb7f174acb852b43877b748d0c
4
- data.tar.gz: 40c2706d369d419221e20e4253e9e6a60b5c84a33afeafc6abaf49d55678cb44
3
+ metadata.gz: 920882a50cd419bef05ecb0c67c2dbe51742c4669b48d30d286fc15271885609
4
+ data.tar.gz: 2f5785281225cf121c05f7a323e5e84304f3c0deab856eb4287cacec24e06311
5
5
  SHA512:
6
- metadata.gz: 63e58db0c8d5c62d1d729f5f2ff4eaef82df0973bb49bb1f1f92615a33383b5c8f499c7a7751372adb9f28f2ae4db08321c3757d9cb917f6b4f94a12170c4237
7
- data.tar.gz: 0552fe49e183609e497e57f20be29856ddf987ccc93dbd23839de186d4d147912abc0bc91fc59abaf6a5adce63adeca64b4d890ec723bbfd030294ec313e2213
6
+ metadata.gz: a7631f9ac2ba21c3361b710264b9ce20803a4f4c02fe57d0217e28e3c8290b84f5ba1e106f1d158c648d34804ed240b27067d95a14216c46b3c26755b59348ac
7
+ data.tar.gz: ddd5c5191228f7884e2f91a6c6f9eacec531d55807cdaabab8a40442cc4486c7eace00df7db05c0a773f1f9d0896aa653a5ed0b4a1c9d5d024d88d4298fbfd29
checksums.yaml.gz.sig CHANGED
Binary file
@@ -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.map {|x| 'dfs://' + x}
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
- f.cp File.join(@nodes.first, path), File.join(@nodes.first, path2)
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(@nodes.first, path),
30
- File.join(@nodes.first, path2)]
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 {|f| f.exists? File.join(@nodes.first, fname) }
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 {|f| f.ls File.join(@nodes.first, path) }
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
- file_op {|f| f.mkdir File.join(@nodes.first, path) }
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(@nodes.first, path)]
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
- file_op {|f| f.mkdir_p File.join(@nodes.first, path) }
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(@nodes.first, path)]
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
- f.mv File.join(@nodes.first, path), File.join(@nodes.first, path2)
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(@nodes.first, path),
75
- File.join(@nodes.first, path2)]
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 {|f| f.read File.join(@nodes.first, fname) }
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
- file_op {|f| f.rm File.join(@nodes.first, fname) }
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(@nodes.first, fname)]
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
- file_op {|f| f.write File.join(@nodes.first, fname), content }
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(@nodes.first, fname)])
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
- file_op {|f| f.zip File.join(@nodes.first, fname), a }
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(@nodes.first, fname)]
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 exhausted'
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.1
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
- 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-23 00:00:00.000000000 Z
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.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