conjur-api 4.19.1 → 4.20.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -34,9 +34,13 @@ describe Conjur::User do
34
34
  subject { super().options }
35
35
  it { is_expected.to match(hash_including credentials) }
36
36
  end
37
- specify {
38
- expect { user.roleid }.to raise_error
39
- }
37
+
38
+ describe '#roleid' do
39
+ it "gets account name from server info" do
40
+ allow(Conjur::Core::API).to receive_messages conjur_account: 'test-account'
41
+ expect(subject.roleid).to eq "test-account:user:#{login}"
42
+ end
43
+ end
40
44
  end
41
45
  it "connects to a Resource" do
42
46
  require 'conjur/resource'
@@ -59,4 +63,15 @@ describe Conjur::User do
59
63
  user.role
60
64
  end
61
65
  end
66
+
67
+ describe '#update', api: :dummy do
68
+ subject(:user) { api.user username }
69
+ it "calls set_cidr_restrictions if given CIDR" do
70
+ expect(user).to receive(:set_cidr_restrictions).with(['192.0.2.0/24'])
71
+ user.update cidr: ['192.0.2.0/24']
72
+
73
+ expect(user).to_not receive(:set_cidr_restrictions)
74
+ user.update foo: 42
75
+ end
76
+ end
62
77
  end
data/spec/spec_helper.rb CHANGED
@@ -102,11 +102,13 @@ shared_context api: :dummy do
102
102
  let(:api){ Conjur::API.new_from_key username, 'key' }
103
103
  let(:authz_host) { 'http://authz.example.com' }
104
104
  let(:audit_host) { 'http://audit.example.com' }
105
+ let(:authn_host) { 'http://authn.example.com' }
105
106
  let(:credentials) { { headers: { authorization: "Token token=\"stub\"" } } } #, username: username } }
106
107
  let(:core_host) { 'http://core.example.com' }
107
108
  let(:account) { 'the-account' }
108
109
 
109
110
  before do
111
+ allow(Conjur::Authn::API).to receive_messages host: authn_host
110
112
  allow(Conjur::Authz::API).to receive_messages host: authz_host
111
113
  allow(Conjur::Core::API).to receive_messages host: core_host
112
114
  allow(Conjur::Core::API).to receive_messages conjur_account: account
@@ -1,15 +1,24 @@
1
1
  require 'helpers/request_helpers'
2
2
  shared_context api: :dummy do
3
3
  include RequestHelpers
4
+
5
+ RSpec::Matchers.define :call_standard_create_with do |type, id, options|
6
+ match do |block|
7
+ expect(subject).to receive(:standard_create).with(
8
+ core_host, type, id, options
9
+ ).and_return :response
10
+ expect(block[]).to eq(:response)
11
+ end
12
+
13
+ supports_block_expectations
14
+ end
15
+
4
16
  subject { api }
5
17
  end
6
18
 
7
19
  shared_examples_for 'standard_create with' do |type, id, options|
8
20
  it "calls through to standard_create" do
9
- expect(subject).to receive(:standard_create).with(
10
- core_host, type, id, options
11
- ).and_return :response
12
- expect(invoke).to eq(:response)
21
+ expect { invoke }.to call_standard_create_with type, id, options
13
22
  end
14
23
  end
15
24
 
@@ -45,4 +45,36 @@ describe Conjur::Variable do
45
45
  expect(subject.value(42)).to eq("the-value")
46
46
  end
47
47
  end
48
+
49
+ describe '#expire' do
50
+ context 'when duration is a number of seconds' do
51
+ let (:expiration) { 2.weeks }
52
+ it 'posts the expiration' do
53
+ expect_request(
54
+ :method => :post,
55
+ :url => "#{url}/expiration",
56
+ :payload => { :duration => "PT#{expiration.to_i}S" },
57
+ :headers => {}
58
+ ).and_return(double('response', :body => '{}'))
59
+
60
+ subject.expires_in expiration
61
+ end
62
+ end
63
+
64
+ context 'when duration is an ISO8601 duration' do
65
+ let (:expiration) { "P2W" }
66
+ it 'posts the expiration' do
67
+ expect_request(
68
+ :method => :post,
69
+ :url => "#{url}/expiration",
70
+ :payload => { :duration => "P2W" },
71
+ :headers => {}
72
+ ).and_return(double('response', :body => '{}'))
73
+
74
+ subject.expires_in expiration
75
+ end
76
+ end
77
+
78
+ end
79
+
48
80
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: conjur-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.19.1
4
+ version: 4.20.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rafal Rzepecki
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-10-20 00:00:00.000000000 Z
12
+ date: 2016-02-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client
@@ -45,6 +45,20 @@ dependencies:
45
45
  - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
+ - !ruby/object:Gem::Dependency
49
+ name: semantic
50
+ requirement: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
48
62
  - !ruby/object:Gem::Dependency
49
63
  name: rake
50
64
  requirement: !ruby/object:Gem::Requirement
@@ -87,6 +101,20 @@ dependencies:
87
101
  - - ~>
88
102
  - !ruby/object:Gem::Version
89
103
  version: '3'
104
+ - !ruby/object:Gem::Dependency
105
+ name: rspec-expectations
106
+ requirement: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: '3.4'
111
+ type: :development
112
+ prerelease: false
113
+ version_requirements: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: '3.4'
90
118
  - !ruby/object:Gem::Dependency
91
119
  name: webmock
92
120
  requirement: !ruby/object:Gem::Requirement
@@ -199,6 +227,26 @@ dependencies:
199
227
  - - '>='
200
228
  - !ruby/object:Gem::Version
201
229
  version: '0'
230
+ - !ruby/object:Gem::Dependency
231
+ name: tins
232
+ requirement: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ~>
235
+ - !ruby/object:Gem::Version
236
+ version: '1.6'
237
+ - - <
238
+ - !ruby/object:Gem::Version
239
+ version: 1.7.0
240
+ type: :development
241
+ prerelease: false
242
+ version_requirements: !ruby/object:Gem::Requirement
243
+ requirements:
244
+ - - ~>
245
+ - !ruby/object:Gem::Version
246
+ version: '1.6'
247
+ - - <
248
+ - !ruby/object:Gem::Version
249
+ version: 1.7.0
202
250
  - !ruby/object:Gem::Dependency
203
251
  name: inch
204
252
  requirement: !ruby/object:Gem::Requirement
@@ -226,6 +274,7 @@ files:
226
274
  - .project
227
275
  - .yardopts
228
276
  - CHANGELOG.md
277
+ - Dockerfile
229
278
  - Gemfile
230
279
  - LICENSE
231
280
  - README.md
@@ -235,6 +284,7 @@ files:
235
284
  - features/login.feature
236
285
  - features/ping_as_server.feature
237
286
  - features/ping_as_user.feature
287
+ - jenkins.sh
238
288
  - lib/conjur-api.rb
239
289
  - lib/conjur-api/version.rb
240
290
  - lib/conjur/acts_as_asset.rb
@@ -247,7 +297,9 @@ files:
247
297
  - lib/conjur/api/authn.rb
248
298
  - lib/conjur/api/deputies.rb
249
299
  - lib/conjur/api/groups.rb
300
+ - lib/conjur/api/host_factories.rb
250
301
  - lib/conjur/api/hosts.rb
302
+ - lib/conjur/api/info.rb
251
303
  - lib/conjur/api/layers.rb
252
304
  - lib/conjur/api/pubkeys.rb
253
305
  - lib/conjur/api/resources.rb
@@ -262,12 +314,14 @@ files:
262
314
  - lib/conjur/build_from_response.rb
263
315
  - lib/conjur/cast.rb
264
316
  - lib/conjur/cert_utils.rb
317
+ - lib/conjur/cidr.rb
265
318
  - lib/conjur/configuration.rb
266
319
  - lib/conjur/core-api.rb
267
320
  - lib/conjur/deputy.rb
268
321
  - lib/conjur/env.rb
269
322
  - lib/conjur/escape.rb
270
323
  - lib/conjur/event_source.rb
324
+ - lib/conjur/exceptions.rb
271
325
  - lib/conjur/exists.rb
272
326
  - lib/conjur/graph.rb
273
327
  - lib/conjur/group.rb
@@ -275,7 +329,10 @@ files:
275
329
  - lib/conjur/has_id.rb
276
330
  - lib/conjur/has_identifier.rb
277
331
  - lib/conjur/has_owner.rb
332
+ - lib/conjur/host-factory-api.rb
278
333
  - lib/conjur/host.rb
334
+ - lib/conjur/host_factory.rb
335
+ - lib/conjur/host_factory_token.rb
279
336
  - lib/conjur/layer-api.rb
280
337
  - lib/conjur/layer.rb
281
338
  - lib/conjur/log.rb
@@ -294,6 +351,7 @@ files:
294
351
  - spec/api/graph_spec.rb
295
352
  - spec/api/groups_spec.rb
296
353
  - spec/api/hosts_spec.rb
354
+ - spec/api/info_spec.rb
297
355
  - spec/api/layer_spec.rb
298
356
  - spec/api/pubkeys_spec.rb
299
357
  - spec/api/resources_spec.rb
@@ -302,14 +360,17 @@ files:
302
360
  - spec/api/users_spec.rb
303
361
  - spec/api/variables_spec.rb
304
362
  - spec/cas_rest_client.rb
363
+ - spec/cidr_helper.rb
305
364
  - spec/helpers/errors_matcher.rb
306
365
  - spec/helpers/request_helpers.rb
366
+ - spec/lib/acts_as_user_spec.rb
307
367
  - spec/lib/annotations_spec.rb
308
368
  - spec/lib/api_spec.rb
309
369
  - spec/lib/asset_spec.rb
310
370
  - spec/lib/audit_spec.rb
311
371
  - spec/lib/build_from_response_spec.rb
312
372
  - spec/lib/cert_utils_spec.rb
373
+ - spec/lib/cidr_spec.rb
313
374
  - spec/lib/configuration_spec.rb
314
375
  - spec/lib/deputy_spec.rb
315
376
  - spec/lib/exists_spec.rb
@@ -350,7 +411,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
350
411
  version: '0'
351
412
  requirements: []
352
413
  rubyforge_project:
353
- rubygems_version: 2.0.14
414
+ rubygems_version: 2.0.14.1
354
415
  signing_key:
355
416
  specification_version: 4
356
417
  summary: Conjur API
@@ -363,6 +424,7 @@ test_files:
363
424
  - spec/api/graph_spec.rb
364
425
  - spec/api/groups_spec.rb
365
426
  - spec/api/hosts_spec.rb
427
+ - spec/api/info_spec.rb
366
428
  - spec/api/layer_spec.rb
367
429
  - spec/api/pubkeys_spec.rb
368
430
  - spec/api/resources_spec.rb
@@ -371,14 +433,17 @@ test_files:
371
433
  - spec/api/users_spec.rb
372
434
  - spec/api/variables_spec.rb
373
435
  - spec/cas_rest_client.rb
436
+ - spec/cidr_helper.rb
374
437
  - spec/helpers/errors_matcher.rb
375
438
  - spec/helpers/request_helpers.rb
439
+ - spec/lib/acts_as_user_spec.rb
376
440
  - spec/lib/annotations_spec.rb
377
441
  - spec/lib/api_spec.rb
378
442
  - spec/lib/asset_spec.rb
379
443
  - spec/lib/audit_spec.rb
380
444
  - spec/lib/build_from_response_spec.rb
381
445
  - spec/lib/cert_utils_spec.rb
446
+ - spec/lib/cidr_spec.rb
382
447
  - spec/lib/configuration_spec.rb
383
448
  - spec/lib/deputy_spec.rb
384
449
  - spec/lib/exists_spec.rb