Class: Publisher::Tomcat

Inherits:
Object
  • Object
show all
Defined in:
lib/depengine/publisher/tomcat.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#application_nameObject

Returns the value of attribute application_name.



6
7
8
# File 'lib/depengine/publisher/tomcat.rb', line 6

def application_name
  @application_name
end

#catalina_homeObject

Returns the value of attribute catalina_home.



7
8
9
# File 'lib/depengine/publisher/tomcat.rb', line 7

def catalina_home
  @catalina_home
end

#check_hostObject

Returns the value of attribute check_host.



10
11
12
# File 'lib/depengine/publisher/tomcat.rb', line 10

def check_host
  @check_host
end

#initd_scriptObject

Returns the value of attribute initd_script.



5
6
7
# File 'lib/depengine/publisher/tomcat.rb', line 5

def initd_script
  @initd_script
end

#logfilenameObject

Returns the value of attribute logfilename.



9
10
11
# File 'lib/depengine/publisher/tomcat.rb', line 9

def logfilename
  @logfilename
end

#runnersObject

Returns the value of attribute runners.



4
5
6
# File 'lib/depengine/publisher/tomcat.rb', line 4

def runners
  @runners
end

#serversObject

Returns the value of attribute servers.



3
4
5
# File 'lib/depengine/publisher/tomcat.rb', line 3

def servers
  @servers
end

#tomcat_contextObject

Returns the value of attribute tomcat_context.



8
9
10
# File 'lib/depengine/publisher/tomcat.rb', line 8

def tomcat_context
  @tomcat_context
end

#workerObject

Returns the value of attribute worker.



11
12
13
# File 'lib/depengine/publisher/tomcat.rb', line 11

def worker
  @worker
end

Instance Method Details

#deploy(options = {}) ⇒ Object



13
14
15
16
17
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
# File 'lib/depengine/publisher/tomcat.rb', line 13

def deploy(options={})
  Helper.validates_presence_of servers, "servers not set"
  Helper.validates_presence_of runners, "runners not set"
  Helper.validates_presence_of initd_script, "initd_script not set"
  Helper.validates_presence_of application_name, "application_name not set"
  Helper.validates_presence_of catalina_home, "catalina_home not set"
  Helper.validates_presence_of tomcat_context, "tomcat_context not set"
  Helper.validates_presence_of logfilename, "logfilename not set"
  Helper.validates_presence_of check_host, "check_host not set"

  servers.each do |server|
    $log.writer.info "========== Processing #{server}"
    is_runner = runners.include?(server)
    if is_runner
      $log.writer.info "Stopping tomcat on #{server}"
      stdout = worker.remote_execute("sudo #{initd_script} stop",  :remote_host => server)
      $log.writer.info stdout
    end
    $log.writer.info "Deploying to webapp"
    worker.rsync("target/#{application_name}/", "#{catalina_home}/webapps/#{tomcat_context}", :remote_host => server)
    if is_runner
      $log.writer.info "Starting tomcat on #{server}"
      stdout = worker.remote_execute("sudo #{initd_script} start",  :remote_host => server)
      $log.writer.info stdout
      stdout = worker.remote_execute("sleep 10; tail -50 #{catalina_home}/logs/#{logfilename}",  :remote_host => server)
      $log.writer.debug stdout
      worker.assert_url_response_of(:check_host => check_host)
    end
  end
end