Class: Chef::Provider::Template

Inherits:
File show all
Extended by:
Deprecation::Warnings
Includes:
Deprecation::Provider::Template
Defined in:
lib/chef/provider/template.rb,
lib/chef/provider/template/content.rb

Defined Under Namespace

Classes: Content

Constant Summary

Constants included from Mixin::ShellOut

Mixin::ShellOut::DEPRECATED_OPTIONS

Instance Attribute Summary

Attributes inherited from File

#deployment_strategy

Attributes inherited from Chef::Provider

#action, #current_resource, #new_resource, #run_context

Instance Method Summary collapse

Methods included from Deprecation::Warnings

add_deprecation_warnings_for

Methods included from Deprecation::Provider::Template

#content_matches?, #rendered, #resource_cookbook, #template_finder, #template_location

Methods included from Deprecation::Mixin::Template

#render_template

Methods inherited from File

#action_create, #action_create_if_missing, #action_delete, #action_touch, #manage_symlink_access?, #whyrun_supported?

Methods included from Deprecation::Provider::File

#backup, #compare_content, #deploy_tempfile, #diff_current, #diff_current_from_content, #is_binary?, #set_all_access_controls, #set_content, #setup_acl, #update_new_file_state

Methods included from Mixin::FileClass

#file_class

Methods included from Util::Selinux

#restore_security_context, #selinux_enabled?

Methods included from Mixin::ShellOut

#run_command_compatible_options, #shell_out, #shell_out!

Methods included from Mixin::Checksum

#checksum

Methods included from Mixin::EnforceOwnershipAndPermissions

#access_controls, #enforce_ownership_and_permissions

Methods inherited from Chef::Provider

#action_nothing, #cleanup_after_converge, #converge_by, #cookbook_name, #events, #node, #process_resource_requirements, #requirements, #resource_collection, #resource_updated?, #run_action, #set_updated_status, #whyrun_mode?, #whyrun_supported?

Methods included from DSL::Recipe

#method_missing

Methods included from Mixin::ConvertToClassName

#convert_to_class_name, #convert_to_snake_case, #filename_to_qualified_string, #snake_case_basename

Constructor Details

#initialize(new_resource, run_context) ⇒ Template

Returns a new instance of Template.



34
35
36
37
# File 'lib/chef/provider/template.rb', line 34

def initialize(new_resource, run_context)
  @content_class = Chef::Provider::Template::Content
  super
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Chef::DSL::Recipe

Instance Method Details

#define_resource_requirementsObject



44
45
46
47
48
49
50
51
52
53
# File 'lib/chef/provider/template.rb', line 44

def define_resource_requirements
  super

  requirements.assert(:create, :create_if_missing) do |a|
    a.assertion { ::File::exists?(content.template_location) }
    a.failure_message "Template source #{content.template_location} could not be found."
    a.whyrun "Template source #{content.template_location} does not exist. Assuming it would have been created."
    a.block_action!
  end
end

#load_current_resourceObject



39
40
41
42
# File 'lib/chef/provider/template.rb', line 39

def load_current_resource
  @current_resource = Chef::Resource::Template.new(@new_resource.name)
  super
end