class DTK::Client::TestModuleCreator

Public Class Methods

create_clone(type, module_name) click to toggle source
# File lib/command_helpers/test_module_creator.rb, line 24
    def create_clone(type, module_name)
            Response.wrap_helper_actions do
  modules_dir = OsUtil.test_clone_location()
  FileUtils.mkdir_p(modules_dir) unless File.directory?(modules_dir)
  target_repo_dir = OsUtil.module_location(type,module_name)

  begin
          FileUtils.mkdir_p(target_repo_dir)
    generate_model(module_name, target_repo_dir)
    generate_serverspec_files(module_name, target_repo_dir)
  rescue => e
          additional_error_msg = ""
    error_msg = "Create of directory (#{target_repo_dir}) failed."
    additional_error_msg = "Directory already exists" if e.message.include? "File exists"
    raise DTK::ErrorUsage.new(error_msg + " " + additional_error_msg,:log_error=>false)
  end
  {"module_directory" => target_repo_dir}
end
    end
generate_model(module_name, target_repo_dir) click to toggle source
# File lib/command_helpers/test_module_creator.rb, line 44
def generate_model(module_name, target_repo_dir)
        input = File.expand_path('test_module_templates/dtk.model.yaml.eruby', File.dirname(__FILE__))
        eruby = Erubis::Eruby.new(File.read(input))
        content = eruby.result(:module_name => module_name)
        File.open(target_repo_dir + "/dtk.model.yaml", "w") { |f| f.write(content) }
end
generate_serverspec_files(module_name, target_repo_dir) click to toggle source
# File lib/command_helpers/test_module_creator.rb, line 51
  def generate_serverspec_files(module_name, target_repo_dir)
          template_location = File.expand_path('test_module_templates', File.dirname(__FILE__))
          spec_helper_template = Erubis::Eruby.new(File.read(template_location + "/spec_helper.rb.eruby")).result
          spec_template = Erubis::Eruby.new(File.read(template_location + "/temp_component_spec.rb.eruby")).result

          begin
                  #Create standard serverspec structure
                  FileUtils.mkdir_p(target_repo_dir + "/serverspec/spec/localhost")
                  File.open(target_repo_dir + "/serverspec/spec/spec_helper.rb", "w") { |f| f.write(spec_helper_template) }
                  File.open(target_repo_dir + "/serverspec/spec/localhost/temp_component_spec.rb", "w") { |f| f.write(spec_template) }
          rescue => e
                  error_msg = "Generating serverspec files failed."
DtkLogger.instance.error_pp(e.message, e.backtrace)
raise DTK::ErrorUsage.new(error_msg,:log_error=>false)
          end
  end