dryad 0.1.1 → 0.2.0

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: 7d9594581141bcb13f995274f1c0595bfc9a8c484f3771c93ca670f5d2ccb307
4
- data.tar.gz: 0daaea2d4d0ae211b295e95f00102454301c895472100b17bd7bfa75ed205139
3
+ metadata.gz: 0aa0959a2ba9d45a628ad86863e1a996b5acdf76ebb4f3b35dd26af8e5bfa166
4
+ data.tar.gz: 0ccfcff2f13a96b2fece1b464f5f46c0a72e6dec1bd2c16c4c9e815a2b71fbe0
5
5
  SHA512:
6
- metadata.gz: a849308bd935c9baff26091a94285f4856196db8e376c64b16f57bfed4274dfbc82f5f2492574f5b545a08872e48ef60dbe1b3afc1a7dbeb4c93af9d5b773fb0
7
- data.tar.gz: 70bf1b581b64e1924cb340620b8e93a556ea8d1a0465eb83f641bdc1cdf966241717260bfcc0ae6e37d39aedd80d7b4c30e543eb5b12d0ffb6f226586455f2e9
6
+ metadata.gz: ece57d341bd12a3d76452e81aff1ad944a4d7a9a6ce83d0ca49e996bd28b1ac887e8e4ffdbbcb425382870644747946aae59d9a5c72469a714a8b89bcb98cb31
7
+ data.tar.gz: d8d33833813226d79c82bcc4772114fd1ec7cd19f85da4d647ae2d6b2f54f151c803ea1989564a296193701d018eb18d5f183c4640c6267534411d35c3f13746
data/DRYAD_VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.2.0
@@ -1,10 +1,5 @@
1
1
  module Dryad
2
2
  module Cluster
3
- MAJOR = 0
4
- MINOR = 1
5
- TINY = 1
6
- PRE = nil
7
-
8
- VERSION = [MAJOR, MINOR, TINY, PRE].compact.join(".")
3
+ VERSION = '0.2.0'
9
4
  end
10
5
  end
@@ -0,0 +1,16 @@
1
+ module Dryad
2
+ module Consul
3
+ class ConfigProvider < Dryad::Core::ConfigProvider
4
+ class << self
5
+ def load(path, listener = nil)
6
+ config = Dryad::Consul::KeyValueClient.get(path)
7
+ if config.nil?
8
+ raise Dryad::Core::ConfigurationNotFound, path
9
+ else
10
+ Dryad::Core::ConfigDesc.new(path, config.Value, config.ModifyIndex)
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,19 @@
1
+ require "ostruct"
2
+
3
+ module Dryad
4
+ module Consul
5
+ class KeyValueClient
6
+ class << self
7
+
8
+ # Get a value by its key, potentially blocking for the first or next value
9
+ # @param key [String] the key
10
+ # @return [OpenStruct] The base64-decoded value associated with the key
11
+ def get(path)
12
+ OpenStruct.new ::Diplomat::Kv.get(path, decode_values: true).first
13
+ rescue Diplomat::KeyNotFound
14
+ nil
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,10 +1,5 @@
1
1
  module Dryad
2
2
  module Consul
3
- MAJOR = 0
4
- MINOR = 1
5
- TINY = 1
6
- PRE = nil
7
-
8
- VERSION = [MAJOR, MINOR, TINY, PRE].compact.join(".")
3
+ VERSION = '0.2.0'
9
4
  end
10
5
  end
@@ -4,6 +4,8 @@ require "dryad/consul/version"
4
4
  require "dryad/consul/service_client"
5
5
  require "dryad/consul/service_registry"
6
6
  require "dryad/consul/service"
7
+ require "dryad/consul/key_value_client"
8
+ require "dryad/consul/config_provider"
7
9
 
8
10
  module Dryad
9
11
  module Consul
@@ -0,0 +1,18 @@
1
+ RSpec.describe Dryad::Consul::ConfigProvider do
2
+ before do
3
+ @key = "path/of/key"
4
+ @value = "value of key"
5
+ ::Diplomat::Kv.put(@key, @value)
6
+ end
7
+
8
+ after do
9
+ ::Diplomat::Kv.delete(@key)
10
+ end
11
+
12
+ it "load configuration with path" do
13
+ cd = Dryad::Consul::ConfigProvider.load(@key)
14
+ expect(cd.path).to eq(@key)
15
+ expect(cd.payload).to eq(@value)
16
+ expect(cd.version).to be > 0
17
+ end
18
+ end
@@ -0,0 +1,22 @@
1
+ RSpec.describe Dryad::Consul::KeyValueClient do
2
+ before do
3
+ @key = "path/of/key"
4
+ @value = "value of key"
5
+ ::Diplomat::Kv.put(@key, @value)
6
+ end
7
+
8
+ after do
9
+ ::Diplomat::Kv.delete(@key)
10
+ end
11
+
12
+ it "gets value with index" do
13
+ response = Dryad::Consul::KeyValueClient.get(@key)
14
+ expect(response.Value).to eq(@value)
15
+ expect(response.ModifyIndex).to be >= response.CreateIndex
16
+ end
17
+
18
+ it "gets value the key which is not existed" do
19
+ response = Dryad::Consul::KeyValueClient.get('key')
20
+ expect(response).to be nil
21
+ end
22
+ end
@@ -0,0 +1,13 @@
1
+ module Dryad
2
+ module Core
3
+ class ConfigDesc
4
+ attr_accessor :path, :payload, :version
5
+
6
+ def initialize(path, payload, version)
7
+ @path = path
8
+ @payload = payload
9
+ @version = version
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ module Dryad
2
+ module Core
3
+ class ConfigProvider
4
+ def load
5
+ raise "Implement this method"
6
+ end
7
+ end
8
+ end
9
+ end
@@ -1,10 +1,5 @@
1
1
  module Dryad
2
2
  module Core
3
- MAJOR = 0
4
- MINOR = 1
5
- TINY = 1
6
- PRE = nil
7
-
8
- VERSION = [MAJOR, MINOR, TINY, PRE].compact.join(".")
3
+ VERSION = '0.2.0'
9
4
  end
10
5
  end
@@ -4,9 +4,12 @@ require "dryad/core/service"
4
4
  require "dryad/core/portal"
5
5
  require "dryad/core/load_balancing"
6
6
  require "dryad/core/schema"
7
+ require "dryad/core/config_desc"
8
+ require "dryad/core/config_provider"
7
9
 
8
10
  module Dryad
9
11
  module Core
10
12
  class Error < StandardError; end
13
+ class ConfigurationNotFound < Error; end
11
14
  end
12
15
  end
@@ -0,0 +1,11 @@
1
+ RSpec.describe Dryad::Core::ConfigDesc do
2
+ it "can be created and accessed" do
3
+ path = 'path/to/key'
4
+ payload = 'payload for path'
5
+ version = 1
6
+ cd = Dryad::Core::ConfigDesc.new(path, payload, version)
7
+ expect(cd.path).to eq(path)
8
+ expect(cd.payload).to eq(payload)
9
+ expect(cd.version).to eq(version)
10
+ end
11
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dryad
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
  - Pan Jie
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-05-28 00:00:00.000000000 Z
11
+ date: 2019-05-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dryad-core
@@ -16,42 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.1
19
+ version: 0.2.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.1
26
+ version: 0.2.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: dryad-consul
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 0.1.1
33
+ version: 0.2.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 0.1.1
40
+ version: 0.2.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: dryad-cluster
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 0.1.1
47
+ version: 0.2.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 0.1.1
54
+ version: 0.2.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -139,10 +139,14 @@ files:
139
139
  - dryad-consul/bin/setup
140
140
  - dryad-consul/dryad-consul.gemspec
141
141
  - dryad-consul/lib/dryad/consul.rb
142
+ - dryad-consul/lib/dryad/consul/config_provider.rb
143
+ - dryad-consul/lib/dryad/consul/key_value_client.rb
142
144
  - dryad-consul/lib/dryad/consul/service.rb
143
145
  - dryad-consul/lib/dryad/consul/service_client.rb
144
146
  - dryad-consul/lib/dryad/consul/service_registry.rb
145
147
  - dryad-consul/lib/dryad/consul/version.rb
148
+ - dryad-consul/spec/dryad/consul/config_provider_spec.rb
149
+ - dryad-consul/spec/dryad/consul/key_value_client_spec.rb
146
150
  - dryad-consul/spec/dryad/consul/service_client_spec.rb
147
151
  - dryad-consul/spec/dryad/consul/service_registry_spec.rb
148
152
  - dryad-consul/spec/dryad/consul/service_spec.rb
@@ -162,12 +166,15 @@ files:
162
166
  - dryad-core/lib/dryad.rb
163
167
  - dryad-core/lib/dryad/configuration.rb
164
168
  - dryad-core/lib/dryad/core.rb
169
+ - dryad-core/lib/dryad/core/config_desc.rb
170
+ - dryad-core/lib/dryad/core/config_provider.rb
165
171
  - dryad-core/lib/dryad/core/load_balancing.rb
166
172
  - dryad-core/lib/dryad/core/portal.rb
167
173
  - dryad-core/lib/dryad/core/schema.rb
168
174
  - dryad-core/lib/dryad/core/service.rb
169
175
  - dryad-core/lib/dryad/core/service_instance.rb
170
176
  - dryad-core/lib/dryad/core/version.rb
177
+ - dryad-core/spec/dryad/core/config_desc_spec.rb
171
178
  - dryad-core/spec/dryad/core/load_balancing_spec.rb
172
179
  - dryad-core/spec/dryad/core/portal_spec.rb
173
180
  - dryad-core/spec/dryad/core/schema_spec.rb