class Chef::Provider::OneFlowService
Implementation of Provider
class.
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
# File lib/chef/provider/one_flow_service.rb, line 34 def initialize(*args) super if !@new_resource.flow_url.nil? flow_url = @new_resource.flow_url elsif !run_context.chef_provisioning.flow_url.nil? flow_url = run_context.chef_provisioning.flow_url elsif !ENV['ONE_FLOW_URL'].nil? flow_url = ENV['ONE_FLOW_URL'] else fail 'OneFlow API URL must be specified.' end @flow_lib = Chef::Provisioning::OpenNebulaDriver::FlowLib.new(flow_url, driver.one.client.one_auth) end
Public Instance Methods
load_current_resource()
click to toggle source
# File lib/chef/provider/one_flow_service.rb, line 52 def load_current_resource @current_resource = Chef::Resource::OneFlowService.new(@new_resource.name, run_context) service_id = @flow_lib.get_unique_service_id(@new_resource.name, true) @current_resource.exists = !service_id.nil? return unless @current_resource.exists if @new_resource.template.nil? @current_resource.template_equal = true else one_tpl_id = @new_resource.template.is_a?(Fixnum) ? @new_resource.template : @flow_lib.get_unique_template_id(@new_resource.template) new_service_template = @flow_lib.get_template(one_tpl_id) new_service_template = @flow_lib.normalize_template(@new_resource.name, driver, @flow_lib.merge_template(new_service_template, @new_resource.template_options, true)) new_service_template.delete(:name) new_service_template[:roles].each { |role| [:cardinality, :vm_template_contents].each { |key| role.delete(key) } } current_service_template = @flow_lib.get_reduced_service_template(service_id) @current_resource.template_equal = @flow_lib.hash_eq?(new_service_template, current_service_template) end @current_resource.mode(@flow_lib.get_service_permissions(service_id)) @current_resource.mode_equal = @new_resource.mode == @current_resource.mode @current_resource.in_running_state = @flow_lib.get_service_state(service_id) == @flow_lib.class::SERVICE_RUNNING @current_resource.equal = @current_resource.template_equal && @current_resource.mode_equal && @current_resource.in_running_state end
whyrun_supported?()
click to toggle source
# File lib/chef/provider/one_flow_service.rb, line 48 def whyrun_supported? true end
Protected Instance Methods
driver()
click to toggle source
# File lib/chef/provider/one_flow_service.rb, line 341 def driver @new_resource.driver.nil? ? run_context.chef_provisioning.current_driver : run_context.chef_provisioning.driver_for(@new_resource.driver) end