vagrant-vsphere 0.9.0 → 0.9.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a02c9f4ac97953016ac3fac92a14e7efbcc5b673
4
- data.tar.gz: 038f06bf972ccfcd6692b642b91f3922b8d9a618
3
+ metadata.gz: bbccf22b0e44382e8f2add33082883350d12afb5
4
+ data.tar.gz: 535b241382bf743cf38772121109fc2f6e37635b
5
5
  SHA512:
6
- metadata.gz: 347b867ae7551d99311daab235e410ff51e372aabdedd5c2e5c83418050e43dee02c4d516d5c91b74e6ae22bd50d1ed8c80f96882ee22bd3c411df4d91b80c06
7
- data.tar.gz: 93e5f3aef54aa2f63a861767469500a2b8219edfbd3296bbf42a8dbb447f0554df347dcaf5b7589a7739a6237109b04c99e0bc9058e53751039adf0298558f22
6
+ metadata.gz: f219f8c40f9ffd9680e1d70c5355dd33e71459a3215832ad1ab724b37dc53c811b8c6f3430c1936be2f2f839bb123cc3fa97ff51c8bf1978cef303c809f006a1
7
+ data.tar.gz: c014ce7bb4eed32bc3bc39358bad9e25630dad57a4905700f5aba803978160884796ded09d87278120df846f7b8b0e6496dd787b9423a42f8b1c3e60fd680a93
data/.gitignore CHANGED
@@ -5,3 +5,4 @@ pkg/*
5
5
  *.box
6
6
  Gemfile.lock
7
7
  /vendor/
8
+ /synced_folders
data/README.md CHANGED
@@ -12,9 +12,9 @@ This provider is built on top of the [RbVmomi](https://github.com/vmware/rbvmomi
12
12
  * libxml2, libxml2-dev, libxslt, libxslt-dev
13
13
 
14
14
  ## Current Version
15
- **0.9.0**
15
+ **0.9.1**
16
16
 
17
- vagrant-vsphere (0.9.0) is available from [RubyGems.org](https://rubygems.org/gems/vagrant-vsphere)
17
+ vagrant-vsphere (0.9.1) is available from [RubyGems.org](https://rubygems.org/gems/vagrant-vsphere)
18
18
 
19
19
  ## Installation
20
20
 
@@ -168,7 +168,8 @@ This is useful if running Vagrant from multiple directories or if multiple machi
168
168
  * 0.9.0
169
169
  * increases Vagrant requirements to 1.6.3+
170
170
  * Supports differentiating between SSH/WinRM communicator [#67 marnovdm:feature/waiting-for-winrm](https://github.com/nsidc/vagrant-vsphere/pull/67)
171
-
171
+ * 0.9.1
172
+ * reuse folder sync code from Vagrant core. [#66 mkuzmin:sync-folders](https://github.com/nsidc/vagrant-vsphere/pull/66)
172
173
 
173
174
 
174
175
  ## Versioning
@@ -37,8 +37,8 @@ module VagrantPlugins
37
37
  end
38
38
 
39
39
  b3.use Provision
40
- b3.use SyncFolders
41
- end
40
+ b3.use SyncedFolders
41
+ end
42
42
  end
43
43
  end
44
44
  end
@@ -104,7 +104,7 @@ module VagrantPlugins
104
104
  end
105
105
  b.use CloseVSphere
106
106
  b.use Provision
107
- b.use SyncFolders
107
+ b.use SyncedFolders
108
108
  end
109
109
  end
110
110
 
@@ -165,7 +165,6 @@ module VagrantPlugins
165
165
  autoload :MessageNotRunning, action_root.join('message_not_running')
166
166
  autoload :PowerOff, action_root.join('power_off')
167
167
  autoload :PowerOn, action_root.join('power_on')
168
- autoload :SyncFolders, action_root.join('sync_folders')
169
168
  end
170
169
  end
171
170
  end
@@ -6,9 +6,6 @@ module VagrantPlugins
6
6
  class VSphereError < Vagrant::Errors::VagrantError
7
7
  error_namespace('vsphere.errors')
8
8
  end
9
- class RsyncError < VSphereError
10
- error_key(:rsync_error)
11
- end
12
9
  end
13
10
  end
14
11
  end
@@ -1,4 +1,14 @@
1
- require 'vagrant'
1
+ begin
2
+ require "vagrant"
3
+ rescue LoadError
4
+ raise "The Vagrant vSphere plugin must be run within Vagrant."
5
+ end
6
+
7
+ # This is a sanity check to make sure no one is attempting to install
8
+ # this into an early Vagrant version.
9
+ if Vagrant::VERSION < "1.5"
10
+ raise "The Vagrant vSphere plugin is only compatible with Vagrant 1.5+"
11
+ end
2
12
 
3
13
  module VagrantPlugins
4
14
  module VSphere
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module VSphere
3
- VERSION = '0.9.0'
3
+ VERSION = '0.9.1'
4
4
  end
5
5
  end
data/locales/en.yml CHANGED
@@ -20,8 +20,6 @@ en:
20
20
  Waiting for SSH to become available...
21
21
  waiting_for_winrm: |-
22
22
  Waiting for WinRM to become available...
23
- rsync_folder: |-
24
- Rsyncing folder: %{hostpath} => %{guestpath}
25
23
 
26
24
  errors:
27
25
  missing_template: |-
@@ -38,19 +36,8 @@ en:
38
36
  Configured configuration spec not found
39
37
  missing_datastore: |-
40
38
  Configured data store not found
41
- rsync_error: |-
42
- There was an error when attemping to rsync a share folder.
43
- Please inspect the error message below for more info.
44
-
45
- Host path: %{hostpath}
46
- Guest path: %{guestpath}
47
- Error: %{stderr}
48
39
  too_many_private_networks: |-
49
40
  There a more private networks configured than can be assigned to the customization spec
50
- rsync_not_found: |-
51
- Warning! Folder sync disabled because the rsync binary is
52
- missing. Make sure rsync is installed and the binary can
53
- be found in PATH.
54
41
  config:
55
42
  host: |-
56
43
  Configuration must specify a vSphere host
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'rbvmomi'
2
+ require 'pathname'
2
3
  require 'vSphere/errors'
3
4
  require 'vSphere/action'
4
5
  require 'vSphere/action/connect_vsphere'
@@ -62,8 +63,11 @@ RSpec.configure do |config|
62
63
  :state => double('state', :id => nil),
63
64
  :communicate => double('communicator', :ready? => true),
64
65
  :ssh_info => {},
66
+ :data_dir => Pathname.new(''),
65
67
  :id => nil,
66
68
  :id= => nil
69
+
70
+
67
71
  @env = {
68
72
  :machine => @machine,
69
73
  :ui => double('ui', :info => nil)
@@ -81,6 +85,7 @@ RSpec.configure do |config|
81
85
  vm_folder.stub(:findByUuid).with(MISSING_UUID).and_return(nil)
82
86
  vm_folder.stub(:findByUuid).with(nil).and_return(nil)
83
87
 
88
+
84
89
  @child_resource_pool = double('testresourcepool')
85
90
  @root_resource_pool = double('pools', :find => @child_resource_pool)
86
91
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-vsphere
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Grauch
@@ -135,7 +135,6 @@ files:
135
135
  - lib/vSphere/action/message_not_running.rb
136
136
  - lib/vSphere/action/power_off.rb
137
137
  - lib/vSphere/action/power_on.rb
138
- - lib/vSphere/action/sync_folders.rb
139
138
  - lib/vSphere/config.rb
140
139
  - lib/vSphere/errors.rb
141
140
  - lib/vSphere/plugin.rb
@@ -1,99 +0,0 @@
1
- require 'i18n'
2
- require "vagrant/util/subprocess"
3
- require "vagrant/util/scoped_hash_override"
4
- require "vagrant/util/which"
5
-
6
- module VagrantPlugins
7
- module VSphere
8
- module Action
9
- # This middleware uses `rsync` to sync the folders over to the vSphere instance
10
- # Borrowed from the Vagrant AWS gem, see https://github.com/mitchellh/vagrant-aws/blob/master/lib/vagrant-aws/action/sync_folders.rb
11
- class SyncFolders
12
- include Vagrant::Util::ScopedHashOverride
13
-
14
- def initialize(app, env)
15
- @app = app
16
- end
17
-
18
- def call(env)
19
- @app.call(env)
20
-
21
- ssh_info = env[:machine].ssh_info
22
-
23
- env[:machine].config.vm.synced_folders.each do |id, data|
24
- data = scoped_hash_override(data, :vsphere)
25
-
26
- # Ignore disabled shared folders
27
- next if data[:disabled]
28
-
29
- unless Vagrant::Util::Which.which('rsync')
30
- env[:ui].warn(I18n.t('vsphere.errors.rsync_not_found'))
31
- break
32
- end
33
- hostpath = File.expand_path(data[:hostpath], env[:root_path])
34
- guestpath = data[:guestpath]
35
-
36
- # Make sure there is a trailing slash on the host path to
37
- # avoid creating an additional directory with rsync
38
- hostpath = "#{hostpath}/" if hostpath !~ /\/$/
39
-
40
- # on windows rsync.exe requires cygdrive-style paths
41
- if Vagrant::Util::Platform.windows?
42
- hostpath = hostpath.gsub(/^(\w):/) { "/cygdrive/#{$1}" }
43
- end
44
-
45
- env[:ui].info(I18n.t("vsphere.rsync_folder",
46
- :hostpath => hostpath,
47
- :guestpath => guestpath))
48
-
49
- # Create the guest path
50
- if env[:machine].communicate.class.to_s =~ /WinRM/
51
- env[:machine].communicate.execute("New-Item '#{guestpath}' -type directory -force")
52
-
53
- else
54
- env[:machine].communicate.sudo("mkdir -p '#{guestpath}'")
55
- env[:machine].communicate.sudo("chown #{ssh_info[:username]} '#{guestpath}'")
56
- end
57
-
58
- # Rsync over to the guest path using the SSH info
59
- command = [
60
- "rsync", "--verbose", "--archive", "-z",
61
- "--exclude", ".vagrant/",
62
- "-e", "ssh -p #{ssh_info[:port]} -o StrictHostKeyChecking=no #{get_private_key_options ssh_info}",
63
- hostpath,
64
- "#{ssh_info[:username]}@#{ssh_info[:host]}:#{guestpath}"]
65
-
66
-
67
- # we need to fix permissions when using rsync.exe on windows, see
68
- # http://stackoverflow.com/questions/5798807/rsync-permission-denied-created-directories-have-no-permissions
69
- if Vagrant::Util::Platform.windows?
70
- command.insert(1, "--chmod", "ugo=rwX")
71
- end
72
-
73
- r = Vagrant::Util::Subprocess.execute(*command)
74
- if r.exit_code != 0
75
- raise Errors::RsyncError,
76
- :guestpath => guestpath,
77
- :hostpath => hostpath,
78
- :stderr => r.stderr
79
- end
80
- end
81
- end
82
-
83
- private
84
-
85
- def get_private_key_options(ssh_info)
86
- if ssh_info[:private_key_path].is_a? String
87
- build_key_option ssh_info[:private_key_path]
88
- elsif ssh_info[:private_key_path].is_a? Array
89
- ssh_info[:private_key_path].map { |path| build_key_option path }.join(' ')
90
- end
91
- end
92
-
93
- def build_key_option(key)
94
- "-i '#{key}'"
95
- end
96
- end
97
- end
98
- end
99
- end