forward3d / cap-ec2

Capify-EC2 rewritten for Capistrano v3
MIT License
181 stars 118 forks source link

cap-ec2 works for capistrano 3.2.1, but not >= 3.3.3 #41

Closed lucaslward closed 9 years ago

lucaslward commented 9 years ago

When I upgraded to the latest capistrano, I now get the following error:

cap production ec2:status --trace                                                                                                                                                                                                                                     !8848
** Invoke production (first_time)
** Execute production
** Invoke load:defaults (first_time)
** Execute load:defaults
** Invoke bundler:map_bins (first_time)
** Execute bundler:map_bins
** Invoke deploy:set_rails_env (first_time)
** Execute deploy:set_rails_env
** Invoke ec2:status (first_time)
** Execute ec2:status
cap aborted!
NoMethodError: undefined method `available_roles' for #<Capistrano::Configuration::Servers:0x007feeb39fdc20>
/Users/lucas/.rvm/gems/ruby-2.0.0-p247/gems/cap-ec2-0.0.17/lib/cap-ec2/ec2-handler.rb:46:in `defined_roles'
/Users/lucas/.rvm/gems/ruby-2.0.0-p247/gems/cap-ec2-0.0.17/lib/cap-ec2/ec2-handler.rb:25:in `status_table'
/Users/lucas/.rvm/gems/ruby-2.0.0-p247/gems/cap-ec2-0.0.17/lib/cap-ec2/tasks/ec2.rake:5:in `block (2 levels) in <top (required)>'
/Users/lucas/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.4.2/lib/rake/task.rb:240:in `call'
/Users/lucas/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.4.2/lib/rake/task.rb:240:in `block in execute'
/Users/lucas/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.4.2/lib/rake/task.rb:235:in `each'
/Users/lucas/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.4.2/lib/rake/task.rb:235:in `execute'
/Users/lucas/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.4.2/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
/Users/lucas/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
/Users/lucas/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.4.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
/Users/lucas/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.4.2/lib/rake/task.rb:165:in `invoke'
/Users/lucas/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.4.2/lib/rake/application.rb:150:in `invoke_task'
/Users/lucas/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.4.2/lib/rake/application.rb:106:in `block (2 levels) in top_level'
/Users/lucas/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.4.2/lib/rake/application.rb:106:in `each'
/Users/lucas/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.4.2/lib/rake/application.rb:106:in `block in top_level'
/Users/lucas/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.4.2/lib/rake/application.rb:115:in `run_with_threads'
/Users/lucas/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.4.2/lib/rake/application.rb:100:in `top_level'
/Users/lucas/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.4.2/lib/rake/application.rb:78:in `block in run'
/Users/lucas/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.4.2/lib/rake/application.rb:176:in `standard_exception_handling'
/Users/lucas/.rvm/gems/ruby-2.0.0-p247/gems/rake-10.4.2/lib/rake/application.rb:75:in `run'
/Users/lucas/.rvm/gems/ruby-2.0.0-p247/gems/capistrano-3.3.5/lib/capistrano/application.rb:15:in `run'
/Users/lucas/.rvm/gems/ruby-2.0.0-p247/gems/capistrano-3.3.5/bin/cap:3:in `<top (required)>'
/Users/lucas/.rvm/gems/ruby-2.0.0-p247/bin/cap:23:in `load'
/Users/lucas/.rvm/gems/ruby-2.0.0-p247/bin/cap:23:in `<main>'
Tasks: TOP => ec2:status

I believe this is caused by the following commit in capistrano:

https://github.com/capistrano/capistrano/commit/5bae7fb40ca59d60a859400ec52c709c7686c387

The available_roles method was removed. I think it's because there's a new concept of 'filters' in 3.3.x

ustuehler commented 9 years ago

Duplicate of #34?

andytinycat commented 9 years ago

Can you try with 0.0.18 and let me know if that fixes it for you?

ustuehler commented 9 years ago

Yes it does. Issue #39 remains, however. :)

andytinycat commented 9 years ago

Thanks to @freakphp, you should be all good now. Thanks for your patience!