vagrant-bolt 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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')