Class: Deployment::Worker

Inherits:
Object
  • Object
show all
Defined in:
lib/depengine/dsl/deployment.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeWorker

Returns a new instance of Worker.



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/depengine/dsl/deployment.rb', line 21

def initialize
  # initialize logging
  if not $recipe_config[:log_level].nil?
    case $recipe_config[:log_level]
      when "DEBUG"
        $log.level('stdout_logger', Log4r::DEBUG)
      when "INFO"
        $log.level('stdout_logger', Log4r::INFO)
      when "WARN"
        $log.level('stdout_logger', Log4r::WARN)
      when "ERROR"
        $log.level('stdout_logger', Log4r::ERROR)
      when "FATAL"
        $log.level('stdout_logger', Log4r::FATAL)
    end
  end
  if $recipe_config[:log_trace]
    $log.enable_trace
  end

  load_modules!

  # generate hash from environemnt variables and merge
  $recipe_config.merge! Helper.get_environemnt_variables($recipe_config['env_exceptions'] || "LS_COLORS TERMCAP")

  @version = Helper.parse_version($recipe_config[:version])

  # validate needed environment variables
  Helper.validates_not_empty $recipe_config[:env], "env is not set"
  Helper.validates_not_empty $recipe_config[:version], "version is not set"
  Helper.validates_not_empty $recipe_config[:deploy_home], "deploy_home is not set"

  if $recipe_config[:skip_cdb_setup]
    @cdb = {}
  else
    $recipe_config['cdb_host'] ||= "filesystem"
    $recipe_config['cdb_context'] ||= ""
    @cdb = get_cdb_parameters(@version['cdb'])
  end

  setup_workspace!

  # the logfile needs a correct WORKSPACE and the initial dirs
  # so we have to set it here
  if $recipe_config[:log_file]
    level = Log4r::INFO
    $log.writer.info "Logfile level set to #{$recipe_config[:log_file_level]}"
    case $recipe_config[:log_file_level]
      when "DEBUG"
        level = Log4r::DEBUG
      when "INFO"
        level = Log4r::INFO
      when "WARN"
        level = Log4r::WARN
      when "ERROR"
        level = Log4r::ERROR
      when "FATAL"
        level = Log4r::FATAL
    end
    $log.add_outputter(Log4r::FileOutputter.new('log_file', \
      :filename => File.join($recipe_config[:deploy_home], 'log', \
                             $recipe_config[:log_file])), \
      level)
  end

end

Instance Attribute Details

#cdbObject

Returns the value of attribute cdb.



19
20
21
# File 'lib/depengine/dsl/deployment.rb', line 19

def cdb
  @cdb
end

Instance Method Details

#copy_to_workspace!(dir) ⇒ Object



126
127
128
# File 'lib/depengine/dsl/deployment.rb', line 126

def copy_to_workspace!(dir)
  Processor::copy(File.join($recipe_config[:recipe_base_dir], dir), $recipe_config[:deploy_home])
end

#load_modules!Object



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/depengine/dsl/deployment.rb', line 88

def load_modules!
  require_relative 'fileops'
  require_relative 'zip'
  require_relative 'template'
  require_relative 'cdb'
  require_relative 'repository'
  require_relative 'dweb'
  require_relative 'remote'
  require_relative 'publisher'
  require_relative 'patch'
  require_relative 'iis'
  require_relative 'helper'

  [Methods::Zip, Methods::Fileops, Methods::Template, Methods::CDB,
   Methods::Repository, Methods::DWEB, Methods::Remote, Methods::Publisher,
   Methods::Patch, Methods::IIS, Methods::Helper].each do |mod|
    self.class.class_eval do
      include mod
    end
  end
end

#setup_workspace!Object



110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# File 'lib/depengine/dsl/deployment.rb', line 110

def setup_workspace!
  if $recipe_config[:cleanup_workspace_before]
     $log.writer.info "Remove all files from Workspace"
    Helper.cleanup_workspace!($recipe_config[:deploy_home], $recipe_config[:cleanup_workspace_before])
  end

  Helper.init_workspace($recipe_config[:deploy_home])

  if $recipe_config[:copy_to_workspace]
    $recipe_config[:copy_to_workspace] = ["config"] unless $recipe_config[:copy_to_workspace].respond_to?(:each)
    $recipe_config[:copy_to_workspace].each do |dir|
      copy_to_workspace!(dir)
    end
  end
end