etcd 0.0.4 → 0.0.5

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.
data/.gitignore CHANGED
@@ -15,3 +15,4 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
+ html/
data/Rakefile CHANGED
@@ -6,5 +6,5 @@ RSpec::Core::RakeTask.new("spec")
6
6
 
7
7
  RDoc::Task.new do |rdoc|
8
8
  rdoc.main = "README.rdoc"
9
- rdoc.rdoc_files.include("README.rdoc", "lib /*.rb")
9
+ rdoc.rdoc_files.include("lib /*.rb")
10
10
  end
data/lib/etcd/client.rb CHANGED
@@ -37,26 +37,38 @@ module Etcd
37
37
  end
38
38
  end
39
39
 
40
+ # Currently use 'v1' as version for etcd store
40
41
  def version_prefix
41
42
  '/v1'
42
43
  end
43
44
 
45
+ # Lists all machines in the cluster
44
46
  def machines
45
- api_execute( version_prefix + '/machines', :get).split(",")
47
+ api_execute( version_prefix + '/machines', :get).split(",").map(&:strip)
46
48
  end
47
49
 
50
+ # Get the current leader in a cluster
48
51
  def leader
49
52
  api_execute( version_prefix + '/leader', :get)
50
53
  end
51
54
 
55
+ # Lists all the data (keys, dir etc) present in etcd store
52
56
  def key_endpoint
53
57
  version_prefix + '/keys'
54
58
  end
55
59
 
60
+ # Watches all keys and notifies if anyone changes
56
61
  def watch_endpoint
57
62
  version_prefix + '/watch'
58
63
  end
59
64
 
65
+ # Set a new value for key if previous value of key is matched
66
+ #
67
+ # This method takes following parameters as argument
68
+ # * key - whose value is going to change if previous value is matched
69
+ # * value - new value to be set for specified key
70
+ # * prevValue - value of a key to compare with existing value of key
71
+ # * ttl - shelf life of a key (in secsonds) (optional)
60
72
  def test_and_set(key, value, prevValue, ttl = nil)
61
73
  path = key_endpoint + key
62
74
  payload = {'value' => value, 'prevValue' => prevValue }
@@ -65,6 +77,12 @@ module Etcd
65
77
  json2obj(response)
66
78
  end
67
79
 
80
+ # Adds a new key with specified value and ttl, overwrites old values if exists
81
+ #
82
+ # This method has following parameters as argument
83
+ # * key - whose value to be set
84
+ # * value - value to be set for specified key
85
+ # * ttl - shelf life of a key (in secsonds) (optional)
68
86
  def set(key, value, ttl=nil)
69
87
  path = key_endpoint + key
70
88
  payload = {'value' => value}
@@ -73,17 +91,29 @@ module Etcd
73
91
  json2obj(response)
74
92
  end
75
93
 
76
-
94
+ # Deletes a key along with all associated data
95
+ #
96
+ # This method has following parameters as argument
97
+ # * key - key to be deleted
77
98
  def delete(key)
78
99
  response = api_execute(key_endpoint + key, :delete)
79
100
  json2obj(response)
80
101
  end
81
102
 
103
+ # Retrives a key with its associated data, if key is not present it will return with message "Key Not Found"
104
+ #
105
+ # This method has following parameters as argument
106
+ # * key - whose data to be retrive
82
107
  def get(key)
83
108
  response = api_execute(key_endpoint + key, :get)
84
109
  json2obj(response)
85
110
  end
86
111
 
112
+ # Gives a notification when specified key changes
113
+ #
114
+ # This method has following parameters as argument
115
+ # * key - key to be watched
116
+ # * index - etcd server index of specified key (optional)
87
117
  def watch(key, index=nil)
88
118
  response = if index.nil?
89
119
  api_execute(watch_endpoint + key, :get)
@@ -93,6 +123,12 @@ module Etcd
93
123
  json2obj(response)
94
124
  end
95
125
 
126
+ # This method sends api request to etcd server.
127
+ #
128
+ # This method has following parameters as argument
129
+ # * path - etcd server path (etcd server end point)
130
+ # * method - the request method used
131
+ # * params - any additional parameters used by request method (optional)
96
132
  def api_execute(path, method, params=nil)
97
133
 
98
134
  http = if path=~/^http/
data/lib/etcd/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Etcd
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: etcd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Ranjib Dey
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-08-26 00:00:00.000000000 Z
12
+ date: 2013-09-10 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: mixlib-cli
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ! '>='
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ! '>='
25
28
  - !ruby/object:Gem::Version
@@ -27,6 +30,7 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: mixlib-log
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - ! '>='
32
36
  - !ruby/object:Gem::Version
@@ -34,6 +38,7 @@ dependencies:
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - ! '>='
39
44
  - !ruby/object:Gem::Version
@@ -41,6 +46,7 @@ dependencies:
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: uuid
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
51
  - - ! '>='
46
52
  - !ruby/object:Gem::Version
@@ -48,6 +54,7 @@ dependencies:
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
59
  - - ! '>='
53
60
  - !ruby/object:Gem::Version
@@ -55,6 +62,7 @@ dependencies:
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: bundler
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
67
  - - ! '>='
60
68
  - !ruby/object:Gem::Version
@@ -62,6 +70,7 @@ dependencies:
62
70
  type: :development
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
75
  - - ! '>='
67
76
  - !ruby/object:Gem::Version
@@ -69,6 +78,7 @@ dependencies:
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: rake
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
83
  - - ! '>='
74
84
  - !ruby/object:Gem::Version
@@ -76,6 +86,7 @@ dependencies:
76
86
  type: :development
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
91
  - - ! '>='
81
92
  - !ruby/object:Gem::Version
@@ -83,6 +94,7 @@ dependencies:
83
94
  - !ruby/object:Gem::Dependency
84
95
  name: rspec
85
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
86
98
  requirements:
87
99
  - - ! '>='
88
100
  - !ruby/object:Gem::Version
@@ -90,6 +102,7 @@ dependencies:
90
102
  type: :development
91
103
  prerelease: false
92
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
93
106
  requirements:
94
107
  - - ! '>='
95
108
  - !ruby/object:Gem::Version
@@ -97,6 +110,7 @@ dependencies:
97
110
  - !ruby/object:Gem::Dependency
98
111
  name: simplecov
99
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
100
114
  requirements:
101
115
  - - ! '>='
102
116
  - !ruby/object:Gem::Version
@@ -104,6 +118,7 @@ dependencies:
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
107
122
  requirements:
108
123
  - - ! '>='
109
124
  - !ruby/object:Gem::Version
@@ -144,26 +159,33 @@ files:
144
159
  homepage: https://github.com/ranjib/etcd-ruby
145
160
  licenses:
146
161
  - MIT
147
- metadata: {}
148
162
  post_install_message:
149
163
  rdoc_options: []
150
164
  require_paths:
151
165
  - lib
152
166
  required_ruby_version: !ruby/object:Gem::Requirement
167
+ none: false
153
168
  requirements:
154
169
  - - ! '>='
155
170
  - !ruby/object:Gem::Version
156
171
  version: '0'
172
+ segments:
173
+ - 0
174
+ hash: -924240572325429270
157
175
  required_rubygems_version: !ruby/object:Gem::Requirement
176
+ none: false
158
177
  requirements:
159
178
  - - ! '>='
160
179
  - !ruby/object:Gem::Version
161
180
  version: '0'
181
+ segments:
182
+ - 0
183
+ hash: -924240572325429270
162
184
  requirements: []
163
185
  rubyforge_project:
164
- rubygems_version: 2.0.3
186
+ rubygems_version: 1.8.23
165
187
  signing_key:
166
- specification_version: 4
188
+ specification_version: 3
167
189
  summary: Ruby client library for etcd
168
190
  test_files:
169
191
  - spec/functional/client_spec.rb
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MzNhZWZiNTA1ZjAzOTQ0ZjQ4YjUzOTIyZTZiNjEwZGVkZWJkYzllZg==
5
- data.tar.gz: !binary |-
6
- Y2ZlOTY4YTcxYTNkNzRhZGRhZDBlNzRlYWUyNjk2Y2VmMzBjYWFmYg==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- YTU1YjdhMmVhNTM1ZWFlOTc3ZmQwN2ZlNDM2N2EyNTI0ZTVjN2FkNTljMzc2
10
- ODZhYjdiNTU4YmE3NGE0NjdiY2M2MDhhM2VmNWEzZTQ0OTBmMjViYmI3MWVj
11
- MTkxZjI1YWM4NTU5OWUzMmRiYmY5MzcyNzg0YzljN2Y2OWQ5Njg=
12
- data.tar.gz: !binary |-
13
- NjJlNWY1NjQyNmQ0YmU1Y2M1ZTkxYTY3NzRhOTc3Mjc0ODUxODYxOGE2NGY0
14
- NDE3ZWFkZjMzMGFlNzZhYWIyZTRhMTE5NDUyMjZkNWE3Y2Y4MTI4NzQ4YmRh
15
- ZGM0MGRlNDM5ZGQ4MzNkN2JhNmEzMTVhN2QzNWNhNjY1NjkyZWM=