knife-solo_data_bag 0.2.0 → 0.2.1
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.
- data/.travis.yml +8 -0
- data/CHANGELOG.md +3 -0
- data/README.md +21 -2
- data/gemfiles/Gemfile.chef.0.10.10 +5 -0
- data/gemfiles/Gemfile.chef.10.12.0 +5 -0
- data/knife-solo_data_bag.gemspec +1 -0
- data/lib/chef/knife/solo_data_bag_show.rb +2 -1
- data/lib/knife-solo_data_bag/version.rb +1 -1
- data/spec/unit/solo_data_bag_show_spec.rb +38 -0
- metadata +22 -8
data/.travis.yml
ADDED
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
# Knife Solo Data Bag
|
|
2
2
|
A knife plugin to make working with data bags easier in a chef solo environment
|
|
3
3
|
|
|
4
|
+
## Build Status
|
|
5
|
+

|
|
6
|
+
|
|
4
7
|
## Installation
|
|
5
8
|
|
|
6
9
|
gem install knife-solo_data_bag
|
|
@@ -55,13 +58,29 @@ Show the unencrypted content of an encrypted data bag with the provided file con
|
|
|
55
58
|
|
|
56
59
|
$ knife solo data bag show apps app_1 --secret-file 'SECRET_FILE'
|
|
57
60
|
|
|
61
|
+
You can also display any of the above variations in JSON format with `-F json`
|
|
62
|
+
|
|
63
|
+
$ knife solo data bag show apps app_1 -s secret_key -F json
|
|
64
|
+
|
|
58
65
|
## Notes
|
|
59
66
|
This plugin will rely on the configured data_bag_path for placement of the data
|
|
60
67
|
bags. This defaults to '/var/chef/data_bags', but can be overriden in your chef
|
|
61
68
|
client config.
|
|
62
69
|
|
|
63
|
-
|
|
64
|
-
This plugin has
|
|
70
|
+
## Version Support
|
|
71
|
+
This plugin has been tested on the following:
|
|
72
|
+
|
|
73
|
+
Chef:
|
|
74
|
+
* 0.10.10
|
|
75
|
+
* 10.12.0
|
|
76
|
+
|
|
77
|
+
Ruby:
|
|
78
|
+
* 1.9.2
|
|
79
|
+
* 1.9.3
|
|
80
|
+
|
|
81
|
+
OS:
|
|
82
|
+
* OSX
|
|
83
|
+
* Linux
|
|
65
84
|
|
|
66
85
|
## Contribute
|
|
67
86
|
* Fork the project
|
data/knife-solo_data_bag.gemspec
CHANGED
|
@@ -15,6 +15,7 @@ Gem::Specification.new do |gem|
|
|
|
15
15
|
gem.require_paths = ["lib"]
|
|
16
16
|
gem.version = Knife::SoloDataBag::VERSION
|
|
17
17
|
gem.add_development_dependency 'chef', '~> 0.10.10'
|
|
18
|
+
gem.add_development_dependency 'rake'
|
|
18
19
|
gem.add_development_dependency 'rspec', '~> 2.10.0'
|
|
19
20
|
gem.add_development_dependency 'fakefs', '~> 0.4.0'
|
|
20
21
|
end
|
|
@@ -34,7 +34,8 @@ module KnifeSoloDataBag
|
|
|
34
34
|
|
|
35
35
|
def bag_item_content
|
|
36
36
|
if should_be_encrypted?
|
|
37
|
-
Chef::EncryptedDataBagItem.load
|
|
37
|
+
raw = Chef::EncryptedDataBagItem.load(bag_name, item_name, secret_key)
|
|
38
|
+
raw.to_hash
|
|
38
39
|
else
|
|
39
40
|
Chef::DataBagItem.load(bag_name, item_name).raw_data
|
|
40
41
|
end
|
|
@@ -57,6 +57,20 @@ describe KnifeSoloDataBag::SoloDataBagShow do
|
|
|
57
57
|
@stdout.string.should match /id:\s+foo.+who:\s+bob/m
|
|
58
58
|
end
|
|
59
59
|
|
|
60
|
+
context 'and with -F of json' do
|
|
61
|
+
before do
|
|
62
|
+
@knife.config[:format] = 'json'
|
|
63
|
+
Chef::DataBagItem.should_receive(:load).with('bag_1', 'foo').
|
|
64
|
+
and_return(@bag_item_foo)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
it 'should show the item as json' do
|
|
68
|
+
@knife.run
|
|
69
|
+
@stdout.string.should match /"id":\s+"foo".+"who":\s+"bob"/m
|
|
70
|
+
@stdout.string.should_not match /json_class/
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
60
74
|
context 'when encrypting with -s or --secret' do
|
|
61
75
|
before do
|
|
62
76
|
@knife.config[:secret] = 'SECRET'
|
|
@@ -69,6 +83,18 @@ describe KnifeSoloDataBag::SoloDataBagShow do
|
|
|
69
83
|
@knife.run
|
|
70
84
|
@stdout.string.should match /id:\s+foo.+who:\s+bob/m
|
|
71
85
|
end
|
|
86
|
+
|
|
87
|
+
context 'and with -F of json' do
|
|
88
|
+
before do
|
|
89
|
+
@knife.config[:format] = 'json'
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
it 'should show the unencrypted item as json' do
|
|
93
|
+
@knife.run
|
|
94
|
+
@stdout.string.should match /"id":\s+"foo".+"who":\s+"bob"/m
|
|
95
|
+
@stdout.string.should_not match /json_class/
|
|
96
|
+
end
|
|
97
|
+
end
|
|
72
98
|
end
|
|
73
99
|
|
|
74
100
|
context 'when encrypting with --secret-file' do
|
|
@@ -86,6 +112,18 @@ describe KnifeSoloDataBag::SoloDataBagShow do
|
|
|
86
112
|
@knife.run
|
|
87
113
|
@stdout.string.should match /id:\s+foo.+who:\s+bob/m
|
|
88
114
|
end
|
|
115
|
+
|
|
116
|
+
context 'and with -F of json' do
|
|
117
|
+
before do
|
|
118
|
+
@knife.config[:format] = 'json'
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
it 'should show the unencrypted item as json' do
|
|
122
|
+
@knife.run
|
|
123
|
+
@stdout.string.should match /"id":\s+"foo".+"who":\s+"bob"/m
|
|
124
|
+
@stdout.string.should_not match /json_class/
|
|
125
|
+
end
|
|
126
|
+
end
|
|
89
127
|
end
|
|
90
128
|
|
|
91
129
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: knife-solo_data_bag
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.1
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,11 +9,11 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2012-07-
|
|
12
|
+
date: 2012-07-09 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: chef
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &70133067504540 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ~>
|
|
@@ -21,10 +21,21 @@ dependencies:
|
|
|
21
21
|
version: 0.10.10
|
|
22
22
|
type: :development
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *70133067504540
|
|
25
|
+
- !ruby/object:Gem::Dependency
|
|
26
|
+
name: rake
|
|
27
|
+
requirement: &70133067504120 !ruby/object:Gem::Requirement
|
|
28
|
+
none: false
|
|
29
|
+
requirements:
|
|
30
|
+
- - ! '>='
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '0'
|
|
33
|
+
type: :development
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: *70133067504120
|
|
25
36
|
- !ruby/object:Gem::Dependency
|
|
26
37
|
name: rspec
|
|
27
|
-
requirement: &
|
|
38
|
+
requirement: &70133067503580 !ruby/object:Gem::Requirement
|
|
28
39
|
none: false
|
|
29
40
|
requirements:
|
|
30
41
|
- - ~>
|
|
@@ -32,10 +43,10 @@ dependencies:
|
|
|
32
43
|
version: 2.10.0
|
|
33
44
|
type: :development
|
|
34
45
|
prerelease: false
|
|
35
|
-
version_requirements: *
|
|
46
|
+
version_requirements: *70133067503580
|
|
36
47
|
- !ruby/object:Gem::Dependency
|
|
37
48
|
name: fakefs
|
|
38
|
-
requirement: &
|
|
49
|
+
requirement: &70133067503080 !ruby/object:Gem::Requirement
|
|
39
50
|
none: false
|
|
40
51
|
requirements:
|
|
41
52
|
- - ~>
|
|
@@ -43,7 +54,7 @@ dependencies:
|
|
|
43
54
|
version: 0.4.0
|
|
44
55
|
type: :development
|
|
45
56
|
prerelease: false
|
|
46
|
-
version_requirements: *
|
|
57
|
+
version_requirements: *70133067503080
|
|
47
58
|
description: A knife plugin for working with data bags and chef solo
|
|
48
59
|
email:
|
|
49
60
|
- bishop.thomas@gmail.com
|
|
@@ -53,11 +64,14 @@ extra_rdoc_files: []
|
|
|
53
64
|
files:
|
|
54
65
|
- .gitignore
|
|
55
66
|
- .rspec
|
|
67
|
+
- .travis.yml
|
|
56
68
|
- CHANGELOG.md
|
|
57
69
|
- Gemfile
|
|
58
70
|
- LICENSE
|
|
59
71
|
- README.md
|
|
60
72
|
- Rakefile
|
|
73
|
+
- gemfiles/Gemfile.chef.0.10.10
|
|
74
|
+
- gemfiles/Gemfile.chef.10.12.0
|
|
61
75
|
- knife-solo_data_bag.gemspec
|
|
62
76
|
- lib/chef/knife/helpers.rb
|
|
63
77
|
- lib/chef/knife/solo_data_bag_create.rb
|