vagrant-bolt 0.3.0 → 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 (48) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/spec.yml +71 -0
  3. data/.rubocop.yml +3 -0
  4. data/CHANGELOG.md +19 -0
  5. data/Gemfile +3 -3
  6. data/README.md +6 -2
  7. data/acceptance/components/bolt_spec.rb +16 -17
  8. data/acceptance/skeletons/advanced/Vagrantfile +1 -1
  9. data/acceptance/skeletons/base/Puppetfile +2 -0
  10. data/acceptance/skeletons/base/Vagrantfile +1 -1
  11. data/acceptance/skeletons/provisioner/Vagrantfile +1 -1
  12. data/acceptance/skeletons/trigger/Vagrantfile +1 -1
  13. data/acceptance/vagrant-spec.config.rb +3 -3
  14. data/lib/vagrant-bolt/command.rb +6 -6
  15. data/lib/vagrant-bolt/config/bolt.rb +2 -0
  16. data/lib/vagrant-bolt/config/global.rb +9 -5
  17. data/lib/vagrant-bolt/config_builder/config.rb +6 -1
  18. data/lib/vagrant-bolt/config_builder/monkey_patches.rb +1 -0
  19. data/lib/vagrant-bolt/config_builder/provisioner.rb +5 -1
  20. data/lib/vagrant-bolt/runner.rb +2 -2
  21. data/lib/vagrant-bolt/util/bolt.rb +1 -1
  22. data/lib/vagrant-bolt/util/config.rb +3 -2
  23. data/lib/vagrant-bolt/util/machine.rb +3 -2
  24. data/lib/vagrant-bolt/version.rb +1 -1
  25. data/spec/unit/config/bolt_spec.rb +4 -1
  26. data/spec/unit/config/global_spec.rb +4 -2
  27. data/spec/unit/runner/runner_spec.rb +11 -1
  28. data/spec/unit/util/bolt_spec.rb +18 -2
  29. metadata +8 -25
  30. data/.travis.yml +0 -28
  31. data/acceptance/skeletons/base/modules/facts/CHANGELOG.md +0 -26
  32. data/acceptance/skeletons/base/modules/facts/CONTRIBUTING.md +0 -279
  33. data/acceptance/skeletons/base/modules/facts/Gemfile +0 -98
  34. data/acceptance/skeletons/base/modules/facts/LICENSE +0 -201
  35. data/acceptance/skeletons/base/modules/facts/README.md +0 -45
  36. data/acceptance/skeletons/base/modules/facts/Rakefile +0 -8
  37. data/acceptance/skeletons/base/modules/facts/checksums.json +0 -42
  38. data/acceptance/skeletons/base/modules/facts/lib/puppet/functions/facts/group_by.rb +0 -14
  39. data/acceptance/skeletons/base/modules/facts/metadata.json +0 -62
  40. data/acceptance/skeletons/base/modules/facts/plans/info.pp +0 -16
  41. data/acceptance/skeletons/base/modules/facts/plans/init.pp +0 -13
  42. data/acceptance/skeletons/base/modules/facts/tasks/bash.json +0 -5
  43. data/acceptance/skeletons/base/modules/facts/tasks/bash.sh +0 -93
  44. data/acceptance/skeletons/base/modules/facts/tasks/init.json +0 -10
  45. data/acceptance/skeletons/base/modules/facts/tasks/powershell.json +0 -4
  46. data/acceptance/skeletons/base/modules/facts/tasks/powershell.ps1 +0 -56
  47. data/acceptance/skeletons/base/modules/facts/tasks/ruby.json +0 -4
  48. data/acceptance/skeletons/base/modules/facts/tasks/ruby.rb +0 -40
@@ -1,16 +0,0 @@
1
- # A plan that prints basic OS information for the specified nodes. It first
2
- # runs the facts task to retrieve facts from the nodes, then compiles the
3
- # desired OS information from the os fact value of each nodes.
4
- #
5
- # The $nodes parameter is a list of the nodes for which to print the OS
6
- # information. This plan primarily provides readable formatting, and ignores
7
- # nodes that error.
8
- plan facts::info(TargetSpec $nodes) {
9
- return run_task('facts', $nodes, '_catch_errors' => true).reduce([]) |$info, $r| {
10
- if ($r.ok) {
11
- $info + "${r.target.name}: ${r[os][name]} ${r[os][release][full]} (${r[os][family]})"
12
- } else {
13
- $info # don't include any info for nodes which failed
14
- }
15
- }
16
- }
@@ -1,13 +0,0 @@
1
- # A plan that retrieves facts and stores in the inventory for the
2
- # specified nodes.
3
- #
4
- # The $nodes parameter is a list of nodes to retrieve the facts for.
5
- plan facts(TargetSpec $nodes) {
6
- $result_set = run_task('facts', $nodes)
7
-
8
- $result_set.each |$result| {
9
- add_facts($result.target, $result.value)
10
- }
11
-
12
- return $result_set
13
- }
@@ -1,5 +0,0 @@
1
- {
2
- "description": "Gather system facts using bash",
3
- "input_method": "environment",
4
- "parameters": {}
5
- }
@@ -1,93 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- # Delegate to facter if available
4
- export PATH="$PATH:/opt/puppetlabs/bin"
5
- command -v facter > /dev/null 2>&1 && exec facter -p --json --show-legacy
6
-
7
- minor () {
8
- minor="${*#*.}"
9
- [ "$minor" == "$*" ] || echo "${minor%%.*}"
10
- }
11
-
12
- # Determine the OS name
13
- if [ -f /etc/redhat-release ]; then
14
- if egrep -iq centos /etc/redhat-release; then
15
- name=CentOS
16
- elif egrep -iq 'Fedora release' /etc/redhat-release; then
17
- name=Fedora
18
- fi
19
- release=$(sed -r -e 's/^.* release ([0-9]+(\.[0-9]+)?).*$/\1/' \
20
- /etc/redhat-release)
21
- fi
22
-
23
- if [ -z "${name}" ]; then
24
- LSB_RELEASE=$(command -v lsb_release)
25
- if [ -n "$LSB_RELEASE" ]; then
26
- if [ -z "$name" ]; then
27
- name=$($LSB_RELEASE -i | sed -re 's/^.*:[ \t]*//')
28
- fi
29
- release=$($LSB_RELEASE -r | sed -re 's/^.*:[ \t]*//')
30
- fi
31
- fi
32
-
33
- # if lsb not available try os-release
34
- if [ -z "${name}" ]; then
35
- if [ -e /etc/os-release ]; then
36
- name=$(grep "^NAME" /etc/os-release | cut -d'=' -f2 | sed "s/\"//g")
37
- release=$(grep "^VERSION_ID" /etc/os-release | cut -d'=' -f2 | sed "s/\"//g")
38
- elif [-e /usr/lib/os-release ]; then
39
- name=$(grep "^NAME" /usr/lib/os-release | cut -d'=' -f2 | sed "s/\"//g")
40
- release=$(grep "^VERSION_ID" /usr/lib/os-release | cut -d'=' -f2 | sed "s/\"//g")
41
- fi
42
- if [ -n "${name}" ]; then
43
- if echo "${name}" | egrep -iq "(.*red)(.*hat)"; then
44
- name="RedHat"
45
- elif echo "${name}" | egrep -iq "debian"; then
46
- name="Debian"
47
- fi
48
- fi
49
- fi
50
-
51
- if [ -z "${name}" ]; then
52
- name=$(uname)
53
- release=$(uname -r)
54
- fi
55
-
56
- case $name in
57
- RedHat|Fedora|CentOS|Scientific|SLC|Ascendos|CloudLinux)
58
- family=RedHat;;
59
- HuaweiOS|LinuxMint|Ubuntu|Debian)
60
- family=Debian;;
61
- *)
62
- family=$name;;
63
- esac
64
-
65
- # Print it all out
66
- if [ -z "$name" ]; then
67
- cat <<JSON
68
- {
69
- "_error": {
70
- "kind": "facts/noname",
71
- "msg": "Could not determine OS name"
72
- }
73
- }
74
- JSON
75
- else
76
- cat <<JSON
77
- {
78
- "os": {
79
- "name": "${name}",
80
- JSON
81
- [ -n "$release" ] && cat <<JSON
82
- "release": {
83
- "full": "${release}",
84
- "major": "${release%%.*}",
85
- "minor": "`minor "${release}"`"
86
- },
87
- JSON
88
- cat <<JSON
89
- "family": "${family}"
90
- }
91
- }
92
- JSON
93
- fi
@@ -1,10 +0,0 @@
1
- {
2
- "description": "Gather system facts",
3
- "parameters": {},
4
- "input_method": "environment",
5
- "implementations": [
6
- {"name": "ruby.rb", "requirements": ["puppet-agent"]},
7
- {"name": "powershell.ps1", "requirements": ["powershell"]},
8
- {"name": "bash.sh", "requirements": ["shell"]}
9
- ]
10
- }
@@ -1,4 +0,0 @@
1
- {
2
- "description": "Gather system facts using powershell",
3
- "parameters": {}
4
- }
@@ -1,56 +0,0 @@
1
- #!powershell.exe
2
-
3
- # Delegate to facter if available
4
- if (Get-Command facter -ErrorAction SilentlyContinue) {
5
- facter -p --json --show-legacy
6
- }
7
- else {
8
- # The number 2 in the condition below is the value of
9
- # the [System.PlatformID]::Win32NT constant. We don't
10
- # use the constant here as it doesn't work on Windows
11
- # Server Core.
12
- if ([System.Environment]::OSVersion.Platform -gt 2) {
13
- @'
14
- {
15
- "_error": {
16
- "kind": "facts/noname",
17
- "msg": "Could not determine OS name"
18
- }
19
- }
20
- '@
21
- }
22
- else {
23
- $release = [System.Environment]::OSVersion.Version.ToString() -replace '\.[^.]*\z'
24
- $version = $release -replace '\.[^.]*\z'
25
-
26
- # This fails for regular users unless explicitly enabled
27
- $os = Get-CimInstance Win32_OperatingSystem -ErrorAction SilentlyContinue
28
- $consumerrel = $os.ProductType -eq '1'
29
-
30
- $release = switch($version){
31
- '10.0'{ if ($consumerrel) { '10' } else { '2016' } }
32
- '6.3' { if ($consumerrel) { '8.1' } else { '2012 R2' } }
33
- '6.2' { if ($consumerrel) { '8' } else { '2012' } }
34
- '6.1' { if ($consumerrel) { '7' } else { '2008 R2' } }
35
- '6.0' { if ($consumerrel) { 'Vista' } else { '2008' } }
36
- '5.2' {
37
- if ($consumerrel) { 'XP' } else {
38
- if ($os.OtherTypeDescription -eq 'R2') { '2003 R2' } else { '2003' }
39
- }
40
- }
41
- }
42
-
43
- @"
44
- {
45
- "os": {
46
- "name": "windows",
47
- "release": {
48
- "full": "$release",
49
- "major": "$release"
50
- },
51
- "family": "windows"
52
- }
53
- }
54
- "@
55
- }
56
- }
@@ -1,4 +0,0 @@
1
- {
2
- "description": "Gather system facts using ruby and facter",
3
- "parameters": {}
4
- }
@@ -1,40 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- def facter_executable
5
- if Gem.win_platform?
6
- require 'win32/registry'
7
- installed_dir =
8
- begin
9
- Win32::Registry::HKEY_LOCAL_MACHINE.open('SOFTWARE\Puppet Labs\Puppet') do |reg|
10
- # rubocop:disable Style/RescueModifier
11
- # Rescue missing key
12
- dir = reg['RememberedInstallDir64'] rescue ''
13
- # Both keys may exist, make sure the dir exists
14
- break dir if File.exist?(dir)
15
-
16
- # Rescue missing key
17
- reg['RememberedInstallDir'] rescue ''
18
- # rubocop:enable Style/RescueModifier
19
- end
20
- rescue Win32::Registry::Error
21
- # Rescue missing registry path
22
- ''
23
- end
24
-
25
- facter =
26
- if installed_dir.empty?
27
- ''
28
- else
29
- File.join(installed_dir, 'bin', 'facter')
30
- end
31
- else
32
- facter = '/opt/puppetlabs/puppet/bin/facter'
33
- end
34
-
35
- # Fall back to PATH lookup if puppet-agent isn't installed
36
- File.exist?(facter) ? facter : 'facter'
37
- end
38
-
39
- # Delegate to facter
40
- exec(facter_executable, '-p', '--json', '--show-legacy')