vagrant-openshift 1.0.9
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.
- checksums.yaml +7 -0
- data/.gitattributes +1 -0
- data/.gitignore +24 -0
- data/Gemfile +11 -0
- data/LICENSE.txt +13 -0
- data/README.asciidoc +379 -0
- data/Rakefile +53 -0
- data/lib/vagrant-openshift/action/build_geard.rb +41 -0
- data/lib/vagrant-openshift/action/build_geard_broker.rb +59 -0
- data/lib/vagrant-openshift/action/build_geard_console.rb +55 -0
- data/lib/vagrant-openshift/action/build_geard_images.rb +54 -0
- data/lib/vagrant-openshift/action/build_sources.rb +39 -0
- data/lib/vagrant-openshift/action/checkout_repositories.rb +72 -0
- data/lib/vagrant-openshift/action/checkout_tests.rb +57 -0
- data/lib/vagrant-openshift/action/clean.rb +51 -0
- data/lib/vagrant-openshift/action/clean_network_setup.rb +52 -0
- data/lib/vagrant-openshift/action/clone_upstream_repositories.rb +65 -0
- data/lib/vagrant-openshift/action/create_ami.rb +54 -0
- data/lib/vagrant-openshift/action/create_bare_repo_placeholders.rb +53 -0
- data/lib/vagrant-openshift/action/create_puppet_file.rb +84 -0
- data/lib/vagrant-openshift/action/create_test_users.rb +36 -0
- data/lib/vagrant-openshift/action/create_yum_repositories.rb +121 -0
- data/lib/vagrant-openshift/action/download_artifacts.rb +70 -0
- data/lib/vagrant-openshift/action/generate_template.rb +89 -0
- data/lib/vagrant-openshift/action/idle_all_gears.rb +36 -0
- data/lib/vagrant-openshift/action/install_build_dependencies.rb +48 -0
- data/lib/vagrant-openshift/action/install_geard.rb +76 -0
- data/lib/vagrant-openshift/action/install_geard_base_dependencies.rb +72 -0
- data/lib/vagrant-openshift/action/install_geard_broker.rb +39 -0
- data/lib/vagrant-openshift/action/install_geard_images.rb +51 -0
- data/lib/vagrant-openshift/action/install_open_shift_dependencies.rb +50 -0
- data/lib/vagrant-openshift/action/install_rhc.rb +42 -0
- data/lib/vagrant-openshift/action/local_geard_checkout.rb +58 -0
- data/lib/vagrant-openshift/action/local_repo_checkout.rb +47 -0
- data/lib/vagrant-openshift/action/modify_ami.rb +54 -0
- data/lib/vagrant-openshift/action/modify_instance.rb +71 -0
- data/lib/vagrant-openshift/action/prepare_ssh_config.rb +89 -0
- data/lib/vagrant-openshift/action/preserve_mcollective_logs.rb +48 -0
- data/lib/vagrant-openshift/action/restart_geard.rb +39 -0
- data/lib/vagrant-openshift/action/restart_geard_broker.rb +43 -0
- data/lib/vagrant-openshift/action/restart_geard_console.rb +43 -0
- data/lib/vagrant-openshift/action/run_geard_tests.rb +57 -0
- data/lib/vagrant-openshift/action/run_tests.rb +47 -0
- data/lib/vagrant-openshift/action/set_host_name.rb +43 -0
- data/lib/vagrant-openshift/action/setup_bind_dns_key.rb +38 -0
- data/lib/vagrant-openshift/action/setup_bind_host.rb +141 -0
- data/lib/vagrant-openshift/action/setup_builder_files.rb +57 -0
- data/lib/vagrant-openshift/action/setup_geard_broker.rb +71 -0
- data/lib/vagrant-openshift/action/sync_local_repository.rb +115 -0
- data/lib/vagrant-openshift/action/sync_upstream_repository.rb +71 -0
- data/lib/vagrant-openshift/action/test_exit_code.rb +36 -0
- data/lib/vagrant-openshift/action/uninstall_openshift_rpms.rb +37 -0
- data/lib/vagrant-openshift/action/yum_update.rb +67 -0
- data/lib/vagrant-openshift/action.rb +308 -0
- data/lib/vagrant-openshift/command/build_geard.rb +51 -0
- data/lib/vagrant-openshift/command/build_geard_base.rb +51 -0
- data/lib/vagrant-openshift/command/build_geard_broker.rb +59 -0
- data/lib/vagrant-openshift/command/build_geard_console.rb +59 -0
- data/lib/vagrant-openshift/command/build_geard_images.rb +68 -0
- data/lib/vagrant-openshift/command/build_origin_base.rb +51 -0
- data/lib/vagrant-openshift/command/checkout_repositories.rb +55 -0
- data/lib/vagrant-openshift/command/clone_upstream_repositories.rb +54 -0
- data/lib/vagrant-openshift/command/create_ami.rb +49 -0
- data/lib/vagrant-openshift/command/install_geard.rb +51 -0
- data/lib/vagrant-openshift/command/install_geard_broker.rb +51 -0
- data/lib/vagrant-openshift/command/install_rhc.rb +49 -0
- data/lib/vagrant-openshift/command/local_geard_setup.rb +62 -0
- data/lib/vagrant-openshift/command/local_repo_setup.rb +62 -0
- data/lib/vagrant-openshift/command/modify_ami.rb +54 -0
- data/lib/vagrant-openshift/command/modify_instance.rb +63 -0
- data/lib/vagrant-openshift/command/openshift_init.rb +83 -0
- data/lib/vagrant-openshift/command/repo_sync.rb +73 -0
- data/lib/vagrant-openshift/command/repo_sync_geard.rb +78 -0
- data/lib/vagrant-openshift/command/restart_geard.rb +51 -0
- data/lib/vagrant-openshift/command/restart_geard_broker.rb +51 -0
- data/lib/vagrant-openshift/command/restart_geard_console.rb +51 -0
- data/lib/vagrant-openshift/command/setup_geard_broker.rb +49 -0
- data/lib/vagrant-openshift/command/test.rb +108 -0
- data/lib/vagrant-openshift/command/test_geard.rb +59 -0
- data/lib/vagrant-openshift/command/test_geard_image.rb +147 -0
- data/lib/vagrant-openshift/config.rb +56 -0
- data/lib/vagrant-openshift/constants.rb +111 -0
- data/lib/vagrant-openshift/helper/command_helper.rb +213 -0
- data/lib/vagrant-openshift/plugin.rb +171 -0
- data/lib/vagrant-openshift/provisioner.rb +82 -0
- data/lib/vagrant-openshift/templates/builder/Rakefile +231 -0
- data/lib/vagrant-openshift/templates/builder/lib/.gitkeep +0 -0
- data/lib/vagrant-openshift/templates/builder/lib/rpm.rb +248 -0
- data/lib/vagrant-openshift/templates/builder/lib/test.rb +432 -0
- data/lib/vagrant-openshift/templates/builder/yum-listbuilddep +124 -0
- data/lib/vagrant-openshift/templates/command/init-openshift/Vagrantfile.erb +175 -0
- data/lib/vagrant-openshift/templates/command/init-openshift/box_info.yaml +152 -0
- data/lib/vagrant-openshift/version.rb +21 -0
- data/lib/vagrant-openshift.rb +34 -0
- data/vagrant-openshift.gemspec +43 -0
- metadata +234 -0
|
@@ -0,0 +1,73 @@
|
|
|
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 RepoSync < Vagrant.plugin(2, :command)
|
|
22
|
+
include CommandHelper
|
|
23
|
+
|
|
24
|
+
def self.synopsis
|
|
25
|
+
"syncs and installs(by default) your local repos to the current instance"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def execute
|
|
29
|
+
options = {}
|
|
30
|
+
options[:clean] = false
|
|
31
|
+
options[:local_source] = true
|
|
32
|
+
options[:no_build] = false
|
|
33
|
+
options[:deps] = false
|
|
34
|
+
|
|
35
|
+
opts = OptionParser.new do |o|
|
|
36
|
+
o.banner = "Usage: vagrant sync [vm-name]"
|
|
37
|
+
o.separator ""
|
|
38
|
+
|
|
39
|
+
o.on("-c", "--clean", "Delete existing repo and uninstall all OpenShift RPMs before syncing") do |f|
|
|
40
|
+
options[:clean] = f
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
o.on("-u", "--upstream", "Build base VM based on local source") do |f|
|
|
44
|
+
options[:local_source] = false
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
o.on("--install-deps", "Install any missing dependencies") do |f|
|
|
48
|
+
options[:deps] = f
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
o.on("--dont-install", "Don't build and install RPMs") do |f|
|
|
52
|
+
options[:no_build] = f
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
o.on("-d","--artifacts", String, "Download logs and rpms") do |f|
|
|
56
|
+
options[:download] = true
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# Parse the options
|
|
61
|
+
argv = parse_options(opts)
|
|
62
|
+
return if !argv
|
|
63
|
+
|
|
64
|
+
with_target_vms(argv, :reverse => true) do |machine|
|
|
65
|
+
actions = Vagrant::Openshift::Action.repo_sync(options)
|
|
66
|
+
@env.action_runner.run actions, {:machine => machine}
|
|
67
|
+
0
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
@@ -0,0 +1,78 @@
|
|
|
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 RepoSyncGeard < Vagrant.plugin(2, :command)
|
|
22
|
+
include CommandHelper
|
|
23
|
+
|
|
24
|
+
def self.synopsis
|
|
25
|
+
"syncs your local repos to the current instance"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def execute
|
|
29
|
+
options = {}
|
|
30
|
+
options[:geard_images] = []
|
|
31
|
+
options[:no_build] = false
|
|
32
|
+
options[:clean] = false
|
|
33
|
+
options[:source] = false
|
|
34
|
+
options[:include] = [ Vagrant::Openshift::Constants::FILTER_BROKER , Vagrant::Openshift::Constants::FILTER_CONSOLE ,Vagrant::Openshift::Constants::FILTER_GEARD, Vagrant::Openshift::Constants::FILTER_IMAGES, Vagrant::Openshift::Constants::FILTER_RHC]
|
|
35
|
+
|
|
36
|
+
opts = OptionParser.new do |o|
|
|
37
|
+
o.banner = "Usage: vagrant sync-geard [vm-name]"
|
|
38
|
+
o.separator ""
|
|
39
|
+
|
|
40
|
+
o.on("-c", "--clean", "Delete existing repo before syncing") do |f|
|
|
41
|
+
options[:clean] = f
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
o.on("-s", "--source", "Sync the source (not required if using synced folders)") do |f|
|
|
45
|
+
options[:source] = f
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
o.on("--dont-install", "Don't build and install updated source") do |f|
|
|
49
|
+
options[:no_build] = true
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
o.on("-i [comp comp]", "--include", String, "Sync specified components. Default: #{options[:include].join " "}") do |f|
|
|
53
|
+
options[:include] = f.split " "
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
o.on("--geard-images [ #{Vagrant::Openshift::Constants.geard_images.keys.join(' ')} | all ]", "Specify which images should be synced. Default: []") do |f|
|
|
57
|
+
if f.split(" ").include?("all")
|
|
58
|
+
options[:geard_images] = Vagrant::Openshift::Constants.geard_images.keys
|
|
59
|
+
else
|
|
60
|
+
options[:geard_images] = f.split(" ")
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Parse the options
|
|
66
|
+
argv = parse_options(opts)
|
|
67
|
+
return if !argv
|
|
68
|
+
|
|
69
|
+
with_target_vms(argv, :reverse => true) do |machine|
|
|
70
|
+
actions = Vagrant::Openshift::Action.repo_sync_geard(options)
|
|
71
|
+
@env.action_runner.run actions, {:machine => machine}
|
|
72
|
+
0
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
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 RestartGeard < Vagrant.plugin(2, :command)
|
|
22
|
+
include CommandHelper
|
|
23
|
+
|
|
24
|
+
def self.synopsis
|
|
25
|
+
"restarts geard"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def execute
|
|
29
|
+
options = {}
|
|
30
|
+
options[:clean] = false
|
|
31
|
+
options[:local_source] = false
|
|
32
|
+
|
|
33
|
+
opts = OptionParser.new do |o|
|
|
34
|
+
o.banner = "Usage: vagrant restart-geard [vm-name]"
|
|
35
|
+
o.separator ""
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Parse the options
|
|
39
|
+
argv = parse_options(opts)
|
|
40
|
+
return if !argv
|
|
41
|
+
|
|
42
|
+
with_target_vms(argv, :reverse => true) do |machine|
|
|
43
|
+
actions = Vagrant::Openshift::Action.restart_geard(options)
|
|
44
|
+
@env.action_runner.run actions, {:machine => machine}
|
|
45
|
+
0
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
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 RestartGeardBroker < Vagrant.plugin(2, :command)
|
|
22
|
+
include CommandHelper
|
|
23
|
+
|
|
24
|
+
def self.synopsis
|
|
25
|
+
"restarts geard-based broker"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def execute
|
|
29
|
+
options = {}
|
|
30
|
+
options[:clean] = false
|
|
31
|
+
options[:local_source] = false
|
|
32
|
+
|
|
33
|
+
opts = OptionParser.new do |o|
|
|
34
|
+
o.banner = "Usage: vagrant restart-geard-broker [vm-name]"
|
|
35
|
+
o.separator ""
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Parse the options
|
|
39
|
+
argv = parse_options(opts)
|
|
40
|
+
return if !argv
|
|
41
|
+
|
|
42
|
+
with_target_vms(argv, :reverse => true) do |machine|
|
|
43
|
+
actions = Vagrant::Openshift::Action.restart_geard_broker(options)
|
|
44
|
+
@env.action_runner.run actions, {:machine => machine}
|
|
45
|
+
0
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
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 RestartGeardConsole < Vagrant.plugin(2, :command)
|
|
22
|
+
include CommandHelper
|
|
23
|
+
|
|
24
|
+
def self.synopsis
|
|
25
|
+
"restarts geard-based console"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def execute
|
|
29
|
+
options = {}
|
|
30
|
+
options[:clean] = false
|
|
31
|
+
options[:local_source] = false
|
|
32
|
+
|
|
33
|
+
opts = OptionParser.new do |o|
|
|
34
|
+
o.banner = "Usage: vagrant restart-geard-console [vm-name]"
|
|
35
|
+
o.separator ""
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Parse the options
|
|
39
|
+
argv = parse_options(opts)
|
|
40
|
+
return if !argv
|
|
41
|
+
|
|
42
|
+
with_target_vms(argv, :reverse => true) do |machine|
|
|
43
|
+
actions = Vagrant::Openshift::Action.restart_geard_console(options)
|
|
44
|
+
@env.action_runner.run actions, {:machine => machine}
|
|
45
|
+
0
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Copyright 2014 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 SetupGeardBroker < Vagrant.plugin(2, :command)
|
|
22
|
+
include CommandHelper
|
|
23
|
+
|
|
24
|
+
def self.synopsis
|
|
25
|
+
"Populate running broker with required data to interact with geard"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def execute
|
|
29
|
+
options = {}
|
|
30
|
+
|
|
31
|
+
opts = OptionParser.new do |o|
|
|
32
|
+
o.banner = "Usage: vagrant setup-geard-broker"
|
|
33
|
+
o.separator ""
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Parse the options
|
|
37
|
+
argv = parse_options(opts)
|
|
38
|
+
return if !argv
|
|
39
|
+
|
|
40
|
+
with_target_vms(argv, :reverse => true) do |machine|
|
|
41
|
+
actions = Vagrant::Openshift::Action.setup_geard_broker(options)
|
|
42
|
+
@env.action_runner.run actions, {:machine => machine}
|
|
43
|
+
0
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
@@ -0,0 +1,108 @@
|
|
|
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 Test < Vagrant.plugin(2, :command)
|
|
22
|
+
include CommandHelper
|
|
23
|
+
|
|
24
|
+
def self.synopsis
|
|
25
|
+
"run the OpenShift tests"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def component_list
|
|
29
|
+
[:node,:cart,:gear,:broker,:console,:rhc]
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def execute
|
|
33
|
+
options = {}
|
|
34
|
+
options[:extended] = false
|
|
35
|
+
options[:download] = false
|
|
36
|
+
component_list.each { |component| options[component] = false }
|
|
37
|
+
|
|
38
|
+
opts = OptionParser.new do |o|
|
|
39
|
+
o.banner = "Usage: vagrant test [machine-name]"
|
|
40
|
+
o.separator ""
|
|
41
|
+
|
|
42
|
+
o.on("-n", "--node", String, "Run node tests") do |f|
|
|
43
|
+
options[:node] = true
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
o.on("-t", "--cart", String, "Run cartridge tests") do |f|
|
|
47
|
+
options[:cart] = true
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
o.on("-g", "--gear", String, "Run gear tests") do |f|
|
|
51
|
+
options[:gear] = true
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
o.on("-b", "--broker", String, "Run broker tests") do |f|
|
|
55
|
+
options[:broker] = true
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
o.on("-r", "--rhc", String, "Run CLI tests") do |f|
|
|
59
|
+
options[:rhc] = true
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
o.on("-c", "--console", String, "Run console/web tests") do |f|
|
|
63
|
+
options[:console] = true
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
o.on("-e", "--extended", String, "Run extended tests") do |f|
|
|
67
|
+
options[:extended] = true
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
o.on("-a", "--all", String, "Run all tests") do |f|
|
|
71
|
+
component_list.each { |component| options[component] = true }
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
o.on("-d","--artifacts", String, "Download logs and rpms") do |f|
|
|
75
|
+
options[:download] = true
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
o.on("--fixme", "Run known broken tests to verify test fixes") do |f|
|
|
79
|
+
options[:fixme] = true
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# Parse the options
|
|
84
|
+
argv = parse_options(opts)
|
|
85
|
+
return if !argv
|
|
86
|
+
|
|
87
|
+
# Figure out if we are implicitly running all tests
|
|
88
|
+
do_all = true
|
|
89
|
+
component_list.each do |component|
|
|
90
|
+
if options[component]
|
|
91
|
+
do_all = false
|
|
92
|
+
break
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
if do_all
|
|
96
|
+
component_list.each { |component| options[component] = true }
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
with_target_vms(argv, :reverse => true) do |machine|
|
|
100
|
+
actions = Vagrant::Openshift::Action.run_tests(options)
|
|
101
|
+
@env.action_runner.run actions, {:machine => machine}
|
|
102
|
+
0
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end
|
|
@@ -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 TestGeard < Vagrant.plugin(2, :command)
|
|
22
|
+
include CommandHelper
|
|
23
|
+
|
|
24
|
+
def self.synopsis
|
|
25
|
+
"run the geard 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 [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 and rpms") 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_geard_tests(options)
|
|
52
|
+
@env.action_runner.run actions, {:machine => machine}
|
|
53
|
+
0
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -0,0 +1,147 @@
|
|
|
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
|
+
|
|
22
|
+
class TestGeardImage < Vagrant.plugin(2, :command)
|
|
23
|
+
include CommandHelper
|
|
24
|
+
|
|
25
|
+
def self.synopsis
|
|
26
|
+
"tests an image"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def execute
|
|
30
|
+
options = {}
|
|
31
|
+
options[:image] = nil
|
|
32
|
+
options[:ref] = 'master'
|
|
33
|
+
options[:source] = nil
|
|
34
|
+
|
|
35
|
+
opts = OptionParser.new do |o|
|
|
36
|
+
o.banner = "Usage: vagrant test-geard-image --image IMAGE [vm-name]"
|
|
37
|
+
o.separator ""
|
|
38
|
+
|
|
39
|
+
o.on("-i", "--image IMAGE", String, "image to test") do |o|
|
|
40
|
+
options[:image] = o
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
o.on("-r", "--ref REF", String, "git ref to test") do |o|
|
|
44
|
+
options[:ref] = o
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
o.on("-s", "--source SOURCE", String, "git repo source url") do |o|
|
|
48
|
+
options[:source] = o
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Parse the options
|
|
53
|
+
argv = parse_options(opts)
|
|
54
|
+
return if !argv
|
|
55
|
+
|
|
56
|
+
if options[:image].nil? and options[:ref].nil?
|
|
57
|
+
@env.ui.warn "You must specify an image and a git ref"
|
|
58
|
+
exit
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
if options[:source].nil?
|
|
62
|
+
options[:source] = "https://github.com/#{options[:image]}"
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
with_target_vms(argv, :reverse => true) do |machine|
|
|
66
|
+
image = options[:image]
|
|
67
|
+
ref = options[:ref]
|
|
68
|
+
source = options[:source]
|
|
69
|
+
|
|
70
|
+
# image could be centos or openshift/ruby-19-centos
|
|
71
|
+
# just grab the end (centos or ruby-19-centos)
|
|
72
|
+
source_dir = File.basename(image)
|
|
73
|
+
app_name = "test-#{source_dir}"
|
|
74
|
+
rc=1
|
|
75
|
+
begin
|
|
76
|
+
out, err, rc = do_execute(machine, %{
|
|
77
|
+
set -x
|
|
78
|
+
|
|
79
|
+
# so we can call sti
|
|
80
|
+
PATH=/data/bin:$PATH
|
|
81
|
+
|
|
82
|
+
# create a temp dir to play in
|
|
83
|
+
temp_dir=$(mktemp -d /tmp/image_test.XXXXXXX)
|
|
84
|
+
|
|
85
|
+
# set correct SELinux context
|
|
86
|
+
chcon -t docker_share_t $temp_dir
|
|
87
|
+
|
|
88
|
+
cd $temp_dir
|
|
89
|
+
|
|
90
|
+
# clone the image repo
|
|
91
|
+
git clone #{source}
|
|
92
|
+
cd #{source_dir}
|
|
93
|
+
|
|
94
|
+
# switch to the desired ref
|
|
95
|
+
git checkout #{ref}
|
|
96
|
+
|
|
97
|
+
# get git sha1
|
|
98
|
+
git_sha1=`git rev-parse --short #{ref}`
|
|
99
|
+
|
|
100
|
+
# grab the latest image from the index
|
|
101
|
+
docker pull #{image}:latest
|
|
102
|
+
|
|
103
|
+
status=0
|
|
104
|
+
|
|
105
|
+
# build and test the sample app, if it exists
|
|
106
|
+
if [ -d test-app -a -f .sti/bin/test ]; then
|
|
107
|
+
# build
|
|
108
|
+
sti build test-app #{image} #{app_name} --clean
|
|
109
|
+
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
|
+
fi
|
|
118
|
+
|
|
119
|
+
if [ $status -eq 0 ]; then
|
|
120
|
+
# get the image id
|
|
121
|
+
image_id=`docker inspect --format="{{ .Id }}" #{image}:latest`
|
|
122
|
+
|
|
123
|
+
# tag it devenv-ready
|
|
124
|
+
docker tag $image_id #{image}:devenv-ready
|
|
125
|
+
|
|
126
|
+
# tag it with the git ref
|
|
127
|
+
docker tag $image_id #{image}:git-$git_sha1
|
|
128
|
+
fi
|
|
129
|
+
|
|
130
|
+
# clean up
|
|
131
|
+
cd /
|
|
132
|
+
rm -rf $temp_dir
|
|
133
|
+
exit $status
|
|
134
|
+
})
|
|
135
|
+
# Vagrant throws an exception if any execute invocation returns non-zero,
|
|
136
|
+
# so catch it so we can return a proper output.
|
|
137
|
+
rescue => e
|
|
138
|
+
@env.ui.info "Exception: #{e}"
|
|
139
|
+
end
|
|
140
|
+
@env.ui.info "RC=#{rc}"
|
|
141
|
+
return rc
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
end
|
|
147
|
+
end
|