vagrant-service-manager 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ci/ansible/roles/centos/tasks/main.yml +3 -2
- data/.ci/jenkins-execute-script.py +6 -4
- data/.gitignore +1 -0
- data/.rubocop.yml +13 -0
- data/.rubocop_todo.yml +55 -0
- data/CHANGELOG.md +22 -1
- data/CONTRIBUTING.adoc +6 -6
- data/Gemfile +12 -4
- data/README.adoc +104 -70
- data/Rakefile +235 -66
- data/features/box-command.feature +26 -1
- data/features/env-command.feature +20 -3
- data/features/help-command.feature +4 -1
- data/features/install-cli.feature +58 -0
- data/features/openshift.feature +2 -1
- data/features/service-operation.feature +76 -3
- data/features/support/env.rb +26 -10
- data/lib/vagrant-service-manager.rb +7 -2
- data/lib/vagrant-service-manager/action/setup_network.rb +0 -2
- data/lib/vagrant-service-manager/archive_handlers/tar_handler.rb +26 -0
- data/lib/vagrant-service-manager/archive_handlers/zip_handler.rb +25 -0
- data/lib/vagrant-service-manager/binary_handlers/adb_binary_handler.rb +55 -0
- data/lib/vagrant-service-manager/binary_handlers/adb_docker_binary_handler.rb +38 -0
- data/lib/vagrant-service-manager/binary_handlers/adb_openshift_binary_handler.rb +49 -0
- data/lib/vagrant-service-manager/binary_handlers/binary_handler.rb +119 -0
- data/lib/vagrant-service-manager/binary_handlers/cdk_binary_handler.rb +33 -0
- data/lib/vagrant-service-manager/binary_handlers/cdk_docker_binary_handler.rb +9 -0
- data/lib/vagrant-service-manager/binary_handlers/cdk_openshift_binary_handler.rb +9 -0
- data/lib/vagrant-service-manager/command.rb +90 -15
- data/lib/vagrant-service-manager/config.rb +8 -8
- data/lib/vagrant-service-manager/installer.rb +49 -0
- data/lib/vagrant-service-manager/plugin.rb +2 -2
- data/lib/vagrant-service-manager/plugin_logger.rb +2 -2
- data/lib/vagrant-service-manager/plugin_util.rb +29 -6
- data/lib/vagrant-service-manager/service.rb +4 -3
- data/lib/vagrant-service-manager/service_base.rb +11 -0
- data/lib/vagrant-service-manager/services/docker.rb +29 -29
- data/lib/vagrant-service-manager/services/kubernetes.rb +7 -7
- data/lib/vagrant-service-manager/services/open_shift.rb +42 -41
- data/lib/vagrant-service-manager/version.rb +1 -1
- data/locales/en.yml +42 -4
- data/plugins/guests/redhat/cap/machine_ip.rb +2 -1
- data/plugins/guests/redhat/plugin.rb +1 -1
- data/plugins/hosts/darwin/cap/os_arch.rb +11 -0
- data/plugins/hosts/darwin/plugin.rb +13 -0
- data/plugins/hosts/linux/cap/os_arch.rb +11 -0
- data/plugins/hosts/linux/plugin.rb +13 -0
- data/plugins/hosts/windows/cap/os_arch.rb +18 -0
- data/plugins/hosts/windows/plugin.rb +13 -0
- data/test/test_data/docker-1.10.0.tar.gz +0 -0
- data/test/test_data/docker-1.11.0.tgz +0 -0
- data/test/test_data/docker-1.9.1.zip +0 -0
- data/test/test_data/openshift-origin-client-tools-v1.2.0-2e62fab-linux-64bit.tar.gz +0 -0
- data/test/test_data/openshift-origin-client-tools-v1.2.0-2e62fab-linux-64bit.zip +0 -0
- data/test/test_data/openshift-origin-client-tools-v1.2.0-2e62fab-mac.zip +0 -0
- data/test/test_helper.rb +121 -0
- data/test/vagrant-service-manager/archive_handler_test.rb +49 -0
- data/test/vagrant-service-manager/binary_handlers/adb_docker_binary_handler_test.rb +111 -0
- data/test/vagrant-service-manager/binary_handlers/adb_openshift_binary_handler_test.rb +107 -0
- data/test/vagrant-service-manager/installer_test.rb +96 -0
- data/vagrant-service-manager.gemspec +4 -3
- metadata +43 -16
- data/TODO +0 -24
- data/Vagrantfile +0 -29
- data/lib/vagrant-service-manager/os.rb +0 -22
- data/vagrant-service-manager.spec +0 -215
@@ -2,7 +2,7 @@ module VagrantPlugins
|
|
2
2
|
module GuestRedHat
|
3
3
|
module Cap
|
4
4
|
class MachineIP
|
5
|
-
def self.machine_ip(machine)
|
5
|
+
def self.machine_ip(machine, options = {})
|
6
6
|
# Find the guest IP
|
7
7
|
command = "ip -o -4 addr show up |egrep -v ': docker|: lo' |tail -1 | awk '{print $4}' |cut -f1 -d\/"
|
8
8
|
ip = ''
|
@@ -10,6 +10,7 @@ module VagrantPlugins
|
|
10
10
|
PluginLogger.debug
|
11
11
|
machine.communicate.execute(command) do |type, data|
|
12
12
|
ip << data.chomp if type == :stdout
|
13
|
+
return "IP=#{ip}" if options[:script_readable]
|
13
14
|
end
|
14
15
|
|
15
16
|
ip
|
@@ -2,7 +2,7 @@ require 'vagrant'
|
|
2
2
|
require File.expand_path('../../../../', __FILE__) + '/lib/vagrant-service-manager/plugin_logger'
|
3
3
|
|
4
4
|
module VagrantPlugins
|
5
|
-
OS_RELEASE_FILE = '/etc/os-release'
|
5
|
+
OS_RELEASE_FILE = '/etc/os-release'.freeze
|
6
6
|
|
7
7
|
module GuestRedHat
|
8
8
|
class Plugin < Vagrant.plugin('2')
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module VagrantPlugins
|
2
|
+
module HostWindows
|
3
|
+
module Cap
|
4
|
+
class OSArch
|
5
|
+
def self.os_arch(_env)
|
6
|
+
# Logic taken from http://stackoverflow.com/a/25845488
|
7
|
+
arch = 'x86_64'
|
8
|
+
|
9
|
+
if ENV['PROCESSOR_ARCHITECTURE'] == 'x86'
|
10
|
+
arch = 'i386' unless ENV['PROCESSOR_ARCHITEW6432']
|
11
|
+
end
|
12
|
+
|
13
|
+
arch
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,121 @@
|
|
1
|
+
$LOAD_PATH.push(File.expand_path('../../plugins', __FILE__))
|
2
|
+
$LOAD_PATH.push(File.expand_path('../../lib', __FILE__))
|
3
|
+
$LOAD_PATH.push(File.expand_path('../../locales', __FILE__))
|
4
|
+
|
5
|
+
require 'bundler/setup'
|
6
|
+
require 'minitest/spec'
|
7
|
+
require 'minitest/autorun'
|
8
|
+
require 'mocha/mini_test'
|
9
|
+
|
10
|
+
require 'vagrant-service-manager'
|
11
|
+
require 'guests/redhat/cap/box_version'
|
12
|
+
require 'guests/redhat/cap/os_variant'
|
13
|
+
|
14
|
+
def fake_environment(options = { enabled: true })
|
15
|
+
{ machine: fake_machine(options), ui: FakeUI }
|
16
|
+
end
|
17
|
+
|
18
|
+
class FakeUI
|
19
|
+
attr_reader :received_info_messages
|
20
|
+
|
21
|
+
def initialize
|
22
|
+
@received_info_messages = []
|
23
|
+
end
|
24
|
+
|
25
|
+
def info(*args)
|
26
|
+
# puts "#{args}"
|
27
|
+
@received_info_messages << args[0]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
class RecordingCommunicator
|
32
|
+
attr_reader :commands, :responses
|
33
|
+
|
34
|
+
def initialize
|
35
|
+
@commands = Hash.new([])
|
36
|
+
@responses = Hash.new('')
|
37
|
+
end
|
38
|
+
|
39
|
+
def stub_command(command, response)
|
40
|
+
responses[command] = response
|
41
|
+
end
|
42
|
+
|
43
|
+
def sudo(command)
|
44
|
+
commands[:sudo] << command
|
45
|
+
responses[command]
|
46
|
+
end
|
47
|
+
|
48
|
+
def execute(command)
|
49
|
+
commands[:execute] << command
|
50
|
+
responses[command].split("\n").each do |line|
|
51
|
+
yield(:stdout, "#{line}\n")
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def test(command)
|
56
|
+
commands[:test] << command
|
57
|
+
true
|
58
|
+
end
|
59
|
+
|
60
|
+
def ready?
|
61
|
+
true
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
module ServiceManager
|
66
|
+
class FakeProvider
|
67
|
+
def initialize(*args)
|
68
|
+
end
|
69
|
+
|
70
|
+
def _initialize(*args)
|
71
|
+
end
|
72
|
+
|
73
|
+
def ssh_info
|
74
|
+
end
|
75
|
+
|
76
|
+
def state
|
77
|
+
@state ||= Vagrant::MachineState.new('fake-state', 'fake-state', 'fake-state')
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
class FakeConfig
|
82
|
+
def servicemanager
|
83
|
+
@servicemanager_config ||= VagrantPlugins::ServiceManager::Config.new
|
84
|
+
end
|
85
|
+
|
86
|
+
def vm
|
87
|
+
VagrantPlugins::Kernel_V2::VMConfig.new
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
def fake_machine(options = {})
|
93
|
+
env = options.fetch(:env, Vagrant::Environment.new)
|
94
|
+
|
95
|
+
machine = Vagrant::Machine.new(
|
96
|
+
'fake_machine',
|
97
|
+
'fake_provider',
|
98
|
+
ServiceManager::FakeProvider,
|
99
|
+
'provider_config',
|
100
|
+
{}, # provider_options
|
101
|
+
env.vagrantfile.config, # config
|
102
|
+
Pathname('data_dir'),
|
103
|
+
'box',
|
104
|
+
options.fetch(:env, Vagrant::Environment.new),
|
105
|
+
env.vagrantfile
|
106
|
+
)
|
107
|
+
|
108
|
+
machine.instance_variable_set('@communicator', RecordingCommunicator.new)
|
109
|
+
machine.config.vm.hostname = options.fetch(:hostname, 'somehost.vagrant.test')
|
110
|
+
machine
|
111
|
+
end
|
112
|
+
|
113
|
+
def test_data_dir_path
|
114
|
+
File.expand_path('test_data', File.dirname(__FILE__))
|
115
|
+
end
|
116
|
+
|
117
|
+
module MiniTest
|
118
|
+
class Spec
|
119
|
+
alias hush capture_io
|
120
|
+
end
|
121
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
module VagrantPlugins
|
4
|
+
module ServiceManager
|
5
|
+
describe 'Archive Handlers' do
|
6
|
+
before do
|
7
|
+
@machine = fake_machine
|
8
|
+
|
9
|
+
# set test path
|
10
|
+
@plugin_test_path = "#{@machine.env.data_dir}/service-manager/test"
|
11
|
+
end
|
12
|
+
|
13
|
+
after do
|
14
|
+
FileUtils.rmtree(@plugin_test_path) if File.directory? @plugin_test_path
|
15
|
+
end
|
16
|
+
|
17
|
+
describe TarHandler do
|
18
|
+
it "should unpack '.tgz' archive properly" do
|
19
|
+
test_archive_path = "#{test_data_dir_path}/docker-1.11.0.tgz"
|
20
|
+
dest_binary_path = @plugin_test_path + '/docker-1.11.0'
|
21
|
+
regex = %r{\/docker$}
|
22
|
+
|
23
|
+
TarHandler.new(test_archive_path, dest_binary_path, regex).unpack
|
24
|
+
assert_equal(File.exist?(dest_binary_path), true)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should unpack '.tar.gz' archive properly" do
|
28
|
+
test_archive_path = "#{test_data_dir_path}/docker-1.10.0.tar.gz"
|
29
|
+
dest_binary_path = @plugin_test_path + '/docker-1.10.0'
|
30
|
+
regex = %r{\/docker$}
|
31
|
+
|
32
|
+
TarHandler.new(test_archive_path, dest_binary_path, regex).unpack
|
33
|
+
assert_equal(File.exist?(dest_binary_path), true)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe ZipHandler do
|
38
|
+
it "should unpack '.zip' archive properly" do
|
39
|
+
test_archive_path = "#{test_data_dir_path}/docker-1.9.1.zip"
|
40
|
+
dest_binary_path = @plugin_test_path + '/docker-1.9.1'
|
41
|
+
regex = %r{\/docker.exe$}
|
42
|
+
|
43
|
+
ZipHandler.new(test_archive_path, dest_binary_path, regex).unpack
|
44
|
+
assert_equal(File.exist?(dest_binary_path), true)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,111 @@
|
|
1
|
+
require_relative '../../test_helper'
|
2
|
+
require 'vagrant/util/downloader'
|
3
|
+
|
4
|
+
# Tests through ADBDockerBinaryHandler to BinaryHandler
|
5
|
+
module VagrantPlugins
|
6
|
+
module ServiceManager
|
7
|
+
describe ADBDockerBinaryHandler do
|
8
|
+
before do
|
9
|
+
@machine = fake_machine
|
10
|
+
@options = { type: :docker, '--cli-version' => '1.11.0' }
|
11
|
+
|
12
|
+
# set test path
|
13
|
+
@plugin_test_path = "#{@machine.env.data_dir}/service-manager/test"
|
14
|
+
ServiceManager.temp_dir = "#{@plugin_test_path}/temp"
|
15
|
+
ServiceManager.bin_dir = "#{@plugin_test_path}/bin"
|
16
|
+
|
17
|
+
@handler = ADBDockerBinaryHandler.new(@machine, @machine.env, @options)
|
18
|
+
end
|
19
|
+
|
20
|
+
after do
|
21
|
+
FileUtils.rmtree(@plugin_test_path) if File.directory? @plugin_test_path
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should set defaults values properly' do
|
25
|
+
@handler.instance_variable_get('@machine').must_equal @machine
|
26
|
+
@handler.url.must_equal ''
|
27
|
+
@handler.binary_exists.must_equal true
|
28
|
+
@handler.skip_download.must_equal false
|
29
|
+
@handler.archive_file_path.must_equal ''
|
30
|
+
@handler.type.must_equal @options[:type]
|
31
|
+
@handler.version.must_equal @options['--cli-version']
|
32
|
+
@handler.path.must_equal "#{ServiceManager.bin_dir}/docker/1.11.0/docker"
|
33
|
+
expected_temp_bin_dir = "#{ServiceManager.temp_dir}/docker"
|
34
|
+
@handler.instance_variable_get('@temp_bin_dir').must_equal expected_temp_bin_dir
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'should build download url' do
|
38
|
+
expected_url = 'https://get.docker.com/builds/Linux/x86_64/docker-1.11.0.tgz'
|
39
|
+
expected_url.sub!(/Linux/, 'Darwin') if Vagrant::Util::Platform.darwin?
|
40
|
+
|
41
|
+
@handler.send(:build_download_url)
|
42
|
+
@handler.instance_variable_get('@url').must_equal expected_url
|
43
|
+
end
|
44
|
+
|
45
|
+
# Binary format changed after 1.11.0
|
46
|
+
# https://github.com/docker/docker/blob/v1.11.0-rc1/CHANGELOG.md#1110-2016-04-12
|
47
|
+
it 'should build download url for docker < 1.11.0' do
|
48
|
+
expected_url = 'https://get.docker.com/builds/Linux/x86_64/docker-1.10.3'
|
49
|
+
expected_url.sub!(/Linux/, 'Darwin') if Vagrant::Util::Platform.darwin?
|
50
|
+
|
51
|
+
@handler.version = '1.10.3'
|
52
|
+
@handler.build_download_url
|
53
|
+
@handler.url.must_equal expected_url
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'should validate download url' do
|
57
|
+
@options['--cli-version'] = '111.222.333'
|
58
|
+
@handler = ADBDockerBinaryHandler.new(@machine, @machine.env, @options)
|
59
|
+
@handler.build_download_url
|
60
|
+
assert_raises(URLValidationError) { @handler.validate_url }
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'should build archive path' do
|
64
|
+
expected_path = "#{ServiceManager.temp_dir}/docker/docker-1.11.0.tgz"
|
65
|
+
@handler.build_download_url
|
66
|
+
@handler.build_archive_path
|
67
|
+
@handler.instance_variable_get('@archive_file_path').must_equal expected_path
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'should ensure availability of binary and temp directories' do
|
71
|
+
expected_bin_dir = "#{ServiceManager.bin_dir}/docker"
|
72
|
+
expected_temp_dir = "#{ServiceManager.temp_dir}/docker"
|
73
|
+
|
74
|
+
@handler.build_download_url
|
75
|
+
@handler.build_archive_path
|
76
|
+
@handler.ensure_binary_and_temp_directories
|
77
|
+
|
78
|
+
assert_equal(File.directory?(expected_bin_dir), true)
|
79
|
+
assert_equal(File.directory?(expected_temp_dir), true)
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'should not download if archive file exists' do
|
83
|
+
archive_file_dir = "#{ServiceManager.temp_dir}/docker"
|
84
|
+
FileUtils.mkdir_p(archive_file_dir) unless File.directory?(archive_file_dir)
|
85
|
+
FileUtils.touch("#{archive_file_dir}/docker-1.11.0.tgz")
|
86
|
+
|
87
|
+
@handler.build_download_url
|
88
|
+
@handler.build_archive_path
|
89
|
+
@handler.download_archive
|
90
|
+
|
91
|
+
@handler.skip_download.must_equal true
|
92
|
+
end
|
93
|
+
|
94
|
+
it 'should prepare binary properly' do
|
95
|
+
test_archive_path = "#{test_data_dir_path}/docker-1.11.0.tgz"
|
96
|
+
|
97
|
+
@handler.build_download_url
|
98
|
+
@handler.build_archive_path
|
99
|
+
@handler.ensure_binary_and_temp_directories
|
100
|
+
|
101
|
+
FileUtils.cp(test_archive_path, @handler.archive_file_path)
|
102
|
+
|
103
|
+
@handler.prepare_binary
|
104
|
+
@handler.binary_name.must_equal 'docker'
|
105
|
+
@handler.file_regex.must_equal %r{\/docker$}
|
106
|
+
@handler.archive_handler_class.must_equal VagrantPlugins::ServiceManager::TarHandler
|
107
|
+
assert_equal(File.exist?(@handler.path), true)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
@@ -0,0 +1,107 @@
|
|
1
|
+
require_relative '../../test_helper'
|
2
|
+
require 'vagrant/util/downloader'
|
3
|
+
|
4
|
+
# Tests through ADBOpenshiftBinaryHandler to BinaryHandler
|
5
|
+
module VagrantPlugins
|
6
|
+
module ServiceManager
|
7
|
+
describe ADBOpenshiftBinaryHandler do
|
8
|
+
before do
|
9
|
+
@machine = fake_machine
|
10
|
+
@options = { type: :openshift, '--cli-version' => '1.2.0' }
|
11
|
+
@archive_base_url = 'https://github.com/openshift/origin/releases/download/v1.2.0'
|
12
|
+
@archive_file = 'openshift-origin-client-tools-v1.2.0-2e62fab-linux-64bit.tar.gz'
|
13
|
+
@archive_file.sub!(/linux-64bit.tar.gz/, 'mac.zip') if Vagrant::Util::Platform.darwin?
|
14
|
+
|
15
|
+
# set test path
|
16
|
+
@plugin_test_path = "#{@machine.env.data_dir}/service-manager/test"
|
17
|
+
ServiceManager.temp_dir = "#{@plugin_test_path}/temp"
|
18
|
+
ServiceManager.bin_dir = "#{@plugin_test_path}/bin"
|
19
|
+
|
20
|
+
@handler = ADBOpenshiftBinaryHandler.new(@machine, @machine.env, @options)
|
21
|
+
end
|
22
|
+
|
23
|
+
after do
|
24
|
+
FileUtils.rmtree(@plugin_test_path) if File.directory? @plugin_test_path
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should set defaults values properly' do
|
28
|
+
@handler.instance_variable_get('@machine').must_equal @machine
|
29
|
+
@handler.url.must_equal ''
|
30
|
+
@handler.binary_exists.must_equal true
|
31
|
+
@handler.skip_download.must_equal false
|
32
|
+
@handler.archive_file_path.must_equal ''
|
33
|
+
@handler.type.must_equal @options[:type]
|
34
|
+
@handler.version.must_equal @options['--cli-version']
|
35
|
+
@handler.path.must_equal "#{ServiceManager.bin_dir}/openshift/1.2.0/oc"
|
36
|
+
expected_temp_bin_dir = "#{ServiceManager.temp_dir}/openshift"
|
37
|
+
@handler.instance_variable_get('@temp_bin_dir').must_equal expected_temp_bin_dir
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should build download url' do
|
41
|
+
expected_url = "#{@archive_base_url}/#{@archive_file}"
|
42
|
+
|
43
|
+
@handler.send(:build_download_url)
|
44
|
+
@handler.instance_variable_get('@url').must_equal expected_url
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'should validate download url' do
|
48
|
+
@options['--cli-version'] = '111.222.333'
|
49
|
+
@handler = ADBDockerBinaryHandler.new(@machine, @machine.env, @options)
|
50
|
+
@handler.build_download_url
|
51
|
+
assert_raises(URLValidationError) { @handler.validate_url }
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'should build archive path' do
|
55
|
+
expected_path = "#{ServiceManager.temp_dir}/openshift/#{@archive_file}"
|
56
|
+
|
57
|
+
@handler.build_download_url
|
58
|
+
@handler.build_archive_path
|
59
|
+
@handler.instance_variable_get('@archive_file_path').must_equal expected_path
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'should ensure availability of binary and temp directories' do
|
63
|
+
expected_bin_dir = "#{ServiceManager.bin_dir}/openshift"
|
64
|
+
expected_temp_dir = "#{ServiceManager.temp_dir}/openshift"
|
65
|
+
|
66
|
+
@handler.build_download_url
|
67
|
+
@handler.build_archive_path
|
68
|
+
@handler.ensure_binary_and_temp_directories
|
69
|
+
|
70
|
+
assert_equal(File.directory?(expected_bin_dir), true)
|
71
|
+
assert_equal(File.directory?(expected_temp_dir), true)
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'should not download if archive file exists' do
|
75
|
+
archive_file_dir = "#{ServiceManager.temp_dir}/openshift"
|
76
|
+
FileUtils.mkdir_p(archive_file_dir) unless File.directory?(archive_file_dir)
|
77
|
+
FileUtils.touch("#{archive_file_dir}/#{@archive_file}")
|
78
|
+
|
79
|
+
@handler.build_download_url
|
80
|
+
@handler.build_archive_path
|
81
|
+
@handler.download_archive
|
82
|
+
|
83
|
+
@handler.skip_download.must_equal true
|
84
|
+
end
|
85
|
+
|
86
|
+
it 'should prepare binary properly' do
|
87
|
+
test_archive_path = "#{test_data_dir_path}/#{@archive_file}"
|
88
|
+
|
89
|
+
@handler.build_download_url
|
90
|
+
@handler.build_archive_path
|
91
|
+
@handler.ensure_binary_and_temp_directories
|
92
|
+
|
93
|
+
FileUtils.cp(test_archive_path, @handler.archive_file_path)
|
94
|
+
|
95
|
+
@handler.prepare_binary
|
96
|
+
@handler.binary_name.must_equal 'oc'
|
97
|
+
@handler.file_regex.must_equal /oc$/
|
98
|
+
if Vagrant::Util::Platform.darwin?
|
99
|
+
@handler.archive_handler_class.must_equal VagrantPlugins::ServiceManager::ZipHandler
|
100
|
+
else
|
101
|
+
@handler.archive_handler_class.must_equal VagrantPlugins::ServiceManager::TarHandler
|
102
|
+
end
|
103
|
+
assert_equal(File.exist?(@handler.path), true)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|