chef/cookbooks/cpe_chef_handlers/resources/cpe_chef_handlers.rb (42 lines of code) (raw):

# # Cookbook:: cpe_chef_handlers # Resources:: cpe_chef_handlers # # vim: syntax=ruby:expandtab:shiftwidth=2:softtabstop=2:tabstop=2 # # Copyright:: (c) 2019-present, Uber Technologies, Inc. # All rights reserved. # # This source code is licensed under the Apache 2.0 license found in the # LICENSE file in the root directory of this source tree. # unified_mode true resource_name :cpe_chef_handlers provides :cpe_chef_handlers, :os => ['darwin', 'linux', 'windows'] default_action :manage action :manage do configure if configure? && !remove? remove if remove? end action_class do def configure? node['cpe_chef_handlers']['configure'] end def remove? node['cpe_chef_handlers']['remove'] end def configure conf = node['cpe_chef_handlers']['configs'].to_h.compact return if conf.empty? && conf.empty? config_dir = node['cpe_chef_handlers']['paths']['configdir'] directory config_dir do action :create end # Assemble path to the client_handlers.rb config handler_config = CPE::ChefHandlers.config( config_dir, ) template handler_config do source 'client_handlers.rb.erb' variables( 'handlerdir' => node['cpe_chef_handlers']['paths']['handlerdir'], 'configs' => conf, ) end end def remove handler_config = CPE::ChefHandlers.config( node['cpe_chefctl']['config']['paths']['configdir'], ) file handler_config do action :delete end end end