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,42 @@
|
|
|
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
|
+
|
|
17
|
+
module Vagrant
|
|
18
|
+
module Openshift
|
|
19
|
+
module Action
|
|
20
|
+
class InstallRhc
|
|
21
|
+
include CommandHelper
|
|
22
|
+
|
|
23
|
+
def initialize(app, env)
|
|
24
|
+
@app = app
|
|
25
|
+
@env = env
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def call(env)
|
|
29
|
+
do_execute(env[:machine], sync_bash_command('rhc', %{
|
|
30
|
+
echo "Build and install rhc from local source"
|
|
31
|
+
gem uninstall rhc -x -q
|
|
32
|
+
rm -f rhc-*.gem
|
|
33
|
+
gem build rhc.gemspec
|
|
34
|
+
gem install $(find ./ -name 'rhc-*.gem')
|
|
35
|
+
rm -f rhc-*.gem
|
|
36
|
+
}))
|
|
37
|
+
@app.call(env)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,58 @@
|
|
|
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
|
+
|
|
17
|
+
module Vagrant
|
|
18
|
+
module Openshift
|
|
19
|
+
module Action
|
|
20
|
+
class LocalGeardCheckout
|
|
21
|
+
include CommandHelper
|
|
22
|
+
|
|
23
|
+
def initialize(app, env, options)
|
|
24
|
+
@app = app
|
|
25
|
+
@env = env
|
|
26
|
+
@options = options
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def call(env)
|
|
30
|
+
if ENV['GOPATH'].nil?
|
|
31
|
+
@env.ui.warn "You don't seem to have the GOPATH environment variable set on your system."
|
|
32
|
+
@env.ui.warn "See: 'go help gopath' for more details about GOPATH."
|
|
33
|
+
return
|
|
34
|
+
else
|
|
35
|
+
go_path = FileUtils.mkdir_p(
|
|
36
|
+
File.join(ENV['GOPATH'], 'src', 'github.com', 'openshift')
|
|
37
|
+
).first
|
|
38
|
+
end
|
|
39
|
+
Dir.chdir(go_path) do
|
|
40
|
+
commands = "echo 'Waiting for the cloning process to finish'\n"
|
|
41
|
+
Constants.repos.each do |repo, url|
|
|
42
|
+
commands += %{
|
|
43
|
+
( #{repo_checkout_bash_command(repo, url)} ) &
|
|
44
|
+
PIDS+=$!\" \";
|
|
45
|
+
}
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
commands += "[ -n \"$PIDS\" ] && wait $PIDS\n"
|
|
49
|
+
system(commands)
|
|
50
|
+
puts "OpenShift repositories cloned into #{Dir.pwd}"
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
@app.call(env)
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
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
|
+
|
|
17
|
+
module Vagrant
|
|
18
|
+
module Openshift
|
|
19
|
+
module Action
|
|
20
|
+
class LocalRepoCheckout
|
|
21
|
+
include CommandHelper
|
|
22
|
+
|
|
23
|
+
def initialize(app, env, options)
|
|
24
|
+
@app = app
|
|
25
|
+
@env = env
|
|
26
|
+
@options = options
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def call(env)
|
|
30
|
+
commands = "echo 'Waiting for the cloning process to finish'\n"
|
|
31
|
+
Constants.repos.each do |repo, url|
|
|
32
|
+
commands += %{
|
|
33
|
+
( #{repo_checkout_bash_command(repo, url)} ) &
|
|
34
|
+
PIDS+=$!\" \";
|
|
35
|
+
}
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
commands += "[ -n \"$PIDS\" ] && wait $PIDS\n"
|
|
39
|
+
|
|
40
|
+
system(commands)
|
|
41
|
+
|
|
42
|
+
@app.call(env)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
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 'xmlsimple'
|
|
17
|
+
require 'pry'
|
|
18
|
+
|
|
19
|
+
module Vagrant
|
|
20
|
+
module Openshift
|
|
21
|
+
module Action
|
|
22
|
+
class ModifyAMI
|
|
23
|
+
include CommandHelper
|
|
24
|
+
|
|
25
|
+
def initialize(app, env, options)
|
|
26
|
+
@app = app
|
|
27
|
+
@env = env
|
|
28
|
+
@options = options
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def call(env)
|
|
32
|
+
raise VagrantPlugins::AWS::Errors::FogError, :message => "Error: EC2 Machine is not available" unless env[:machine].state.id == :running
|
|
33
|
+
|
|
34
|
+
begin
|
|
35
|
+
machine = env[:aws_compute].servers.get(env[:machine].id)
|
|
36
|
+
unless @options[:tag].nil?
|
|
37
|
+
images = env[:aws_compute].images.all({"state" => "available", "name" => machine.tags["Name"]})
|
|
38
|
+
images.each do |i|
|
|
39
|
+
env[:aws_compute].create_tags(i.id, {'Name' => @options[:tag]})
|
|
40
|
+
break
|
|
41
|
+
end if images
|
|
42
|
+
end
|
|
43
|
+
rescue Excon::Errors::BadRequest => e
|
|
44
|
+
doc = XMLSimple.xml_in(e.response.body)
|
|
45
|
+
code = doc['Response']['Errors']['Error']['Code'][0]
|
|
46
|
+
message = doc['Response']['Errors']['Error']['Message'][0]
|
|
47
|
+
raise VagrantPlugins::AWS::Errors::FogError, :message => "#{message}. Code: #{code}"
|
|
48
|
+
end
|
|
49
|
+
@app.call(env)
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -0,0 +1,71 @@
|
|
|
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 'xmlsimple'
|
|
17
|
+
require 'pry'
|
|
18
|
+
|
|
19
|
+
module Vagrant
|
|
20
|
+
module Openshift
|
|
21
|
+
module Action
|
|
22
|
+
class ModifyInstance
|
|
23
|
+
include CommandHelper
|
|
24
|
+
|
|
25
|
+
def initialize(app, env, options)
|
|
26
|
+
@app = app
|
|
27
|
+
@env = env
|
|
28
|
+
@options = options
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def detach(env)
|
|
32
|
+
name = env[:machine].name.to_s
|
|
33
|
+
aws_dir = File.join(".vagrant", "machines", name, "aws")
|
|
34
|
+
FileUtils.rm_rf(aws_dir)
|
|
35
|
+
env[:machine].ui.info("Instance '#{name}' detached from local Vagrant.")
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def call(env)
|
|
39
|
+
unless env[:machine].state.id == :running
|
|
40
|
+
detach(env) if @options[:detach]
|
|
41
|
+
raise VagrantPlugins::AWS::Errors::FogError,
|
|
42
|
+
:message => "Error: EC2 Machine is not available"
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
begin
|
|
46
|
+
machine = env[:aws_compute].servers.get(env[:machine].id)
|
|
47
|
+
unless @options[:rename].nil?
|
|
48
|
+
env[:aws_compute].tags.create(:resource_id => machine.identity, :key => 'Name', :value => @options[:rename])
|
|
49
|
+
env[:machine].ui.info("Renamed to #{@options[:rename]}")
|
|
50
|
+
end
|
|
51
|
+
if @options[:stop]
|
|
52
|
+
env[:machine].ui.info("Stopping instance #{machine.identity}")
|
|
53
|
+
machine.stop
|
|
54
|
+
while env[:machine].state.id != :stopped
|
|
55
|
+
sleep 5
|
|
56
|
+
end
|
|
57
|
+
env[:machine].ui.info("Stopped!")
|
|
58
|
+
end
|
|
59
|
+
detach(env) if @options[:detach]
|
|
60
|
+
rescue Excon::Errors::BadRequest => e
|
|
61
|
+
doc = XMLSimple.xml_in(e.response.body)
|
|
62
|
+
code = doc['Response']['Errors']['Error']['Code'][0]
|
|
63
|
+
message = doc['Response']['Errors']['Error']['Message'][0]
|
|
64
|
+
raise VagrantPlugins::AWS::Errors::FogError, :message => "#{message}. Code: #{code}"
|
|
65
|
+
end
|
|
66
|
+
@app.call(env)
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -0,0 +1,89 @@
|
|
|
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
|
+
|
|
17
|
+
module Vagrant
|
|
18
|
+
module Openshift
|
|
19
|
+
module Action
|
|
20
|
+
class PrepareSshConfig
|
|
21
|
+
include CommandHelper
|
|
22
|
+
|
|
23
|
+
def initialize(app, env)
|
|
24
|
+
@app = app
|
|
25
|
+
@env = env
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def call(env)
|
|
29
|
+
ssh_user = env[:machine].ssh_info[:username]
|
|
30
|
+
ssh_host = env[:machine].ssh_info[:host]
|
|
31
|
+
ssh_port = env[:machine].ssh_info[:port]
|
|
32
|
+
ssh_id_file = env[:machine].ssh_info[:private_key_path]
|
|
33
|
+
if ssh_id_file.kind_of?(Array)
|
|
34
|
+
ssh_id_file = ssh_id_file.first
|
|
35
|
+
end
|
|
36
|
+
ssh_id = env[:machine].id.gsub("-","")
|
|
37
|
+
|
|
38
|
+
ssh_config_path = Pathname.new(File.expand_path("~/.ssh/config"))
|
|
39
|
+
ssh_config_str = %{
|
|
40
|
+
Host verifier
|
|
41
|
+
HostName #{ssh_host}
|
|
42
|
+
Port #{ssh_port}
|
|
43
|
+
User #{ssh_user}
|
|
44
|
+
IdentityFile #{ssh_id_file}
|
|
45
|
+
StrictHostKeyChecking no
|
|
46
|
+
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if ssh_config_path.exist?
|
|
50
|
+
if system( "grep -n 'Host verifier' #{ssh_config_path}" )
|
|
51
|
+
lines = File.new(ssh_config_path.to_s).readlines
|
|
52
|
+
lines.map!{ |line| line.rstrip }
|
|
53
|
+
idx = lines.index{ |l| l.match(/Host verifier/)}
|
|
54
|
+
|
|
55
|
+
lines.delete_at(idx)
|
|
56
|
+
while(not (lines[idx].nil? or lines[idx].match(/Host /)))
|
|
57
|
+
lines.delete_at(idx)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
File.open(ssh_config_path.to_s, "w") do |file|
|
|
61
|
+
file.write(lines.join("\n"))
|
|
62
|
+
file.write(ssh_config_str)
|
|
63
|
+
end
|
|
64
|
+
else
|
|
65
|
+
File.open(ssh_config_path.to_s, "a") do |file|
|
|
66
|
+
file.write(ssh_config_str)
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
else
|
|
70
|
+
File.open(ssh_config_path.to_s, "w") do |file|
|
|
71
|
+
file.write(ssh_config_str)
|
|
72
|
+
end
|
|
73
|
+
FileUtils.chmod(0600, ssh_config_path.to_s)
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
home_dir=File.join(ENV['HOME'], '.openshiftdev/home.d')
|
|
77
|
+
if File.exists?(home_dir)
|
|
78
|
+
Dir.glob(File.join(home_dir, '???*'), File::FNM_DOTMATCH).each {|file|
|
|
79
|
+
puts "Installing ~/#{File.basename(file)}"
|
|
80
|
+
system "scp #{file} verifier:"
|
|
81
|
+
}
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
@app.call(env)
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
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
|
+
|
|
17
|
+
module Vagrant
|
|
18
|
+
module Openshift
|
|
19
|
+
module Action
|
|
20
|
+
class PreserveMcollectiveLogs
|
|
21
|
+
include CommandHelper
|
|
22
|
+
|
|
23
|
+
def initialize(app, env)
|
|
24
|
+
@app = app
|
|
25
|
+
@env = env
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def call(env)
|
|
29
|
+
is_fedora = env[:machine].communicate.test("test -e /etc/fedora-release")
|
|
30
|
+
server_cfg_path = is_fedora ? '/etc/mcollective/server.cfg' : '/opt/rh/ruby193/root/etc/mcollective/server.cfg'
|
|
31
|
+
|
|
32
|
+
unless env[:machine].communicate.test("grep 'keeplogs=9999' #{server_cfg_path}")
|
|
33
|
+
env[:machine].ui.info "Keep all mcollective logs on remote instance"
|
|
34
|
+
sudo(env[:machine], "echo keeplogs=9999 >> #{server_cfg_path}")
|
|
35
|
+
|
|
36
|
+
if is_fedora
|
|
37
|
+
sudo(env[:machine], "/sbin/service mcollective restart")
|
|
38
|
+
else
|
|
39
|
+
sudo(env[:machine], "/sbin/service ruby193-mcollective restart")
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
@app.call(env)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
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
|
+
|
|
17
|
+
module Vagrant
|
|
18
|
+
module Openshift
|
|
19
|
+
module Action
|
|
20
|
+
class RestartGeard
|
|
21
|
+
include CommandHelper
|
|
22
|
+
|
|
23
|
+
def initialize(app, env)
|
|
24
|
+
@app = app
|
|
25
|
+
@env = env
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def call(env)
|
|
29
|
+
sudo(env[:machine], %{
|
|
30
|
+
systemctl restart geard
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
@app.call(env)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
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
|
+
|
|
17
|
+
module Vagrant
|
|
18
|
+
module Openshift
|
|
19
|
+
module Action
|
|
20
|
+
class RestartGeardBroker
|
|
21
|
+
include CommandHelper
|
|
22
|
+
|
|
23
|
+
def initialize(app, env)
|
|
24
|
+
@app = app
|
|
25
|
+
@env = env
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def call(env)
|
|
29
|
+
#TODO the second line is a temporary hack due to the selinux policies being outdated in the repo
|
|
30
|
+
#TODO post geard fixes, remove sleep 2, and gear init from sudo below
|
|
31
|
+
sudo(env[:machine], %{
|
|
32
|
+
set -e
|
|
33
|
+
gear restart origin-broker-1
|
|
34
|
+
sleep 2
|
|
35
|
+
gear init --post "origin-broker-1" "origin-broker"
|
|
36
|
+
})
|
|
37
|
+
@app.call(env)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
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
|
+
|
|
17
|
+
module Vagrant
|
|
18
|
+
module Openshift
|
|
19
|
+
module Action
|
|
20
|
+
class RestartGeardConsole
|
|
21
|
+
include CommandHelper
|
|
22
|
+
|
|
23
|
+
def initialize(app, env)
|
|
24
|
+
@app = app
|
|
25
|
+
@env = env
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def call(env)
|
|
29
|
+
#TODO the second line is a temporary hack due to the selinux policies being outdated in the repo
|
|
30
|
+
#TODO post geard fixes, remove sleep 2, and gear init from sudo below
|
|
31
|
+
sudo(env[:machine], %{
|
|
32
|
+
set -e
|
|
33
|
+
gear restart origin-console-1
|
|
34
|
+
sleep 2
|
|
35
|
+
gear init --post "origin-console-1" "origin-console"
|
|
36
|
+
})
|
|
37
|
+
@app.call(env)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
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
|
+
|
|
17
|
+
module Vagrant
|
|
18
|
+
module Openshift
|
|
19
|
+
module Action
|
|
20
|
+
class RunGeardTests
|
|
21
|
+
include CommandHelper
|
|
22
|
+
|
|
23
|
+
@@SSH_TIMEOUT = 4800
|
|
24
|
+
|
|
25
|
+
def initialize(app, env, options)
|
|
26
|
+
@app = app
|
|
27
|
+
@env = env
|
|
28
|
+
@options = options.clone
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def call(env)
|
|
32
|
+
@options.delete :logs
|
|
33
|
+
|
|
34
|
+
cmd_opts = ''
|
|
35
|
+
if @options[:all]
|
|
36
|
+
cmd_opts += "-a "
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# TODO: remove the need for permissive mode once we get through SELinux issues with docker 1.0 and geard
|
|
40
|
+
sudo(env[:machine], %{
|
|
41
|
+
set -e
|
|
42
|
+
if [[ $(cat /etc/sudoers | grep 'Defaults:root !requiretty') = "" ]]; then
|
|
43
|
+
echo "Disabling requiretty for root user for contrib/test sudo support"
|
|
44
|
+
echo -e '\\nDefaults:root !requiretty\\n' >> /etc/sudoers
|
|
45
|
+
fi
|
|
46
|
+
pushd #{Constants.build_dir}/geard
|
|
47
|
+
setenforce 0
|
|
48
|
+
contrib/test #{cmd_opts}
|
|
49
|
+
popd
|
|
50
|
+
}, {:timeout => 60*60})
|
|
51
|
+
|
|
52
|
+
@app.call(env)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
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
|
+
|
|
17
|
+
module Vagrant
|
|
18
|
+
module Openshift
|
|
19
|
+
module Action
|
|
20
|
+
class RunTests
|
|
21
|
+
include CommandHelper
|
|
22
|
+
|
|
23
|
+
@@SSH_TIMEOUT = 4800
|
|
24
|
+
|
|
25
|
+
def initialize(app, env, options)
|
|
26
|
+
@app = app
|
|
27
|
+
@env = env
|
|
28
|
+
@options = options.clone
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def call(env)
|
|
32
|
+
is_fedora = env[:machine].communicate.test("test -e /etc/fedora-release")
|
|
33
|
+
@options.delete :logs
|
|
34
|
+
|
|
35
|
+
cmd_opts = ''
|
|
36
|
+
@options.each do |k,v|
|
|
37
|
+
cmd_opts += "#{k}=#{v} "
|
|
38
|
+
end
|
|
39
|
+
cmd = "cd #{Constants.build_dir + 'builder'}; #{scl_wrapper(is_fedora,'rake run_tests ' + cmd_opts)} "
|
|
40
|
+
_,_,env[:test_exit_code] = sudo(env[:machine], cmd, {timeout: 0, fail_on_error: false})
|
|
41
|
+
|
|
42
|
+
@app.call(env)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
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
|
+
|
|
17
|
+
module Vagrant
|
|
18
|
+
module Openshift
|
|
19
|
+
module Action
|
|
20
|
+
class SetHostName
|
|
21
|
+
include CommandHelper
|
|
22
|
+
|
|
23
|
+
def initialize(app, env)
|
|
24
|
+
@app = app
|
|
25
|
+
@env = env
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def call(env)
|
|
29
|
+
hostname = env[:machine].config.vm.hostname
|
|
30
|
+
remote_write(env[:machine], "/etc/sysconfig/network") {
|
|
31
|
+
"NETWORKING=yes\nNETWORKING_IPV6=no\nHOSTNAME=#{hostname}\n"
|
|
32
|
+
}
|
|
33
|
+
remote_write(env[:machine], "/etc/hostname") {
|
|
34
|
+
hostname
|
|
35
|
+
}
|
|
36
|
+
sudo(env[:machine],"restorecon -v /etc/sysconfig/network /etc/hostname")
|
|
37
|
+
|
|
38
|
+
@app.call(env)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|