vagrant-vcenter 0.1.0 → 0.1.1
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 +4 -4
- data/README.md +12 -1
- data/lib/vagrant-vcenter/action/build_vm.rb +10 -2
- data/lib/vagrant-vcenter/action/connect_vcenter.rb +1 -1
- data/lib/vagrant-vcenter/action/inventory_check.rb +23 -8
- data/lib/vagrant-vcenter/cap/public_address.rb +18 -0
- data/lib/vagrant-vcenter/plugin.rb +7 -1
- data/lib/vagrant-vcenter/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cbc68c8b0dd49dd5af92c1aed4ddd88a470c486d
|
4
|
+
data.tar.gz: 938d2e5c277559decb8e5f2507dad4a2620465a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d9278d845e8cf8953691975a0d1519be4f12a5ffee67f5f071b2e1d05fcd119cfca25ad6ad12109d641ff22b239f21e7eb088642064549ac5e1b4efe2eb792dd
|
7
|
+
data.tar.gz: aff96e740e4bd02074e1d58c48bfd227872b4fd8a30bd2e80b501dfe10957f130f40d0febb6dd38d9c4a61e9c7a4c1ca209df6945afd827f747768db3a068213
|
data/README.md
CHANGED
@@ -1,13 +1,18 @@
|
|
1
1
|
[Vagrant](http://www.vagrantup.com) provider for VMware vCenter®
|
2
2
|
=============
|
3
3
|
|
4
|
-
[Version 0.1.
|
4
|
+
[Version 0.1.1](../../releases/tag/v0.1.1) has been released!
|
5
5
|
-------------
|
6
6
|
|
7
7
|
Please note that this software is still Alpha/Beta quality and is not recommended for production usage.
|
8
8
|
|
9
9
|
Right now a [Precise32](http://vagrant.gosddc.com/boxes/precise32-vcenter.box) is available for use, or you can roll your own as you please, make sure to install VMware tools in it.
|
10
10
|
|
11
|
+
Changes in [version 0.1.1](../../releases/tag/v0.1.1) include:
|
12
|
+
|
13
|
+
- Support for ```vagrant share``` [Fixes [#2](../../issues/2)]
|
14
|
+
- Support for [Vagrant Cloud](http://vagrantcloud.com) boxes [Fixes [#1](../../issues/1)]
|
15
|
+
|
11
16
|
Install
|
12
17
|
-------------
|
13
18
|
|
@@ -17,6 +22,12 @@ Latest version can be easily installed by running the following command:
|
|
17
22
|
|
18
23
|
Vagrant will download all the required gems during the installation process.
|
19
24
|
|
25
|
+
If you already have the plugin installed you can use:
|
26
|
+
|
27
|
+
```vagrant plugin upgrade vagrant-vcenter```
|
28
|
+
|
29
|
+
To perform an upgrade to the latest version.
|
30
|
+
|
20
31
|
After the install has completed a ```vagrant up --provider=vcenter``` will trigger the newly installed provider.
|
21
32
|
|
22
33
|
Configuration
|
@@ -22,11 +22,19 @@ module VagrantPlugins
|
|
22
22
|
dc = config.vcenter_cnx.serviceInstance.find_datacenter(
|
23
23
|
config.datacenter_name) or abort 'datacenter not found'
|
24
24
|
|
25
|
+
if env[:machine].box.name.to_s.include? '/'
|
26
|
+
box_file = env[:machine].box.name.rpartition('/').last.to_s
|
27
|
+
box_name = env[:machine].box.name.to_s.gsub(/\//, '-')
|
28
|
+
else
|
29
|
+
box_file = env[:machine].box.name.to_s
|
30
|
+
box_name = box_file
|
31
|
+
end
|
32
|
+
|
25
33
|
if config.template_folder_name.nil?
|
26
|
-
box_to_search =
|
34
|
+
box_to_search = box_name
|
27
35
|
else
|
28
36
|
box_to_search = config.template_folder_name + '/' +
|
29
|
-
|
37
|
+
box_name
|
30
38
|
end
|
31
39
|
|
32
40
|
# FIXME: Raise a correct exception
|
@@ -20,7 +20,7 @@ module VagrantPlugins
|
|
20
20
|
|
21
21
|
@logger.debug("config.hostname: #{config.hostname}")
|
22
22
|
@logger.debug("config.username: #{config.username}")
|
23
|
-
@logger.debug(
|
23
|
+
@logger.debug('config.password: <hidden>')
|
24
24
|
|
25
25
|
# FIXME: fix the insecure flag, catch the exception
|
26
26
|
config.vcenter_cnx = RbVmomi::VIM.connect(
|
@@ -26,7 +26,14 @@ module VagrantPlugins
|
|
26
26
|
config = env[:machine].provider_config
|
27
27
|
|
28
28
|
box_dir = env[:machine].box.directory.to_s
|
29
|
-
|
29
|
+
|
30
|
+
if env[:machine].box.name.to_s.include? '/'
|
31
|
+
box_file = env[:machine].box.name.rpartition('/').last.to_s
|
32
|
+
box_name = env[:machine].box.name.to_s.gsub(/\//, '-')
|
33
|
+
else
|
34
|
+
box_file = env[:machine].box.name.to_s
|
35
|
+
box_name = box_file
|
36
|
+
end
|
30
37
|
|
31
38
|
box_ovf = "file://#{box_dir}/#{box_file}.ovf"
|
32
39
|
|
@@ -35,7 +42,7 @@ module VagrantPlugins
|
|
35
42
|
|
36
43
|
@logger.debug("OVF File: #{box_ovf}")
|
37
44
|
|
38
|
-
env[:ui].info("Adding [#{
|
45
|
+
env[:ui].info("Adding [#{box_name}]")
|
39
46
|
|
40
47
|
# FIXME: Raise a correct exception
|
41
48
|
dc = config.vcenter_cnx.serviceInstance.find_datacenter(
|
@@ -51,7 +58,7 @@ module VagrantPlugins
|
|
51
58
|
config.template_folder_name,
|
52
59
|
RbVmomi::VIM::Folder)
|
53
60
|
|
54
|
-
template_name =
|
61
|
+
template_name = box_name
|
55
62
|
|
56
63
|
# FIXME: Raise a correct exception
|
57
64
|
datastore = dc.find_datastore(
|
@@ -91,11 +98,19 @@ module VagrantPlugins
|
|
91
98
|
dc = config.vcenter_cnx.serviceInstance.find_datacenter(
|
92
99
|
config.datacenter_name) or fail 'datacenter not found'
|
93
100
|
|
101
|
+
if env[:machine].box.name.to_s.include? '/'
|
102
|
+
box_file = env[:machine].box.name.rpartition('/').last.to_s
|
103
|
+
box_name = env[:machine].box.name.to_s.gsub(/\//, '-')
|
104
|
+
else
|
105
|
+
box_file = env[:machine].box.name.to_s
|
106
|
+
box_name = box_file
|
107
|
+
end
|
108
|
+
|
94
109
|
if config.template_folder_name.nil?
|
95
|
-
box_to_search =
|
110
|
+
box_to_search = box_name
|
96
111
|
else
|
97
112
|
box_to_search = config.template_folder_name +
|
98
|
-
'/' +
|
113
|
+
'/' + box_name
|
99
114
|
end
|
100
115
|
|
101
116
|
@logger.debug("This is the box we're looking for: #{box_to_search}")
|
@@ -103,16 +118,16 @@ module VagrantPlugins
|
|
103
118
|
config.template_id = dc.find_vm(box_to_search)
|
104
119
|
|
105
120
|
if config.template_id.nil?
|
106
|
-
env[:ui].warn("Template [#{
|
121
|
+
env[:ui].warn("Template [#{box_name}] " +
|
107
122
|
'does not exist!')
|
108
123
|
|
109
124
|
user_input = env[:ui].ask(
|
110
|
-
"Would you like to upload the [#{
|
125
|
+
"Would you like to upload the [#{box_name}]" +
|
111
126
|
" box?\nChoice (yes/no): "
|
112
127
|
)
|
113
128
|
|
114
129
|
if user_input.downcase == 'yes' || user_input.downcase == 'y'
|
115
|
-
env[:ui].info("Uploading [#{
|
130
|
+
env[:ui].info("Uploading [#{box_name}]...")
|
116
131
|
vcenter_upload_box(env)
|
117
132
|
else
|
118
133
|
env[:ui].error('Template not uploaded, exiting...')
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module VagrantPlugins
|
2
|
+
module VCenter
|
3
|
+
module Cap
|
4
|
+
module PublicAddress
|
5
|
+
def self.public_address(machine)
|
6
|
+
# Initial try for vagrant share feature.
|
7
|
+
# It seems ssh_info[:port] is given automatically.
|
8
|
+
# I think this feature was built planning that the port forwarding
|
9
|
+
# and networking was done on the vagrant machine, which isn't the
|
10
|
+
# case in vagrant-vcloud
|
11
|
+
|
12
|
+
ssh_info = machine.ssh_info
|
13
|
+
ssh_info[:host]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -12,7 +12,7 @@ module VagrantPlugins
|
|
12
12
|
module VCenter
|
13
13
|
# Initialize Vagrant Plugin
|
14
14
|
class Plugin < Vagrant.plugin('2')
|
15
|
-
name 'vCenter'
|
15
|
+
name 'VMware vCenter Provider'
|
16
16
|
description 'Allows Vagrant to manage machines with VMware vCenter (R)'
|
17
17
|
|
18
18
|
config(:vcenter, :provider) do
|
@@ -29,6 +29,12 @@ module VagrantPlugins
|
|
29
29
|
Provider
|
30
30
|
end
|
31
31
|
|
32
|
+
# Add vagrant share support
|
33
|
+
provider_capability('vcenter', 'public_address') do
|
34
|
+
require_relative 'cap/public_address'
|
35
|
+
Cap::PublicAddress
|
36
|
+
end
|
37
|
+
|
32
38
|
def self.setup_i18n
|
33
39
|
I18n.load_path << File.expand_path('locales/en.yml',
|
34
40
|
VCenter.source_root)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-vcenter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fabio Rapposelli
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: vagrant-rbvmomi
|
@@ -159,6 +159,7 @@ files:
|
|
159
159
|
- lib/vagrant-vcenter/action/resume.rb
|
160
160
|
- lib/vagrant-vcenter/action/suspend.rb
|
161
161
|
- lib/vagrant-vcenter/action/sync_folders.rb
|
162
|
+
- lib/vagrant-vcenter/cap/public_address.rb
|
162
163
|
- lib/vagrant-vcenter/config.rb
|
163
164
|
- lib/vagrant-vcenter/errors.rb
|
164
165
|
- lib/vagrant-vcenter/plugin.rb
|