opennebula-provider 1.0.5 → 1.1.0
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d7cb6962f3a15c06a587d0facb4dfb8d9fc0b920
|
4
|
+
data.tar.gz: 3c5e3590dcff842f5c8c39e19cc10120f90a0c85
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4927b9168112e605ef83f8708877589e257f462b40a91dc9361f35019d90b13e95910142b1e808618514a741b114d6a6d806b514232f43e2832f68707252a17e
|
7
|
+
data.tar.gz: 9d02b553bc764ecbe055e1276d6614ee32171178ccc5459d7b1cfa31d591f9d7deef853e3ca89996e5e9df8c040e08623d17d92171c2abddef36679fd5acd2f0
|
@@ -4,7 +4,6 @@ require_relative 'action/destroy'
|
|
4
4
|
require_relative 'action/messages'
|
5
5
|
require_relative 'action/read_ssh_info'
|
6
6
|
require_relative 'action/resume'
|
7
|
-
require_relative 'action/sync_folders'
|
8
7
|
require_relative 'action/start'
|
9
8
|
require_relative 'action/stop'
|
10
9
|
require_relative 'action/suspend'
|
@@ -45,6 +44,7 @@ module VagrantPlugins
|
|
45
44
|
case env[:machine_state]
|
46
45
|
when :active
|
47
46
|
b1.use MessageAlreadyCreated
|
47
|
+
next
|
48
48
|
when :suspended
|
49
49
|
# TODO: uncomment this with patching fog
|
50
50
|
# b1.use Resume
|
@@ -57,6 +57,7 @@ module VagrantPlugins
|
|
57
57
|
next
|
58
58
|
end
|
59
59
|
b1.use WaitForCommunicator, [:pending, :prolog, :boot, :active]
|
60
|
+
b1.use SyncedFolders
|
60
61
|
end
|
61
62
|
end
|
62
63
|
end
|
@@ -152,7 +153,6 @@ module VagrantPlugins
|
|
152
153
|
b1.use MessageHalted
|
153
154
|
else
|
154
155
|
b1.use Provision
|
155
|
-
b1.use SyncFolders
|
156
156
|
end
|
157
157
|
end
|
158
158
|
end
|
data/locales/en.yml
CHANGED
@@ -35,11 +35,6 @@ en:
|
|
35
35
|
Resuming instance...
|
36
36
|
waiting_for_sshd: |-
|
37
37
|
Instance is active, waiting for sshd daemon startup...
|
38
|
-
rsyncing: |-
|
39
|
-
Rsyncing folder: %{hostpath} => %{guestpath}...
|
40
|
-
rsync_not_found_warning: |-
|
41
|
-
Warning! Folder sync disabled because the rsync binary is missing in the %{side}.
|
42
|
-
Make sure rsync is installed and the binary can be found in the PATH.
|
43
38
|
error: |-
|
44
39
|
The instance is in error state
|
45
40
|
|
@@ -120,5 +115,3 @@ en:
|
|
120
115
|
Resource error! %{error}
|
121
116
|
quota: |-
|
122
117
|
Quota error! %{error}
|
123
|
-
rsync: |-
|
124
|
-
Rsync error! %{stderr}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opennebula-provider
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cherdancev Evgeni
|
@@ -112,7 +112,6 @@ files:
|
|
112
112
|
- lib/opennebula-provider/action/start.rb
|
113
113
|
- lib/opennebula-provider/action/stop.rb
|
114
114
|
- lib/opennebula-provider/action/suspend.rb
|
115
|
-
- lib/opennebula-provider/action/sync_folders.rb
|
116
115
|
- lib/opennebula-provider/action/wait_for_ssh.rb
|
117
116
|
- lib/opennebula-provider/action/wait_for_state.rb
|
118
117
|
- lib/opennebula-provider/config.rb
|
@@ -1,97 +0,0 @@
|
|
1
|
-
require 'vagrant/util/subprocess'
|
2
|
-
require 'vagrant/util/which'
|
3
|
-
|
4
|
-
module VagrantPlugins
|
5
|
-
module OpenNebulaProvider
|
6
|
-
module Action
|
7
|
-
class SyncFolders
|
8
|
-
def initialize(app, env)
|
9
|
-
@app = app
|
10
|
-
@logger = Log4r::Logger.new('vagrant::provider::opennebula::sync_folders')
|
11
|
-
end
|
12
|
-
|
13
|
-
def call(env)
|
14
|
-
@app.call(env)
|
15
|
-
|
16
|
-
ssh_info = env[:machine].ssh_info
|
17
|
-
|
18
|
-
unless Vagrant::Util::Which.which('rsync')
|
19
|
-
env[:ui].warn(I18n.t('opennebula_provider.info.rsync_not_found_warning', side: 'host'))
|
20
|
-
return
|
21
|
-
end
|
22
|
-
|
23
|
-
if env[:machine].communicate.execute('which rsync', error_check: false) != 0
|
24
|
-
env[:ui].warn(I18n.t('opennebula_provider.info.rsync_not_found_warning', side: 'guest'))
|
25
|
-
return
|
26
|
-
end
|
27
|
-
|
28
|
-
env[:machine].config.vm.synced_folders.each do |id, data|
|
29
|
-
# Ignore disabled shared folders
|
30
|
-
next if data[:disabled]
|
31
|
-
|
32
|
-
hostpath = File.expand_path(data[:hostpath], env[:root_path])
|
33
|
-
guestpath = data[:guestpath]
|
34
|
-
|
35
|
-
# Make sure there is a trailing slash on the host path to
|
36
|
-
# avoid creating an additional directory with rsync
|
37
|
-
hostpath = "#{hostpath}/" if hostpath !~ /\/$/
|
38
|
-
|
39
|
-
# on windows rsync.exe requires cygdrive-style paths
|
40
|
-
if Vagrant::Util::Platform.windows?
|
41
|
-
hostpath = hostpath.gsub(/^(\w):/) { "/cygdrive/#{$1}" }
|
42
|
-
end
|
43
|
-
env[:ui].info(I18n.t('opennebula_provider.info.rsyncing', hostpath: hostpath, guestpath: guestpath))
|
44
|
-
|
45
|
-
# Create the host path if it doesn't exist and option flag is set
|
46
|
-
if data[:create]
|
47
|
-
begin
|
48
|
-
FileUtils.mkdir_p(hostpath)
|
49
|
-
rescue => err
|
50
|
-
raise Errors::MkdirError,
|
51
|
-
hostpath: hostpath,
|
52
|
-
err: err
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
# Create the guest path
|
57
|
-
env[:machine].communicate.sudo("mkdir -p '#{guestpath}'")
|
58
|
-
env[:machine].communicate.sudo(
|
59
|
-
"chown -R #{ssh_info[:username]} '#{guestpath}'")
|
60
|
-
|
61
|
-
# collect rsync excludes specified :rsync__exclude=>['path1',...] in synced_folder options
|
62
|
-
excludes = ['.vagrant/', 'Vagrantfile', *Array(data[:rsync__exclude])].uniq
|
63
|
-
|
64
|
-
# Rsync over to the guest path using the SSH info
|
65
|
-
command = [
|
66
|
-
'rsync', '--verbose', '--archive', '-z',
|
67
|
-
*excludes.map { |e| ['--exclude', e] }.flatten,
|
68
|
-
'-e', "ssh -p #{ssh_info[:port]} -o StrictHostKeyChecking=no #{ssh_key_options(ssh_info)}",
|
69
|
-
hostpath,
|
70
|
-
"#{ssh_info[:username]}@#{ssh_info[:host]}:#{guestpath}"]
|
71
|
-
|
72
|
-
# we need to fix permissions when using rsync.exe on windows, see
|
73
|
-
# http://stackoverflow.com/questions/5798807/rsync-permission-denied-created-directories-have-no-permissions
|
74
|
-
if Vagrant::Util::Platform.windows?
|
75
|
-
command.insert(1, '--chmod', 'ugo=rwX')
|
76
|
-
end
|
77
|
-
|
78
|
-
r = Vagrant::Util::Subprocess.execute(*command)
|
79
|
-
if r.exit_code != 0
|
80
|
-
fail Errors::RsyncError,
|
81
|
-
guestpath: guestpath,
|
82
|
-
hostpath: hostpath,
|
83
|
-
stderr: r.stderr
|
84
|
-
end
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
private
|
89
|
-
|
90
|
-
def ssh_key_options(ssh_info)
|
91
|
-
# Ensure that `private_key_path` is an Array (for Vagrant < 1.4)
|
92
|
-
Array(ssh_info[:private_key_path]).map { |path| "-i '#{path}' " }.join
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
96
|
-
end
|
97
|
-
end
|