forked from ajgon/opsworks_ruby
/
undeploy.rb
36 lines (28 loc) · 1.26 KB
/
undeploy.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# frozen_string_literal: true
prepare_recipe
every_enabled_application do |application, _deploy|
databases = []
every_enabled_rds(application) do |rds|
databases.push(Drivers::Db::Factory.build(application, node, rds: rds))
end
scm = Drivers::Scm::Factory.build(application, node)
framework = Drivers::Framework::Factory.build(application, node, databases: databases)
appserver = Drivers::Appserver::Factory.build(application, node)
worker = Drivers::Worker::Factory.build(application, node, databases: databases)
webserver = Drivers::Webserver::Factory.build(application, node)
fire_hook(:before_undeploy, context: self, items: databases + [scm, framework, appserver, worker, webserver])
deploy application['shortname'] do
deploy_to deploy_dir(application)
user node['deployer']['user'] || 'root'
group www_group
[appserver, webserver].each do |server|
server.notifies[:undeploy].each do |config|
notifies config[:action],
config[:resource].respond_to?(:call) ? config[:resource].call(application) : config[:resource],
config[:timer]
end
end
action :rollback
end
fire_hook(:after_undeploy, context: self, items: databases + [scm, framework, appserver, worker, webserver])
end