vagrant-bolt 0.1.1 → 0.4.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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/spec.yml +71 -0
  3. data/.gitignore +1 -0
  4. data/.rubocop.yml +3 -8
  5. data/CHANGELOG.md +65 -4
  6. data/Gemfile +5 -4
  7. data/README.md +33 -18
  8. data/acceptance/components/bolt_spec.rb +27 -28
  9. data/acceptance/skeletons/advanced/Vagrantfile +2 -2
  10. data/acceptance/skeletons/base/Puppetfile +2 -0
  11. data/acceptance/skeletons/base/Vagrantfile +2 -1
  12. data/acceptance/skeletons/provisioner/Vagrantfile +1 -1
  13. data/acceptance/skeletons/trigger/Vagrantfile +1 -1
  14. data/acceptance/vagrant-spec.config.rb +3 -3
  15. data/lib/vagrant-bolt/command.rb +6 -6
  16. data/lib/vagrant-bolt/config/bolt.rb +31 -22
  17. data/lib/vagrant-bolt/config/global.rb +30 -3
  18. data/lib/vagrant-bolt/config_builder/config.rb +35 -5
  19. data/lib/vagrant-bolt/config_builder/monkey_patches.rb +2 -1
  20. data/lib/vagrant-bolt/config_builder/provisioner.rb +28 -4
  21. data/lib/vagrant-bolt/runner.rb +10 -10
  22. data/lib/vagrant-bolt/util/bolt.rb +7 -6
  23. data/lib/vagrant-bolt/util/config.rb +3 -2
  24. data/lib/vagrant-bolt/util/machine.rb +4 -3
  25. data/lib/vagrant-bolt/version.rb +1 -1
  26. data/spec/unit/config/bolt_spec.rb +8 -1
  27. data/spec/unit/config/global_spec.rb +9 -3
  28. data/spec/unit/runner/runner_spec.rb +37 -11
  29. data/spec/unit/util/bolt_spec.rb +25 -6
  30. data/tasks/changelog.rake +1 -1
  31. metadata +9 -26
  32. data/.travis.yml +0 -28
  33. data/acceptance/skeletons/base/modules/facts/CHANGELOG.md +0 -26
  34. data/acceptance/skeletons/base/modules/facts/CONTRIBUTING.md +0 -279
  35. data/acceptance/skeletons/base/modules/facts/Gemfile +0 -98
  36. data/acceptance/skeletons/base/modules/facts/LICENSE +0 -201
  37. data/acceptance/skeletons/base/modules/facts/README.md +0 -45
  38. data/acceptance/skeletons/base/modules/facts/Rakefile +0 -8
  39. data/acceptance/skeletons/base/modules/facts/checksums.json +0 -42
  40. data/acceptance/skeletons/base/modules/facts/lib/puppet/functions/facts/group_by.rb +0 -14
  41. data/acceptance/skeletons/base/modules/facts/metadata.json +0 -62
  42. data/acceptance/skeletons/base/modules/facts/plans/info.pp +0 -16
  43. data/acceptance/skeletons/base/modules/facts/plans/init.pp +0 -13
  44. data/acceptance/skeletons/base/modules/facts/tasks/bash.json +0 -5
  45. data/acceptance/skeletons/base/modules/facts/tasks/bash.sh +0 -93
  46. data/acceptance/skeletons/base/modules/facts/tasks/init.json +0 -10
  47. data/acceptance/skeletons/base/modules/facts/tasks/powershell.json +0 -4
  48. data/acceptance/skeletons/base/modules/facts/tasks/powershell.ps1 +0 -56
  49. data/acceptance/skeletons/base/modules/facts/tasks/ruby.json +0 -4
  50. data/acceptance/skeletons/base/modules/facts/tasks/ruby.rb +0 -40
@@ -0,0 +1,2 @@
1
+ mod 'puppetlabs-facts', '1.2.0'
2
+ mod 'puppetlabs-ruby_task_helper', '0.5.1'
@@ -1,11 +1,12 @@
1
1
  require 'vagrant-spec/which'
2
2
  Vagrant.configure('2') do |config|
3
- config.bolt.bolt_exe = Vagrant::Spec::Which.which('bolt')
3
+ config.bolt.bolt_exe = [Vagrant::Spec::Which.which('ruby'), Vagrant::Spec::Which.which('bolt')]
4
4
  config.vm.box = 'box'
5
5
  config.vm.define 'server' do |node|
6
6
  node.vm.provision :bolt do |bolt|
7
7
  bolt.command = :task
8
8
  bolt.name = "facts"
9
+ bolt.targets = ['server']
9
10
  end
10
11
  end
11
12
  end
@@ -1,6 +1,6 @@
1
1
  require 'vagrant-spec/which'
2
2
  Vagrant.configure('2') do |config|
3
- config.bolt.bolt_exe = Vagrant::Spec::Which.which('bolt')
3
+ config.bolt.bolt_exe = [Vagrant::Spec::Which.which('ruby'), Vagrant::Spec::Which.which('bolt')]
4
4
  config.vm.box = 'box'
5
5
  config.vm.define 'server' do |node|
6
6
  node.vm.provision :bolt do |bolt|
@@ -1,6 +1,6 @@
1
1
  require 'vagrant-spec/which'
2
2
  Vagrant.configure('2') do |config|
3
- config.bolt.bolt_exe = Vagrant::Spec::Which.which('bolt')
3
+ config.bolt.bolt_exe = [Vagrant::Spec::Which.which('ruby'), Vagrant::Spec::Which.which('bolt')]
4
4
  config.vm.box = 'box'
5
5
  config.vm.define 'server' do |node|
6
6
  node.trigger.after :up do |trigger|
@@ -11,11 +11,11 @@ ENV['VAGRANT_DISABLE_PLUGIN_INIT'] = '1'
11
11
  Vagrant::Spec::Acceptance.configure do |c|
12
12
  acceptance_dir = Pathname.new File.expand_path(__dir__)
13
13
 
14
- c.component_paths = [(acceptance_dir + 'components').to_s]
15
- c.skeleton_paths = [(acceptance_dir + 'skeletons').to_s]
14
+ c.component_paths = ["#{acceptance_dir}/components"]
15
+ c.skeleton_paths = ["#{acceptance_dir}/skeletons"]
16
16
 
17
17
  c.provider 'virtualbox',
18
- box: (acceptance_dir + 'artifacts' + 'virtualbox.box').to_s,
18
+ box: "#{acceptance_dir}/artifacts/virtualbox.box",
19
19
  env_vars: {
20
20
  'VBOX_USER_HOME' => '{{homedir}}',
21
21
  }
@@ -42,21 +42,21 @@ class VagrantBolt::Command < Vagrant.plugin('2', :command)
42
42
  execute_bolt_command(bolt_args)
43
43
  end
44
44
 
45
- # Run a bolt command with the inventory path, and boltdir
45
+ # Run a bolt command with the inventory path, and project
46
46
  # @param args [Array<String>] An array containing the bolt arguments
47
47
  def execute_bolt_command(args)
48
48
  bolt_exe = @env.vagrantfile.config.bolt.bolt_exe
49
- boltdir = VagrantBolt::Util::Config.relative_path(@env.vagrantfile.config.bolt.boltdir, @env.root_path)
49
+ project = VagrantBolt::Util::Config.relative_path(@env.vagrantfile.config.bolt.project, @env.root_path)
50
50
  inventoryfile = VagrantBolt::Util::Bolt.inventory_file(@env)
51
51
 
52
52
  quoted_args = args.flatten.compact.map { |a| "'#{a}'" }
53
53
  command = [
54
- "\'#{bolt_exe}\'",
54
+ bolt_exe,
55
55
  quoted_args,
56
- '--boltdir',
57
- "\'#{boltdir}\'",
56
+ '--project',
57
+ project,
58
58
  ]
59
59
  command << ['--inventoryfile', "\'#{inventoryfile}\'"] if File.exist?(inventoryfile)
60
- VagrantBolt::Util::Machine.run_command(command.flatten.join(" "), @env.ui)
60
+ VagrantBolt::Util::Machine.run_command(command.flatten.join(' '), @env.ui)
61
61
  end
62
62
  end
@@ -10,6 +10,7 @@ class VagrantBolt::Config::Bolt < VagrantBolt::Config::Global
10
10
  attr_accessor :name
11
11
 
12
12
  # @!attribute [rw] nodes
13
+ # DEPRECATED. Use `targets` instead.
13
14
  # Note: The `node_list` will override this setting.
14
15
  # @return [Array<String, Symbol>, "ALL"] The nodes to run the task or plan on.
15
16
  # Valid values are an array of machine names or the string "ALL".
@@ -17,14 +18,15 @@ class VagrantBolt::Config::Bolt < VagrantBolt::Config::Global
17
18
 
18
19
  # @!attribute [rw] excludes
19
20
  # Note: The `node_list` will override this setting.
20
- # Note: This will be merged with `nodes`, with `excludes` taking precidence.
21
- # @return [Array<String, Symbol>] The nodes to exclude from running this task or plan on.
21
+ # Note: This will be merged with `targets`, with `excludes` taking precidence.
22
+ # @return [Array<String, Symbol>] The targets to exclude from running this task or plan on.
22
23
  # Valid values are an array of machine names.
23
24
  attr_accessor :excludes
24
25
 
25
26
  # @!attribute [rw] node_list
27
+ # DEPRECATED. Use `target_list` instead.
26
28
  # This setting overrides `nodes` and needs to be in the `protocol://ipaddress:port` URI format.
27
- # @return [String] The bolt node list. This defaults to the currnet node.
29
+ # @return [String] The bolt node list. This defaults to the currnet machine.
28
30
  attr_accessor :node_list
29
31
 
30
32
  # @!attribute [rw] params
@@ -39,6 +41,17 @@ class VagrantBolt::Config::Bolt < VagrantBolt::Config::Global
39
41
  # @return [Boolean] If the command should be run with noop. Only valid with tasks and apply.
40
42
  attr_accessor :noop
41
43
 
44
+ # @!attribute [rw] targets
45
+ # Note: The `target_list` will override this setting.
46
+ # @return [Array<String, Symbol>, "ALL"] The targets to run the task or plan on.
47
+ # Valid values are an array of machine names or the string "ALL".
48
+ attr_accessor :targets
49
+
50
+ # @!attribute [rw] target_list
51
+ # This setting overrides `targets` and needs to be in the `protocol://ipaddress:port` URI format.
52
+ # @return [String] The bolt target list. This defaults to the currnet machine.
53
+ attr_accessor :target_list
54
+
42
55
  def initialize
43
56
  super
44
57
  @args = UNSET_VALUE
@@ -48,40 +61,32 @@ class VagrantBolt::Config::Bolt < VagrantBolt::Config::Global
48
61
  @node_list = UNSET_VALUE
49
62
  @params = UNSET_VALUE
50
63
  @command = UNSET_VALUE
64
+ @targets = []
65
+ @target_list = UNSET_VALUE
51
66
  end
52
67
 
53
68
  def finalize!
54
69
  @bolt_exe = nil if @bolt_exe == UNSET_VALUE
55
70
  @boltdir = nil if @boltdir == UNSET_VALUE
56
- @host_key_check = nil if @host_key_check == UNSET_VALUE
57
- @modulepath = nil if @modulepath == UNSET_VALUE
58
- @port = nil if @port == UNSET_VALUE
59
- @password = nil if @password == UNSET_VALUE
60
- @private_key = nil if @private_key == UNSET_VALUE
61
- @run_as = nil if @run_as == UNSET_VALUE
62
- @ssl = nil if @ssl == UNSET_VALUE
63
- @ssl_verify = nil if @ssl_verify == UNSET_VALUE
64
- @sudo_password = nil if @sudo_password == UNSET_VALUE
65
- @tmpdir = nil if @tmpdir == UNSET_VALUE
66
- @user = nil if @user == UNSET_VALUE
67
- @verbose = nil if @verbose == UNSET_VALUE
68
- @debug = nil if @debug == UNSET_VALUE
69
-
71
+ super
70
72
  @args = nil if @args == UNSET_VALUE
71
73
  @name = nil if @name == UNSET_VALUE
72
74
  @node_list = nil if @node_list == UNSET_VALUE
73
75
  @params = nil if @params == UNSET_VALUE
74
76
  @command = nil if @command == UNSET_VALUE
75
77
  @noop = nil if @noop == UNSET_VALUE
78
+ # Use nodes if targets is not specified.
79
+ @targets = @nodes if @targets.empty?
80
+ @target_list = @node_list if (@target_list == UNSET_VALUE) || @target_list.nil?
76
81
  end
77
82
 
78
83
  def merge(other)
79
84
  super.tap do |result|
80
85
  new_excludes = (excludes + other.excludes.dup).flatten.uniq
81
86
  result.instance_variable_set(:@excludes, new_excludes.to_a)
82
- unless nodes.to_s.casecmp("all").zero?
83
- new_nodes = (nodes + other.nodes.dup).flatten.uniq
84
- result.instance_variable_set(:@nodes, new_nodes.to_a)
87
+ unless targets.to_s.casecmp("all").zero?
88
+ new_targets = (targets + other.targets.dup).flatten.uniq
89
+ result.instance_variable_set(:@targets, new_targets.to_a)
85
90
  end
86
91
  end
87
92
  end
@@ -90,9 +95,9 @@ class VagrantBolt::Config::Bolt < VagrantBolt::Config::Global
90
95
  errors = _detected_errors
91
96
  errors << I18n.t('vagrant-bolt.config.bolt.errors.invalid_command', command: @command.to_s) if !@command.nil? && !['task', 'plan', 'command'].include?(@command.to_s)
92
97
 
93
- if @nodes.nil? || (!(@nodes.is_a? Array) && !@nodes.to_s.casecmp("all").zero?)
98
+ if @targets.nil? || (!(@targets.is_a? Array) && !@targets.to_s.casecmp("all").zero?)
94
99
  errors << I18n.t('vagrant-bolt.config.bolt.errors.invalid_data_command',
95
- item: 'nodes',
100
+ item: 'targets',
96
101
  command: 'array')
97
102
  end
98
103
 
@@ -121,8 +126,10 @@ class VagrantBolt::Config::Bolt < VagrantBolt::Config::Global
121
126
  def blacklist
122
127
  [
123
128
  'nodes',
129
+ 'targets',
124
130
  'excludes',
125
131
  'node_list',
132
+ 'target_list',
126
133
  'bolt_exe',
127
134
  'args',
128
135
  'command',
@@ -130,6 +137,8 @@ class VagrantBolt::Config::Bolt < VagrantBolt::Config::Global
130
137
  'vars',
131
138
  'facts',
132
139
  'features',
140
+ 'boltdir',
141
+ 'run_as',
133
142
  ]
134
143
  end
135
144
  end
@@ -6,7 +6,7 @@ class VagrantBolt::Config::Global < Vagrant.plugin('2', :config)
6
6
  attr_accessor :bolt_exe
7
7
 
8
8
  # @!attribute [rw] boltdir
9
- # @return [String] The bolt working directory. Defaults to `.`
9
+ # @return [String] DEPRECATED use `project`. The bolt working directory. Defaults to `.`
10
10
  attr_accessor :boltdir
11
11
 
12
12
  # @!attribute [rw] host_key_check
@@ -17,6 +17,14 @@ class VagrantBolt::Config::Global < Vagrant.plugin('2', :config)
17
17
  # @return [Boolean] If the connection should check the host key on the remote host (linux)
18
18
  attr_accessor :host_key_check
19
19
 
20
+ # @!attribute [rw] machine_alias
21
+ # @return [String] The alias of the machine to set in the bolt inventory
22
+ attr_accessor :machine_alias
23
+
24
+ # @!attribute [rw] machine_name
25
+ # @return [String] The name of the machine to set in the bolt inventory
26
+ attr_accessor :machine_name
27
+
20
28
  # @!attribute [rw] modulepath
21
29
  # @return [String] The path to the modules.
22
30
  attr_accessor :modulepath
@@ -37,6 +45,10 @@ class VagrantBolt::Config::Global < Vagrant.plugin('2', :config)
37
45
  # @return [String] The path of the private_key to authenticate on the machine.
38
46
  attr_accessor :private_key
39
47
 
48
+ # @!attribute [rw] project
49
+ # @return [String] The bolt project. Defaults to `.`
50
+ attr_accessor :project
51
+
40
52
  # @!attribute [rw] run_as
41
53
  # @return [String] User to run as using privilege escalation.
42
54
  attr_accessor :run_as
@@ -82,10 +94,13 @@ class VagrantBolt::Config::Global < Vagrant.plugin('2', :config)
82
94
  @boltdir = UNSET_VALUE
83
95
  @connect_timeout = UNSET_VALUE
84
96
  @host_key_check = UNSET_VALUE
97
+ @machine_alias = UNSET_VALUE
98
+ @machine_name = UNSET_VALUE
85
99
  @modulepath = UNSET_VALUE
86
100
  @password = UNSET_VALUE
87
101
  @port = UNSET_VALUE
88
102
  @private_key = UNSET_VALUE
103
+ @project = UNSET_VALUE
89
104
  @run_as = UNSET_VALUE
90
105
  @ssl = UNSET_VALUE
91
106
  @ssl_verify = UNSET_VALUE
@@ -100,14 +115,17 @@ class VagrantBolt::Config::Global < Vagrant.plugin('2', :config)
100
115
  end
101
116
 
102
117
  def finalize!
103
- @bolt_exe = 'bolt' if @bolt_exe == UNSET_VALUE
118
+ @bolt_exe = bolt_exe_path if @bolt_exe == UNSET_VALUE
104
119
  @boltdir = '.' if @boltdir == UNSET_VALUE
105
120
  @connect_timeout = nil if @connect_timeout == UNSET_VALUE
106
121
  @host_key_check = nil if @host_key_check == UNSET_VALUE
122
+ @machine_alias = nil if @machine_alias == UNSET_VALUE
123
+ @machine_name = nil if @machine_name == UNSET_VALUE
107
124
  @modulepath = nil if @modulepath == UNSET_VALUE
108
125
  @port = nil if @port == UNSET_VALUE
109
126
  @password = nil if @password == UNSET_VALUE
110
127
  @private_key = nil if @private_key == UNSET_VALUE
128
+ @project = @boltdir if @project == UNSET_VALUE || @project.nil?
111
129
  @run_as = nil if @run_as == UNSET_VALUE
112
130
  @ssl = nil if @ssl == UNSET_VALUE
113
131
  @ssl_verify = nil if @ssl_verify == UNSET_VALUE
@@ -121,6 +139,14 @@ class VagrantBolt::Config::Global < Vagrant.plugin('2', :config)
121
139
  @vars = nil if @vars == UNSET_VALUE
122
140
  end
123
141
 
142
+ # Get the full path to the bolt executable
143
+ # @return [String] The path to the bolt exe
144
+ def bolt_exe_path
145
+ return '/opt/puppetlabs/bin/bolt' if !Vagrant::Util::Platform.windows? && File.file?('/opt/puppetlabs/bin/bolt')
146
+
147
+ Vagrant::Util::Which.which('bolt') || 'bolt'
148
+ end
149
+
124
150
  def validate(_machine)
125
151
  errors = _detected_errors
126
152
 
@@ -137,6 +163,8 @@ class VagrantBolt::Config::Global < Vagrant.plugin('2', :config)
137
163
 
138
164
  if group_objects.include?(key)
139
165
  config[key] = value
166
+ elsif %r{machine_\w+}.match?(key)
167
+ config[key.sub('machine_', '')] = value
140
168
  else
141
169
  setting_map.each do |transport, settings|
142
170
  next unless settings.include?(key)
@@ -168,7 +196,6 @@ class VagrantBolt::Config::Global < Vagrant.plugin('2', :config)
168
196
  'winrm': [
169
197
  'user',
170
198
  'password',
171
- 'run_as',
172
199
  'ssl',
173
200
  'ssl_verify',
174
201
  'port',
@@ -13,7 +13,7 @@ class VagrantBolt::ConfigBuilder::Config < ConfigBuilder::Model::Base
13
13
  def_model_attribute :bolt_exe
14
14
 
15
15
  # @!attribute [rw] boltdir
16
- # @return [String] The bolt working directory. Defaults to `.`
16
+ # @return [String] DEPRECATED use `project`. The bolt working directory. Defaults to `.`
17
17
  def_model_attribute :boltdir
18
18
 
19
19
  # @!attribute [rw] debug
@@ -28,6 +28,14 @@ class VagrantBolt::ConfigBuilder::Config < ConfigBuilder::Model::Base
28
28
  # @return [Boolean] If the connection should check the host key on the remote host (linux)
29
29
  def_model_attribute :host_key_check
30
30
 
31
+ # @!attribute [rw] machine_alias
32
+ # @return [String] The alias of the machine to set in the bolt inventory
33
+ def_model_attribute :machine_alias
34
+
35
+ # @!attribute [rw] machine_name
36
+ # @return [String] The name of the machine to set in the bolt inventory
37
+ def_model_attribute :machine_name
38
+
31
39
  # @!attribute [rw] modulepath
32
40
  # @return [String] The path to the modules.
33
41
  def_model_attribute :modulepath
@@ -37,21 +45,23 @@ class VagrantBolt::ConfigBuilder::Config < ConfigBuilder::Model::Base
37
45
  def_model_attribute :name
38
46
 
39
47
  # @!attribute [rw] nodes
48
+ # DEPRECATED. Use `targets` instead.
40
49
  # Note: The `node_list` will override this setting.
41
50
  # @return [Array<String, Symbol>, "ALL"] The nodes to run the task or plan on.
42
51
  # Valid values are an array of machine names or the string "ALL".
43
52
  def_model_attribute :nodes
44
53
 
45
54
  # @!attribute [rw] excludes
46
- # Note: The `node_list` will override this setting.
47
- # Note: This will be merged with `nodes`, with `excludes` taking precidence.
48
- # @return [Array<String, Symbol>] The nodes to exclude from running this task or plan on.
55
+ # Note: The `target_list` will override this setting.
56
+ # Note: This will be merged with `targets`, with `excludes` taking precidence.
57
+ # @return [Array<String, Symbol>] The targets to exclude from running this task or plan on.
49
58
  # Valid values are an array of machine names.
50
59
  def_model_attribute :excludes
51
60
 
52
61
  # @!attribute [rw] node_list
62
+ # DEPRECATED. Use `target_list` instead.
53
63
  # This setting overrides `nodes` and needs to be in the `protocol://ipaddress:port` URI format
54
- # @return [String] The bolt node list. This defaults to the currnet node.
64
+ # @return [String] The bolt node list. This defaults to the current node.
55
65
  def_model_attribute :node_list
56
66
 
57
67
  # @!attribute [rw] noop
@@ -62,6 +72,10 @@ class VagrantBolt::ConfigBuilder::Config < ConfigBuilder::Model::Base
62
72
  # @return [Hash] The paramater hash for the task or plan
63
73
  def_model_attribute :params
64
74
 
75
+ # @!attribute [rw] project
76
+ # @return [String] The bolt working directory. Defaults to `.`
77
+ def_model_attribute :project
78
+
65
79
  # @!attribute [rw] command
66
80
  # @return [Symbol] Whether bolt should use a task or plan
67
81
  def_model_attribute :command
@@ -98,6 +112,17 @@ class VagrantBolt::ConfigBuilder::Config < ConfigBuilder::Model::Base
98
112
  # @return [Boolean] If the connection should verify SSL on with WinRM (Windows)
99
113
  def_model_attribute :ssl_verify
100
114
 
115
+ # @!attribute [rw] targets
116
+ # Note: The `target_list` will override this setting.
117
+ # @return [Array<String, Symbol>, "ALL"] The targets to run the task or plan on.
118
+ # Valid values are an array of machine names or the string "ALL".
119
+ def_model_attribute :targets
120
+
121
+ # @!attribute [rw] target_list
122
+ # This setting overrides `targets` and needs to be in the `protocol://ipaddress:port` URI format
123
+ # @return [String] The bolt target list. This defaults to the current target.
124
+ def_model_attribute :target_list
125
+
101
126
  # @!attribute [rw] tmpdir
102
127
  # @return [String] The directory to upload and execute temporary files on the target
103
128
  def_model_attribute :tmpdir
@@ -129,6 +154,8 @@ class VagrantBolt::ConfigBuilder::Config < ConfigBuilder::Model::Base
129
154
  with_attr(:debug) { |val| bolt.debug = val }
130
155
  with_attr(:connect_timeout) { |val| bolt.connect_timeout = val }
131
156
  with_attr(:host_key_check) { |val| bolt.host_key_check = val }
157
+ with_attr(:machine_alias) { |val| bolt.machine_alias = val }
158
+ with_attr(:machine_name) { |val| bolt.machine_name = val }
132
159
  with_attr(:modulepath) { |val| bolt.modulepath = val }
133
160
  with_attr(:name) { |val| bolt.name = val }
134
161
  with_attr(:nodes) { |val| bolt.nodes = val }
@@ -140,10 +167,13 @@ class VagrantBolt::ConfigBuilder::Config < ConfigBuilder::Model::Base
140
167
  with_attr(:password) { |val| bolt.password = val }
141
168
  with_attr(:port) { |val| bolt.port = val }
142
169
  with_attr(:private_key) { |val| bolt.private_key = val }
170
+ with_attr(:project) { |val| bolt.project = val }
143
171
  with_attr(:run_as) { |val| bolt.run_as = val }
144
172
  with_attr(:sudo_password) { |val| bolt.sudo_password = val }
145
173
  with_attr(:ssl) { |val| bolt.ssl = val }
146
174
  with_attr(:ssl_verify) { |val| bolt.ssl_verify = val }
175
+ with_attr(:targets) { |val| bolt.targets = val }
176
+ with_attr(:target_list) { |val| bolt.target_list = val }
147
177
  with_attr(:tmpdir) { |val| bolt.tmpdir = val }
148
178
  with_attr(:verbose) { |val| bolt.verbose = val }
149
179
  with_attr(:facts) { |val| bolt.facts = val }
@@ -29,7 +29,8 @@ module VagrantBolt::ConfigBuilder::MonkeyPatches
29
29
 
30
30
  def eval_bolt_triggers_root(vm_root_config)
31
31
  # Configure the vm bolt object if the options exist
32
- triggers = attr(:bolt_triggers) || [] # rubocop:disable Style/Attr
32
+ triggers = attr(:bolt_triggers) || []
33
+
33
34
  triggers.each do |config|
34
35
  f = VagrantBolt::ConfigBuilder::Triggers.new_from_hash(config)
35
36
  f.call(vm_root_config)
@@ -13,7 +13,7 @@ class VagrantBolt::ConfigBuilder::Provisioner < ConfigBuilder::Model::Provisione
13
13
  def_model_attribute :bolt_exe
14
14
 
15
15
  # @!attribute [rw] boltdir
16
- # @return [String] The bolt working directory. Defaults to `.`
16
+ # @return [String] DEPRECATED use `project`. The bolt working directory. Defaults to `.`
17
17
  def_model_attribute :boltdir
18
18
 
19
19
  # @!attribute [rw] debug
@@ -28,6 +28,14 @@ class VagrantBolt::ConfigBuilder::Provisioner < ConfigBuilder::Model::Provisione
28
28
  # @return [Boolean] If the connection should check the host key on the remote host (linux)
29
29
  def_model_attribute :host_key_check
30
30
 
31
+ # @!attribute [rw] machine_alias
32
+ # @return [String] The alias of the machine to set in the bolt inventory
33
+ def_model_attribute :machine_alias
34
+
35
+ # @!attribute [rw] machine_name
36
+ # @return [String] The name of the machine to set in the bolt inventory
37
+ def_model_attribute :machine_name
38
+
31
39
  # @!attribute [rw] modulepath
32
40
  # @return [String] The path to the modules.
33
41
  def_model_attribute :modulepath
@@ -37,6 +45,7 @@ class VagrantBolt::ConfigBuilder::Provisioner < ConfigBuilder::Model::Provisione
37
45
  def_model_attribute :name
38
46
 
39
47
  # @!attribute [rw] nodes
48
+ # DEPRECATED. Use `targets` instead.
40
49
  # Note: The `node_list` will override this setting.
41
50
  # @return [Array<String, Symbol>, "ALL"] The nodes to run the task or plan on.
42
51
  # Valid values are an array of machine names or the string "ALL".
@@ -47,9 +56,9 @@ class VagrantBolt::ConfigBuilder::Provisioner < ConfigBuilder::Model::Provisione
47
56
  def_model_attribute :noop
48
57
 
49
58
  # @!attribute [rw] excludes
50
- # Note: The `node_list` will override this setting.
51
- # Note: This will be merged with `nodes`, with `excludes` taking precidence.
52
- # @return [Array<String, Symbol>] The nodes to exclude from running this task or plan on.
59
+ # Note: The `target_list` will override this setting.
60
+ # Note: This will be merged with `targets`, with `excludes` taking precidence.
61
+ # @return [Array<String, Symbol>] The targets to exclude from running this task or plan on.
53
62
  # Valid values are an array of machine names.
54
63
  def_model_attribute :excludes
55
64
 
@@ -82,6 +91,10 @@ class VagrantBolt::ConfigBuilder::Provisioner < ConfigBuilder::Model::Provisione
82
91
  # @return [String] The path of the private_key to authenticate on the machine.
83
92
  def_model_attribute :private_key
84
93
 
94
+ # @!attribute [rw] project
95
+ # @return [String] The bolt working directory. Defaults to `.`
96
+ def_model_attribute :project
97
+
85
98
  # @!attribute [rw] run_as
86
99
  # @return [String] User to run as using privilege escalation.
87
100
  def_model_attribute :run_as
@@ -98,6 +111,17 @@ class VagrantBolt::ConfigBuilder::Provisioner < ConfigBuilder::Model::Provisione
98
111
  # @return [Boolean] If the connection should verify SSL on with WinRM (Windows)
99
112
  def_model_attribute :ssl_verify
100
113
 
114
+ # @!attribute [rw] targets
115
+ # Note: The `target_list` will override this setting.
116
+ # @return [Array<String, Symbol>, "ALL"] The targets to run the task or plan on.
117
+ # Valid values are an array of machine names or the string "ALL".
118
+ def_model_attribute :targets
119
+
120
+ # @!attribute [rw] target_list
121
+ # This setting overrides `targets` and needs to be in the `protocol://ipaddress:port` URI format
122
+ # @return [String] The bolt target list. This defaults to the current target.
123
+ def_model_attribute :target_list
124
+
101
125
  # @!attribute [rw] tmpdir
102
126
  # @return [String] The directory to upload and execute temporary files on the target
103
127
  def_model_attribute :tmpdir