chef / chef/chef-cli

cookbook generator converge fails when run from the same parent directory as new cookbook

Open
#61 5 comments 1 reaction 1 assignee View on GitHub

@i5pranay93 is already working on this.

Since Jan 13, 2021.

Triage: Confirmed Type: Bug
Dominant language
Ruby
Stars
18
Forks
23
Avg merge
5d 17h
Merged PRs (30d)
1

Description

Version:

Chef Workstation version: 0.16.33
Chef Infra Client version: 15.8.23
Chef InSpec version: 4.18.51
Chef CLI version: 2.0.0
Test Kitchen version: 2.3.4
Cookstyle version: 5.22.6

Environment:

[Details about the environment such as the Operating System, cookbook details, etc...]
MacOS -10.14.6

Scenario:

Generator code generator and trying use it to generate new cookbook

Steps to Reproduce:

chef generate generator test_code_generator

Try to create new cookbook using generator

chef generate cookbook -g /Users/Workspace/projects/chef/cookbooks/test_code_generator/ test_cookbook

Expected Result:

New cookbook should be generatored

Actual Result:

Generator generator:
chef generate generator test_code_generator

Copied built-in generator cookbook to /Users/Workspace/projects/chef/cookbooks/test_code_generator
Add the following to your config file to enable it:
chefcli.generator_cookbook "/Users/Workspace/projects/chef/cookbooks/test_code_generator"

Generator cookbook:

chef generate cookbook -g /Users/Workspace/projects/chef/cookbooks/test_code_generator/ test_cookbook

Generating cookbook test_cookbook
- Ensuring correct cookbook content


Error executing action `create_if_missing` on resource 'template[/Users/Workspace/projects/chef/cookbooks/test_cookbook/metadata.rb]'


Chef::Exceptions::CookbookNotFoundInRepo
----------------------------------------
The directory /Users/Workspace/projects/chef/cookbooks/test_cookbook does not contain a cookbook

Resource Declaration:
---------------------
# In /Users/Workspace/projects/chef/cookbooks/test_code_generator/recipes/cookbook.rb

 25: template "#{cookbook_dir}/metadata.rb" do
 26:   helpers(ChefCLI::Generator::TemplateHelper)
 27:   variables(
 28:     spdx_license: spdx_license
 29:   )
 30:   action :create_if_missing
 31: end
 32:

Compiled Resource:
------------------
# Declared in /Users/Workspace/projects/chef/cookbooks/test_code_generator/recipes/cookbook.rb:25:in `from_file'

template("/Users/Workspace/projects/chef/cookbooks/test_cookbook/metadata.rb") do
  action [:create_if_missing]
  default_guard_interpreter :default
  source "metadata.rb.erb"
  helper_modules [ChefCLI::Generator::TemplateHelper]
  declared_type :template
  cookbook_name :test_code_generator
  recipe_name "cookbook"
  variables {:spdx_license=>"All Rights Reserved"}
  path "/Users/Workspace/projects/chef/cookbooks/test_cookbook/metadata.rb"
  owner nil
  group nil
  mode nil
  verifications []
end

System Info:
------------
chef_version=15.8.23
ruby=ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin17]
program_name=/usr/local/bin/chef-cli
executable=/opt/chef-workstation/bin/chef-cli

ERROR: Chef Infra failed to converge: template[/Users/Workspace/projects/chef/cookbooks/test_cookbook/metadata.rb] (test_code_generator::cookbook line 25) had an error: Chef::Exceptions::CookbookNotFoundInRepo: The directory /Users/Workspace/projects/chef/cookbooks/test_cookbook does not contain a cookbook from file /opt/chef-workstation/embedded/lib/ruby/gems/2.6.0/gems/chef-15.8.23/lib/chef/cookbook/cookbook_version_loader.rb:78:in `load!'
Caused by: (Chef::Exceptions::CookbookNotFoundInRepo) template[/Users/Workspace/projects/chef/cookbooks/test_cookbook/metadata.rb] (test_code_generator::cookbook line 25) had an error: Chef::Exceptions::CookbookNotFoundInRepo: The directory /Users/Workspace/projects/chef/cookbooks/test_cookbook does not contain a cookbook

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.