ogre 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/README.md +16 -2
- data/lib/ogre.rb +10 -0
- data/lib/ogre/config.rb +2 -0
- data/lib/ogre/messages.rb +12 -0
- data/lib/ogre/org-create.rb +30 -6
- data/lib/ogre/org-list.rb +13 -0
- data/lib/ogre/org-show.rb +45 -0
- data/lib/ogre/runner.rb +0 -2
- data/lib/ogre/user-list.rb +13 -0
- data/lib/ogre/version.rb +2 -2
- data/ogre.gemspec +5 -4
- data/spec/fixtures/vcr_cassettes/org-list.yml +73 -0
- data/spec/fixtures/vcr_cassettes/org-show.yml +205 -0
- data/spec/fixtures/vcr_cassettes/user-list.yml +75 -0
- data/spec/ogre/org-create_spec.rb +3 -2
- data/spec/ogre/org-list_spec.rb +26 -0
- data/spec/ogre/org-show_spec.rb +27 -0
- data/spec/ogre/user-list_spec.rb +26 -0
- data/spec/spec_helper.rb +4 -4
- metadata +48 -57
- data/lib/ogre/skeletons/code_generator/files/default/chefignore +0 -95
- data/lib/ogre/skeletons/code_generator/files/default/cookbook_readmes/README-policy.md +0 -9
- data/lib/ogre/skeletons/code_generator/files/default/cookbook_readmes/README.md +0 -54
- data/lib/ogre/skeletons/code_generator/files/default/gitignore +0 -16
- data/lib/ogre/skeletons/code_generator/files/default/repo/README.md +0 -66
- data/lib/ogre/skeletons/code_generator/files/default/repo/cookbooks/example/attributes/default.rb +0 -7
- data/lib/ogre/skeletons/code_generator/files/default/repo/cookbooks/example/metadata.rb +0 -3
- data/lib/ogre/skeletons/code_generator/files/default/repo/cookbooks/example/recipes/default.rb +0 -8
- data/lib/ogre/skeletons/code_generator/files/default/repo/data_bags/README.md +0 -58
- data/lib/ogre/skeletons/code_generator/files/default/repo/data_bags/example/example_item.json +0 -4
- data/lib/ogre/skeletons/code_generator/files/default/repo/environments/README.md +0 -9
- data/lib/ogre/skeletons/code_generator/files/default/repo/environments/_default.json +0 -9
- data/lib/ogre/skeletons/code_generator/files/default/repo/environments/dev.json +0 -21
- data/lib/ogre/skeletons/code_generator/files/default/repo/environments/example.json +0 -13
- data/lib/ogre/skeletons/code_generator/files/default/repo/environments/int.json +0 -21
- data/lib/ogre/skeletons/code_generator/files/default/repo/environments/prod.json +0 -21
- data/lib/ogre/skeletons/code_generator/files/default/repo/environments/qa.json +0 -21
- data/lib/ogre/skeletons/code_generator/files/default/repo/environments/stage.json +0 -21
- data/lib/ogre/skeletons/code_generator/files/default/repo/roles/README.md +0 -9
- data/lib/ogre/skeletons/code_generator/files/default/repo/roles/active-base.json +0 -12
- data/lib/ogre/skeletons/code_generator/files/default/repo/roles/example.json +0 -13
- data/lib/ogre/skeletons/code_generator/files/default/repo/roles/loc_caeast.json +0 -13
- data/lib/ogre/skeletons/code_generator/files/default/repo/roles/loc_canada.json +0 -13
- data/lib/ogre/skeletons/code_generator/files/default/repo/roles/loc_cawest.json +0 -13
- data/lib/ogre/skeletons/code_generator/files/default/repo/roles/loc_useast.json +0 -13
- data/lib/ogre/skeletons/code_generator/files/default/repo/roles/loc_uswest.json +0 -13
- data/lib/ogre/skeletons/code_generator/metadata.rb +0 -8
- data/lib/ogre/skeletons/code_generator/recipes/repo.rb +0 -52
- data/lib/ogre/skeletons/code_generator/templates/default/LICENSE.all_rights.erb +0 -3
- data/lib/ogre/skeletons/code_generator/templates/default/LICENSE.apache2.erb +0 -201
- data/lib/ogre/skeletons/code_generator/templates/default/LICENSE.gplv2.erb +0 -339
- data/lib/ogre/skeletons/code_generator/templates/default/LICENSE.gplv3.erb +0 -674
- data/lib/ogre/skeletons/code_generator/templates/default/LICENSE.mit.erb +0 -21
- data/lib/ogre/skeletons/code_generator/templates/default/README.md.erb +0 -4
- data/lib/ogre/skeletons/code_generator/templates/default/cookbook_file.erb +0 -0
- data/lib/ogre/skeletons/code_generator/templates/default/knife.rb.erb +0 -44
- data/lib/ogre/skeletons/code_generator/templates/default/metadata.rb.erb +0 -8
- data/lib/ogre/skeletons/code_generator/templates/default/repo/gitignore.erb +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a9a5ab2416254704942cda8f92d6ed8ca93aa8e
|
4
|
+
data.tar.gz: 81c7a7f5af5d918d9e8d42e42d9caa7302a322d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4d76becd36eaf13a1c6c1ce22c2a5dfcf4720df00d23cc06023d4c4de084bdda0b216c8abfc144b29d210195e767d8cc28e21867a29f3c09b87167bc9eca2ffe
|
7
|
+
data.tar.gz: 46d5a13a8dc24a07fe22d0f33eff16fadfa91de54c91011f2c70337e871b7d30f7e9d793ae031a902d3ad6124053c4faec03db7d6cd18b34bb1acb60b98207f9
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -14,7 +14,9 @@ While this functionality already exists in [knife-opc](https://github.com/chef/k
|
|
14
14
|
|
15
15
|
## Installation
|
16
16
|
|
17
|
-
|
17
|
+
There's an open ended dependency on the ChefDK and is expected you have it already installed. The best way to install ogre the least amount of dependencies is to:
|
18
|
+
|
19
|
+
`chef gem install ogre`
|
18
20
|
|
19
21
|
## Configuration
|
20
22
|
|
@@ -31,7 +33,8 @@ All of the parameters here are optional and can be passed in and/or overriden at
|
|
31
33
|
"vco_user": "domain\\user",
|
32
34
|
"vco_password":"password",
|
33
35
|
"vco_wf_name":"vco_workflow_name",
|
34
|
-
"vco_verify_ssl":"false"
|
36
|
+
"vco_verify_ssl":"false",
|
37
|
+
"repo_url":"https://path.to/skeleton_repo"
|
35
38
|
}
|
36
39
|
|
37
40
|
```
|
@@ -44,6 +47,7 @@ ogre org-create ORG DESCRIPTION (options)
|
|
44
47
|
- `-I`, `--license=LICENSE` Chef policy repository license
|
45
48
|
- `-m`, `--email=EMAIL` Chef policy repository e-mail
|
46
49
|
- `-C`, `--authors=AUTHORS` Chef policy repository authors
|
50
|
+
- `-r`, `--repo-url=REPO_URL` Chef Policy Repository skeleton url
|
47
51
|
|
48
52
|
When using `-p`, Ogre will save the Chef policy repository as ~/.ogre/ORG-chef, otherwise it will output the validator key for the new organization.
|
49
53
|
|
@@ -51,6 +55,13 @@ ogre org-delete ORG (options)
|
|
51
55
|
---
|
52
56
|
- `-f`, `--force` Delete without confirmation
|
53
57
|
|
58
|
+
ogre org-list ORG (options)
|
59
|
+
---
|
60
|
+
|
61
|
+
ogre org-show ORG (options)
|
62
|
+
---
|
63
|
+
Users in the admin group are prefixed with `@`
|
64
|
+
|
54
65
|
ogre user-create USERNAME FIRST_NAME LAST_NAME EMAIL PASSWORD (options)
|
55
66
|
---
|
56
67
|
|
@@ -58,6 +69,9 @@ ogre user-delete USERNAME (options)
|
|
58
69
|
---
|
59
70
|
- `-f`, `--force` Delete without confirmation
|
60
71
|
|
72
|
+
ogre user-list (options)
|
73
|
+
---
|
74
|
+
|
61
75
|
ogre associate ORG USER (options)
|
62
76
|
---
|
63
77
|
- `-a`, `--admin` Add user to admin group within organization
|
data/lib/ogre.rb
CHANGED
@@ -6,9 +6,13 @@ require 'ogre/base'
|
|
6
6
|
require 'ogre/associate'
|
7
7
|
require 'ogre/org-create'
|
8
8
|
require 'ogre/org-delete'
|
9
|
+
require 'ogre/org-list'
|
10
|
+
require 'ogre/org-show'
|
9
11
|
require 'ogre/set-private-key'
|
10
12
|
require 'ogre/user-create'
|
11
13
|
require 'ogre/user-delete'
|
14
|
+
require 'ogre/user-list'
|
15
|
+
require 'ogre/version'
|
12
16
|
|
13
17
|
module Ogre
|
14
18
|
# Start of main CLI
|
@@ -27,8 +31,11 @@ module Ogre
|
|
27
31
|
# subcommand in Thor called as registered class
|
28
32
|
register(OrgCreate, 'org_create', 'org-create ' << OrgCreate.arguments.map(&:name).join(' ').upcase, DESC_CREATE)
|
29
33
|
register(OrgDelete, 'org_delete', 'org-delete ' << OrgDelete.arguments.map(&:name).join(' ').upcase, DESC_DELETE)
|
34
|
+
register(OrgList, 'org_list', 'org-list ' << OrgList.arguments.map(&:name).join(' ').upcase, DESC_ORG_LIST)
|
35
|
+
register(OrgShow, 'org_show', 'org-show ' << OrgShow.arguments.map(&:name).join(' ').upcase, DESC_ORG_SHOW)
|
30
36
|
register(UserCreate, 'user_create', 'user-create ' << UserCreate.arguments.map(&:name).join(' ').upcase, DESC_CREATE_USER)
|
31
37
|
register(UserDelete, 'user_delete', 'user-delete ' << UserDelete.arguments.map(&:name).join(' ').upcase, DESC_DELETE_USER)
|
38
|
+
register(UserList, 'user_list', 'user-list ' << UserList.arguments.map(&:name).join(' ').upcase, DESC_USER_LIST)
|
32
39
|
register(Associate, 'associate', 'associate ' << Associate.arguments.map(&:name).join(' ').upcase, DESC_ASSOCIATE_USERS)
|
33
40
|
register(SetPrivateKey, 'set_private_key', 'set-private-key ' << SetPrivateKey.arguments.map(&:name).join(' ').upcase, DESC_SET_PRIVATE_KEY)
|
34
41
|
# rubocop:enable LineLength
|
@@ -36,8 +43,11 @@ module Ogre
|
|
36
43
|
# Workarounds to include options in 'ogre help command'
|
37
44
|
tasks['user_create'].options = UserCreate.class_options
|
38
45
|
tasks['user_delete'].options = UserDelete.class_options
|
46
|
+
tasks['user_list'].options = UserList.class_options
|
39
47
|
tasks['org_create'].options = OrgCreate.class_options
|
40
48
|
tasks['org_delete'].options = OrgDelete.class_options
|
49
|
+
tasks['org_list'].options = OrgList.class_options
|
50
|
+
tasks['org_show'].options = OrgShow.class_options
|
41
51
|
tasks['associate'].options = Associate.class_options
|
42
52
|
tasks['set_private_key'].options = SetPrivateKey.class_options
|
43
53
|
end
|
data/lib/ogre/config.rb
CHANGED
@@ -7,6 +7,8 @@ module Ogre
|
|
7
7
|
OGRE_HOME = "#{ENV['HOME']}/.ogre"
|
8
8
|
# config path
|
9
9
|
CONFIG_PATH = "#{OGRE_HOME}/config.json"
|
10
|
+
# default chef policy repo
|
11
|
+
REPO_URL = 'https://github.com/activenetwork-automation/code_generator'
|
10
12
|
|
11
13
|
# Static method to make config parameters available
|
12
14
|
class Config
|
data/lib/ogre/messages.rb
CHANGED
@@ -16,6 +16,15 @@ module Ogre
|
|
16
16
|
# org description
|
17
17
|
DESC_ORG_DESC = 'Organization long name'
|
18
18
|
|
19
|
+
# org list
|
20
|
+
DESC_ORG_LIST = 'List organiations'
|
21
|
+
|
22
|
+
# org Show
|
23
|
+
DESC_ORG_SHOW = 'Show organization details'
|
24
|
+
|
25
|
+
# user list
|
26
|
+
DESC_USER_LIST = 'List users'
|
27
|
+
|
19
28
|
# private key path
|
20
29
|
DESC_PRIVATE_KEY = 'Path to private key file'
|
21
30
|
|
@@ -81,4 +90,7 @@ module Ogre
|
|
81
90
|
|
82
91
|
# vCenter verify ssl param
|
83
92
|
DESC_VCO_VERIFY_SSL = 'vCenter Orchestrator verify ssl'
|
93
|
+
|
94
|
+
# Chef Policy Repository skeleton url
|
95
|
+
DESC_REPO_URL = 'Chef Policy Repository skeleton url'
|
84
96
|
end
|
data/lib/ogre/org-create.rb
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
require 'chef-dk/command/generator_commands/repo'
|
2
|
+
require 'git'
|
2
3
|
|
3
4
|
module Ogre
|
4
5
|
# Create organization through Chef::REST with the option to create the
|
5
6
|
# Chef policy repository
|
6
7
|
class OrgCreate < Ogre::Base
|
7
|
-
# rubocop:disable
|
8
|
+
# rubocop:disable PerceivedComplexity, Metrics/CyclomaticComplexity
|
8
9
|
# required parameters
|
9
10
|
argument :org, type: :string, desc: DESC_ORG
|
10
11
|
argument :org_desc, type: :string, desc: DESC_ORG_DESC
|
@@ -15,6 +16,7 @@ module Ogre
|
|
15
16
|
class_option :license, aliases: '-I', default: 'apache2', type: :string, desc: DESC_REPO_LICENSE
|
16
17
|
class_option :email, aliases: '-m', type: :string, desc: DESC_REPO_EMAIL
|
17
18
|
class_option :authors, aliases: '-C', type: :string, desc: DESC_REPO_AUTHORS
|
19
|
+
class_option :repo_url, aliases: '-r', type: :string, desc: DESC_REPO_URL
|
18
20
|
|
19
21
|
# organization create method
|
20
22
|
def org_create
|
@@ -24,15 +26,25 @@ module Ogre
|
|
24
26
|
|
25
27
|
# use chef repo generate to create a chef policy repo
|
26
28
|
if options[:create_repo]
|
29
|
+
# check for policy repo - order of precedence: cli, config.json, default
|
30
|
+
repo_url = Config.options[:repo_url] ? Config.options[:repo_url] : REPO_URL
|
31
|
+
repo_url = options[:repo_url] ? options[:repo_url] : repo_url
|
32
|
+
|
33
|
+
# get the repository name -- dependant on short name w/out '.git'
|
34
|
+
skeleton_repo_path = "#{OGRE_HOME}/policy_repo/#{repo_url.split('/').last}"
|
35
|
+
|
36
|
+
# get policy repo
|
37
|
+
get_chef_policy_repo(repo_url, skeleton_repo_path)
|
27
38
|
|
28
39
|
# create parent dir for chef policy repo
|
29
40
|
repo_path = options[:repo_path] ? options[:repo_path] : OGRE_HOME
|
30
41
|
Dir.mkdir repo_path unless File.exist?(repo_path)
|
31
42
|
|
32
43
|
# run cookbook generate
|
33
|
-
generate_cmd = ChefDK::Command::GeneratorCommands::Repo.new(generate_params(repo_path))
|
44
|
+
generate_cmd = ChefDK::Command::GeneratorCommands::Repo.new(generate_params(repo_path, skeleton_repo_path))
|
34
45
|
generate_cmd.run
|
35
46
|
|
47
|
+
# write out pem file
|
36
48
|
File.open("#{repo_path}/#{org}-chef/.chef/#{response['clientname']}.pem", 'w') do |f|
|
37
49
|
f.print(response['private_key'])
|
38
50
|
end
|
@@ -42,7 +54,6 @@ module Ogre
|
|
42
54
|
end
|
43
55
|
|
44
56
|
rescue Net::HTTPServerException => e
|
45
|
-
|
46
57
|
# already exists -- i will allow it
|
47
58
|
if e.response.code == '409'
|
48
59
|
puts "#{org} org already exists"
|
@@ -53,8 +64,21 @@ module Ogre
|
|
53
64
|
|
54
65
|
private
|
55
66
|
|
67
|
+
# clone policy skeleton, if exists, get latest
|
68
|
+
def get_chef_policy_repo(repo_url, skeleton_repo_path)
|
69
|
+
# check for existing
|
70
|
+
if File.exist?(skeleton_repo_path)
|
71
|
+
# update if exists
|
72
|
+
local_repo = Git.open(skeleton_repo_path)
|
73
|
+
local_repo.pull
|
74
|
+
else
|
75
|
+
# get new if doesn't exist
|
76
|
+
Git.clone(repo_url, skeleton_repo_path)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
56
80
|
# concatenate parameters into a format ChefDK::Command::GeneratorCommands::Repo will accept
|
57
|
-
def generate_params(parent_path)
|
81
|
+
def generate_params(parent_path, skeleton_repo_path)
|
58
82
|
# chef policy repository parameters
|
59
83
|
generate_str = ["#{parent_path}/#{org}-chef"]
|
60
84
|
|
@@ -68,7 +92,7 @@ module Ogre
|
|
68
92
|
|
69
93
|
# generator skeleton
|
70
94
|
generate_str << '-g'
|
71
|
-
generate_str <<
|
95
|
+
generate_str << skeleton_repo_path
|
72
96
|
|
73
97
|
# optional license
|
74
98
|
if options[:license]
|
@@ -93,4 +117,4 @@ module Ogre
|
|
93
117
|
end
|
94
118
|
end
|
95
119
|
|
96
|
-
# rubocop:enable
|
120
|
+
# rubocop:enable PerceivedComplexity, Metrics/CyclomaticComplexity
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Ogre
|
2
|
+
# List organizations through Chef::REST object
|
3
|
+
class OrgList < Ogre::Base
|
4
|
+
include Thor::Actions
|
5
|
+
|
6
|
+
# Organizations list
|
7
|
+
def org_list
|
8
|
+
# pull down all orgs
|
9
|
+
results = chef_rest.get_rest('/organizations')
|
10
|
+
puts results.keys.sort { |a, b| a <=> b }
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Ogre
|
2
|
+
# Show org through Chef::REST object
|
3
|
+
class OrgShow < Ogre::Base
|
4
|
+
include Thor::Actions
|
5
|
+
|
6
|
+
# required
|
7
|
+
argument :org, type: :string, desc: DESC_ORG
|
8
|
+
|
9
|
+
# Show org details
|
10
|
+
def org_show
|
11
|
+
# get org details
|
12
|
+
results = chef_rest.get_rest("/organizations/#{org}")
|
13
|
+
puts colorize('name:') + " #{results['name']}"
|
14
|
+
puts colorize('description:') + " #{results['full_name']}"
|
15
|
+
puts colorize('guid:') + " #{results['guid']}"
|
16
|
+
|
17
|
+
# get admins
|
18
|
+
admins = chef_rest.get_rest("/organizations/#{org}/groups/admins")
|
19
|
+
|
20
|
+
# get normal users
|
21
|
+
users = chef_rest.get_rest("/organizations/#{org}/groups/users")
|
22
|
+
|
23
|
+
# output admins with a '@' prefix
|
24
|
+
admins['users'].each do |admin|
|
25
|
+
if admins['users'][0] == admin
|
26
|
+
puts colorize('users') + " @#{admin}"
|
27
|
+
else
|
28
|
+
puts " @#{admin}"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
# output users that don't exist in the admin group
|
33
|
+
(users['users'] - admins['users']).each do |user|
|
34
|
+
puts " #{user}"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
# fancy it up
|
41
|
+
def colorize(text)
|
42
|
+
"\033[36m#{text}\033[0m"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/lib/ogre/runner.rb
CHANGED
@@ -11,7 +11,6 @@ module Ogre
|
|
11
11
|
@kernel = kernel
|
12
12
|
end
|
13
13
|
|
14
|
-
# rubocop:disable MethodLength
|
15
14
|
def execute!
|
16
15
|
exit_code = begin
|
17
16
|
$stderr = @stderr
|
@@ -39,6 +38,5 @@ module Ogre
|
|
39
38
|
# Proxy exit code back to the injected kernel.
|
40
39
|
@kernel.exit(exit_code)
|
41
40
|
end
|
42
|
-
# rubocop:enable MethodLength
|
43
41
|
end
|
44
42
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Ogre
|
2
|
+
# List users through Chef::REST object
|
3
|
+
class UserList < Ogre::Base
|
4
|
+
include Thor::Actions
|
5
|
+
|
6
|
+
# Users list
|
7
|
+
def org_list
|
8
|
+
# pull down all users
|
9
|
+
results = chef_rest.get_rest('/users')
|
10
|
+
puts results.keys.sort { |a, b| a <=> b }
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/ogre/version.rb
CHANGED
data/ogre.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.add_development_dependency 'bundler', '>= 1.7'
|
22
22
|
spec.add_development_dependency 'rake', '>= 10.0'
|
23
|
-
spec.add_development_dependency 'rubocop', '>= 0.
|
23
|
+
spec.add_development_dependency 'rubocop', '>= 0.32.1'
|
24
24
|
# spec.add_development_dependency 'aruba', '>= 0.6'
|
25
25
|
spec.add_development_dependency 'rspec', '>= 3.0'
|
26
26
|
spec.add_development_dependency 'coveralls', '>= 0.7.9'
|
@@ -32,9 +32,10 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.add_development_dependency 'webmock', '>= 1.21.0'
|
33
33
|
spec.add_development_dependency 'vcr', '>= 2.9.3'
|
34
34
|
|
35
|
-
spec.add_dependency '
|
36
|
-
spec.add_dependency '
|
37
|
-
spec.add_dependency '
|
35
|
+
spec.add_dependency 'chef-dk'
|
36
|
+
spec.add_dependency 'vcoworkflows', '>= 0.2.1'
|
37
|
+
spec.add_dependency 'thor', '>= 0.19.1'
|
38
|
+
spec.add_dependency 'git', '>= 1.2.0'
|
38
39
|
end
|
39
40
|
# rubocop:enable all
|
40
41
|
|
@@ -0,0 +1,73 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://chef.server/organizations
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/json
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
|
+
X-Ops-Sign:
|
15
|
+
- algorithm=sha1;version=1.0;
|
16
|
+
X-Ops-Userid: pivotal
|
17
|
+
X-Ops-Timestamp:
|
18
|
+
- '2015-08-05T14:09:42Z'
|
19
|
+
X-Ops-Content-Hash:
|
20
|
+
- "{{X-Ops-Content-Hash}}"
|
21
|
+
X-Ops-Authorization-1:
|
22
|
+
- "{{X-Ops-Authorization-1}}"
|
23
|
+
X-Ops-Authorization-2:
|
24
|
+
- "{{X-Ops-Authorization-2}}"
|
25
|
+
X-Ops-Authorization-3:
|
26
|
+
- "{{X-Ops-Authorization-3}}"
|
27
|
+
X-Ops-Authorization-4:
|
28
|
+
- "{{X-Ops-Authorization-4}}"
|
29
|
+
X-Ops-Authorization-5:
|
30
|
+
- "{{X-Ops-Authorization-5}}"
|
31
|
+
X-Ops-Authorization-6:
|
32
|
+
- "{{X-Ops-Authorization-6}}"
|
33
|
+
Host:
|
34
|
+
- chef.server:443
|
35
|
+
X-Ops-Server-Api-Version:
|
36
|
+
- '1'
|
37
|
+
X-Remote-Request-Id:
|
38
|
+
- 5606b2af-b172-4a94-aa86-5c2013eb3843
|
39
|
+
X-Chef-Version:
|
40
|
+
- 12.4.1
|
41
|
+
User-Agent:
|
42
|
+
- Chef Knife/12.4.1 (ruby-2.1.5-p273; ohai-8.5.0; x86_64-darwin12.0; +http://opscode.com)
|
43
|
+
response:
|
44
|
+
status:
|
45
|
+
code: 200
|
46
|
+
message: OK
|
47
|
+
headers:
|
48
|
+
Server:
|
49
|
+
- openresty/1.7.10.1
|
50
|
+
Date:
|
51
|
+
- Wed, 05 Aug 2015 14:09:45 GMT
|
52
|
+
Content-Type:
|
53
|
+
- application/json
|
54
|
+
Transfer-Encoding:
|
55
|
+
- chunked
|
56
|
+
Connection:
|
57
|
+
- keep-alive
|
58
|
+
X-Ops-Api-Info:
|
59
|
+
- flavor=cs;version=12.0.0;oc_erchef=1.6.4
|
60
|
+
Content-Encoding:
|
61
|
+
- gzip
|
62
|
+
body:
|
63
|
+
encoding: ASCII-8BIT
|
64
|
+
string: !binary |-
|
65
|
+
H4sIAAAAAAAAA53VTW7DIBAF4LvMGtlqs8tlKkLAoDhgGWRXrXr3vgGf4O35
|
66
|
+
mOHx9ys2y11ia1u9z7OLPkxPf0zWtXT47NtZ9tfkynsu+2Jz+rEtlVxnKCMx
|
67
|
+
YACjBzRS3ZvhyoyED8ZCGbGtMlYZsFspDAa8UHZRWmJY8zflL6qTkFs2YI/u
|
68
|
+
izwyQxp5+P1F5T8gjk1JTArKsICTsVBGNqprqCs2rrLGptXLdjCdK0N9T2Fl
|
69
|
+
RnbP3bXuOv9kOu9uRBfDyV06hNet7nthmlCGJVBbB4W6liprQXFg8RYz/JJG
|
70
|
+
ltRW+2CmuCTeWe8Zrwyrf24MVgZ8o+xNaa3c1zQgJuC+JmV//9kSRZpVBwAA
|
71
|
+
http_version:
|
72
|
+
recorded_at: Wed, 05 Aug 2015 14:09:43 GMT
|
73
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,205 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://chef.server/organizations/my-test-org
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/json
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
|
+
X-Ops-Sign:
|
15
|
+
- algorithm=sha1;version=1.0;
|
16
|
+
X-Ops-Userid: pivotal
|
17
|
+
X-Ops-Timestamp:
|
18
|
+
- '2015-08-05T14:27:36Z'
|
19
|
+
X-Ops-Content-Hash:
|
20
|
+
- "{{X-Ops-Content-Hash}}"
|
21
|
+
X-Ops-Authorization-1:
|
22
|
+
- "{{X-Ops-Authorization-1}}"
|
23
|
+
X-Ops-Authorization-2:
|
24
|
+
- "{{X-Ops-Authorization-2}}"
|
25
|
+
X-Ops-Authorization-3:
|
26
|
+
- "{{X-Ops-Authorization-3}}"
|
27
|
+
X-Ops-Authorization-4:
|
28
|
+
- "{{X-Ops-Authorization-4}}"
|
29
|
+
X-Ops-Authorization-5:
|
30
|
+
- "{{X-Ops-Authorization-5}}"
|
31
|
+
X-Ops-Authorization-6:
|
32
|
+
- "{{X-Ops-Authorization-6}}"
|
33
|
+
Host:
|
34
|
+
- chef.server:443
|
35
|
+
X-Ops-Server-Api-Version:
|
36
|
+
- '1'
|
37
|
+
X-Remote-Request-Id:
|
38
|
+
- d9a2fb12-3470-403f-a7a4-ca6e78dc5650
|
39
|
+
X-Chef-Version:
|
40
|
+
- 12.4.1
|
41
|
+
User-Agent:
|
42
|
+
- Chef Knife/12.4.1 (ruby-2.1.5-p273; ohai-8.5.0; x86_64-darwin12.0; +http://opscode.com)
|
43
|
+
response:
|
44
|
+
status:
|
45
|
+
code: 200
|
46
|
+
message: OK
|
47
|
+
headers:
|
48
|
+
Server:
|
49
|
+
- openresty/1.7.10.1
|
50
|
+
Date:
|
51
|
+
- Wed, 05 Aug 2015 14:27:38 GMT
|
52
|
+
Content-Type:
|
53
|
+
- application/json
|
54
|
+
Transfer-Encoding:
|
55
|
+
- chunked
|
56
|
+
Connection:
|
57
|
+
- keep-alive
|
58
|
+
X-Ops-Api-Info:
|
59
|
+
- flavor=cs;version=12.0.0;oc_erchef=1.6.4
|
60
|
+
Content-Encoding:
|
61
|
+
- gzip
|
62
|
+
body:
|
63
|
+
encoding: ASCII-8BIT
|
64
|
+
string: !binary |-
|
65
|
+
H4sIAAAAAAAAA6tWykvMTVWyUsqt1C1JLS7RzS9KV9JRSivNyYmHyoCEFSDC
|
66
|
+
6aWZKUC1BmapiUZmFsZpFskpZqmG5kBgmGZsZGJhlGRulJporFQLAMLz6N9X
|
67
|
+
AAAA
|
68
|
+
http_version:
|
69
|
+
recorded_at: Wed, 05 Aug 2015 14:27:36 GMT
|
70
|
+
- request:
|
71
|
+
method: get
|
72
|
+
uri: https://chef.server/organizations/my-test-org/groups/admins
|
73
|
+
body:
|
74
|
+
encoding: US-ASCII
|
75
|
+
string: ''
|
76
|
+
headers:
|
77
|
+
Accept:
|
78
|
+
- application/json
|
79
|
+
Accept-Encoding:
|
80
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
81
|
+
X-Ops-Sign:
|
82
|
+
- algorithm=sha1;version=1.0;
|
83
|
+
X-Ops-Userid: pivotal
|
84
|
+
X-Ops-Timestamp:
|
85
|
+
- '2015-08-05T14:27:36Z'
|
86
|
+
X-Ops-Content-Hash:
|
87
|
+
- "{{X-Ops-Content-Hash}}"
|
88
|
+
X-Ops-Authorization-1:
|
89
|
+
- "{{X-Ops-Authorization-1}}"
|
90
|
+
X-Ops-Authorization-2:
|
91
|
+
- "{{X-Ops-Authorization-2}}"
|
92
|
+
X-Ops-Authorization-3:
|
93
|
+
- "{{X-Ops-Authorization-3}}"
|
94
|
+
X-Ops-Authorization-4:
|
95
|
+
- "{{X-Ops-Authorization-4}}"
|
96
|
+
X-Ops-Authorization-5:
|
97
|
+
- "{{X-Ops-Authorization-5}}"
|
98
|
+
X-Ops-Authorization-6:
|
99
|
+
- "{{X-Ops-Authorization-6}}"
|
100
|
+
Host:
|
101
|
+
- chef.server:443
|
102
|
+
X-Ops-Server-Api-Version:
|
103
|
+
- '1'
|
104
|
+
X-Remote-Request-Id:
|
105
|
+
- d9a2fb12-3470-403f-a7a4-ca6e78dc5650
|
106
|
+
X-Chef-Version:
|
107
|
+
- 12.4.1
|
108
|
+
User-Agent:
|
109
|
+
- Chef Knife/12.4.1 (ruby-2.1.5-p273; ohai-8.5.0; x86_64-darwin12.0; +http://opscode.com)
|
110
|
+
response:
|
111
|
+
status:
|
112
|
+
code: 200
|
113
|
+
message: OK
|
114
|
+
headers:
|
115
|
+
Server:
|
116
|
+
- openresty/1.7.10.1
|
117
|
+
Date:
|
118
|
+
- Wed, 05 Aug 2015 14:27:38 GMT
|
119
|
+
Content-Type:
|
120
|
+
- application/json
|
121
|
+
Transfer-Encoding:
|
122
|
+
- chunked
|
123
|
+
Connection:
|
124
|
+
- keep-alive
|
125
|
+
X-Ops-Api-Info:
|
126
|
+
- flavor=cs;version=12.0.0;oc_erchef=1.6.4
|
127
|
+
Content-Encoding:
|
128
|
+
- gzip
|
129
|
+
body:
|
130
|
+
encoding: ASCII-8BIT
|
131
|
+
string: !binary |-
|
132
|
+
H4sIAAAAAAAAA32MOwqAMBBE7zK1uYBXEYs1CSGQH9mNIOLdjZLGxm7mzecE
|
133
|
+
acmVMS8ofs9CARNIWG3NB4N1QmP7m+vgbZLnoZddza0MnatLFC1mxEOJZVGd
|
134
|
+
9PcByUSfuPt384XXDSKJqKGYAAAA
|
135
|
+
http_version:
|
136
|
+
recorded_at: Wed, 05 Aug 2015 14:27:36 GMT
|
137
|
+
- request:
|
138
|
+
method: get
|
139
|
+
uri: https://chef.server/organizations/my-test-org/groups/users
|
140
|
+
body:
|
141
|
+
encoding: US-ASCII
|
142
|
+
string: ''
|
143
|
+
headers:
|
144
|
+
Accept:
|
145
|
+
- application/json
|
146
|
+
Accept-Encoding:
|
147
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
148
|
+
X-Ops-Sign:
|
149
|
+
- algorithm=sha1;version=1.0;
|
150
|
+
X-Ops-Userid: pivotal
|
151
|
+
X-Ops-Timestamp:
|
152
|
+
- '2015-08-05T14:27:36Z'
|
153
|
+
X-Ops-Content-Hash:
|
154
|
+
- "{{X-Ops-Content-Hash}}"
|
155
|
+
X-Ops-Authorization-1:
|
156
|
+
- "{{X-Ops-Authorization-1}}"
|
157
|
+
X-Ops-Authorization-2:
|
158
|
+
- "{{X-Ops-Authorization-2}}"
|
159
|
+
X-Ops-Authorization-3:
|
160
|
+
- "{{X-Ops-Authorization-3}}"
|
161
|
+
X-Ops-Authorization-4:
|
162
|
+
- "{{X-Ops-Authorization-4}}"
|
163
|
+
X-Ops-Authorization-5:
|
164
|
+
- "{{X-Ops-Authorization-5}}"
|
165
|
+
X-Ops-Authorization-6:
|
166
|
+
- "{{X-Ops-Authorization-6}}"
|
167
|
+
Host:
|
168
|
+
- chef.server:443
|
169
|
+
X-Ops-Server-Api-Version:
|
170
|
+
- '1'
|
171
|
+
X-Remote-Request-Id:
|
172
|
+
- d9a2fb12-3470-403f-a7a4-ca6e78dc5650
|
173
|
+
X-Chef-Version:
|
174
|
+
- 12.4.1
|
175
|
+
User-Agent:
|
176
|
+
- Chef Knife/12.4.1 (ruby-2.1.5-p273; ohai-8.5.0; x86_64-darwin12.0; +http://opscode.com)
|
177
|
+
response:
|
178
|
+
status:
|
179
|
+
code: 200
|
180
|
+
message: OK
|
181
|
+
headers:
|
182
|
+
Server:
|
183
|
+
- openresty/1.7.10.1
|
184
|
+
Date:
|
185
|
+
- Wed, 05 Aug 2015 14:27:39 GMT
|
186
|
+
Content-Type:
|
187
|
+
- application/json
|
188
|
+
Transfer-Encoding:
|
189
|
+
- chunked
|
190
|
+
Connection:
|
191
|
+
- keep-alive
|
192
|
+
X-Ops-Api-Info:
|
193
|
+
- flavor=cs;version=12.0.0;oc_erchef=1.6.4
|
194
|
+
Content-Encoding:
|
195
|
+
- gzip
|
196
|
+
body:
|
197
|
+
encoding: ASCII-8BIT
|
198
|
+
string: !binary |-
|
199
|
+
H4sIAAAAAAAAA42OzQqDMBCE32XPBmxiiPoqpYfobiQ0GsmPUErfvbH1YG/d
|
200
|
+
0/AxszNP0GPyIUJ/hdVuPmkHFQwU7pHp1RatU2RDtg7hVkGO9Ld3dJaWtH8u
|
201
|
+
wSn4vH5a6tMhopIdSTSGd2iEaqUslWeLVHhRpm5IGNEKiRwbvi/xYVr0TNDD
|
202
|
+
/GCJYmKFlOwBv0OP3h/2egOUm0+u8wAAAA==
|
203
|
+
http_version:
|
204
|
+
recorded_at: Wed, 05 Aug 2015 14:27:36 GMT
|
205
|
+
recorded_with: VCR 2.9.3
|