Package: vagrant
Version: 1.7.4+dfsg-1
Severity: normal

Dear Maintainer,

Vagrant removed between 1.7.2 and 1.7.3 the support for the nodes_path
configuration of chef-{zero/solo}. The result is that existing config
sets break and did not find local nodes configuration anymore. Upstream
exists a brach where the support is readded after the 1.7.4.

e.g. a config like below:

config.vm.provision :chef_zero do |chef|
      chef.cookbooks_path = "cookbooks"
      chef.roles_path = "roles"
      chef.nodes_path = "nodes"
      chef.data_bags_path = "data_bags"
....

results in:

Bringing machine 'xxx' up with 'virtualbox' provider...
There are errors in the configuration of this machine. Please fix
the following errors and try again:

chef zero provisioner:
* The following settings shouldn't exist: nodes_path

I picked the related patches from upstream an added a debian patch which
fixes that problem. Maybe it's useful for other than me.

Regards
Sascha

-- System Information:
Debian Release: 8.2
  APT prefers stable
  APT policy: (500, 'stable'), (100, 'testing'), (10, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.16.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages vagrant depends on:
ii  bsdtar             3.1.2-11
ii  bundler            1.7.4-1
ii  curl               7.38.0-4+deb8u2
ii  openssh-client     1:6.7p1-5
ii  ruby               1:2.1.5+deb8u1
ii  ruby-childprocess  0.5.5-1
ii  ruby-erubis        2.7.0-3
ii  ruby-i18n          0.6.9-2
ii  ruby-listen        2.4.0-4
ii  ruby-log4r         1.1.10-4
ii  ruby-net-scp       1.2.1-1
ii  ruby-net-sftp      1:2.1.2-3
ii  ruby-net-ssh       1:2.9.1-1
ii  ruby-nokogiri      1.6.6.2+ds-2+b1
3 Zeilen mehr
From a158adbfe367d8201f3158990531593640cd92a7 Mon Sep 17 00:00:00 2001
From: Sascha Girrulat <[email protected]>
Date: Thu, 5 Nov 2015 08:57:43 +0100
Subject: [PATCH] Bring back nodes_path support for chef

e.g. a config like below:

config.vm.provision :chef_zero do |chef|
      chef.cookbooks_path = "cookbooks"
      chef.roles_path = "roles"
      chef.nodes_path = "nodes"
      chef.data_bags_path = "data_bags"
....

results in:

Bringing machine 'xxx' up with 'virtualbox' provider...
There are errors in the configuration of this machine. Please fix
the following errors and try again:

chef zero provisioner:
* The following settings shouldn't exist: nodes_path
---
 ...nodes_path-support-for-the-Chef-Zero-prov.patch | 121 +++++++++++++++++++++
 ...ath-support-for-the-Chef-Solo-provisioner.patch |   1 +
 debian/patches/series                              |   1 +
 3 files changed, 123 insertions(+)
 create mode 100644 debian/patches/0013-Bring-back-nodes_path-support-for-the-Chef-Zero-prov.patch
 create mode 100644 debian/patches/0014-Add-nodes_path-support-for-the-Chef-Solo-provisioner.patch

diff --git a/debian/patches/0013-Bring-back-nodes_path-support-for-the-Chef-Zero-prov.patch b/debian/patches/0013-Bring-back-nodes_path-support-for-the-Chef-Zero-prov.patch
new file mode 100644
index 0000000..3529730
--- /dev/null
+++ b/debian/patches/0013-Bring-back-nodes_path-support-for-the-Chef-Zero-prov.patch
@@ -0,0 +1,121 @@
+From 7a25ad3fa8a12a4da8cbd71ec4753a74176f0144 Mon Sep 17 00:00:00 2001
+From: Brian Dwyer <[email protected]>
+Date: Tue, 28 Jul 2015 12:41:51 -0400
+Subject: [PATCH 1/4] Bring back `nodes_path` support for the Chef Zero
+ provisioner
+
+---
+ plugins/provisioners/chef/config/chef_zero.rb                | 7 +++++++
+ plugins/provisioners/chef/provisioner/chef_solo.rb           | 2 ++
+ plugins/provisioners/chef/provisioner/chef_zero.rb           | 1 +
+ templates/provisioners/chef_zero/zero.erb                    | 4 ++--
+ test/unit/plugins/provisioners/chef/config/chef_zero_test.rb | 8 ++++++++
+ 5 files changed, 20 insertions(+), 2 deletions(-)
+
+diff --git a/plugins/provisioners/chef/config/chef_zero.rb b/plugins/provisioners/chef/config/chef_zero.rb
+index d28de3d..9b1daf1 100644
+--- a/plugins/provisioners/chef/config/chef_zero.rb
++++ b/plugins/provisioners/chef/config/chef_zero.rb
+@@ -17,6 +17,10 @@ module VagrantPlugins
+         # @return [String]
+         attr_accessor :environments_path
+ 
++        # The path where nodes are stored on disk.
++        # @return [String]
++        attr_accessor :nodes_path
++
+         # The path where roles are stored on disk.
+         # @return [String]
+         attr_accessor :roles_path
+@@ -31,6 +35,7 @@ module VagrantPlugins
+           @cookbooks_path      = UNSET_VALUE
+           @data_bags_path      = UNSET_VALUE
+           @environments_path   = UNSET_VALUE
++          @nodes_path          = UNSET_VALUE
+           @roles_path          = UNSET_VALUE
+           @synced_folder_type  = UNSET_VALUE
+         end
+@@ -47,6 +52,7 @@ module VagrantPlugins
+           end
+ 
+           @data_bags_path    = [] if @data_bags_path == UNSET_VALUE
++          @nodes_path        = [] if @nodes_path == UNSET_VALUE
+           @roles_path        = [] if @roles_path == UNSET_VALUE
+           @environments_path = [] if @environments_path == UNSET_VALUE
+           @environments_path = [@environments_path].flatten
+@@ -54,6 +60,7 @@ module VagrantPlugins
+           # Make sure the path is an array.
+           @cookbooks_path    = prepare_folders_config(@cookbooks_path)
+           @data_bags_path    = prepare_folders_config(@data_bags_path)
++          @nodes_path        = prepare_folders_config(@nodes_path)
+           @roles_path        = prepare_folders_config(@roles_path)
+           @environments_path = prepare_folders_config(@environments_path)
+ 
+diff --git a/plugins/provisioners/chef/provisioner/chef_solo.rb b/plugins/provisioners/chef/provisioner/chef_solo.rb
+index f3b52f1..14ee574 100644
+--- a/plugins/provisioners/chef/provisioner/chef_solo.rb
++++ b/plugins/provisioners/chef/provisioner/chef_solo.rb
+@@ -33,12 +33,14 @@ module VagrantPlugins
+           @role_folders      = expanded_folders(@config.roles_path, "roles")
+           @data_bags_folders = expanded_folders(@config.data_bags_path, "data_bags")
+           @environments_folders = expanded_folders(@config.environments_path, "environments")
++          @node_folders = expanded_folders(@config.nodes_path, "nodes")
+ 
+           existing = synced_folders(@machine, cached: true)
+           share_folders(root_config, "csc", @cookbook_folders, existing)
+           share_folders(root_config, "csr", @role_folders, existing)
+           share_folders(root_config, "csdb", @data_bags_folders, existing)
+           share_folders(root_config, "cse", @environments_folders, existing)
++          share_folders(root_config, "csn", @node_folders, existing)
+         end
+ 
+         def provision
+diff --git a/plugins/provisioners/chef/provisioner/chef_zero.rb b/plugins/provisioners/chef/provisioner/chef_zero.rb
+index 48078a0..70fff68 100644
+--- a/plugins/provisioners/chef/provisioner/chef_zero.rb
++++ b/plugins/provisioners/chef/provisioner/chef_zero.rb
+@@ -44,6 +44,7 @@ module VagrantPlugins
+             local_mode: true,
+             enable_reporting: false,
+             cookbooks_path: guest_paths(@cookbook_folders),
++            nodes_path: guest_paths(@node_folders),
+             roles_path: guest_paths(@role_folders),
+             data_bags_path: guest_paths(@data_bags_folders).first,
+             environments_path: guest_paths(@environments_folders).first,
+diff --git a/templates/provisioners/chef_zero/zero.erb b/templates/provisioners/chef_zero/zero.erb
+index 29de30d..8c4b764 100644
+--- a/templates/provisioners/chef_zero/zero.erb
++++ b/templates/provisioners/chef_zero/zero.erb
+@@ -31,8 +31,8 @@ environment "<%= environment %>"
+ chef_zero.enabled true
+ local_mode true
+ <% end -%>
+-<% if node_path -%>
+-node_path <%= node_path.inspect %>
++<% if nodes_path -%>
++node_path <%= nodes_path.inspect %>
+ <% end -%>
+ 
+ <% if formatter %>
+diff --git a/test/unit/plugins/provisioners/chef/config/chef_zero_test.rb b/test/unit/plugins/provisioners/chef/config/chef_zero_test.rb
+index 2f9cd82..9a1f98c 100644
+--- a/test/unit/plugins/provisioners/chef/config/chef_zero_test.rb
++++ b/test/unit/plugins/provisioners/chef/config/chef_zero_test.rb
+@@ -50,6 +50,14 @@ describe VagrantPlugins::Chef::Config::ChefZero do
+     end
+   end
+ 
++  describe "#nodes_path" do
++    it "defaults to an empty array" do
++      subject.finalize!
++      expect(subject.nodes_path).to be_a(Array)
++      expect(subject.nodes_path).to be_empty
++    end
++  end
++
+   describe "#synced_folder_type" do
+     it "defaults to nil" do
+       subject.finalize!
+-- 
+2.1.4
+
diff --git a/debian/patches/0014-Add-nodes_path-support-for-the-Chef-Solo-provisioner.patch b/debian/patches/0014-Add-nodes_path-support-for-the-Chef-Solo-provisioner.patch
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/debian/patches/0014-Add-nodes_path-support-for-the-Chef-Solo-provisioner.patch
@@ -0,0 +1 @@
+
diff --git a/debian/patches/series b/debian/patches/series
index 391b4d6..7189d76 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -9,3 +9,4 @@
 0011-Support-system-installed-plugins.patch
 0012-require-vagrant-version-from-system.patch
 0011-Relax-dependency-resolution.patch
+0013-Bring-back-nodes_path-support-for-the-Chef-Zero-prov.patch
-- 
2.1.4

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to