evertrue / exhibitor-cookbook

Cookbook for Netflix Exhibitor
Other
16 stars 27 forks source link

Refactor to take advantage of zookeeper ~> 8.0 #36

Closed jeffbyrnes closed 7 years ago

jeffbyrnes commented 8 years ago

As of zookeeper cookbook v7.0.0, that cookbook is a true library cookbook, entirely made up of custom resources.

This cookbook should be updated to take advantage.

Spec

jeffbyrnes commented 8 years ago

Refactor exhibitor cookbook to use custom resources

williamsjj commented 8 years ago

Thanks Jeff!

vanwho commented 8 years ago

cool! re: the first concern, I would be of the mind to continue the wrapping of zookeeper resources. the use case is basically always exhibitor over zookeeper, so there's not quite a standalone use case, that I see. it also keeps it easy for our wrapper cookbooks, and a clear chain of command, so to speak. also, if it diverges, that's definitely more overhead to maintain and be sure things don't step on each other's toes.

so my vote, for whatever it's worth, is to continue wrapping :)

jeffbyrnes commented 8 years ago

@vanwho thanks for those thoughts. You’re right, there’s really no case ever that you’d use Exhibitor standalone without ZooKeeper. In fact, #9 calls this out.

So perhaps the exhibitor resource, such as it might be, has a property for the requested ZooKeeper config (to be passed to a zookeeper_config resource internally)? And is a kind of wrapper resource?

BDeus commented 7 years ago

Any news about upgrade on zookeeper 7 or 8? There are some bad practices in zookeeper 6 which is annoying.

jeffbyrnes commented 7 years ago

Should probably tackle that & see about refactoring later. Thanks for the bump!

davidsayers commented 7 years ago

Hi, any update on this? I am getting the following error when using the latest version of chef-client and zookeeper 6.0.0. Zookeeper 8.1.1 works with the latest version of chef-client.

* user_resource_abstract_base_class[zookeeper] action create[2017-01-18T13:17:59+00:00] WARN: Class Chef::Provider::User does not declare 'provides :user'.
       [2017-01-18T13:17:59+00:00] WARN: This will no longer work in Chef 13: you must use 'provides' to use the resource's DSL.

             ================================================================================
             Error executing action `create` on resource 'user_resource_abstract_base_class[zookeeper]'
             ================================================================================

             NotImplementedError
             -------------------
             NotImplementedError

             Cookbook Trace:
             ---------------
             /tmp/kitchen/cache/cookbooks/zookeeper/providers/default.rb:51:in `block in class_from_file'

             Compiled Resource:
             ------------------
             # Declared in 

             user_resource_abstract_base_class("zookeeper") do
        action [:create]
        supports {:manage_home=>false, :non_unique=>false}
        retries 0
        retry_delay 2
        default_guard_interpreter :default
        username "zookeeper"
        gid "zookeeper"
        home "/home/zookeeper"
        system true
        manage_home true
        iterations 27855
             end

             Platform:
             ---------
             x86_64-linux

           ================================================================================
           Error executing action `install` on resource 'zookeeper[3.4.8]'
           ================================================================================

           NotImplementedError
           -------------------
           user_resource_abstract_base_class[zookeeper] (dynamically defined) had an error: NotImplementedError: NotImplementedError

           Cookbook Trace:
           ---------------
           /tmp/kitchen/cache/cookbooks/zookeeper/providers/default.rb:51:in `block in class_from_file'

           Resource Declaration:
           ---------------------
           # In /tmp/kitchen/cache/cookbooks/zookeeper/recipes/install.rb

            30: zookeeper node['zookeeper']['version'] do
            31:   user        node['zookeeper']['user']
            32:   user_home   node['zookeeper']['user_home']
            33:   mirror      node['zookeeper']['mirror']
            34:   checksum    node['zookeeper']['checksum']
            35:   install_dir node['zookeeper']['install_dir']
            36:   log_dir     node['zookeeper']['log_dir']
            37:   data_dir    node['zookeeper']['config']['dataDir']
            38:   action      :install
            39: end
            40: 

           Compiled Resource:
           ------------------
           # Declared in /tmp/kitchen/cache/cookbooks/zookeeper/recipes/install.rb:30:in `from_file'

           zookeeper("3.4.8") do
             action [:install]
             retries 0
             retry_delay 2
             default_guard_interpreter :default
             declared_type :zookeeper
             cookbook_name "zookeeper"
             recipe_name "install"
             user "zookeeper"
             user_home "/home/zookeeper"
             mirror "http://apache.mirrors.tds.net/zookeeper/"
             checksum "f10a0b51f45c4f64c1fe69ef713abf9eb9571bc7385a82da892e83bb6c965e90"
             install_dir "/opt/zookeeper"
             log_dir "/var/log/zookeeper"
             data_dir "/var/lib/zookeeper"
             version "3.4.8"
           end

           Platform:
           ---------
           x86_64-linux

       Running handlers:
       [2017-01-18T13:17:59+00:00] ERROR: Running exception handlers
       Running handlers complete
       [2017-01-18T13:17:59+00:00] ERROR: Exception handlers complete
       Chef Client failed. 24 resources updated in 02 minutes 16 seconds
       [2017-01-18T13:17:59+00:00] FATAL: Stacktrace dumped to /tmp/kitchen/cache/chef-stacktrace.out
       [2017-01-18T13:17:59+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
       [2017-01-18T13:17:59+00:00] ERROR: zookeeper[3.4.8] (zookeeper::install line 30) had an error: NotImplementedError: user_resource_abstract_base_class[zookeeper] (dynamically defined) had an error: NotImplementedError: NotImplementedError
       [2017-01-18T13:18:00+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
jeffbyrnes commented 7 years ago

@davidsayers ugh, sorry mate. This has truly fallen by the wayside for me. I’ll try to free up some cycles, but a PR would certainly be welcome.