vagrant-omnibus 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.travis.yml +1 -0
- data/CHANGELOG.md +18 -0
- data/Gemfile +5 -5
- data/README.md +1 -0
- data/lib/vagrant-omnibus/action/install_chef.rb +65 -13
- data/lib/vagrant-omnibus/plugin.rb +3 -3
- data/lib/vagrant-omnibus/version.rb +1 -1
- data/locales/en.yml +3 -0
- metadata +4 -4
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
## 1.1.2 (October 17, 2013)
|
2
|
+
|
3
|
+
IMPROVEMENTS:
|
4
|
+
|
5
|
+
* PR [#41][]: Add vagrant-digitalocean to the list of supported providers. ([@tmatilai][])
|
6
|
+
* PR [#45][]: Compatibility with vagrant-aws v0.4.0 ([@tmatilai][])
|
7
|
+
* Use Vagrant's built in `Vagrant::Util::Downloader` class; removes requirement of the
|
8
|
+
guest OS having `wget` or `curl` installed. ([@schisamo][])
|
9
|
+
|
10
|
+
BUG FIXES:
|
11
|
+
|
12
|
+
* PR [#43][]: Fix development dependencies and Travis tests. ([@tmatilai][])
|
13
|
+
* Issue [#33][] Split fetching of `install.sh` from the actual execution ([@schisamo][])
|
14
|
+
|
1
15
|
## 1.1.1 (September 4, 2013)
|
2
16
|
|
3
17
|
BUG FIXES:
|
@@ -66,8 +80,12 @@ BUG FIXES:
|
|
66
80
|
[#28]: https://github.com/schisamo/vagrant-omnibus/issues/28
|
67
81
|
[#31]: https://github.com/schisamo/vagrant-omnibus/issues/31
|
68
82
|
[#32]: https://github.com/schisamo/vagrant-omnibus/issues/32
|
83
|
+
[#33]: https://github.com/schisamo/vagrant-omnibus/issues/33
|
69
84
|
[#37]: https://github.com/schisamo/vagrant-omnibus/issues/37
|
70
85
|
[#38]: https://github.com/schisamo/vagrant-omnibus/issues/38
|
86
|
+
[#41]: https://github.com/schisamo/vagrant-omnibus/issues/41
|
87
|
+
[#43]: https://github.com/schisamo/vagrant-omnibus/issues/43
|
88
|
+
[#45]: https://github.com/schisamo/vagrant-omnibus/issues/45
|
71
89
|
[@matsu911]: https://github.com/matsu911
|
72
90
|
[@michfield]: https://github.com/michfield
|
73
91
|
[@petecheslock]: https://github.com/petecheslock
|
data/Gemfile
CHANGED
@@ -6,13 +6,13 @@ group :development do
|
|
6
6
|
# We depend on Vagrant for development, but we don't add it as a
|
7
7
|
# gem dependency because we expect to be installed within the
|
8
8
|
# Vagrant environment itself using `vagrant plugin`.
|
9
|
-
gem "vagrant", :git => "git://github.com/mitchellh/vagrant.git", :tag => "v1.
|
9
|
+
gem "vagrant", :git => "git://github.com/mitchellh/vagrant.git", :tag => "v1.3.5"
|
10
10
|
end
|
11
11
|
|
12
|
-
group :
|
13
|
-
gem "vagrant-digitalocean", "~> 0.
|
14
|
-
gem "vagrant-aws", "~> 0.
|
15
|
-
gem "vagrant-rackspace", "~> 0.1.
|
12
|
+
group :acceptance do
|
13
|
+
gem "vagrant-digitalocean", "~> 0.4.0"
|
14
|
+
gem "vagrant-aws", "~> 0.4.0"
|
15
|
+
gem "vagrant-rackspace", "~> 0.1.4"
|
16
16
|
end
|
17
17
|
|
18
18
|
group :docs do
|
data/README.md
CHANGED
@@ -21,6 +21,7 @@ known to work with the following
|
|
21
21
|
* VMWare Fusion (can be [purchased from Hashicorp](http://www.vagrantup.com/vmware))
|
22
22
|
* LXC (ships in [vagrant-lxc](https://github.com/fgrehm/vagrant-lxc))
|
23
23
|
* OpenStack (ships in [vagrant-openstack-plugin](https://github.com/cloudbau/vagrant-openstack-plugin))
|
24
|
+
* Digital Ocean (ships in [vagrant-digitalocean](https://github.com/smdahlen/vagrant-digitalocean))
|
24
25
|
|
25
26
|
## Installation
|
26
27
|
|
@@ -14,8 +14,11 @@
|
|
14
14
|
# limitations under the License.
|
15
15
|
#
|
16
16
|
|
17
|
+
require "log4r"
|
17
18
|
require 'shellwords'
|
18
19
|
|
20
|
+
require "vagrant/util/downloader"
|
21
|
+
|
19
22
|
module VagrantPlugins
|
20
23
|
module Omnibus
|
21
24
|
module Action
|
@@ -28,6 +31,7 @@ module VagrantPlugins
|
|
28
31
|
|
29
32
|
def initialize(app, env)
|
30
33
|
@app = app
|
34
|
+
@logger = Log4r::Logger.new("vagrantplugins::omnibus::action::installchef")
|
31
35
|
@machine = env[:machine]
|
32
36
|
# Config#finalize! SHOULD be called automatically
|
33
37
|
@machine.config.omnibus.finalize!
|
@@ -45,10 +49,12 @@ module VagrantPlugins
|
|
45
49
|
:version => desired_version
|
46
50
|
})
|
47
51
|
else
|
52
|
+
fetch_install_sh(env)
|
48
53
|
env[:ui].info I18n.t('vagrant-omnibus.action.installing', {
|
49
54
|
:version => desired_version
|
50
55
|
})
|
51
|
-
install(desired_version)
|
56
|
+
install(desired_version, env)
|
57
|
+
recover(env)
|
52
58
|
end
|
53
59
|
end
|
54
60
|
end
|
@@ -64,19 +70,65 @@ module VagrantPlugins
|
|
64
70
|
version
|
65
71
|
end
|
66
72
|
|
67
|
-
|
73
|
+
# Uploads install.sh from Host's Vagrant TMP directory to guest
|
74
|
+
# and executes.
|
75
|
+
def install(version, env)
|
68
76
|
shell_escaped_version = Shellwords.escape(version)
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
77
|
+
|
78
|
+
@machine.communicate.tap do |comm|
|
79
|
+
comm.upload(@install_sh_temp_path, "install.sh")
|
80
|
+
# TODO - Execute with `sh` once install.sh removes it's bash-isms.
|
81
|
+
comm.sudo("bash install.sh -v #{shell_escaped_version} 2>&1") do |type, data|
|
82
|
+
if [:stderr, :stdout].include?(type)
|
83
|
+
next if data =~ /stdin: is not a tty/
|
84
|
+
env[:ui].info(data)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
# Fetches install.sh file to the Host's Vagrant TMP directory.
|
91
|
+
#
|
92
|
+
# Mostly lifted from:
|
93
|
+
#
|
94
|
+
# https://github.com/mitchellh/vagrant/blob/master/lib/vagrant/action/builtin/box_add.rb
|
95
|
+
#
|
96
|
+
def fetch_install_sh(env)
|
97
|
+
@install_sh_temp_path = env[:tmp_path].join(Time.now.to_i.to_s + "-install.sh")
|
98
|
+
@logger.info("Downloading install.sh to: #{@install_sh_temp_path}")
|
99
|
+
|
100
|
+
url = INSTALL_SH
|
101
|
+
if File.file?(url) || url !~ /^[a-z0-9]+:.*$/i
|
102
|
+
@logger.info("URL is a file or protocol not found and assuming file.")
|
103
|
+
file_path = File.expand_path(url)
|
104
|
+
file_path = Vagrant::Util::Platform.cygwin_windows_path(file_path)
|
105
|
+
url = "file:#{file_path}"
|
106
|
+
end
|
107
|
+
|
108
|
+
downloader_options = {}
|
109
|
+
# downloader_options[:insecure] = env[:box_download_insecure]
|
110
|
+
# downloader_options[:ui] = env[:ui]
|
111
|
+
|
112
|
+
# Download the install.sh file to a temporary path. We store
|
113
|
+
# the temporary path as an instance variable so that the
|
114
|
+
# `#recover` method can access it.
|
115
|
+
begin
|
116
|
+
downloader = Vagrant::Util::Downloader.new(url,
|
117
|
+
@install_sh_temp_path,
|
118
|
+
downloader_options)
|
119
|
+
downloader.download!
|
120
|
+
rescue Vagrant::Errors::DownloaderInterrupted
|
121
|
+
# The downloader was interrupted, so just return, because that
|
122
|
+
# means we were interrupted as well.
|
123
|
+
env[:ui].info(I18n.t("vagrant-omnibus.download.interrupted"))
|
124
|
+
return
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
def recover(env)
|
129
|
+
if @install_sh_temp_path && File.exist?(@install_sh_temp_path)
|
130
|
+
File.unlink(@install_sh_temp_path)
|
131
|
+
end
|
80
132
|
end
|
81
133
|
end
|
82
134
|
end
|
@@ -34,12 +34,12 @@ module VagrantPlugins
|
|
34
34
|
require_relative "action/install_chef"
|
35
35
|
hook.after(Vagrant::Action::Builtin::Provision, Action::InstallChef)
|
36
36
|
|
37
|
-
# The AWS provider uses a non-standard Provision action on initial
|
37
|
+
# The AWS provider < v0.4.0 uses a non-standard Provision action on initial
|
38
38
|
# creation:
|
39
39
|
#
|
40
|
-
# https://github.com/mitchellh/vagrant-aws/blob/
|
40
|
+
# https://github.com/mitchellh/vagrant-aws/blob/v0.3.0/lib/vagrant-aws/action.rb#L105
|
41
41
|
#
|
42
|
-
if VagrantPlugins
|
42
|
+
if defined? VagrantPlugins::AWS::Action::TimedProvision
|
43
43
|
hook.after(VagrantPlugins::AWS::Action::TimedProvision, Action::InstallChef)
|
44
44
|
end
|
45
45
|
end
|
data/locales/en.yml
CHANGED
@@ -3,3 +3,6 @@ en:
|
|
3
3
|
action:
|
4
4
|
installed: "Chef %{version} Omnibus package is already installed."
|
5
5
|
installing: "Installing Chef %{version} Omnibus package..."
|
6
|
+
download:
|
7
|
+
downloading: "Downloading or copying install.sh..."
|
8
|
+
interrupted: "Install.sh download was interrupted. Exiting."
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-omnibus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-10-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -108,7 +108,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
108
108
|
version: '0'
|
109
109
|
segments:
|
110
110
|
- 0
|
111
|
-
hash: -
|
111
|
+
hash: -3817557058599650856
|
112
112
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
113
|
none: false
|
114
114
|
requirements:
|
@@ -117,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
117
117
|
version: '0'
|
118
118
|
segments:
|
119
119
|
- 0
|
120
|
-
hash: -
|
120
|
+
hash: -3817557058599650856
|
121
121
|
requirements: []
|
122
122
|
rubyforge_project:
|
123
123
|
rubygems_version: 1.8.23
|