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.



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
# File 'lib/depengine/dsl/deployment.rb', line 20

def initialize
  # initialize logging
  unless $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
  $log.enable_trace if $recipe_config[:log_trace]

  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
  return unless $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

Instance Attribute Details

#cdbObject

Returns the value of attribute cdb.



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

def cdb
  @cdb
end

Instance Method Details

#copy_to_workspace!(dir) ⇒ Object



121
122
123
# File 'lib/depengine/dsl/deployment.rb', line 121

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

#load_modules!Object



83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/depengine/dsl/deployment.rb', line 83

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 'executor'
  require_relative 'helper'

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

#setup_workspace!Object



106
107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'lib/depengine/dsl/deployment.rb', line 106

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])

  return unless $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