cookbook 'export-node', '~> 1.0.1'
export-node (3) Versions 1.0.1 Follow2
Exports node attributes to a json file
cookbook 'export-node', '~> 1.0.1', :supermarket
knife supermarket install export-node
knife supermarket download export-node
export-node
export-node exports node attributes to a json file so that it can be retrieved from a kitchen test.
Usage
Add the export-node cookbook to the end of the runlist in your kitchen suites:
suites: - name: my-suite run_list: - recipe[cookbook-under-test] - recipe[export-node]
Now your tests can access any node attribute by parsing the file's json to a hash:
describe file('/etc/haproxy/haproxy.cfg') do let(:node) { JSON.parse(IO.read('/tmp/kitchen/chef_node.json')) } let(:subnet) { ip = node["automatic"]["ipaddress"] ip[0,ip.rindex(".")] } let(:current_env) { node["chef_environment"].upcase} it { should be_a_file } its(:content) { should match <<-EOS backend elasticsearch_backend mode http balance roundrobin server #{current_env}SEARCH01 #{subnet}.121:9200 weight 1 check port 9200 server #{current_env}SEARCH02 #{subnet}.122:9200 weight 1 check port 9200 server #{current_env}SEARCH03 #{subnet}.123:9200 weight 1 check port 9200 backend web_backend mode http balance roundrobin timeout server 5m server #{current_env}WEB01 #{subnet}.131:80 weight 1 check port 80 server #{current_env}WEB02 #{subnet}.132:80 weight 1 check port 80 backend rabbit_backend mode http balance roundrobin server #{current_env}RABBIT01 #{subnet}.141:15672 weight 1 check port 15672 server #{current_env}RABBIT02 #{subnet}.142:15672 weight 1 check port 15672 server #{current_env}RABBIT03 #{subnet}.143:15672 weight 1 check port 15672 EOS } end
Windows instances will store the node data in %TEMP%\kitchen\chef_node.json
and other platforms will store the node data in /tmp/kitchen/chef_node.json
.
Dependent cookbooks
This cookbook has no specified dependencies.
Contingent cookbooks
There are no cookbooks that are contingent upon this one.
Collaborator Number Metric
1.0.1 failed this metric
Failure: Cookbook has 0 collaborators. A cookbook must have at least 2 collaborators to pass this metric.
Contributing File Metric
1.0.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
Foodcritic Metric
1.0.1 failed this metric
FC064: Ensure issues_url is set in metadata: export-node/metadata.rb:1
FC065: Ensure source_url is set in metadata: export-node/metadata.rb:1
FC066: Ensure chef_version is set in metadata: export-node/metadata.rb:1
FC067: Ensure at least one platform supported in metadata: export-node/metadata.rb:1
FC069: Ensure standardized license defined in metadata: export-node/metadata.rb:1
Run with Foodcritic Version 16.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
No Binaries Metric
1.0.1 passed this metric
Testing File Metric
1.0.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
1.0.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
1.0.1 failed this metric
1.0.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
Foodcritic Metric
1.0.1 failed this metric
FC064: Ensure issues_url is set in metadata: export-node/metadata.rb:1
FC065: Ensure source_url is set in metadata: export-node/metadata.rb:1
FC066: Ensure chef_version is set in metadata: export-node/metadata.rb:1
FC067: Ensure at least one platform supported in metadata: export-node/metadata.rb:1
FC069: Ensure standardized license defined in metadata: export-node/metadata.rb:1
Run with Foodcritic Version 16.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
No Binaries Metric
1.0.1 passed this metric
Testing File Metric
1.0.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
1.0.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
1.0.1 failed this metric
FC065: Ensure source_url is set in metadata: export-node/metadata.rb:1
FC066: Ensure chef_version is set in metadata: export-node/metadata.rb:1
FC067: Ensure at least one platform supported in metadata: export-node/metadata.rb:1
FC069: Ensure standardized license defined in metadata: export-node/metadata.rb:1
Run with Foodcritic Version 16.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
1.0.1 passed this metric
Testing File Metric
1.0.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
1.0.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
1.0.1 failed this metric
1.0.1 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number