Application cookbook and Mercurial


#1

I’using the Application cookbook with Mercurial (from here:
https://github.com/coderanger/mercurial)

  1. I assume the deploy key must be on the host. I just stuck it in
    there for the moment, but I assume I should create the file somewhere
    (else) and perhaps keep the key data in a data bag? Is there some
    recommended way to do that?

  2. In my recipe I have

application “bart” do
path "/srv/bart"
owner "nobody"
group “nogroup”

scm_provider Chef::Provider::Mercurial
repository "ssh://hg@bitbucket.org/bartrendr/server/bartrendr"
deploy_key "/home/vagrant/.ssh/bti"
And am getting the following error. What have I missed?

Error executing action deploy on resource ‘deploy_revision[bart]’

NameError

Cannot find a resource for revision_slug on ubuntu version 12.04

Resource Declaration:

In /srv/chef/file_store/cookbooks/application/providers/default.rb

122: @deploy_resource = send(new_resource.strategy.to_sym,
new_resource.name) do
123: action force ? :force_deploy : :deploy
124: scm_provider new_resource.scm_provider
125: revision new_resource.revision
126: repository new_resource.repository
127: enable_submodules new_resource.enable_submodules
128: user new_resource.owner
129: group new_resource.group
130: deploy_to new_resource.path
131: ssh_wrapper “#{new_resource.path}/deploy-ssh-wrapper” if
new_resource.deploy_key
132: shallow_clone new_resource.shallow_clone
133: rollback_on_error new_resource.rollback_on_error
134: all_environments =
([new_resource.environment]+new_resource.sub_resources.map{|res|
res.environment}).inject({}){|acc, val| acc.merge(val)}
135: environment all_environments
136: migrate new_resource.migrate
137: all_migration_commands =
([new_resource.migration_command]+new_resource.sub_resources.map{|res|
res.migration_command}).select{|cmd| cmd && !cmd.empty?}
138: migration_command all_migration_commands.join(’ && ')
139: restart_command do
140: ([new_resource]+new_resource.sub_resources).each do |res|
141: cmd = res.restart_command
142: if cmd.is_a? Proc
143: version = Chef::Version.new(Chef::VERSION)
144: provider = if version.major > 10 || version.minor >= 14
145: Chef::Platform.provider_for_resource(res, :nothing)
146: else
147: Chef::Platform.provider_for_resource(res)
148: end
149: provider.load_current_resource
150: provider.instance_eval(&cmd)
151: elsif cmd && !cmd.empty?
152: execute cmd do
153: user new_resource.owner
154: group new_resource.group
155: environment all_environments
156: end
157: end
158: end
159: end

Compiled Resource:

Declared in

/srv/chef/file_store/cookbooks/application/providers/default.rb:122:in
`run_deploy’

deploy_revision(“bart”) do
provider Chef::Provider::Deploy::Revision
action [:deploy]
retries 0
retry_delay 2
deploy_to "/srv/bart"
repository_cache "cached-copy"
symlink_before_migrate {“local_settings.py”=>“local_settings.py”}
revision "HEAD"
rollback_on_error true
remote "origin"
shallow_clone true
scm_provider Chef::Provider::Mercurial
keep_releases 5
cookbook_name "bti_api"
repo "ssh://hg@bitbucket.org/bartrendr/server/bartrendr"
user "nobody"
group "nogroup"
git_ssh_wrapper "/srv/bart/deploy-ssh-wrapper"
migration_command "/srv/bart/shared/env/bin/python manage.py syncdb
–noinput"
restart_command
#Proc:0x8917550@/srv/chef/file_store/cookbooks/application/providers/default.rb:139
before_migrate
#Proc:0x891bf24@/srv/chef/file_store/cookbooks/application/providers/default.rb:166
before_symlink
#Proc:0x891bd30@/srv/chef/file_store/cookbooks/application/providers/default.rb:169
before_restart
#Proc:0x891b894@/srv/chef/file_store/cookbooks/application/providers/default.rb:172
after_restart
#Proc:0x891b588@/srv/chef/file_store/cookbooks/application/providers/default.rb:175
end

[2013-06-06T19:24:25+00:00] INFO: Running queued delayed notifications
before re-raising exception
[2013-06-06T19:24:25+00:00] ERROR: Running exception handlers
[2013-06-06T19:24:25+00:00] FATAL: Saving node information to
/srv/chef/file_store/failed-run-data.json
[2013-06-06T19:24:25+00:00] ERROR: Exception handlers complete
Chef Client failed. 4 resources updated
[2013-06-06T19:24:25+00:00] FATAL: Stacktrace dumped to
/srv/chef/file_store/chef-stacktrace.out
[2013-06-06T19:24:25+00:00] FATAL: NameError: deploy_revision[bart]
(/srv/chef/file_store/cookbooks/application/providers/default.rb line
122) had an error: NameError: Cannot find a resource for revision_slug
on ubuntu version 12.04
vagrant@api:/home/.ssh$


Liam Kirsher
PGP: http://liam.numenet.com/pgp/