vagrant-openshift 1.0.12 → 1.0.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.asciidoc +5 -3
- data/lib/vagrant-openshift/action/build_openshift3.rb +30 -5
- data/lib/vagrant-openshift/action/{install_rhc.rb → build_openshift3_base_images.rb} +13 -11
- data/lib/vagrant-openshift/action/{run_openshift2_tests.rb → build_sti.rb} +28 -11
- data/lib/vagrant-openshift/action/clean.rb +1 -4
- data/lib/vagrant-openshift/action/clean_network_setup.rb +1 -1
- data/lib/vagrant-openshift/action/download_artifacts_openshift3.rb +4 -1
- data/lib/vagrant-openshift/action/{download_artifacts_openshift2.rb → download_artifacts_sti.rb} +3 -11
- data/lib/vagrant-openshift/action/generate_template.rb +38 -40
- data/lib/vagrant-openshift/action/install_openshift3.rb +5 -16
- data/lib/vagrant-openshift/action/{build_openshift2.rb → install_openshift3_asset_dependencies.rb} +17 -5
- data/lib/vagrant-openshift/action/install_openshift3_base_dependencies.rb +20 -5
- data/lib/vagrant-openshift/action/{local_openshift2_checkout.rb → push_openshift3_release.rb} +14 -14
- data/lib/vagrant-openshift/action/run_openshift3_tests.rb +38 -14
- data/lib/vagrant-openshift/action/run_sti_tests.rb +64 -0
- data/lib/vagrant-openshift/action.rb +44 -83
- data/lib/vagrant-openshift/command/build_openshift3.rb +9 -0
- data/lib/vagrant-openshift/command/{build_openshift2_base.rb → build_openshift3_base_images.rb} +5 -5
- data/lib/vagrant-openshift/command/{build_openshift3_infrastructure_images.rb → build_sti.rb} +10 -12
- data/lib/vagrant-openshift/command/checkout_repositories.rb +1 -1
- data/lib/vagrant-openshift/command/{install_rhc.rb → install_openshift3_assets_base.rb} +5 -5
- data/lib/vagrant-openshift/command/local_openshift3_setup.rb +1 -1
- data/lib/vagrant-openshift/command/openshift_init.rb +4 -4
- data/lib/vagrant-openshift/command/push_openshift3_release.rb +57 -0
- data/lib/vagrant-openshift/command/repo_sync_openshift3.rb +1 -13
- data/lib/vagrant-openshift/command/{repo_sync_openshift2.rb → repo_sync_sti.rb} +11 -19
- data/lib/vagrant-openshift/command/test_openshift3.rb +8 -0
- data/lib/vagrant-openshift/command/test_openshift3_image.rb +8 -17
- data/lib/vagrant-openshift/command/test_sti.rb +59 -0
- data/lib/vagrant-openshift/config.rb +2 -14
- data/lib/vagrant-openshift/constants.rb +3 -67
- data/lib/vagrant-openshift/helper/command_helper.rb +0 -3
- data/lib/vagrant-openshift/plugin.rb +24 -29
- data/lib/vagrant-openshift/provisioner.rb +5 -37
- data/lib/vagrant-openshift/templates/builder/Rakefile +0 -205
- data/lib/vagrant-openshift/templates/command/init-openshift/box_info.yaml +34 -49
- data/lib/vagrant-openshift/version.rb +1 -1
- metadata +33 -48
- data/lib/vagrant-openshift/action/build_openshift3_images.rb +0 -54
- data/lib/vagrant-openshift/action/build_openshift3_infrastructure_images.rb +0 -50
- data/lib/vagrant-openshift/action/checkout_openshift2_tests.rb +0 -57
- data/lib/vagrant-openshift/action/create_openshift2_puppet_file.rb +0 -84
- data/lib/vagrant-openshift/action/create_openshift2_test_users.rb +0 -36
- data/lib/vagrant-openshift/action/idle_all_gears_openshift2.rb +0 -36
- data/lib/vagrant-openshift/action/install_openshift2_base_dependencies.rb +0 -50
- data/lib/vagrant-openshift/action/install_openshift2_build_dependencies.rb +0 -48
- data/lib/vagrant-openshift/action/preserve_mcollective_logs.rb +0 -48
- data/lib/vagrant-openshift/action/setup_builder_files.rb +0 -57
- data/lib/vagrant-openshift/action/uninstall_openshift2_rpms.rb +0 -37
- data/lib/vagrant-openshift/command/build_openshift3_images.rb +0 -68
- data/lib/vagrant-openshift/command/local_openshift2_setup.rb +0 -62
- data/lib/vagrant-openshift/command/test_openshift2.rb +0 -108
- data/lib/vagrant-openshift/templates/builder/lib/rpm.rb +0 -248
- data/lib/vagrant-openshift/templates/builder/lib/test.rb +0 -432
- data/lib/vagrant-openshift/templates/builder/yum-listbuilddep +0 -124
- data/lib/vagrant-openshift/templates/command/init-openshift/Vagrantfile.erb +0 -171
@@ -41,6 +41,14 @@ module Vagrant
|
|
41
41
|
o.on("-d","--artifacts", String, "Download logs") do |f|
|
42
42
|
options[:download] = true
|
43
43
|
end
|
44
|
+
|
45
|
+
o.on("-s","--skip-image-cleanup", String, "Skip Docker image teardown for E2E test") do |f|
|
46
|
+
options[:skip_image_cleanup] = true
|
47
|
+
end
|
48
|
+
|
49
|
+
o.on("-c","--report-coverage", String, "Generate code coverage report in Jenkins") do |f|
|
50
|
+
options[:report_coverage] = true
|
51
|
+
end
|
44
52
|
end
|
45
53
|
|
46
54
|
# Parse the options
|
@@ -77,7 +77,7 @@ module Vagrant
|
|
77
77
|
set -x
|
78
78
|
|
79
79
|
# so we can call sti
|
80
|
-
PATH=/data/bin:$PATH
|
80
|
+
PATH=/data/src/github.com/openshift/source-to-image/_output/go/bin:/data/src/github.com/openshift/source-to-image/_output/local/go/bin:$PATH
|
81
81
|
|
82
82
|
# create a temp dir to play in
|
83
83
|
temp_dir=$(mktemp -d /tmp/image_test.XXXXXXX)
|
@@ -97,28 +97,19 @@ git checkout #{ref}
|
|
97
97
|
# get git sha1
|
98
98
|
git_sha1=`git rev-parse --short #{ref}`
|
99
99
|
|
100
|
-
#
|
101
|
-
docker
|
100
|
+
# Build the STI image we use for testing
|
101
|
+
docker build -t #{image}-candidate .
|
102
|
+
status=$?
|
102
103
|
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
if [ -d test-app -a -f .sti/bin/test ]; then
|
107
|
-
# build
|
108
|
-
sti build test-app #{image} #{app_name} --clean
|
104
|
+
# Run the STI image test framework
|
105
|
+
if [ $status -eq 0 ]; then
|
106
|
+
IMAGE_NAME=#{image}-candidate ./test/run
|
109
107
|
status=$?
|
110
|
-
|
111
|
-
if [ $status -eq 0 ]; then
|
112
|
-
# run tests
|
113
|
-
docker run --rm -v $temp_dir/#{source_dir}/.sti/bin:/tmp/sti #{app_name} /tmp/sti/test
|
114
|
-
|
115
|
-
status=$?
|
116
|
-
fi
|
117
108
|
fi
|
118
109
|
|
119
110
|
if [ $status -eq 0 ]; then
|
120
111
|
# get the image id
|
121
|
-
image_id=`docker inspect --format="{{ .Id }}" #{image}:latest`
|
112
|
+
image_id=`docker inspect --format="{{ .Id }}" #{image}-candidate:latest`
|
122
113
|
|
123
114
|
# tag it devenv-ready
|
124
115
|
docker tag $image_id #{image}:devenv-ready
|
@@ -0,0 +1,59 @@
|
|
1
|
+
#--
|
2
|
+
# Copyright 2013 Red Hat, Inc.
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#++
|
16
|
+
require_relative "../action"
|
17
|
+
|
18
|
+
module Vagrant
|
19
|
+
module Openshift
|
20
|
+
module Commands
|
21
|
+
class TestSti < Vagrant.plugin(2, :command)
|
22
|
+
include CommandHelper
|
23
|
+
|
24
|
+
def self.synopsis
|
25
|
+
"run the sti tests"
|
26
|
+
end
|
27
|
+
|
28
|
+
def execute
|
29
|
+
options = {}
|
30
|
+
options[:download] = false
|
31
|
+
options[:all] = false
|
32
|
+
|
33
|
+
opts = OptionParser.new do |o|
|
34
|
+
o.banner = "Usage: vagrant test-sti [machine-name]"
|
35
|
+
o.separator ""
|
36
|
+
|
37
|
+
o.on("-a", "--all", String, "Run all tests") do |f|
|
38
|
+
options[:all] = true
|
39
|
+
end
|
40
|
+
|
41
|
+
o.on("-d","--artifacts", String, "Download logs") do |f|
|
42
|
+
options[:download] = true
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# Parse the options
|
47
|
+
argv = parse_options(opts)
|
48
|
+
return if !argv
|
49
|
+
|
50
|
+
with_target_vms(argv, :reverse => true) do |machine|
|
51
|
+
actions = Vagrant::Openshift::Action.run_sti_tests(options)
|
52
|
+
@env.action_runner.run actions, {:machine => machine}
|
53
|
+
0
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -17,38 +17,26 @@
|
|
17
17
|
module Vagrant
|
18
18
|
module Openshift
|
19
19
|
class Config < Vagrant.plugin(2, :config)
|
20
|
-
attr_accessor :cloud_domain, :
|
21
|
-
:
|
22
|
-
:jenkins_repo_base, :optional_repo, :os_extras_repo, :os_scl_repo
|
20
|
+
attr_accessor :cloud_domain, :repos_base, :os_repo, :os_updates_repo,
|
21
|
+
:optional_repo, :os_extras_repo, :os_scl_repo
|
23
22
|
|
24
23
|
def initialize
|
25
24
|
super
|
26
25
|
|
27
|
-
@ignore_packages = UNSET_VALUE
|
28
26
|
@cloud_domain = UNSET_VALUE
|
29
|
-
@additional_services = UNSET_VALUE
|
30
|
-
@container = UNSET_VALUE
|
31
27
|
@repos_base = UNSET_VALUE
|
32
28
|
@os_repo = nil
|
33
29
|
@os_updates_repo = nil
|
34
30
|
@os_extras_repo = nil
|
35
|
-
@jenkins_repo_base = UNSET_VALUE
|
36
31
|
@optional_repo = nil
|
37
32
|
@os_scl_repo = nil
|
38
|
-
|
39
|
-
@advanced_puppet_values = UNSET_VALUE
|
40
33
|
end
|
41
34
|
|
42
35
|
def finalize!
|
43
36
|
super
|
44
37
|
|
45
|
-
@ignore_packages = [] if @ignore_packages == UNSET_VALUE
|
46
38
|
@cloud_domain = "example.com" if @cloud_domain == UNSET_VALUE
|
47
|
-
@additional_services = [] if @additional_services == UNSET_VALUE
|
48
|
-
@container = "selinux" if @container == UNSET_VALUE
|
49
|
-
@advanced_puppet_values = {} if @advanced_puppet_values == UNSET_VALUE
|
50
39
|
@repos_base = nil if @repos_base == UNSET_VALUE
|
51
|
-
@jenkins_repo_base = "http://pkg.jenkins-ci.org/redhat/" if @jenkins_repo_base == UNSET_VALUE
|
52
40
|
end
|
53
41
|
end
|
54
42
|
end
|
@@ -19,33 +19,14 @@ module Vagrant
|
|
19
19
|
module Openshift
|
20
20
|
class Constants
|
21
21
|
|
22
|
-
FILTER_BROKER="broker"
|
23
|
-
FILTER_CONSOLE="console"
|
24
|
-
FILTER_IMAGES="images"
|
25
|
-
FILTER_RHC="rhc"
|
26
|
-
FILTER_ORIGIN="origin"
|
27
|
-
|
28
22
|
def self.repos(env)
|
29
|
-
|
30
|
-
if is_fedora
|
31
|
-
openshift3_repos
|
32
|
-
else
|
33
|
-
openshift2_repos
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def self.openshift2_repos
|
38
|
-
{
|
39
|
-
'origin-server' => 'https://github.com/openshift/origin-server.git',
|
40
|
-
'rhc' => 'https://github.com/openshift/rhc.git',
|
41
|
-
'puppet-openshift_origin' => 'https://github.com/openshift/puppet-openshift_origin.git'
|
42
|
-
}
|
23
|
+
openshift3_repos
|
43
24
|
end
|
44
25
|
|
45
26
|
def self.openshift3_repos
|
46
27
|
{
|
47
|
-
'origin' => 'https://github.com/openshift/origin.git'
|
48
|
-
|
28
|
+
'origin' => 'https://github.com/openshift/origin.git',
|
29
|
+
'source-to-image' => 'https://github.com/openshift/source-to-image.git'
|
49
30
|
}.merge(openshift3_images)
|
50
31
|
end
|
51
32
|
|
@@ -56,13 +37,6 @@ module Vagrant
|
|
56
37
|
}
|
57
38
|
end
|
58
39
|
|
59
|
-
def self.openshift3_infrastructure_images
|
60
|
-
{
|
61
|
-
'sti-builder' => 'origin/images/builder/docker/sti-builder',
|
62
|
-
'docker-builder' => 'origin/images/builder/docker/docker-builder'
|
63
|
-
}
|
64
|
-
end
|
65
|
-
|
66
40
|
def self.images
|
67
41
|
[
|
68
42
|
'centos'
|
@@ -85,48 +59,10 @@ module Vagrant
|
|
85
59
|
Pathname.new "/data/src/github.com/openshift/"
|
86
60
|
end
|
87
61
|
|
88
|
-
def self.deps_marker
|
89
|
-
Pathname.new "/.origin_deps_installed"
|
90
|
-
end
|
91
|
-
|
92
62
|
def self.git_ssh
|
93
63
|
""
|
94
64
|
end
|
95
65
|
|
96
|
-
def self.restart_services_cmd(is_fedora)
|
97
|
-
services = [ 'mongod', 'activemq', 'cgconfig', 'cgred', 'named',
|
98
|
-
'openshift-broker', 'openshift-console',
|
99
|
-
'openshift-node-web-proxy', 'openshift-watchman',
|
100
|
-
'sshd', 'httpd' ]
|
101
|
-
|
102
|
-
if(is_fedora)
|
103
|
-
services << 'mcollective'
|
104
|
-
else
|
105
|
-
services << 'ruby193-mcollective'
|
106
|
-
end
|
107
|
-
|
108
|
-
cmd = []
|
109
|
-
cmd += services.map do |service|
|
110
|
-
"/sbin/service #{service} stop;"
|
111
|
-
end
|
112
|
-
cmd << "rm -f /var/www/openshift/broker/httpd/run/httpd.pid;"
|
113
|
-
cmd << "rm -f /var/www/openshift/console/httpd/run/httpd.pid;"
|
114
|
-
cmd += services.map do |service|
|
115
|
-
"/sbin/service #{service} start;"
|
116
|
-
end
|
117
|
-
cmd << "rm -rf /var/www/openshift/broker/tmp/cache/*;"
|
118
|
-
cmd << "/etc/cron.minutely/openshift-facts;"
|
119
|
-
cmd << "/sbin/service openshift-tc start || /sbin/service openshift-tc reload;"
|
120
|
-
if(is_fedora)
|
121
|
-
cmd << "/sbin/service network reload;"
|
122
|
-
else
|
123
|
-
cmd << "/sbin/service network restart;"
|
124
|
-
end
|
125
|
-
cmd << "/sbin/service messagebus restart;"
|
126
|
-
cmd << "/sbin/service oddjobd restart;"
|
127
|
-
|
128
|
-
cmd
|
129
|
-
end
|
130
66
|
end
|
131
67
|
end
|
132
68
|
end
|
@@ -32,19 +32,14 @@ module Vagrant
|
|
32
32
|
Config
|
33
33
|
end
|
34
34
|
|
35
|
-
command "sync-openshift2" do
|
36
|
-
require_relative "command/repo_sync_openshift2"
|
37
|
-
Commands::RepoSyncOpenshift2
|
38
|
-
end
|
39
|
-
|
40
35
|
command "sync-openshift3" do
|
41
36
|
require_relative "command/repo_sync_openshift3"
|
42
37
|
Commands::RepoSyncOpenshift3
|
43
38
|
end
|
44
39
|
|
45
|
-
command "
|
46
|
-
require_relative "command/
|
47
|
-
Commands::
|
40
|
+
command "sync-sti" do
|
41
|
+
require_relative "command/repo_sync_sti"
|
42
|
+
Commands::RepoSyncSti
|
48
43
|
end
|
49
44
|
|
50
45
|
command "build-openshift3-base" do
|
@@ -57,24 +52,29 @@ module Vagrant
|
|
57
52
|
Commands::BuildOpenshift3
|
58
53
|
end
|
59
54
|
|
55
|
+
command "build-sti" do
|
56
|
+
require_relative "command/build_sti"
|
57
|
+
Commands::BuildSti
|
58
|
+
end
|
59
|
+
|
60
60
|
command "install-openshift3" do
|
61
61
|
require_relative "command/install_openshift3"
|
62
62
|
Commands::InstallOpenshift3
|
63
63
|
end
|
64
64
|
|
65
|
+
command "install-openshift3-assets-base" do
|
66
|
+
require_relative "command/install_openshift3_assets_base"
|
67
|
+
Commands::InstallOpenshift3AssetsBase
|
68
|
+
end
|
69
|
+
|
65
70
|
command "try-restart-openshift3" do
|
66
71
|
require_relative "command/try_restart_openshift3"
|
67
72
|
Commands::TryRestartOpenshift3
|
68
73
|
end
|
69
74
|
|
70
|
-
command "build-openshift3-images" do
|
71
|
-
require_relative "command/
|
72
|
-
Commands::
|
73
|
-
end
|
74
|
-
|
75
|
-
command "build-openshift3-infrastructure-images" do
|
76
|
-
require_relative "command/build_openshift3_infrastructure_images"
|
77
|
-
Commands::BuildOpenshift3InfrastructureImages
|
75
|
+
command "build-openshift3-base-images" do
|
76
|
+
require_relative "command/build_openshift3_base_images"
|
77
|
+
Commands::BuildOpenshift3BaseImages
|
78
78
|
end
|
79
79
|
|
80
80
|
command "origin-init" do
|
@@ -82,19 +82,14 @@ module Vagrant
|
|
82
82
|
Commands::OpenshiftInit
|
83
83
|
end
|
84
84
|
|
85
|
-
command "openshift2-local-checkout" do
|
86
|
-
require_relative "command/local_openshift2_setup"
|
87
|
-
Commands::LocalOpenshift2Setup
|
88
|
-
end
|
89
|
-
|
90
85
|
command "openshift3-local-checkout" do
|
91
86
|
require_relative "command/local_openshift3_setup"
|
92
87
|
Commands::LocalOpenshift3Setup
|
93
88
|
end
|
94
89
|
|
95
|
-
command "
|
96
|
-
require_relative "command/
|
97
|
-
Commands::
|
90
|
+
command "push-openshift3-release" do
|
91
|
+
require_relative "command/push_openshift3_release"
|
92
|
+
Commands::PushOpenshift3Release
|
98
93
|
end
|
99
94
|
|
100
95
|
command "test-openshift3" do
|
@@ -102,6 +97,11 @@ module Vagrant
|
|
102
97
|
Commands::TestOpenshift3
|
103
98
|
end
|
104
99
|
|
100
|
+
command "test-sti" do
|
101
|
+
require_relative "command/test_sti"
|
102
|
+
Commands::TestSti
|
103
|
+
end
|
104
|
+
|
105
105
|
command "create-ami" do
|
106
106
|
require_relative "command/create_ami"
|
107
107
|
Commands::CreateAMI
|
@@ -127,11 +127,6 @@ module Vagrant
|
|
127
127
|
Commands::CheckoutRepositories
|
128
128
|
end
|
129
129
|
|
130
|
-
command "install-rhc" do
|
131
|
-
require_relative "command/install_rhc"
|
132
|
-
Commands::InstallRhc
|
133
|
-
end
|
134
|
-
|
135
130
|
command "test-openshift3-image" do
|
136
131
|
require_relative "command/test_openshift3_image"
|
137
132
|
Commands::TestOpenshift3Image
|
@@ -39,43 +39,11 @@ module Vagrant
|
|
39
39
|
#
|
40
40
|
# No return value is expected.
|
41
41
|
def provision
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
sudo(machine,"echo #{hostname} > /proc/sys/kernel/hostname")
|
48
|
-
sudo(machine,"puppet apply --verbose #{Vagrant::Openshift::Constants.build_dir + 'configure_origin.pp'}", {timeout: 60*20})
|
49
|
-
is_fedora = @machine.communicate.test("test -e /etc/fedora-release")
|
50
|
-
|
51
|
-
sudo(machine,Constants.restart_services_cmd(is_fedora).join("\n"))
|
52
|
-
if @machine.config.openshift.additional_services.size > 0
|
53
|
-
cmd = ""
|
54
|
-
@machine.config.openshift.additional_services.each do |service|
|
55
|
-
cmd += "service #{service} restart;"
|
56
|
-
end
|
57
|
-
sudo(machine,cmd)
|
58
|
-
end
|
59
|
-
|
60
|
-
# TODO: Replace this temporary fix with a complete post-install routine
|
61
|
-
sudo(machine,"oo-admin-ctl-cartridge -c import-node --activate --obsolete && RAILS_ENV=test oo-admin-ctl-cartridge -c import-node --activate --obsolete")
|
62
|
-
else
|
63
|
-
#TODO is_fedora is a temporary fix for the new environment
|
64
|
-
is_fedora = @machine.communicate.test("test -e /etc/fedora-release")
|
65
|
-
if is_fedora
|
66
|
-
ssh_user = machine.ssh_info[:username]
|
67
|
-
sync_dir = Vagrant::Openshift::Constants.sync_dir
|
68
|
-
## pause to stabilize environment to try to correct odd sudo error on aws
|
69
|
-
sleep 2
|
70
|
-
sudo(machine, "mkdir -p #{sync_dir} && chown -R #{ssh_user}:#{ssh_user} #{sync_dir}")
|
71
|
-
end
|
72
|
-
unless is_fedora || @machine.communicate.test("test -f #{Vagrant::Openshift::Constants.deps_marker}")
|
73
|
-
@machine.ui.info("Preparing base environment")
|
74
|
-
require_relative "command/build_openshift2_base"
|
75
|
-
Vagrant::Openshift::Commands::BuildOpenshift2Base.new([], @machine.env).execute
|
76
|
-
@machine.communicate.sudo("touch #{Vagrant::Openshift::Constants.deps_marker}")
|
77
|
-
end
|
78
|
-
end
|
42
|
+
ssh_user = machine.ssh_info[:username]
|
43
|
+
sync_dir = Vagrant::Openshift::Constants.sync_dir
|
44
|
+
## pause to stabilize environment to try to correct odd sudo error on aws
|
45
|
+
sleep 2
|
46
|
+
sudo(machine, "mkdir -p #{sync_dir} && chown -R #{ssh_user}:#{ssh_user} #{sync_dir}")
|
79
47
|
end
|
80
48
|
end
|
81
49
|
end
|
@@ -20,212 +20,7 @@ require 'yaml'
|
|
20
20
|
require 'tsort'
|
21
21
|
require_relative 'lib/constants'
|
22
22
|
require_relative 'lib/options'
|
23
|
-
require_relative 'lib/rpm'
|
24
|
-
require_relative 'lib/test'
|
25
23
|
$stdout.sync = true
|
26
24
|
$stderr.sync = true
|
27
25
|
|
28
26
|
VALID_IP_ADDR_RE = Regexp.new('^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$')
|
29
|
-
|
30
|
-
task :install_deps do
|
31
|
-
spec_files = RPM::get_packages(ignore_packages: OPTIONS[:ignore_packages], ignore_cache: true)
|
32
|
-
|
33
|
-
all_build_dependencies = []
|
34
|
-
all_inst_dependencies = []
|
35
|
-
spec_files.each do |spec|
|
36
|
-
all_build_dependencies += spec[:build_deps]
|
37
|
-
all_inst_dependencies += spec[:deps]
|
38
|
-
end
|
39
|
-
|
40
|
-
all_packages = all_build_dependencies + all_inst_dependencies
|
41
|
-
|
42
|
-
all_packages.map! do |name|
|
43
|
-
m = name.match(/(ruby193-)?rubygem[(]([a-z\-_]*)[)]/)
|
44
|
-
if m.nil?
|
45
|
-
name.strip
|
46
|
-
else
|
47
|
-
scl_prefix = m[1].nil? ? "" : m[1]
|
48
|
-
"#{scl_prefix}rubygem-#{m[2]}".strip
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
all_packages.delete_if { |name| name.match(/openshift/)}
|
53
|
-
|
54
|
-
RPM::install_rpms(all_packages)
|
55
|
-
end
|
56
|
-
|
57
|
-
task :build_all do
|
58
|
-
FileUtils.rm_rf("/tmp/tito/*")
|
59
|
-
spec_files = RPM::get_packages(remove_os_build_deps: true, ignore_packages: OPTIONS[:ignore_packages], ignore_cache: true)
|
60
|
-
RPM::build_packages(spec_files)
|
61
|
-
end
|
62
|
-
|
63
|
-
task :clean_rpms do
|
64
|
-
FileUtils.rm_rf("/tmp/tito/*")
|
65
|
-
RPM::uninstall_openshift
|
66
|
-
end
|
67
|
-
|
68
|
-
task :install_puppet do
|
69
|
-
Dir.chdir((Vagrant::Openshift::Constants.build_dir + "puppet-openshift_origin").to_s) do
|
70
|
-
FileUtils.rm_rf "pkg"
|
71
|
-
system("puppet module build .")
|
72
|
-
pkg = Dir.glob((Vagrant::Openshift::Constants.build_dir + "puppet-openshift_origin/pkg/openshift-openshift_origin*.tar.gz").to_s).first
|
73
|
-
system("puppet module uninstall openshift-openshift_origin")
|
74
|
-
system("puppet module install #{pkg}")
|
75
|
-
system("rm -rf #{Vagrant::Openshift::Constants.build_dir + "puppet-openshift_origin/pkg"}")
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
task :update_packages do
|
80
|
-
if (Vagrant::Openshift::Constants.build_dir + ".built_packages").exist?
|
81
|
-
print "Updating packages\n"
|
82
|
-
RPM::updated_packages
|
83
|
-
else
|
84
|
-
print "Building all packages\n"
|
85
|
-
Rake::Task['build_all'].invoke
|
86
|
-
print "Installing openshift puppet module\n"
|
87
|
-
Rake::Task['install_puppet'].invoke
|
88
|
-
print "Applying openshift puppet recipe\n"
|
89
|
-
system("puppet apply --verbose #{Vagrant::Openshift::Constants.build_dir + 'configure_origin.pp'}")
|
90
|
-
end
|
91
|
-
Rake::Task['restart_services'].invoke
|
92
|
-
end
|
93
|
-
|
94
|
-
task :restart_services do
|
95
|
-
is_fedora=File.exists?("/etc/fedora-release")
|
96
|
-
system(Vagrant::Openshift::Constants.restart_services_cmd(is_fedora).join("\n"))
|
97
|
-
cmd = ""
|
98
|
-
OPTIONS[:additional_services].each do |service|
|
99
|
-
cmd += "service #{service} restart;"
|
100
|
-
end
|
101
|
-
system(cmd)
|
102
|
-
|
103
|
-
unless system("service openshift-tc status 2>/dev/null 1>/dev/null")
|
104
|
-
system("service openshift-tc reload")
|
105
|
-
end
|
106
|
-
|
107
|
-
# TODO: Replace this temporary fix with a complete post-install routine
|
108
|
-
`oo-admin-ctl-cartridge -c import-node --activate --obsolete && RAILS_ENV=test oo-admin-ctl-cartridge -c import-node --activate --obsolete`
|
109
|
-
end
|
110
|
-
|
111
|
-
task :checkout_tests do
|
112
|
-
print "Updating remote tests..."
|
113
|
-
system "rm -rf #{Vagrant::Openshift::Constants.build_dir}/openshift-test"
|
114
|
-
git_archive_commands = ''
|
115
|
-
Vagrant::Openshift::Constants.openshift2_repos.each do |repo_name, url|
|
116
|
-
repo_dir = "#{Vagrant::Openshift::Constants.build_dir}/#{repo_name}-bare"
|
117
|
-
git_archive_commands += "pushd #{repo_dir} > /dev/null; git archive --prefix openshift-test/ --format=tar 'HEAD' | (cd #{Vagrant::Openshift::Constants.build_dir} && tar --warning=no-timestamp -xf -); popd > /dev/null; "
|
118
|
-
end
|
119
|
-
git_archive_commands += "pushd #{Vagrant::Openshift::Constants.build_dir}/rhc-bare > /dev/null; git archive --prefix openshift-test/rhc/ --format=tar 'HEAD' | (cd #{Vagrant::Openshift::Constants.build_dir} && tar --warning=no-timestamp -xf -); popd > /dev/null; "
|
120
|
-
|
121
|
-
system %{
|
122
|
-
set -e;
|
123
|
-
rm -rf #{Vagrant::Openshift::Constants.build_dir}/openshift-test
|
124
|
-
#{git_archive_commands}
|
125
|
-
mkdir -p /tmp/rhc/junit
|
126
|
-
}
|
127
|
-
|
128
|
-
system(%{
|
129
|
-
rm -rf #{Vagrant::Openshift::Constants.build_dir}/openshift-test/tests;
|
130
|
-
ln -s #{Vagrant::Openshift::Constants.build_dir}/openshift-test/controller/test/cucumber #{Vagrant::Openshift::Constants.build_dir}/openshift-test/tests
|
131
|
-
})
|
132
|
-
print "done\n"
|
133
|
-
end
|
134
|
-
|
135
|
-
task :create_test_users do
|
136
|
-
system("mkdir -p /etc/openshift && touch /etc/openshift/htpasswd")
|
137
|
-
['test_user@test.com', 'user_with_multiple_gear_sizes@test.com', 'user_with_extra_storage@test.com', 'user_with_certificate_capabilities@test.com']. each do |user|
|
138
|
-
unless system("/usr/bin/curl -f -k https://openshift.example.com/broker/rest/user -u #{user}:test 2>/dev/null 1>/dev/null")
|
139
|
-
|
140
|
-
# Try to create the user record
|
141
|
-
print "Creating test user: #{user}\n"
|
142
|
-
user_created = false
|
143
|
-
create_retries = 0
|
144
|
-
while create_retries < 3 do
|
145
|
-
user_created = system("/usr/bin/htpasswd -b /etc/openshift/htpasswd #{user} test")
|
146
|
-
break if user_created
|
147
|
-
create_retries = create_retries + 1
|
148
|
-
print "Could not add user #{user} to htpasswd file on attempt #{create_retries}\n"
|
149
|
-
sleep 2
|
150
|
-
end
|
151
|
-
if not user_created
|
152
|
-
print "Unable to add user '#{user}' to /etc/openshift/htpasswd\n"
|
153
|
-
exit 1
|
154
|
-
end
|
155
|
-
|
156
|
-
# Test the user record via the REST API
|
157
|
-
rest_connected = false
|
158
|
-
rest_retries = 0
|
159
|
-
while rest_retries < 3 do
|
160
|
-
rest_connected = system("/usr/bin/curl -f -k https://openshift.example.com/broker/rest/user -u #{user}:test 2>/dev/null 1>/dev/null")
|
161
|
-
break if rest_connected
|
162
|
-
rest_retries = rest_retries + 1
|
163
|
-
print "Could not verify user #{user} via the REST API on attempt #{rest_retries}\n"
|
164
|
-
sleep 10
|
165
|
-
end
|
166
|
-
if not rest_connected
|
167
|
-
print "Unable to verify user #{user} via the REST API\n"
|
168
|
-
exit 1
|
169
|
-
end
|
170
|
-
else
|
171
|
-
print "#{user} already exists\n"
|
172
|
-
end
|
173
|
-
end
|
174
|
-
|
175
|
-
# Create a known test user with medium-sized gears
|
176
|
-
# This must be done before the deployment of application templates!
|
177
|
-
exitcode = system("/usr/sbin/oo-admin-ctl-user -l user_with_multiple_gear_sizes@test.com --addgearsize medium")
|
178
|
-
if(!exitcode)
|
179
|
-
print "Unable to assign medium gear capability to user_with_multiple_gear_sizes@test.com"
|
180
|
-
exit 1
|
181
|
-
end
|
182
|
-
|
183
|
-
# Create a test user with additional storage capabilities
|
184
|
-
exitcode = system("/usr/sbin/oo-admin-ctl-user -l user_with_extra_storage@test.com --setmaxuntrackedstorage 5 --setmaxgears 10")
|
185
|
-
if(!exitcode)
|
186
|
-
print "Unable to assign additional storage to user_with_extra_storage@test.com"
|
187
|
-
exit 1
|
188
|
-
end
|
189
|
-
|
190
|
-
# Create a test user with ssl certificates capabilities
|
191
|
-
exitcode = system("/usr/sbin/oo-admin-ctl-user -l user_with_certificate_capabilities@test.com --allowprivatesslcertificates true")
|
192
|
-
if(!exitcode)
|
193
|
-
print "Unable to assign ssl certificates capabilities to user_with_certificate_capabilities@test.com"
|
194
|
-
exit 1
|
195
|
-
end
|
196
|
-
|
197
|
-
unless system("test -e /root/.ssh/id_rsa")
|
198
|
-
system("ssh-keygen -q -f /root/.ssh/id_rsa -P \"\" </dev/null")
|
199
|
-
end
|
200
|
-
end
|
201
|
-
|
202
|
-
task :idle_all_gears do
|
203
|
-
Test.new.idle_all_gears
|
204
|
-
end
|
205
|
-
|
206
|
-
task :run_tests do
|
207
|
-
options = {}
|
208
|
-
options[:fixme] = ENV["fixme"] == "true"
|
209
|
-
if ENV["extended"] == "true"
|
210
|
-
options[:gear_extended] = ENV["gear"] == "true"
|
211
|
-
options[:node_extended] = ENV["node"] == "true"
|
212
|
-
options[:cart_extended] = ENV["cart"] == "true"
|
213
|
-
options[:broker_extended] = ENV["broker"] == "true"
|
214
|
-
options[:rhc_extended] = ENV["rhc"] == "true"
|
215
|
-
options[:console_extended] = ENV["console"] == "true"
|
216
|
-
options[:node] = false
|
217
|
-
options[:cart] = false
|
218
|
-
options[:broker] = false
|
219
|
-
options[:rhc] = false
|
220
|
-
options[:console] = false
|
221
|
-
else
|
222
|
-
options[:gear] = ENV["gear"] == "true"
|
223
|
-
options[:node] = ENV["node"] == "true"
|
224
|
-
options[:cart] = ENV["cart"] == "true"
|
225
|
-
options[:broker] = ENV["broker"] == "true"
|
226
|
-
options[:rhc] = ENV["rhc"] == "true"
|
227
|
-
options[:console] = ENV["console"] == "true"
|
228
|
-
end
|
229
|
-
|
230
|
-
Test.new.test(options)
|
231
|
-
end
|