ucb_deployer 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Manifest +19 -0
- data/README.txt +0 -0
- data/Rakefile +22 -0
- data/bin/deployer +36 -0
- data/cas_web.xml +100 -0
- data/lib/confluence_deployer.rb +228 -0
- data/spec/build/confluence/lib/soulwing-casclient-x.x.x.jar +0 -0
- data/spec/build/confluence/src/confluence/WEB-INF/classes/confluence-init.properties +41 -0
- data/spec/build/confluence/src/confluence/WEB-INF/classes/seraph-config.xml +46 -0
- data/spec/build/confluence/src/confluence/WEB-INF/lib/postgresql-x.x.x.jar +0 -0
- data/spec/build/confluence/src/confluence/WEB-INF/lib/soulwing-casclient-x.x.x.jar +0 -0
- data/spec/build/confluence/src/confluence/WEB-INF/web.xml +1016 -0
- data/spec/confluence_deployer/confluence_deployer_spec.rb +104 -0
- data/spec/fixtures/bad_dot_cdeprc +1 -0
- data/spec/fixtures/confluence-init.properties +41 -0
- data/spec/fixtures/dot_cdeprc +7 -0
- data/spec/fixtures/seraph-config.xml +46 -0
- data/spec/fixtures/web.xml +1016 -0
- data/spec/spec_helper.rb +30 -0
- data/ucb_deployer.gemspec +32 -0
- metadata +93 -0
@@ -0,0 +1,104 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
describe ConfluenceDeployer do
|
4
|
+
before(:each) do
|
5
|
+
@cdeprc_file = File.expand_path(File.dirname(__FILE__) + '/../fixtures/dot_cdeprc')
|
6
|
+
@bad_cdeprc_file = File.expand_path(File.dirname(__FILE__) + '/../fixtures/bad_dot_cdeprc')
|
7
|
+
@cdep = ConfluenceDeployer.new(@cdeprc_file)
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
describe "#load_config" do
|
12
|
+
it "should load configuration options" do
|
13
|
+
@cdep.build_dir.should == "/path/to/build_dir"
|
14
|
+
@cdep.deploy_dir.should == "/path/to/deploy_dir"
|
15
|
+
@cdep.war_name.should == "war_name"
|
16
|
+
@cdep.svn_project_url.should == "svn.berkeley.edu/svn/ist-svn/berkeley/projects/ist/as/webapps/confluence_archives/tags"
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should raise error for invalid config options" do
|
20
|
+
lambda { @cdep.load_config(@bad_cdeprc_file) }.should raise_error(ConfluenceDeployer::ConfigError)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
describe "#config_web_xml" do
|
26
|
+
it "should configure souldwing (CAS auth) in web.xml" do
|
27
|
+
@cdep.build_dir = TEST_BUILD_DIR
|
28
|
+
# just checking if spec_helper did the right
|
29
|
+
File.exists?(@cdep.web_xml).should be_true
|
30
|
+
|
31
|
+
@cdep.config_web_xml
|
32
|
+
File.exists?(@cdep.web_xml).should be_true
|
33
|
+
lines = File.readlines(@cdep.web_xml)
|
34
|
+
lines.any? { |l| l =~ /<\?xml version="1\.0" encoding="UTF-8"\?>/ }.should be_true
|
35
|
+
lines.any? { |l| l =~ /<web-app>/ }.should be_true
|
36
|
+
lines.any? { |l| l =~ /#{@cdep.cas_server_url}/ }.should be_true
|
37
|
+
lines.any? { |l| l =~ /#{@cdep.cas_service_url}/ }.should be_true
|
38
|
+
lines.any? { |l| l =~ /<\/web-app>/ }.should be_true
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
describe "#config_seraph_config_xml" do
|
44
|
+
it "should configure the soulwing (CAS) authenticator in seraph_config.xml" do
|
45
|
+
@cdep.build_dir = TEST_BUILD_DIR
|
46
|
+
# just checking if spec_helper did the right
|
47
|
+
File.exists?(@cdep.seraph_config_xml).should be_true
|
48
|
+
|
49
|
+
@cdep.config_seraph_config_xml
|
50
|
+
File.exists?(@cdep.seraph_config_xml).should be_true
|
51
|
+
lines = File.readlines(@cdep.seraph_config_xml)
|
52
|
+
lines.any? { |l| l =~ /<security-config>/ }.should be_true
|
53
|
+
lines.any? { |l| l =~ /#{Regexp.quote(@cdep.cas_authenticator_class)}/ }.should be_true
|
54
|
+
lines.any? { |l| l =~ /<\/security-config>/ }.should be_true
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
|
59
|
+
describe "#config_confluence_init_props" do
|
60
|
+
it "should configure confluence-init.properties" do
|
61
|
+
@cdep.build_dir = TEST_BUILD_DIR
|
62
|
+
# just checking if spec_helper did the right
|
63
|
+
File.exists?(@cdep.confluence_init_properties).should be_true
|
64
|
+
|
65
|
+
@cdep.config_confluence_init_properties
|
66
|
+
File.exists?(@cdep.confluence_init_properties).should be_true
|
67
|
+
lines = File.readlines(@cdep.confluence_init_properties)
|
68
|
+
lines.any? { |l| l =~ /confluence.home=#{@cdep.confluence_home_dir}/ }.should be_true
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
|
73
|
+
describe "#reshuffle_jars" do
|
74
|
+
it "should work" do
|
75
|
+
@cdep.build_dir = TEST_BUILD_DIR
|
76
|
+
@cdep.reshuffle_jars
|
77
|
+
Dir["#{@cdep.build_dir}/confluence/src/confluence/WEB-INF/lib/soulwing-casclient-*"].should_not be_empty
|
78
|
+
Dir["#{@cdep.build_dir}/confluence/src/confluence/WEB-INF/lib/postgresql-*"].should be_empty
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
|
83
|
+
describe "#build" do
|
84
|
+
it "should work" do
|
85
|
+
@cdep.build_dir = TEST_BUILD_DIR
|
86
|
+
@cdep.should_receive(:exec).with("sh #{@cdep.build_dir}/confluence/src/build.sh")
|
87
|
+
@cdep.build
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
|
92
|
+
describe "#export" do
|
93
|
+
it "should work" do
|
94
|
+
cdep = ConfluenceDeployer.new(@cdeprc_file)
|
95
|
+
cdep.build_dir = TEST_BUILD_DIR
|
96
|
+
cdep.version = "3.2.1_01"
|
97
|
+
arg = "svn export svn+ssh://#{cdep.svn_username}@#{cdep.svn_project_url}/confluence-#{cdep.version}"
|
98
|
+
cdep.should_receive("`").with(arg).and_return(nil)
|
99
|
+
FileUtils.should_receive("mv")
|
100
|
+
cdep.export()
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
bad_config: you_suck
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# This file allows you to set the directory for Confluence to store its configuration files.
|
2
|
+
#
|
3
|
+
###########################
|
4
|
+
# Note for Windows Users #
|
5
|
+
###########################
|
6
|
+
#
|
7
|
+
# Each backslash in your path must be written as a forward slash.
|
8
|
+
# - For example:
|
9
|
+
# c:\confluence\data
|
10
|
+
#
|
11
|
+
# should be written as:
|
12
|
+
#
|
13
|
+
# c:/confluence/data
|
14
|
+
|
15
|
+
###########################
|
16
|
+
# Note for Unix Users #
|
17
|
+
###########################
|
18
|
+
# - For example:
|
19
|
+
# confluence.home=/var/confluence
|
20
|
+
#
|
21
|
+
# NOTE: If the path of your confluence.home directory contains symlinks,
|
22
|
+
# please set confluence.home to the absolute path, otherwise problems may occur.
|
23
|
+
# - For example:
|
24
|
+
# confluence.home=/data/confluence/ (where /data is a symlink to -> /var/data/)
|
25
|
+
# should be written as:
|
26
|
+
# confluence.home=/var/data/confluence/
|
27
|
+
|
28
|
+
###########################
|
29
|
+
# Configuration Directory #
|
30
|
+
###########################
|
31
|
+
|
32
|
+
# specify your directory below (don't forget to remove the '#' in front)
|
33
|
+
|
34
|
+
# confluence.home=c:/confluence/data
|
35
|
+
|
36
|
+
###########################
|
37
|
+
# Daily Backups Directory #
|
38
|
+
###########################
|
39
|
+
|
40
|
+
## Set this to true to enable setting of the daily backups directory in the admin section.
|
41
|
+
#confluence.backup.path.set.allowed=false
|
@@ -0,0 +1,7 @@
|
|
1
|
+
build_dir: /path/to/build_dir
|
2
|
+
deploy_dir: /path/to/deploy_dir
|
3
|
+
war_name: war_name
|
4
|
+
svn_username: runner
|
5
|
+
svn_project_url: svn.berkeley.edu/svn/ist-svn/berkeley/projects/ist/as/webapps/confluence_archives/tags
|
6
|
+
cas_server_url: https://auth.berkeley.edu/cas
|
7
|
+
cas_service_url: https://wikihub.berkeley.edu
|
@@ -0,0 +1,46 @@
|
|
1
|
+
<security-config>
|
2
|
+
<parameters>
|
3
|
+
<init-param>
|
4
|
+
<param-name>login.url</param-name>
|
5
|
+
<param-value>/login.action?os_destination=${originalurl}</param-value>
|
6
|
+
</init-param>
|
7
|
+
<init-param>
|
8
|
+
<param-name>link.login.url</param-name>
|
9
|
+
<param-value>/login.action</param-value>
|
10
|
+
</init-param>
|
11
|
+
<init-param>
|
12
|
+
<param-name>cookie.encoding</param-name>
|
13
|
+
<param-value>cNf</param-value>
|
14
|
+
</init-param>
|
15
|
+
<init-param>
|
16
|
+
<param-name>login.cookie.key</param-name>
|
17
|
+
<param-value>seraph.confluence</param-value>
|
18
|
+
</init-param>
|
19
|
+
|
20
|
+
<!--only basic authentication available-->
|
21
|
+
<init-param>
|
22
|
+
<param-name>authentication.type</param-name>
|
23
|
+
<param-value>os_authType</param-value>
|
24
|
+
</init-param>
|
25
|
+
</parameters>
|
26
|
+
|
27
|
+
<rolemapper class="com.atlassian.confluence.security.ConfluenceRoleMapper"/>
|
28
|
+
<controller class="com.atlassian.confluence.setup.seraph.ConfluenceSecurityController"/>
|
29
|
+
<authenticator class="com.atlassian.confluence.user.ConfluenceAuthenticator"/>
|
30
|
+
|
31
|
+
<services>
|
32
|
+
<service class="com.atlassian.seraph.service.PathService">
|
33
|
+
<init-param>
|
34
|
+
<param-name>config.file</param-name>
|
35
|
+
<param-value>seraph-paths.xml</param-value>
|
36
|
+
</init-param>
|
37
|
+
</service>
|
38
|
+
</services>
|
39
|
+
|
40
|
+
<elevatedsecurityguard class="com.atlassian.confluence.security.seraph.ConfluenceElevatedSecurityGuard"/>
|
41
|
+
|
42
|
+
<interceptors>
|
43
|
+
<interceptor name="session-invalidator" class="com.atlassian.confluence.security.seraph.SessionInvalidatingLoginInterceptor"/>
|
44
|
+
<interceptor name="login-logger" class="com.atlassian.confluence.user.ConfluenceLoginInterceptor"/>
|
45
|
+
</interceptors>
|
46
|
+
</security-config>
|