vagrant-orchestrate 0.7.2 → 0.8.0.pre.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: d5f5be85b659c5c5022a04470ec6974461ba5706
4
- data.tar.gz: adba283f307e946d40b4ce61d941d406a42a091f
3
+ metadata.gz: 808945cdd072496fc2196b7ae85bd717e8ca4c5e
4
+ data.tar.gz: 88709f5e06cd4dab1522565932949d784c4b3dc6
5
5
  SHA512:
6
- metadata.gz: 9c66765c8ff0fd957b4b2dc9357c2e40779b3a5dbb271402e5b639b9647db633ff7a386feffae7a59ec06b41d7c94eae356810fd95735d23c0e587ca9db4852f
7
- data.tar.gz: 1891a632f207db38a00f42e8bdb80f4ded5279012c0ede8750b5467d4c92725478fdb2dbe11d5bb6f1c26b8f1c175a2d7167588852c16c280391772d6ddab374
6
+ metadata.gz: 4f7adc7b6d305ba723ff4e2dcd9a1059dde926117e19693ffe1204112b122eb11250b006beeec3129b42ef3eb62d469066c3ac98c9b2a1679f93513ae99917e2
7
+ data.tar.gz: 87181a207c6dfda6229c3dd0953d1e4d5fd3f0d3e823b954262ab9c10eef09ef96a744b86f22cb61c2c3c11ed36ca8de40fd91e76bf2bb97180d9754acb9b37f
data/.rubocop.yml CHANGED
@@ -16,5 +16,8 @@ StringLiterals:
16
16
  Style/FileName:
17
17
  Enabled: false
18
18
 
19
+ Style/RegexpLiteral:
20
+ Enabled: false
21
+
19
22
  Metrics/AbcSize:
20
23
  Max: 100
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ 0.8.0 (Unreleased)
2
+
3
+ - Add an action as part of the push command that will change ownership of all synced folders to the configured user to avoid permission conflicts.
4
+ - Added config.orchestrate.take_synced_file_ownership and documented in docs/config.md (default is true)
5
+ - Should have no impact on Windows systems, since `chown` is filtered out by the winrm communicator filter
6
+
1
7
  0.7.2 (September 25th, 2015)
2
8
 
3
9
  - Include windows guest directive on winrm template to correct issues with incorrect
data/docs/config.md CHANGED
@@ -9,3 +9,11 @@ servers if there are any uncommitted or untracked files in your git repository.
9
9
  the `disable_commit_guard` configuration option will disable this protection.
10
10
 
11
11
  config.orchestrate.disable_commit_guard = true
12
+
13
+ ## `take_synced_folder_ownership`
14
+
15
+ When multiple users are using Vagrant Orchestrate to push to the same target servers,
16
+ there can arise permission issues for folders that are synced. When `true`, Vagrant
17
+ Orchestrate will change ownership of the guestpath of all synced folders to be the
18
+ `owner` specified in the `synced_folder` or the `ssh_info.username`. Has no affect
19
+ for Windows guests. Default is `true`.
@@ -0,0 +1,34 @@
1
+ require "log4r"
2
+
3
+ module VagrantPlugins
4
+ module ManagedServers
5
+ module Action
6
+ class TakeSyncedFolderOwnership
7
+ def initialize(app, _env)
8
+ @app = app
9
+ @logger = Log4r::Logger.new("vagrant_managed_servers::action::take_synced_folder_ownership")
10
+ end
11
+
12
+ def call(env)
13
+ take_synced_folder_ownership env[:machine], env[:ui]
14
+ @app.call(env)
15
+ end
16
+
17
+ def take_synced_folder_ownership(machine, ui)
18
+ return unless machine.config.orchestrate.take_synced_folder_ownership
19
+ ui.info "Taking ownership of all guest synced folders"
20
+
21
+ machine.config.vm.synced_folders.each do |synced_folder|
22
+ name = synced_folder[0]
23
+ options = synced_folder[1]
24
+ next if options[:disabled]
25
+ options[:owner] ||= machine.ssh_info[:username]
26
+ @logger.debug "Taking ownership of #{name}"
27
+ @logger.debug options
28
+ machine.communicate.sudo "chown #{options[:owner]} -R #{options[:guestpath]}"
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -1,5 +1,6 @@
1
1
  require "vagrant-managed-servers/action/upload_status"
2
2
  require "vagrant-managed-servers/action/init_deployment_tracker"
3
+ require "vagrant-managed-servers/action/take_synced_folder_ownership"
3
4
  require "vagrant-managed-servers/action/track_deployment_start"
4
5
  require "vagrant-managed-servers/action/track_deployment_end"
5
6
  require "vagrant-managed-servers/action/track_server_deployment_start"
@@ -17,6 +18,7 @@ module VagrantPlugins
17
18
  Vagrant::Action::Builder.new.tap do |b|
18
19
  b.use TrackServerDeploymentStart
19
20
  b.use action_up
21
+ b.use TakeSyncedFolderOwnership
20
22
  b.use Call, action_provision do |env, b2|
21
23
  if env[:reboot]
22
24
  b2.use Call, action_reload do |_env, _b3|
@@ -11,6 +11,7 @@ module VagrantPlugins
11
11
  attr_accessor :tracker_logging_enabled
12
12
  attr_accessor :credentials
13
13
  attr_accessor :disable_commit_guard
14
+ attr_accessor :take_synced_folder_ownership
14
15
 
15
16
  def initialize
16
17
  @filter_managed_commands = UNSET_VALUE
@@ -19,6 +20,7 @@ module VagrantPlugins
19
20
  @tracker_host = UNSET_VALUE
20
21
  @tracker_logging_enabled = UNSET_VALUE
21
22
  @disable_commit_guard = UNSET_VALUE
23
+ @take_synced_folder_ownership = UNSET_VALUE
22
24
  @credentials = Credentials.new
23
25
  end
24
26
 
@@ -50,6 +52,7 @@ module VagrantPlugins
50
52
  @tracker_host = nil if @tracker_host == UNSET_VALUE
51
53
  @tracker_logging_enabled = true if @tracker_logging_enabled == UNSET_VALUE
52
54
  @disable_commit_guard = false if @disable_commit_guard == UNSET_VALUE
55
+ @take_synced_folder_ownership = true if @take_synced_folder_ownership == UNSET_VALUE
53
56
  @credentials = nil if @credentials.unset?
54
57
  @credentials.finalize! if @credentials
55
58
  end
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module Orchestrate
3
- VERSION = "0.7.2"
3
+ VERSION = "0.8.0.pre.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-orchestrate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
4
+ version: 0.8.0.pre.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christopher Baldauf
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-25 00:00:00.000000000 Z
11
+ date: 2015-11-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: deployment-tracker-client
@@ -118,6 +118,7 @@ files:
118
118
  - lib/vagrant-managed-servers/action.rb
119
119
  - lib/vagrant-managed-servers/action/download_status.rb
120
120
  - lib/vagrant-managed-servers/action/init_deployment_tracker.rb
121
+ - lib/vagrant-managed-servers/action/take_synced_folder_ownership.rb
121
122
  - lib/vagrant-managed-servers/action/track_deployment_end.rb
122
123
  - lib/vagrant-managed-servers/action/track_deployment_start.rb
123
124
  - lib/vagrant-managed-servers/action/track_server_deployment_end.rb
@@ -163,9 +164,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
163
164
  version: '0'
164
165
  required_rubygems_version: !ruby/object:Gem::Requirement
165
166
  requirements:
166
- - - '>='
167
+ - - '>'
167
168
  - !ruby/object:Gem::Version
168
- version: '0'
169
+ version: 1.3.1
169
170
  requirements: []
170
171
  rubyforge_project:
171
172
  rubygems_version: 2.0.14