scooter 4.2.8 → 4.2.9

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
  SHA1:
3
- metadata.gz: 44ce79fcc4281ae0208f9c2801194ed9b1c97097
4
- data.tar.gz: c015345aa97d19e34c340658e0364d71d0c18721
3
+ metadata.gz: a35da87770dbadd3fc9e1d8bef641f96db670017
4
+ data.tar.gz: 6540f2f6bc94b4aed535d09f5cbe10b3eb7227ba
5
5
  SHA512:
6
- metadata.gz: aafeb77350df974a83206f83e621e3b57d0422d46f8ccee51dcf5e1a51bf3bd4eca93cecfea8ed830d8c34791ae2bbb7737a5e0552f9330d1eeb12aa7121a62f
7
- data.tar.gz: c914eebb0a44c97149a03fa885a8d8f168a7f58d236e126753c9314e238f784c34a7a4a4ba5f657b6d8c33f2f69e9c2c579c54eb93ee28c57fc0f160ab08a575
6
+ metadata.gz: 323fe60aa3c2acdcc1904cb08bbb6e3282150222ac777f4605e170f341b076e62c007a79440cc8cae1e0280065f642d17c122bbf7acf7448b0cb8e608944585a
7
+ data.tar.gz: 4e8d002e664caafd94a07176495e8aebe692b64fb6bc751ce0616ead4f72efeaf0114b2770257b2d018c09e0734258a44ea8ae126b359be6aa239a1b8b78a000
@@ -72,6 +72,12 @@ module Scooter
72
72
  end
73
73
  end
74
74
 
75
+ def post_schedule_task(payload)
76
+ @connection.post("#{@version}/command/schedule_task") do |req|
77
+ req.body = payload
78
+ end
79
+ end
80
+
75
81
  #inventory endpoints
76
82
  def get_inventory(node=nil)
77
83
  url = "#{@version}/inventory"
@@ -134,6 +140,18 @@ module Scooter
134
140
  def get_plan_job(plan_job_id)
135
141
  @connection.get("#{@version}/plan_jobs/#{plan_job_id}")
136
142
  end
143
+
144
+ def get_scheduled_jobs(limit=nil, offset=nil)
145
+ path = "#{@version}/scheduled_jobs"
146
+ @connection.get(path) do |request|
147
+ request.params['limit'] = limit if limit
148
+ request.params['offset'] = offset if offset
149
+ end
150
+ end
151
+
152
+ def delete_scheduled_job(job_id)
153
+ @connection.delete("#{@version}/scheduled_jobs/#{job_id}")
154
+ end
137
155
  end
138
156
  end
139
157
  end
@@ -83,6 +83,21 @@ module Scooter
83
83
  def create_dumpling(dumpling)
84
84
  post_dumpling(dumpling)
85
85
  end
86
+
87
+ # @return [Faraday::Response] response object from Faraday http client
88
+ def create_scheduled_job(payload)
89
+ post_schedule_task(payload)
90
+ end
91
+
92
+ # @return [Faraday::Response] response object from Faraday http client
93
+ def remove_scheduled_job(job_id)
94
+ delete_scheduled_job(job_id)
95
+ end
96
+
97
+ # @return [Faraday::Response] response object from Faraday http client
98
+ def list_scheduled_jobs(limit=nil, offset=nil)
99
+ get_scheduled_jobs(limit, offset)
100
+ end
86
101
  end
87
102
  end
88
103
  end
@@ -1,5 +1,5 @@
1
1
  module Scooter
2
2
  module Version
3
- STRING = '4.2.8'
3
+ STRING = '4.2.9'
4
4
  end
5
5
  end
@@ -167,6 +167,17 @@ describe Scooter::HttpDispatchers::OrchestratorDispatcher do
167
167
  end
168
168
  end
169
169
 
170
+ describe '.create_scheduled_job' do
171
+ it { is_expected.not_to respond_to(:create_scheduled_job).with(0).arguments }
172
+ it { is_expected.to respond_to(:create_scheduled_job).with(1).arguments }
173
+ it { is_expected.not_to respond_to(:create_scheduled_job).with(2).arguments }
174
+
175
+ it 'should take a job id' do
176
+ expect(orchestrator_api.connection).to receive(:post).with("v1/command/schedule_task")
177
+ expect{ orchestrator_api.create_scheduled_job(job_id) }.not_to raise_error
178
+ end
179
+ end
180
+
170
181
  describe '.get_inventory' do
171
182
  let(:certname) {'thisismycertname'}
172
183
 
@@ -258,4 +269,45 @@ describe Scooter::HttpDispatchers::OrchestratorDispatcher do
258
269
  expect{ orchestrator_api.create_dumpling(dumpling) }.not_to raise_error
259
270
  end
260
271
  end
272
+
273
+ describe '.list_scheduled_jobs' do
274
+ it {is_expected.to respond_to(:list_scheduled_jobs).with(0).arguments }
275
+ it {is_expected.to respond_to(:list_scheduled_jobs).with(1).arguments }
276
+ it {is_expected.to respond_to(:list_scheduled_jobs).with(2).arguments }
277
+
278
+ before do
279
+ # find the index of the default Faraday::Adapter::NetHttp handler
280
+ # and replace it with the Test adapter
281
+ index = subject.connection.builder.handlers.index(Faraday::Adapter::NetHttp)
282
+ subject.connection.builder.swap(index, Faraday::Adapter::Test) do |stub|
283
+ stub.get('/orchestrator/v1/scheduled_jobs') { [200, {}] }
284
+ end
285
+ end
286
+
287
+ it 'should make a request with query params' do
288
+ expect { subject.list_scheduled_jobs(50, 100) }.not_to raise_error
289
+ response = subject.list_scheduled_jobs(50, 100)
290
+ expect(response.status).to eq(200)
291
+ hashed_query = CGI.parse(response.env.url.query)
292
+ expect(hashed_query).to eq({"limit"=>["50"], "offset"=>["100"]})
293
+ end
294
+
295
+ it 'should make a request with no query params' do
296
+ expect { subject.list_scheduled_jobs}.not_to raise_error
297
+ response = subject.list_scheduled_jobs
298
+ expect(response.status).to eq(200)
299
+ expect(response.env.url.query).to be(nil)
300
+ end
301
+ end
302
+
303
+ describe '.remove_scheduled_job' do
304
+ it { is_expected.not_to respond_to(:remove_scheduled_job).with(0).arguments }
305
+ it { is_expected.to respond_to(:remove_scheduled_job).with(1).arguments }
306
+ it { is_expected.not_to respond_to(:remove_scheduled_job).with(2).arguments }
307
+
308
+ it 'should take a job id' do
309
+ expect(orchestrator_api.connection).to receive(:delete).with("v1/scheduled_jobs/#{job_id}")
310
+ expect{ orchestrator_api.remove_scheduled_job(job_id) }.not_to raise_error
311
+ end
312
+ end
261
313
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scooter
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.8
4
+ version: 4.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppetlabs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-06 00:00:00.000000000 Z
11
+ date: 2018-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler