drb_fileserver_plus 0.2.1 → 0.3.2

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: 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