Class: Deployment::Worker

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

Instance Method Summary collapse

Constructor Details

#initializeWorker

Returns a new instance of Worker.



18
19
20
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 18

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"

  # read configuration from cdb
  $recipe_config['cdb_host'] ||= "filesystem"
  $recipe_config['cdb_context'] ||= ""
  @cdb = get_cdb_parameters(@version['cdb'])

  # clean workspace if needed
  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
  # init workspace with default directorys
  Helper.init_workspace($recipe_config[:deploy_home])

  # 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 Method Details

#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