vagrant-google 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fe5f3e44c0d6f385013f598e20b0d3683524606d
4
- data.tar.gz: 3b8dbc1296d1eefee8e997dd08d509efc6de6800
3
+ metadata.gz: 56c269053218677aef26b41cdf092fe60b890fc8
4
+ data.tar.gz: bd41eebae2f6bd365cae32764d04b2999a9f6dad
5
5
  SHA512:
6
- metadata.gz: 485a1fe686e3229a44de92a9878c980402f389fcd770f807f61a1a71950d053f6c2d80d8511aa87b41978f03286aae0b687834046ac36ee6d7d97d57918720df
7
- data.tar.gz: e64c5ae4d1cdba1671aaaf04a06879bea9425870cb2cf75708689a316e2bb6fb863529c03a422020a03b72357df38a7a9e567ecf0631907322986d5acca73627
6
+ metadata.gz: 1a8bbc4a2194f92ccdf15bb7962f87a1d41af8ed94f6bd676b9fe63450ec8845edcc701893732d283df9f5b7f699542a67c7a184395fb77cd043153939c4fa3a
7
+ data.tar.gz: 6b4c64c595b3789d1f5d4b50c86289d0a18618d02b567d151a90ff230a05577eeeef6d0aa82751ac75dc4118c74c2483e4175f5ff1a0eb69d861fe23532be85e
@@ -1,3 +1,7 @@
1
+ # 0.2.1 (July 2015)
2
+
3
+ * Temporarily reverted the old SyncedFolders behaviour. (See #94)
4
+
1
5
  # 0.2.0 (July 2015)
2
6
 
3
7
  * Added support for service account definitions [tcr]
data/README.md CHANGED
@@ -180,8 +180,8 @@ This provider exposes quite a few provider-specific configuration options:
180
180
  * `can_ip_forward` - Boolean whether to enable IP Forwarding.
181
181
  * `external_ip` - The external IP address to use (supports names).
182
182
  * `preemptible` - Boolean whether to enable preemptibility. Default is false.
183
- * `auto_restart` - Boolean whether to enable auto_restart. Default is true.
184
- * `on_host_maintenance` - What to do on host maintenance. Default is "MIGRATE".
183
+ * `auto_restart` - Boolean whether to enable auto_restart. Default is true.
184
+ * `on_host_maintenance` - What to do on host maintenance. Default is "MIGRATE".
185
185
  * `service_accounts` or `scopes` - An array of OAuth2 account scopes for
186
186
  services that the instance will have access to. Those can be both full API
187
187
  scopes, just endpoint aliases (the part after `...auth/`), and `gcloud`
@@ -252,7 +252,9 @@ There is minimal support for synced folders. Upon `vagrant up`,
252
252
  `vagrant reload`, and `vagrant provision`, the Google provider will use
253
253
  `rsync` (if available) to uni-directionally sync the folder to the remote
254
254
  machine over SSH.
255
- See [Vagrant Synced folders: rsync](https://docs.vagrantup.com/v2/synced-folders/rsync.html)
255
+
256
+ This is good enough for all built-in Vagrant provisioners (`shell`, `chef`, and
257
+ `puppet`) to work!
256
258
 
257
259
  ## Development
258
260
 
@@ -308,7 +310,7 @@ $ bundle exec rake acceptance:run
308
310
  - Since those are live instances, **you will be billed** for running them.
309
311
 
310
312
  ## Changelog
311
- * See [CHANGELOG.md](https://github.com/mitchellh/vagrant-google/blob/master/CHANGELOG.md)
313
+ See [CHANGELOG.md](CHANGELOG.md)
312
314
 
313
- ## Licensing
314
- * See [LICENSE](https://github.com/mitchellh/vagrant-google/blob/master/LICENSE)
315
+ ## License
316
+ Apache 2.0; see [LICENSE](LICENSE) for details.
@@ -66,7 +66,7 @@ module VagrantPlugins
66
66
  end
67
67
 
68
68
  b2.use Provision
69
- b2.use SyncedFolders
69
+ b2.use SyncFolders
70
70
  end
71
71
  end
72
72
  end
@@ -134,7 +134,7 @@ module VagrantPlugins
134
134
  b1.use Call, IsTerminated do |env2, b2|
135
135
  if env2[:result]
136
136
  b2.use Provision
137
- b2.use SyncedFolders
137
+ b2.use SyncFolders
138
138
  b2.use WarnNetworks
139
139
  b2.use StartInstance
140
140
  else
@@ -144,7 +144,7 @@ module VagrantPlugins
144
144
  end
145
145
  else
146
146
  b1.use Provision
147
- b1.use SyncedFolders
147
+ b1.use SyncFolders
148
148
  b1.use WarnNetworks
149
149
  b1.use RunInstance
150
150
  end
@@ -182,6 +182,7 @@ module VagrantPlugins
182
182
  autoload :RunInstance, action_root.join("run_instance")
183
183
  autoload :StartInstance, action_root.join("start_instance")
184
184
  autoload :StopInstance, action_root.join("stop_instance")
185
+ autoload :SyncFolders, action_root.join("sync_folders")
185
186
  autoload :TerminateInstance, action_root.join("terminate_instance")
186
187
  autoload :TimedProvision, action_root.join("timed_provision")
187
188
  autoload :WarnNetworks, action_root.join("warn_networks")
@@ -0,0 +1,104 @@
1
+ # Copyright 2013 Google Inc. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ require "log4r"
15
+ require "vagrant/util/subprocess"
16
+ require "vagrant/util/scoped_hash_override"
17
+ require "vagrant/util/which"
18
+
19
+ module VagrantPlugins
20
+ module Google
21
+ module Action
22
+ # This middleware uses `rsync` to sync the folders over to the
23
+ # Google instance.
24
+ class SyncFolders
25
+ include Vagrant::Util::ScopedHashOverride
26
+
27
+ def initialize(app, env)
28
+ @app = app
29
+ @logger = Log4r::Logger.new("vagrant_google::action::sync_folders")
30
+ end
31
+
32
+ def call(env)
33
+ @app.call(env)
34
+
35
+ ssh_info = env[:machine].ssh_info
36
+
37
+ env[:machine].config.vm.synced_folders.each do |id, data|
38
+ data = scoped_hash_override(data, :google)
39
+
40
+ # Ignore disabled shared folders
41
+ next if data[:disabled]
42
+
43
+ unless Vagrant::Util::Which.which('rsync')
44
+ env[:ui].warn(I18n.t('vagrant_aws.rsync_not_found_warning'))
45
+ break
46
+ end
47
+
48
+ hostpath = File.expand_path(data[:hostpath], env[:root_path])
49
+ guestpath = data[:guestpath]
50
+
51
+ # Make sure there is a trailing slash on the host path to
52
+ # avoid creating an additional directory with rsync
53
+ hostpath = "#{hostpath}/" if hostpath !~ /\/$/
54
+
55
+ # on windows rsync.exe requires cygdrive-style paths
56
+ if Vagrant::Util::Platform.windows?
57
+ hostpath = hostpath.gsub(/^(\w):/) { "/cygdrive/#{$1}" }
58
+ end
59
+
60
+ env[:ui].info(I18n.t("vagrant_google.rsync_folder",
61
+ :hostpath => hostpath,
62
+ :guestpath => guestpath))
63
+
64
+ # Create the guest path
65
+ env[:machine].communicate.sudo("mkdir -p '#{guestpath}'")
66
+ env[:machine].communicate.sudo(
67
+ "chown #{ssh_info[:username]} '#{guestpath}'")
68
+
69
+ # patch from https://github.com/tmatilai/vagrant-aws/commit/4a043a96076c332220ec4ec19470c4af5597dd51
70
+ def ssh_key_options(ssh_info)
71
+ # Ensure that `private_key_path` is an Array (for Vagrant < 1.4)
72
+ Array(ssh_info[:private_key_path]).map { |path| "-i '#{path}' " }.join
73
+ end
74
+
75
+ #collect rsync excludes specified :rsync__excludes=>['path1',...] in synced_folder options
76
+ excludes = ['.vagrant/', *Array(data[:rsync__excludes])]
77
+
78
+ # Rsync over to the guest path using the SSH info
79
+ command = [
80
+ "rsync", "--verbose", "--archive", "-z",
81
+ *excludes.map{|e| ['--exclude', e]}.flatten,
82
+ "-e", "ssh -p #{ssh_info[:port]} -o StrictHostKeyChecking=no #{ssh_key_options(ssh_info)}",
83
+ hostpath,
84
+ "#{ssh_info[:username]}@#{ssh_info[:host]}:#{guestpath}"]
85
+
86
+ # we need to fix permissions when using rsync.exe on windows, see
87
+ # http://stackoverflow.com/questions/5798807/rsync-permission-denied-created-directories-have-no-permissions
88
+ if Vagrant::Util::Platform.windows?
89
+ command.insert(1, "--chmod", "ugo=rwX")
90
+ end
91
+
92
+ r = Vagrant::Util::Subprocess.execute(*command)
93
+ if r.exit_code != 0
94
+ raise Errors::RsyncError,
95
+ :guestpath => guestpath,
96
+ :hostpath => hostpath,
97
+ :stderr => r.stderr
98
+ end
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end
104
+ end
@@ -13,6 +13,6 @@
13
13
  # limitations under the License.
14
14
  module VagrantPlugins
15
15
  module Google
16
- VERSION = "0.2.0"
16
+ VERSION = "0.2.1"
17
17
  end
18
18
  end
@@ -44,7 +44,6 @@ namespace :acceptance do
44
44
  multi_instance
45
45
  preemptible
46
46
  scopes
47
- synced_folder/rsync
48
47
  provisioner/shell
49
48
  provisioner/chef-solo
50
49
  ).map{ |s| "provider/google/#{s}" }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-google
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Johnson
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-07-16 00:00:00.000000000 Z
12
+ date: 2015-07-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fog-google
@@ -87,8 +87,10 @@ executables: []
87
87
  extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
+ - CHANGELOG.md
90
91
  - Gemfile
91
92
  - LICENSE
93
+ - README.md
92
94
  - Rakefile
93
95
  - example_boxes/README.md
94
96
  - example_boxes/gce-test/Vagrantfile
@@ -110,6 +112,7 @@ files:
110
112
  - lib/vagrant-google/action/run_instance.rb
111
113
  - lib/vagrant-google/action/start_instance.rb
112
114
  - lib/vagrant-google/action/stop_instance.rb
115
+ - lib/vagrant-google/action/sync_folders.rb
113
116
  - lib/vagrant-google/action/terminate_instance.rb
114
117
  - lib/vagrant-google/action/timed_provision.rb
115
118
  - lib/vagrant-google/action/warn_networks.rb
@@ -140,8 +143,6 @@ files:
140
143
  - vagrantfile_examples/Vagrantfile.provision_single
141
144
  - vagrantfile_examples/Vagrantfile.simple
142
145
  - vagrantfile_examples/Vagrantfile.zone_config
143
- - CHANGELOG.md
144
- - README.md
145
146
  - .gitignore
146
147
  - .rubocop.yml
147
148
  - .rubocop_todo.yml