conjur-cli 4.28.2 → 4.29.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/.dockerignore +8 -0
  3. data/.gitignore +2 -0
  4. data/.overcommit.yml +10 -0
  5. data/.rubocop.yml +14 -0
  6. data/CHANGELOG.md +16 -0
  7. data/Dockerfile +10 -0
  8. data/Gemfile +2 -0
  9. data/Rakefile +1 -1
  10. data/acceptance-features/audit/audit_event_send.feature +46 -43
  11. data/acceptance-features/audit/send.feature +0 -19
  12. data/acceptance-features/authentication/login.feature +0 -2
  13. data/acceptance-features/authentication/logout.feature +0 -3
  14. data/acceptance-features/authorization/resource/check.feature +6 -4
  15. data/acceptance-features/authorization/resource/create.feature +4 -2
  16. data/acceptance-features/authorization/resource/exists.feature +8 -6
  17. data/acceptance-features/authorization/resource/give.feature +3 -1
  18. data/acceptance-features/authorization/resource/show.feature +3 -1
  19. data/acceptance-features/authorization/role/graph.feature +0 -1
  20. data/acceptance-features/conjurenv/check.feature +3 -10
  21. data/acceptance-features/conjurenv/run.feature +3 -3
  22. data/acceptance-features/conjurenv/template.feature +1 -1
  23. data/acceptance-features/directory/hostfactory/create.feature +13 -0
  24. data/acceptance-features/directory/hostfactory/tokens.feature +16 -0
  25. data/acceptance-features/directory/layer/retire.feature +43 -0
  26. data/acceptance-features/directory/user/update_password.feature +0 -1
  27. data/acceptance-features/directory/variable/value.feature +3 -2
  28. data/acceptance-features/dsl/policy_owner.feature +21 -7
  29. data/acceptance-features/dsl/resource_owner.feature +4 -4
  30. data/acceptance-features/pubkeys/add.feature +4 -2
  31. data/acceptance-features/pubkeys/names.feature +6 -3
  32. data/acceptance-features/pubkeys/show.feature +4 -2
  33. data/acceptance-features/step_definitions/{cli.rb → cli_steps.rb} +18 -4
  34. data/acceptance-features/step_definitions/user_steps.rb +13 -12
  35. data/acceptance-features/support/env.rb +0 -1
  36. data/acceptance-features/support/hooks.rb +11 -14
  37. data/acceptance-features/support/world.rb +16 -18
  38. data/build-deb.sh +19 -0
  39. data/ci/test.sh +19 -0
  40. data/conjur.gemspec +9 -12
  41. data/debify.sh +4 -0
  42. data/distrib/bin/_conjur +3 -0
  43. data/distrib/bin/conjur +3 -0
  44. data/distrib/bin/conjurize +3 -0
  45. data/distrib/bin/jsonfield +3 -0
  46. data/features/conjurize.feature +25 -25
  47. data/features/support/env.rb +5 -1
  48. data/features/support/hooks.rb +0 -1
  49. data/jenkins.sh +29 -1
  50. data/lib/conjur/cli.rb +27 -4
  51. data/lib/conjur/command.rb +36 -0
  52. data/lib/conjur/command/audit.rb +12 -0
  53. data/lib/conjur/command/bootstrap.rb +5 -9
  54. data/lib/conjur/command/host_factories.rb +187 -0
  55. data/lib/conjur/command/hosts.rb +82 -2
  56. data/lib/conjur/command/layers.rb +28 -0
  57. data/lib/conjur/command/resources.rb +1 -0
  58. data/lib/conjur/command/rspec/mock_services.rb +1 -1
  59. data/lib/conjur/command/server.rb +67 -0
  60. data/lib/conjur/command/users.rb +67 -12
  61. data/lib/conjur/command/variables.rb +101 -14
  62. data/lib/conjur/conjurize.rb +25 -69
  63. data/lib/conjur/conjurize/script.rb +133 -0
  64. data/lib/conjur/version.rb +1 -1
  65. data/publish.sh +6 -0
  66. data/spec/command/elevate_spec.rb +1 -1
  67. data/spec/command/host_factories_spec.rb +38 -0
  68. data/spec/command/hosts_spec.rb +86 -22
  69. data/spec/command/users_spec.rb +51 -3
  70. data/spec/command/variable_expiration_spec.rb +174 -0
  71. data/spec/command/variables_spec.rb +1 -1
  72. data/spec/conjurize_spec.rb +70 -0
  73. metadata +61 -64
@@ -0,0 +1,13 @@
1
+ Feature: Create a Host Factory
2
+ Background:
3
+ Given I successfully run `conjur layer create --as-group $ns/security_admin $ns/layer`
4
+
5
+ Scenario: Create a host factory successfully
6
+ When I successfully run `conjur hostfactory create --as-group $ns/security_admin --layer $ns/layer $ns/hostfactory`
7
+ Then the JSON should have "deputy_api_key"
8
+
9
+ Scenario: Host factory owner must have admin on layer
10
+ Given I successfully run `conjur user create unprivileged@$ns`
11
+ When I run `conjur hostfactory create --as-role user:unprivileged@$ns --layer $ns/layer $ns/hostfactory`
12
+ Then the stderr should contain "must be an admin of layer"
13
+ And the stdout should not contain anything
@@ -0,0 +1,16 @@
1
+ Feature: Host factory tokens
2
+
3
+ Background:
4
+ Given I successfully run `conjur layer create --as-group $ns/security_admin $ns/layer`
5
+ And I successfully run `conjur hostfactory create --as-group $ns/security_admin --layer $ns/layer $ns/hostfactory`
6
+
7
+ Scenario: create a host factory token
8
+ When I successfully run `conjur hostfactory token create $ns/hostfactory`
9
+ Then the JSON should have "0/token"
10
+
11
+ Scenario: create a host using a token
12
+ When I successfully run `conjur hostfactory token create $ns/hostfactory`
13
+ And I keep the JSON response at "0/token" as "TOKEN"
14
+ Then I successfully run `conjur hostfactory host create %{TOKEN} $ns/host`
15
+ And the JSON should have "api_key"
16
+
@@ -0,0 +1,43 @@
1
+ Feature: Retire a layer
2
+ Background:
3
+ When I successfully run `conjur layer create $ns/applayer`
4
+
5
+ Scenario: Basic retirement
6
+ Then I successfully run `conjur layer retire -d user:attic@$ns $ns/applayer`
7
+
8
+ Scenario: Retiring a non-existent thing propagates the 404
9
+ Then I run `conjur layer retire -d user:attic@$ns $ns/foobar`
10
+ Then the exit status should be 1
11
+ And the stderr should contain "Resource Not Found"
12
+
13
+ Scenario: A foreign user can't retire a layer
14
+ Given I login as a new user
15
+ And I run `conjur layer retire -d user:attic@$ns $ns/applayer`
16
+ Then the exit status should be 1
17
+ And the stderr should contain "You can't administer this record"
18
+
19
+ Scenario: Can't retire to a non-existant role
20
+ And I run `conjur layer retire -d user:foobar $ns/applayer`
21
+ Then the exit status should be 1
22
+ And the output should match /error: Destination role/
23
+ And the output should match /doesn't exist$/
24
+
25
+ Scenario: I can retire a layer which I've granted to a group
26
+ Given I successfully run `conjur group create $ns/admin`
27
+ And I successfully run `conjur role grant_to layer:$ns/applayer group:$ns/admin`
28
+ Then I successfully run `conjur layer retire -d user:attic@$ns $ns/applayer`
29
+
30
+ Scenario: I can retire a layer which I've given to a group that I can admin
31
+ Given I successfully run `conjur group create $ns/admin`
32
+ And I successfully run `conjur resource give layer:$ns/applayer group:$ns/admin`
33
+ Then I successfully run `conjur layer retire -d user:attic@$ns $ns/applayer`
34
+
35
+ Scenario: I can't retire a layer if I can't admin the layer's role
36
+ Given I successfully run `conjur group create $ns/admin`
37
+ And I successfully run `conjur role grant_to layer:$ns/applayer group:$ns/admin`
38
+ Given I create a new user named "alice@$ns"
39
+ And I successfully run `conjur group members add -a $ns/admin alice@$ns`
40
+ And I login as "alice@$ns"
41
+ And I run `conjur layer retire -d user:attic@$ns $ns/applayer`
42
+ Then the exit status should be 1
43
+ And the stderr should contain "You can't administer this record"
@@ -7,7 +7,6 @@ Feature: Update the password of the logged-in user
7
7
  And I run `conjur user update_password` interactively
8
8
  Then I can type and confirm a new password
9
9
 
10
- @announce
11
10
  Scenario: The new password can be used to login
12
11
  And I run `conjur user update_password` interactively
13
12
  And I type and confirm a new password
@@ -3,11 +3,12 @@ Feature: Obtain value from variable
3
3
  Background:
4
4
  Given I successfully run `conjur variable create $ns/secret secretvalue`
5
5
  And I successfully run `conjur variable values add $ns/secret updatedvalue`
6
+ And I reset the command list
6
7
 
7
8
  Scenario: Recent value is obtained by default
8
9
  When I run `conjur variable value $ns/secret`
9
- Then the output should match /updatedvalue$/
10
+ Then the stdout should contain exactly "updatedvalue"
10
11
 
11
12
  Scenario: Previous values can be obtained by version
12
13
  When I run `conjur variable value -v 1 $ns/secret`
13
- Then the output should match /secretvalue$/
14
+ Then the stdout should contain exactly "secretvalue"
@@ -8,24 +8,38 @@ policy 'test-policy-1.0' do
8
8
  user "test_user"
9
9
  end
10
10
  """
11
+ And I reset the command list
11
12
 
12
13
  Scenario: --as-group works
13
14
  When I run `conjur policy load --as-group $ns/admin --collection $ns` interactively
14
15
  And I pipe in the file "policy.rb"
15
- And the exit status should be 0
16
+ And the command completes successfully
17
+ And I reset the command list
16
18
  When I run `conjur role members policy:$ns/test-policy-1.0`
17
- Then the output from "conjur role members policy:$ns/test-policy-1.0" should match /group:.*$ns.admin/
19
+ Then the JSON should be:
20
+ """
21
+ [
22
+ "cucumber:group:%{NAMESPACE}/admin"
23
+ ]
24
+ """
18
25
 
19
26
  Scenario: --as-role works
20
27
  When I run `conjur policy load --as-role group:$ns/admin --collection $ns` interactively
21
28
  And I pipe in the file "policy.rb"
22
- And the exit status should be 0
29
+ And the command completes successfully
30
+ And I reset the command list
23
31
  When I run `conjur role members policy:$ns/test-policy-1.0`
24
- Then the output from "conjur role members policy:$ns/test-policy-1.0" should match /group:.*$ns.admin/
32
+ Then the JSON should be:
33
+ """
34
+ [
35
+ "cucumber:group:%{NAMESPACE}/admin"
36
+ ]
37
+ """
25
38
 
26
39
  Scenario: --as-group doesn't interfere with policy ownership of other resources
27
40
  When I run `conjur policy load --as-group $ns/admin --collection $ns` interactively
28
41
  And I pipe in the file "policy.rb"
29
- And the exit status should be 0
30
- When I run `conjur resource show user:test_user@$ns-test-policy-1-0 | jsonfield owner`
31
- Then the output from "conjur resource show user:test_user@$ns-test-policy-1-0 | jsonfield owner" should match /policy:$ns.test-policy-1.0/
42
+ And the command completes successfully
43
+ And I reset the command list
44
+ When I run `conjur resource show user:test_user@$ns-test-policy-1-0`
45
+ Then the JSON at "owner" should be "cucumber:policy:%{NAMESPACE}/test-policy-1.0"
@@ -11,7 +11,7 @@ end
11
11
  Scenario: resource is create with correct ownership
12
12
  When I run `conjur policy load --collection $ns` interactively
13
13
  And I pipe in the file "policy.rb"
14
- And the exit status should be 0
15
- When I run `conjur resource show webservice:$ns/test-policy-1.0/web1 | jsonfield owner`
16
- Then the output from "conjur resource show webservice:$ns/test-policy-1.0/web1 | jsonfield owner" should match /policy:$ns.test-policy-1.0/
17
-
14
+ And the command completes successfully
15
+ And I reset the command list
16
+ When I run `conjur resource show webservice:$ns/test-policy-1.0/web1`
17
+ Then the JSON at "owner" should be "cucumber:policy:%{NAMESPACE}/test-policy-1.0"
@@ -3,6 +3,7 @@ Feature: Register a public key
3
3
  Background:
4
4
  Given I successfully run `conjur user create alice@$ns`
5
5
  And I successfully run `ssh-keygen -t rsa -C "laptop" -N "" -f ./id_alice_$ns`
6
+ And I reset the command list
6
7
 
7
8
  Scenario: Register a public key file for a user
8
9
  When I run `conjur pubkeys add alice@$ns @id_alice_$ns.pub`
@@ -11,10 +12,11 @@ Feature: Register a public key
11
12
  Scenario: You can't accidentally register the private key
12
13
  When I run `conjur pubkeys add alice@$ns @id_alice_$ns`
13
14
  Then the exit status should be 1
14
- And the stderr from "conjur pubkeys add alice@$ns @id_alice_$ns" should contain "Unprocessable Entity"
15
+ And the stderr should contain "Unprocessable Entity"
15
16
 
16
17
  Scenario: Unauthorized users cannot modify public keys
17
18
  Given I login as new user "bob@$ns"
19
+ And I reset the command list
18
20
  And I run `conjur pubkeys add alice@$ns @id_alice_$ns.pub`
19
21
  Then the exit status should be 1
20
- And the stderr from "conjur pubkeys add alice@$ns @id_alice_$ns.pub" should contain "Forbidden"
22
+ And the stderr should contain "Forbidden"
@@ -3,15 +3,17 @@ Feature: List known public key names for a user
3
3
  Background:
4
4
  Given I successfully run `conjur user create alice@$ns`
5
5
  And I successfully run `ssh-keygen -t rsa -C "laptop" -N "" -f ./id_alice_$ns`
6
+ And I reset the command list
6
7
 
7
8
  Scenario: Initial key names list is empty
8
9
  When I run `conjur pubkeys names alice@$ns`
9
- Then the stdout from "conjur pubkeys names alice@$ns" should contain exactly ""
10
+ Then the stdout should contain exactly ""
10
11
 
11
12
  Scenario: After adding a key, the key name is shown
12
13
  Given I successfully run `conjur pubkeys add alice@$ns @id_alice_$ns.pub`
14
+ And I reset the command list
13
15
  And I run `conjur pubkeys names alice@$ns`
14
- Then the stdout from "conjur pubkeys names alice@$ns" should contain exactly:
16
+ Then the stdout should contain exactly:
15
17
  """
16
18
  laptop\n
17
19
  """
@@ -19,5 +21,6 @@ Feature: List known public key names for a user
19
21
  Scenario: After deleting the key, the key names list is empty again
20
22
  Given I successfully run `conjur pubkeys add alice@$ns @id_alice_$ns.pub`
21
23
  And I successfully run `conjur pubkeys delete alice@$ns laptop`
24
+ And I reset the command list
22
25
  And I run `conjur pubkeys names alice@$ns`
23
- Then the stdout from "conjur pubkeys names alice@$ns" should contain exactly ""
26
+ Then the stdout should contain exactly ""
@@ -3,10 +3,11 @@ Feature: Show public keys for a user
3
3
  Background:
4
4
  Given I successfully run `conjur user create alice@$ns`
5
5
  And I successfully run `ssh-keygen -t rsa -C "laptop" -N "" -f ./id_alice_$ns`
6
+ And I reset the command list
6
7
 
7
8
  Scenario: Initial key list is empty
8
9
  When I run `conjur pubkeys show alice@$ns`
9
- Then the stdout from "conjur pubkeys show alice@$ns" should contain exactly "\n"
10
+ Then the stdout should contain exactly "\n"
10
11
 
11
12
  Scenario: After adding a key, the key is shown
12
13
  Given I successfully run `conjur pubkeys add alice@$ns @id_alice_$ns.pub`
@@ -16,8 +17,9 @@ Feature: Show public keys for a user
16
17
  Scenario: After deleting the key, the key list is empty again
17
18
  Given I successfully run `conjur pubkeys add alice@$ns @id_alice_$ns.pub`
18
19
  And I successfully run `conjur pubkeys delete alice@$ns laptop`
20
+ And I reset the command list
19
21
  And I run `conjur pubkeys show alice@$ns`
20
- Then the stdout from "conjur pubkeys show alice@$ns" should contain exactly "\n"
22
+ Then the stdout should contain exactly "\n"
21
23
 
22
24
  Scenario: Public keys can be listed using cURL, without authentication
23
25
  Given I successfully run `conjur pubkeys add alice@$ns @id_alice_$ns.pub`
@@ -1,5 +1,19 @@
1
- Then /^I show the output$/ do
2
- puts all_output
1
+ Then /^I reset the command list/ do
2
+ aruba.command_monitor.clear
3
+ end
4
+
5
+ When /^the command completes successfully/ do
6
+ last_command_started.wait
7
+ last_command_started.terminate
8
+ expect(last_command_started.exit_status).to eq(0)
9
+ end
10
+
11
+ Then /^I send the audit event:/ do |event|
12
+ event = event.gsub('$ns',@namespace)
13
+ step "I run `env RESTCLIENT_LOG=stderr conjur audit send` interactively"
14
+ last_command_started.write event
15
+ last_command_started.close_io :stdin
16
+ step "the command completes successfully"
3
17
  end
4
18
 
5
19
  # this is step copypasted from https://github.com/cucumber/aruba/blob/master/lib/aruba/cucumber.rb#L24
@@ -14,9 +28,9 @@ Given(/^a file named "([^"]*?)" with namespace substitution:$/) do |file_name, f
14
28
  end
15
29
 
16
30
  Then /^it prints the path to temporary file which contains: '(.*)'$/ do |content|
17
- filename = all_output.split("\n").last
31
+ filename = last_command_started.stdout.strip
18
32
  tempfiles << filename
19
- actual_content=File.read(filename) rescue ""
33
+ actual_content = File.read(filename)
20
34
  expect(actual_content).to match(content)
21
35
  end
22
36
 
@@ -9,23 +9,23 @@ end
9
9
 
10
10
  Given(/^I create a new user named "(.*?)"$/) do |username|
11
11
  username_ns = username.gsub('$ns',@namespace)
12
- password = find_or_create_password(username_ns)
13
12
 
14
- step "I run `conjur user create --as-role user:admin@#{@namespace} -p #{username_ns}` interactively"
15
- step %Q(I type "#{password}")
16
- step %Q(I type "#{password}")
17
- step "the exit status should be 0"
13
+ step "I successfully run `conjur user create --as-role user:admin@#{@namespace} #{username_ns}`"
14
+
15
+ user_info = JSON.parse(last_command_started.stdout)
16
+ save_password username_ns, user_info['api_key']
18
17
  end
19
18
 
20
19
  Given(/^I create a new host with id "(.*?)"$/) do |hostid|
21
20
  step "I successfully run `conjur host create #{@namespace}/monitoring/server`"
22
- step 'I keep the JSON response at "api_key" as "API_KEY"'
23
- step 'I keep the JSON response at "id" as "HOST_ID"'
21
+ host = JSON.parse(last_json)
22
+ @host_id = host['id']
23
+ @host_api_key = host['api_key']
24
24
  end
25
25
 
26
- Given(/^I login as a new host/) do
27
- step "I run `conjur authn login -u host/%{HOST_ID} -p %{API_KEY}` interactively"
28
- step "the exit status should be 0"
26
+ Given(/^I login as the new host/) do
27
+ step %Q(I set the environment variable "CONJUR_AUTHN_LOGIN" to "host/#{@host_id}")
28
+ step %Q(I set the environment variable "CONJUR_AUTHN_API_KEY" to "#{@host_api_key}")
29
29
  end
30
30
 
31
31
  Given(/^I login as new user "(.*?)"$/) do |username|
@@ -36,9 +36,10 @@ end
36
36
 
37
37
  Given(/^I login as "(.*?)"$/) do |username|
38
38
  username_ns = username.gsub('$ns',@namespace)
39
- password = find_or_create_password(username_ns)
39
+ password = find_password(username_ns)
40
40
 
41
- Conjur::Authn.save_credentials username: username_ns, password: password
41
+ step %Q(I set the environment variable "CONJUR_AUTHN_LOGIN" to "#{username_ns}")
42
+ step %Q(I set the environment variable "CONJUR_AUTHN_API_KEY" to "#{password}")
42
43
  end
43
44
 
44
45
  Then(/^I(?: can)? type and confirm a new password/) do
@@ -1,5 +1,4 @@
1
1
  require "aruba/cucumber"
2
2
  require "json_spec/cucumber"
3
- require "conjur-asset-audit-send"
4
3
 
5
4
  $LOAD_PATH.unshift File.expand_path('../..', File.dirname(__FILE__))
@@ -6,41 +6,42 @@ require 'conjur/authn'
6
6
  netrc = Conjur::Authn.netrc
7
7
  username, password = Conjur::Authn.get_credentials
8
8
  raise "Not logged in to Conjur" unless username && password
9
- puts "Logging in as #{username}"
9
+ puts "Performing acceptance tests as root-ish user '#{username}'"
10
10
 
11
11
  # Future Aruba
12
- #Aruba.configure do |config|
13
- # config.exit_timeout = 15
14
- #end
12
+ Aruba.configure do |config|
13
+ config.exit_timeout = 15
14
+ config.io_wait_timeout = 2
15
+ end
15
16
 
16
17
  Before('@conjurapi-log') do
17
18
  set_env 'CONJURAPI_LOG', 'stderr'
18
19
  end
19
20
 
20
21
  Before do
21
- Conjur::Authn.save_credentials username: username, password: password
22
+ step %Q(I set the environment variable "CONJUR_AUTHN_LOGIN" to "#{username}")
23
+ step %Q(I set the environment variable "CONJUR_AUTHN_API_KEY" to "#{password}")
22
24
 
23
25
  @admin_api = conjur_api = Conjur::Authn.connect
24
26
 
25
27
  @namespace = conjur_api.create_variable("text/plain", "id").id
26
28
  user = conjur_api.create_user "admin@#{@namespace}", ownerid: "#{Conjur.configuration.account}:user:#{username}"
27
29
 
28
- netrc[Conjur::Authn.host] = [ "admin@#{@namespace}", user.api_key ]
29
- netrc.save
30
-
31
30
  conjur_api = Conjur::Authn.connect
32
31
  @security_admin = conjur_api.create_group [ @namespace, "security_admin" ].join('/')
33
32
  @security_admin.add_member user, admin_option: true
34
33
 
35
34
  JsonSpec.memorize "MY_ROLEID", %Q("#{user.roleid}")
35
+ JsonSpec.memorize "NAMESPACE", @namespace
36
36
 
37
37
  @admin_api.group("pubkeys-1.0/key-managers").add_member @security_admin
38
38
  @admin_api.resource('!:!:conjur').permit 'elevate', user, grant_option: true
39
39
  @admin_api.resource('!:!:conjur').permit 'reveal', user, grant_option: true
40
40
 
41
41
  conjur_api.create_user "attic@#{@namespace}"
42
-
43
- @aruba_timeout_seconds = 30
42
+
43
+ step %Q(I set the environment variable "CONJUR_AUTHN_LOGIN" to "#{user.login}")
44
+ step %Q(I set the environment variable "CONJUR_AUTHN_API_KEY" to "#{user.api_key}")
44
45
  end
45
46
 
46
47
  After do
@@ -50,10 +51,6 @@ After do
50
51
  tempfiles.each { |tempfile| File.unlink(tempfile) unless tempfile.nil? }
51
52
  end
52
53
 
53
- at_exit do
54
- Conjur::Authn.save_credentials username: username, password: password
55
- end
56
-
57
54
  require 'ostruct'
58
55
 
59
56
  class MockAPI
@@ -5,13 +5,25 @@ module ConjurCLIWorld
5
5
  include Aruba::Api
6
6
 
7
7
  def last_json
8
- stdout_from(@last_cmd)
8
+ process_cmd last_command_started.stdout
9
9
  end
10
10
 
11
- def find_or_create_password(username)
11
+ def passwords
12
12
  @passwords ||= {}
13
- unless password = @passwords[username]
14
- password = @passwords[username] = SecureRandom.hex(12)
13
+ end
14
+
15
+ def save_password username, password
16
+ raise "Found existing password for user '#{username}'" if passwords[username]
17
+ passwords[username] = password
18
+ end
19
+
20
+ def find_password username
21
+ passwords[username] or raise "No password for user '#{username}'"
22
+ end
23
+
24
+ def find_or_create_password(username)
25
+ unless password = passwords[username]
26
+ password = passwords[username] = SecureRandom.hex(12)
15
27
  end
16
28
  password
17
29
  end
@@ -24,21 +36,8 @@ module ConjurCLIWorld
24
36
  def run(cmd, *args)
25
37
  # it's a thunk now so it should be returned. puts can be added back as block if we want to
26
38
  super process_cmd(cmd), *args
27
-
28
- #puts stderr_from(cmd)
29
- #puts stdout_from(cmd)
30
39
  end
31
40
 
32
- def stderr_from(cmd)
33
- super process_cmd(cmd)
34
- end
35
- def stdout_from(cmd)
36
- super process_cmd(cmd)
37
- end
38
- def output_from(cmd)
39
- super process_cmd(cmd)
40
- end
41
-
42
41
  # Substitute the namespace for marker $ns
43
42
  def unescape(string)
44
43
  string = super
@@ -60,7 +59,6 @@ module ConjurCLIWorld
60
59
  cmd.gsub!("$ns", namespace)
61
60
  cmd.gsub!("$pubkeys_url", Conjur.configuration.pubkeys_url)
62
61
 
63
- @last_cmd = cmd
64
62
  JsonSpec.memory.each do |k,v|
65
63
  cmd.gsub!("%{#{k}}", v)
66
64
  end