class BrpmAuto
Attributes
all_params[R]
brpm_version[R]
config[R]
framework_root_path[R]
global_params[R]
integration_settings[R]
logger[R]
params[R]
request_params[R]
version[R]
Public Class Methods
brpm_installed?()
click to toggle source
# File lib/brpm_auto.rb, line 151 def brpm_installed? ENV["BRPM_HOME"] and ! ENV["BRPM_HOME"].empty? end
get_global_params()
click to toggle source
# File lib/brpm_auto.rb, line 82 def get_global_params server_config_file_path = "#{self.params.config_dir}/server.yml" if File.exists?(server_config_file_path) YAML.load_file(server_config_file_path) || {} else {} end end
get_request_params_for_request(automation_results_dir, application, request_id)
click to toggle source
# File lib/brpm_auto.rb, line 143 def get_request_params_for_request(automation_results_dir, application, request_id) RequestParams.new_for_request(automation_results_dir, application, request_id) end
init()
click to toggle source
# File lib/brpm_auto.rb, line 32 def init @framework_root_path = File.expand_path("#{File.dirname(__FILE__)}/..") self.extend Utilities @config = get_config @version = @config["version"] @brpm_version = get_brpm_version if self.brpm_installed? end
initialize_integration_settings(dns, username, password, details)
click to toggle source
# File lib/brpm_auto.rb, line 147 def initialize_integration_settings(dns, username, password, details) @integration_settings = IntegrationSettings.new(dns, username, password, details) end
initialize_logger(log_file, also_log_to_console = false)
click to toggle source
# File lib/brpm_auto.rb, line 104 def initialize_logger(log_file, also_log_to_console = false) @logger = SimpleLogger.new(log_file, also_log_to_console) end
initialize_request_params(path)
click to toggle source
# File lib/brpm_auto.rb, line 139 def initialize_request_params(path) @request_params = RequestParams.new(path) end
load_customer_include_file()
click to toggle source
# File lib/brpm_auto.rb, line 91 def load_customer_include_file customer_include_file_path = "#{self.params.config_dir}/customer_include.rb" params = {} if File.exists?(customer_include_file_path) load customer_include_file_path # use load instead of require to avoid having to restart BRPM after modifying the customer include file in a resource automation scenario if defined?(get_customer_include_params) params = get_customer_include_params || {} end end params end
log(message)
click to toggle source
# File lib/brpm_auto.rb, line 112 def log(message) @logger.log(message) end
log_error(message)
click to toggle source
# File lib/brpm_auto.rb, line 116 def log_error(message) @logger.log_error(message) end
message_box(message, m_type = "sep")
click to toggle source
# File lib/brpm_auto.rb, line 120 def message_box(message, m_type = "sep") @logger.message_box(message, m_type) end
pack_response(argument_name, response)
click to toggle source
# File lib/brpm_auto.rb, line 124 def pack_response(argument_name, response) flag = "#------ Block to Set Pack Response ---------------#\n" unless argument_name.nil? if response.is_a?(Hash) # Used for out-table output parameter flag += "$$SS_Pack_Response{#{argument_name}@@#{response.to_json}}$$" else flag += "$$SS_Pack_Response{#{argument_name}=>#{response}}$$" end end flag += "\n#------- End Set Pack Response Block ---------------#\n" @logger.log(flag, false) flag end
require_module(module_name)
click to toggle source
# File lib/brpm_auto.rb, line 155 def require_module(module_name) module_spec = Gem::Specification.find_by_name(module_name) # will raise an error when the module is not installed module_path = module_spec.gem_dir module_config_file_path = "#{module_path}/config.yml" if File.exist?(module_config_file_path) module_config = YAML.load_file(module_config_file_path) if module_config["dependencies"] BrpmAuto.log "Loading the dependent modules..." module_config["dependencies"].each do |dependency| if dependency.is_a?(Hash) dep_module_name = dependency.keys[0] else dep_module_name = dependency end BrpmAuto.log "Loading module #{dep_module_name}..." require_module(dep_module_name) end end else BrpmAuto.log "No config file found." end BrpmAuto.log "Loading the libraries of module #{module_name}..." require_libs(module_path) module_path end
run_from_brpm()
click to toggle source
# File lib/brpm_auto.rb, line 108 def run_from_brpm @params.run_from_brpm end
setup(params = {})
click to toggle source
# File lib/brpm_auto.rb, line 43 def setup(params = {}) @params = Params.new(params) @global_params = get_global_params @global_params.merge!(load_customer_include_file) if @params.run_from_brpm @logger = BrpmLogger.new @request_params = RequestParams.new_for_request(@params.automation_results_dir, @params.application, @params.request_id) else initialize_logger(@params.log_file, @params.also_log_to_console) initialize_request_params(@params.output_dir) end @all_params = AllParams.new(@params, @request_params) if @params["SS_integration_dns"] @integration_settings = IntegrationSettings.new( @params["SS_integration_dns"], @params["SS_integration_username"], @params["SS_integration_password"], @params["SS_integration_details"], @params["SS_project_server"], @params["SS_project_server_id"] ) elsif defined?(SS_integration_dns) @integration_settings = IntegrationSettings.new( SS_integration_dns, SS_integration_username, SS_integration_password, SS_integration_details, SS_project_server, SS_project_server_id ) end @params end
Private Class Methods
get_brpm_version()
click to toggle source
# File lib/brpm_auto.rb, line 228 def get_brpm_version unless self.brpm_installed? raise "BRPM is not installed." end knob_file = "#{ENV["BRPM_HOME"]}/server/jboss/standalone/deployments/RPM-knob.yml" unless File.exists?(knob_file) raise "Could not find the knob file at the expected location (#{knob_file})" end knob = YAML.load_file(knob_file) version_content = File.read("#{knob["application"]["root"]}/VERSION") version_content.scan(/VERSION=([0-9\.]*)/)[0][0] end
get_config()
click to toggle source
# File lib/brpm_auto.rb, line 224 def get_config YAML.load_file("#{@framework_root_path}/config.yml") end
require_files(files, log = true)
click to toggle source
# File lib/brpm_auto.rb, line 202 def require_files(files, log = true) failed_files = [] error_messages = [] files.each do |file| if File.file?(file) begin require file rescue NameError => ne # when we require a set of files with inter-dependencies, the order is important, therefore we will retry the failed files later failed_files << file error_messages << ne end end end if failed_files.count > 0 if failed_files.count == files.count raise NameError, "Following files failed loading: #{failed_files.join(", ")}\nError messages: #{error_messages.join(", ")}" else require_files(failed_files, log) end end end
require_libs(module_path, log = true)
click to toggle source
# File lib/brpm_auto.rb, line 193 def require_libs(module_path, log = true) lib_path = "#{module_path}/lib/**/*.rb" log_message = "Loading all files from #{lib_path}..." log ? (BrpmAuto.log log_message) : (print "#{Time.now.strftime("%Y-%m-%d %H:%M:%S")}|#{log_message}\n") require_files(Dir[lib_path], log) end
require_libs_no_file_logging(module_path)
click to toggle source
# File lib/brpm_auto.rb, line 189 def require_libs_no_file_logging(module_path) require_libs(module_path, false) end