fleet-api 0.5.3 → 0.6.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 +4 -4
- data/CHANGELOG.md +6 -0
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/lib/fleet/client.rb +3 -3
- data/lib/fleet/service_definition.rb +1 -12
- data/lib/fleet/version.rb +1 -1
- data/spec/fleet/client_spec.rb +8 -8
- data/spec/fleet/service_definition_spec.rb +1 -11
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fc67d53034f0f63cc50eb450214eb215f3a8066a
|
4
|
+
data.tar.gz: fa261735dc741aee77142943541075964e1b08d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7830f480923b8f7a1c6c854afe89483f02d7fd611e66c1a9d757aa26e37696c50726512720388e1b9887caa54298d0ff1360543d99cc4867c0209b6eaff60a23
|
7
|
+
data.tar.gz: 781530a7570c4389ecf4fe8966a33933d89d1f3fcb7300b0f98c3c5af4a8d64a8676a80e219665efd73e919ddc36cdaa906d7a8a20f765845599dcbed298b7bf
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
# Changelog
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
|
4
|
+
0.6.0 - 2014-09-05
|
5
|
+
------------------
|
6
|
+
|
7
|
+
### Added
|
8
|
+
- Compatibility for Fleet 0.6.x (not backward compatible with older versions of Fleet)
|
9
|
+
|
4
10
|
0.5.3 - 2014-08-26
|
5
11
|
------------------
|
6
12
|
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -14,7 +14,7 @@ As work on the actual Fleet API progresses, this library will be refactored to u
|
|
14
14
|
|
15
15
|
An alternative implementation is available in the [cloudspace/ruby-fleetctl](https://github.com/cloudspace/ruby-fleetctl) gem. The *ruby-fleetctl* gem takes a different approach and uses SSH to interact directly with the *fleetctl* binary to send commands. Our approach of writing directly to etcd cuts out the *fleetctl* middleman but is in more danger of being broken by future releases since we're effectively using a "private API".
|
16
16
|
|
17
|
-
The current version of the *fleet-api* gem is known to work with version 0.
|
17
|
+
The current version of the *fleet-api* gem is known to work with version 0.6.0 of Fleet.
|
18
18
|
|
19
19
|
### Installation
|
20
20
|
|
data/lib/fleet/client.rb
CHANGED
@@ -12,8 +12,8 @@ module Fleet
|
|
12
12
|
class Client
|
13
13
|
|
14
14
|
FLEET_PATH = 'v2/keys/_coreos.com/fleet'
|
15
|
-
MAX_RETRIES =
|
16
|
-
SLEEP_TIME = (
|
15
|
+
MAX_RETRIES = 20
|
16
|
+
SLEEP_TIME = (10.0 / MAX_RETRIES.to_f)
|
17
17
|
|
18
18
|
attr_accessor(*Configuration::VALID_OPTIONS_KEYS)
|
19
19
|
|
@@ -65,7 +65,7 @@ module Fleet
|
|
65
65
|
|
66
66
|
def unload(service_name)
|
67
67
|
update_job_target_state(service_name, :inactive)
|
68
|
-
wait_for_load_state(service_name,
|
68
|
+
wait_for_load_state(service_name, :no_state)
|
69
69
|
end
|
70
70
|
|
71
71
|
def destroy(service_name)
|
@@ -11,10 +11,7 @@ module Fleet
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def to_unit
|
14
|
-
{
|
15
|
-
'Contents' => unit_body,
|
16
|
-
'Raw' => raw
|
17
|
-
}
|
14
|
+
{ 'Raw' => raw }
|
18
15
|
end
|
19
16
|
|
20
17
|
def to_job
|
@@ -30,14 +27,6 @@ module Fleet
|
|
30
27
|
|
31
28
|
private
|
32
29
|
|
33
|
-
def unit_body
|
34
|
-
@service_def.each_with_object({}) do |(heading, section), memo|
|
35
|
-
memo[heading] = section.each_with_object({}) do |(key, value), memo|
|
36
|
-
memo[key] = [value]
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
30
|
def raw
|
42
31
|
raw_string = ''
|
43
32
|
|
data/lib/fleet/version.rb
CHANGED
data/spec/fleet/client_spec.rb
CHANGED
@@ -190,13 +190,9 @@ describe Fleet::Client do
|
|
190
190
|
describe '#unload' do
|
191
191
|
let(:service_name) { 'foo.service' }
|
192
192
|
|
193
|
-
let(:fleet_state) do
|
194
|
-
{ 'node' => { 'value' => '{ "load_state": "not-found" }' } }
|
195
|
-
end
|
196
|
-
|
197
193
|
before do
|
198
194
|
allow(subject).to receive(:update_job_target_state)
|
199
|
-
allow(subject).to receive(:get_state).
|
195
|
+
allow(subject).to receive(:get_state).and_raise(Fleet::NotFound, 'boom')
|
200
196
|
end
|
201
197
|
|
202
198
|
it 'invokes #update_job_target_state' do
|
@@ -213,13 +209,17 @@ describe Fleet::Client do
|
|
213
209
|
|
214
210
|
context 'when the unload state cannot be achieved' do
|
215
211
|
|
212
|
+
let(:fleet_state) do
|
213
|
+
{ 'node' => { 'value' => '{ "load_state": "loaded" }' } }
|
214
|
+
end
|
215
|
+
|
216
216
|
before do
|
217
|
-
allow(subject).to receive(:get_state).
|
217
|
+
allow(subject).to receive(:get_state).and_return(fleet_state)
|
218
218
|
allow(subject).to receive(:sleep)
|
219
219
|
end
|
220
220
|
|
221
|
-
it 're-checks the state
|
222
|
-
expect(subject).to receive(:get_state).exactly(
|
221
|
+
it 're-checks the state 20 times' do
|
222
|
+
expect(subject).to receive(:get_state).exactly(20).times
|
223
223
|
subject.unload(service_name) rescue nil
|
224
224
|
end
|
225
225
|
|
@@ -44,17 +44,7 @@ Description=#{service_hash['Unit']['Description']}
|
|
44
44
|
ExecStart=#{service_hash['Service']['ExecStart']}
|
45
45
|
UNIT_FILE
|
46
46
|
|
47
|
-
expected = {
|
48
|
-
'Contents' => {
|
49
|
-
'Unit' => {
|
50
|
-
'Description' => [service_hash['Unit']['Description']]
|
51
|
-
},
|
52
|
-
'Service' => {
|
53
|
-
'ExecStart' => [service_hash['Service']['ExecStart']]
|
54
|
-
}
|
55
|
-
},
|
56
|
-
'Raw' => raw
|
57
|
-
}
|
47
|
+
expected = { 'Raw' => raw }
|
58
48
|
|
59
49
|
expect(subject.to_unit).to eq expected
|
60
50
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fleet-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- CenturyLink
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-09-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|