-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdefault.rb
89 lines (76 loc) · 2.99 KB
/
default.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
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
87
88
use_local_file="#{node[:cp_liquibase][:use_local_dist]}"
dist_local_file_path="#{node[:cp_liquibase][:dist_local_file_path]}"
group "#{node['cp_liquibase']['group']}" do
action :create
end
user node['cp_liquibase']['user'] do
gid node['cp_liquibase']['group']
shell "/bin/bash"
action :create
end
directory "#{node['cp_liquibase']['install_dir']}" do
mode "0775"
owner "#{node['cp_liquibase']['user']}"
group "#{node['cp_liquibase']['group']}"
action :create
recursive true
end
directory "#{node['cp_liquibase']['dist_dir']}" do
mode "0775"
owner "#{node['cp_liquibase']['user']}"
group "#{node['cp_liquibase']['group']}"
action :create
recursive true
end
remote_file "#{node['cp_liquibase']['install_dir']}/#{node['cp_liquibase']['binary_file_name']}" do
owner "#{node['cp_liquibase']['user']}"
group "#{node['cp_liquibase']['group']}"
source "#{node['cp_liquibase']['url']}"
action :create_if_missing
end
package "unzip"
bash "extract liquibase" do
user "#{node['cp_liquibase']['user']}"
group "#{node['cp_liquibase']['group']}"
code <<-EOH
unzip -o #{node['cp_liquibase']['install_dir']}/#{node['cp_liquibase']['binary_file_name']} -d #{node['cp_liquibase']['install_dir']}
EOH
end
remote_file "#{node['cp_liquibase']['dist_dir']}/#{node['cp_liquibase']['driver_file_name']}" do
owner "#{node['cp_liquibase']['user']}"
group "#{node['cp_liquibase']['group']}"
source "#{node['cp_liquibase']['driver_jar_url']}"
action :create_if_missing
end
if "#{node[:cp_liquibase][:use_local_dist]}" == "true"
file "#{node['cp_liquibase']['dist_dir']}/sql.zip" do
owner 'root'
group 'root'
mode 0644
content ::File.open("#{dist_local_file_path}").read
action :create
end
else
bash "deploy sql binary" do
user "#{node['cp_liquibase']['user']}"
group "#{node['cp_liquibase']['group']}"
code <<-EOH
curl -o #{node['cp_liquibase']['dist_dir']}/sql.zip --user #{node['cp_baseconfiguration']['artifactory']['username']}:#{node['cp_baseconfiguration']['artifactory']['password']} #{node['cp_liquibase']["sql_binary_url"]}
EOH
end
end
bash "extract sql binary" do
user "#{node['cp_liquibase']['user']}"
group "#{node['cp_liquibase']['group']}"
code <<-EOH
unzip -o #{node['cp_liquibase']['dist_dir']}/sql.zip -d #{node['cp_liquibase']['dist_dir']}
EOH
end
bash "execute liquibase" do
user "#{node['cp_liquibase']['user']}"
group "#{node['cp_liquibase']['group']}"
code <<-EOH
cd #{node['cp_liquibase']['dist_dir']}
java -jar #{node['cp_liquibase']['install_dir']}/liquibase.jar --changeLogFile=#{node['cp_liquibase']['dist_dir']}/#{node['cp_liquibase']['zip_foldername']}/changelog.xml --username=#{node['cp_liquibase']['db_user']} --password=#{node['cp_liquibase']['db_password']} --url=#{node['cp_liquibase']['db_url']} --driver=#{node['cp_liquibase']['db_driver']} --classpath=#{node['cp_liquibase']['dist_dir']}/#{node['cp_liquibase']['driver_file_name']} #{node['cp_liquibase']['command']}
EOH
end