sous-chefs / consul

Development repository for the consul cookbook

Home Page:https://supermarket.chef.io/cookbooks/consul

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

undefined method `join_path' for PoiseArchive::Resources::PoiseArchive::Resource

jslusher opened this issue · comments

I started getting the following error when running a chef-client on nodes using the consul cookbook:

  * consul_installation[1.6.2] action create

    ================================================================================
    Error executing action `create` on resource 'consul_installation[1.6.2]'
    ================================================================================

    NoMethodError
    -------------
    undefined method `join_path' for PoiseArchive::Resources::PoiseArchive::Resource

    Cookbook Trace:
    ---------------
    /var/chef/cache/cookbooks/consul/libraries/consul_installation_binary.rb:52:in `block (2 levels) in action_create'
    /var/chef/cache/cookbooks/consul/libraries/consul_installation_binary.rb:51:in `block in action_create'
    /var/chef/cache/cookbooks/poise/files/halite_gem/poise/helpers/subcontext_block.rb:54:in `instance_eval'
    /var/chef/cache/cookbooks/poise/files/halite_gem/poise/helpers/subcontext_block.rb:54:in `subcontext_block'
    /var/chef/cache/cookbooks/poise/files/halite_gem/poise/helpers/notifying_block.rb:67:in `notifying_block'
    /var/chef/cache/cookbooks/consul/libraries/consul_installation_binary.rb:44:in `action_create'
...
  - ohai (5.3.0)
  - poise-python (1.7.0)
  - poise (2.8.2)
  - poise-languages (2.1.2)
  - poise-archive (1.5.0)
 ...
  - yum-epel (3.3.0)
...
  - consul (3.3.0)
...
  - golang (1.7.0)
  - poise-service (1.5.2)
  - hashicorp-vault (3.0.2)

version 14.9.13 on centos 7 in AWS

It seems to be a poise dependency. It coincides with an update of the vault cookbook that removes the default recipe and I noticed the poise deps were removed there.

is it by any chance you solved this issue ? I also have this problem.

I'm working around it at the moment by locking the version of this (consul) cookbook to 3.1.0, but I suspect there needs to be a change in one of the poise-* dependencies before it's fixed.

Hi @jslusher, I tried to pin the consul cookbook on version 3.1.0, but it doesn't seems to temporary resolve the issue. Would you be more specific ?

I see the join_path method in consul libraries, is it possible to do the modification there ?

I didn't have to do any tampering with the cookbook itself, I just had to set this in metadata.rb in my wrapper cookbook:

depends 'consul', '= 3.1.0'

I can confirm it's broken in the current state @tas50, investigating.

Merged, we can close this.