drb_fileserver_plus 0.1.1 → 0.2.0

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: e9547063824d71ebd77c11e75ee30b9f65834d18b5db3d91ce9580526d7cd69d
4
- data.tar.gz: 6dadec10fbbba36cb1beb6249eca1df4762b677f0d9ba83b83de9bf3d40d46be
3
+ metadata.gz: d527d94fb71c9732110bfe785a6efc2e2e5eb2fe7b2904cd92ea349c8015d022
4
+ data.tar.gz: 78d01af07689868674507859d7d158dd1db37e92c45ca4666d85ef3df4570944
5
5
  SHA512:
6
- metadata.gz: d44933c4280f74e469f29d33449e7f5c37d05c2f53cb8887630c6aa593af5e7dbdd82faf5319d0719e498d3da1832b6e4ebd503030bfa790d28a3cf3194a0ad1
7
- data.tar.gz: 0360aa78c5b539fac87e93754bcac61b4767791551f2f26415dbac282b9dab4e7325370d3094d0c4e1d57bdd6654e27c7f7197281f7ae034fcda9487a21b3659
6
+ metadata.gz: fc1fcb04de4f3c1bafdb5e0e89fa7118fe0c002995348f7b3b412d3873499624ff5b26dcf5b0a6103e109c7eeb74474a8897a368f5328c95927cf0c46877d607
7
+ data.tar.gz: 308c514a2e598cd0fba771cf8b38992f33b87b2efb4d332ca4872af206c302c056f4a4775ad5b57010f2ee5f53fb3dacdbdf6c53ade1927e315fcc26f7cdaa63
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -5,21 +5,30 @@
5
5
  # description: Designed to provide fault tolerant access to a DRb file server
6
6
  # when 2 or more back-end nodes are running.
7
7
 
8
+ require 'sps-pub'
8
9
  require 'drb_fileclient'
9
10
 
10
11
 
11
12
  class DRbFileServer
12
13
 
13
- def initialize(nodes)
14
+ def initialize(nodes, sps: nil, topic: 'file')
15
+
14
16
  @nodes = nodes.map {|x| 'dfs://' + x}
15
17
  @failcount = 0
18
+ @sps, @topic = sps, topic
19
+
16
20
  end
17
21
 
18
22
  def cp(path, path2)
19
-
23
+
20
24
  file_op do |f|
21
25
  f.cp File.join(@nodes.first, path), File.join(@nodes.first, path2)
22
26
  end
27
+
28
+ if @sps then
29
+ @sps.notice "%s/copy: %s %s" % [@topic, File.join(@nodes.first, path),
30
+ File.join(@nodes.first, path2)]
31
+ end
23
32
 
24
33
  end
25
34
 
@@ -38,13 +47,21 @@ class DRbFileServer
38
47
  def mkdir(path)
39
48
 
40
49
  file_op {|f| f.mkdir File.join(@nodes.first, path) }
50
+
51
+ if @sps then
52
+ @sps.notice "%s/mkdir: %s" % [@topic, File.join(@nodes.first, path)]
53
+ end
41
54
 
42
55
  end
43
56
 
44
57
  def mkdir_p(path)
45
58
 
46
59
  file_op {|f| f.mkdir_p File.join(@nodes.first, path) }
47
-
60
+
61
+ if @sps then
62
+ @sps.notice "%s/mkdir_p: %s" % [@topic, File.join(@nodes.first, path)]
63
+ end
64
+
48
65
  end
49
66
 
50
67
  def mv(path, path2)
@@ -52,6 +69,11 @@ class DRbFileServer
52
69
  file_op do |f|
53
70
  f.mv File.join(@nodes.first, path), File.join(@nodes.first, path2)
54
71
  end
72
+
73
+ if @sps then
74
+ @sps.notice "%s/mv: %s %s" % [@topic, File.join(@nodes.first, path),
75
+ File.join(@nodes.first, path2)]
76
+ end
55
77
 
56
78
  end
57
79
 
@@ -64,6 +86,10 @@ class DRbFileServer
64
86
  def rm(fname)
65
87
 
66
88
  file_op {|f| f.rm File.join(@nodes.first, fname) }
89
+
90
+ if @sps then
91
+ @sps.notice "%s/rm: %s" % [@topic, File.join(@nodes.first, fname)]
92
+ end
67
93
 
68
94
  end
69
95
 
@@ -71,12 +97,20 @@ class DRbFileServer
71
97
 
72
98
  file_op {|f| f.write File.join(@nodes.first, fname), content }
73
99
 
100
+ if @sps then
101
+ @sps.notice("%s/write: %s" % [@topic, File.join(@nodes.first, fname)])
102
+ end
103
+
74
104
  end
75
105
 
76
106
  def zip(fname, a)
77
107
 
78
108
  file_op {|f| f.zip File.join(@nodes.first, fname), a }
79
109
 
110
+ if @sps then
111
+ @sps.notice "%s/zip: %s" % [@topic, File.join(@nodes.first, fname)]
112
+ end
113
+
80
114
  end
81
115
 
82
116
 
@@ -103,15 +137,22 @@ end
103
137
  class DRbFileServerPlus
104
138
 
105
139
 
106
- def initialize(host: 'localhost', port: '61010', nodes: [])
140
+ def initialize(host: 'localhost', port: '61010', nodes: [], sps_host: nil,
141
+ sps_port: '59010', sps_topic: 'file')
107
142
 
108
143
  @host, @port, @nodes = host, port, nodes
144
+
145
+ if sps_host then
146
+ @sps = SPSPub.new(host: sps_host, port: sps_port)
147
+ @topic = sps_topic
148
+ end
109
149
 
110
150
  end
111
151
 
112
152
  def start()
113
153
 
114
- DRb.start_service "druby://#{@host}:#{@port}", DRbFileServer.new(@nodes)
154
+ DRb.start_service "druby://#{@host}:#{@port}",
155
+ DRbFileServer.new(@nodes, sps: @sps, topic: @topic)
115
156
  DRb.thread.join
116
157
 
117
158
  end
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.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -35,7 +35,7 @@ cert_chain:
35
35
  IzajbtHbQOY56M17vmJw7Y9ei8bGWzjVxfRUg33mVpGQQIWHA2JpaJ8+jpwrxdbF
36
36
  DfzPJWgIRbTOgE4v1XGQcqsO
37
37
  -----END CERTIFICATE-----
38
- date: 2018-08-22 00:00:00.000000000 Z
38
+ date: 2018-08-23 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: drb_fileclient
@@ -46,7 +46,7 @@ dependencies:
46
46
  version: '0.4'
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 0.4.2
49
+ version: 0.4.4
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
@@ -56,7 +56,7 @@ dependencies:
56
56
  version: '0.4'
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 0.4.2
59
+ version: 0.4.4
60
60
  description:
61
61
  email: james@jamesrobertson.eu
62
62
  executables: []
metadata.gz.sig CHANGED
Binary file