module ItamaeSpec::Task::Base
Constants
- EnvironmentsLoadError
- RoleLoadError
Public Class Methods
get_environments(node_file)
click to toggle source
# File lib/itamae-spec/task/base.rb, line 58 def get_environments(node_file) environments = JSON.parse(File.read(node_file))['environments']['set'] rescue JSON::ParserError raise EnvironmentsLoadError, "JSON Parser Faild. - #{node_file}" rescue Errno::ENOENT raise EnvironmentsLoadError, "No such node file or directory - #{node_fie}" else environments end
get_node_recipes(node_file)
click to toggle source
# File lib/itamae-spec/task/base.rb, line 85 def get_node_recipes(node_file) recipes = [] JSON.parse(File.read(node_file))['run_list'].each do |recipe| if /recipe\[(.+)::(.+)\]/.match?(recipe) recipes << { recipe.gsub(/recipe\[(.+)::(.+)\]/, '\1') => recipe.gsub(/recipe\[(.+)::(.+)\]/, '\2') } elsif /recipe\[(.+)\]/.match?(recipe) recipes << { recipe.gsub(/recipe\[(.+)\]/, '\1') => 'default' } elsif /role\[(.+)\]/.match?(recipe) recipes << get_role_recipes(recipe.gsub(/role\[(.+)\]/, '\1')) end end rescue JSON::ParserError raise RoleLoadError, "JSON Parser Faild. - #{node_file}" rescue Errno::ENOENT raise RoleLoadError, "No such node file or directory - #{node_fie}" else recipes end
get_role_recipes(role)
click to toggle source
# File lib/itamae-spec/task/base.rb, line 68 def get_role_recipes(role) recipes = [] JSON.parse(File.read("roles/#{role}.json"))['run_list'].each do |recipe| if /recipe\[(.+)::(.+)\]/.match?(recipe) recipes << { recipe.gsub(/recipe\[(.+)::(.+)\]/, '\1') => recipe.gsub(/recipe\[(.+)::(.+)\]/, '\2') } elsif /recipe\[(.+)\]/.match?(recipe) recipes << { recipe.gsub(/recipe\[(.+)\]/, '\1') => 'default' } end end rescue JSON::ParserError raise RoleLoadError, "JSON Parser Faild. - roles/#{role}.json" rescue Errno::ENOENT raise RoleLoadError, "No such role file or directory - roles/#{role}.json" else recipes end
get_roles(node_file)
click to toggle source
# File lib/itamae-spec/task/base.rb, line 43 def get_roles(node_file) roles = [] JSON.parse(File.read(node_file))['run_list'].each do |recipe| if /role\[(.+)\]/.match?(recipe) roles << recipe.gsub(/role\[(.+)\]/, '\1') end end rescue JSON::ParserError raise RoleLoadError, "JSON Parser Faild. - #{node_file}" rescue Errno::ENOENT raise RoleLoadError, "No such node file or directory - #{node_fie}" else roles end
write_tmp_nodes(filename) { |f| ... }
click to toggle source
# File lib/itamae-spec/task/base.rb, line 104 def write_tmp_nodes(filename) Itamae.logger.info "Output attributes log file to: tmp-nodes/#{filename}.json" File.open "tmp-nodes/#{filename}.json", 'w' do |f| f.flock File::LOCK_EX yield f f.flock File::LOCK_UN end end