octocatalog-diff 1.5.2 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +5 -5
  2. data/.version +1 -1
  3. data/README.md +4 -4
  4. data/doc/CHANGELOG.md +50 -0
  5. data/doc/advanced-compare-file-text.md +79 -0
  6. data/doc/advanced-environments.md +5 -5
  7. data/doc/advanced-ignores.md +10 -0
  8. data/doc/advanced-puppet-master.md +25 -7
  9. data/doc/configuration-puppet.md +19 -19
  10. data/doc/configuration-puppetdb.md +8 -0
  11. data/doc/configuration.md +31 -31
  12. data/doc/dev/api/v1/calls/catalog-diff.md +6 -2
  13. data/doc/dev/api/v1/objects/diff.md +3 -3
  14. data/doc/dev/integration-tests.md +2 -2
  15. data/doc/dev/releasing.md +41 -41
  16. data/doc/dev/run-from-branch.md +23 -23
  17. data/doc/installation.md +14 -14
  18. data/doc/limitations.md +9 -9
  19. data/doc/optionsref.md +166 -11
  20. data/doc/requirements.md +6 -2
  21. data/lib/octocatalog-diff/catalog-diff/differ.rb +32 -5
  22. data/lib/octocatalog-diff/catalog-diff/filter/compilation_dir.rb +29 -25
  23. data/lib/octocatalog-diff/catalog-util/command.rb +25 -3
  24. data/lib/octocatalog-diff/catalog-util/fileresources.rb +39 -16
  25. data/lib/octocatalog-diff/catalog.rb +22 -4
  26. data/lib/octocatalog-diff/catalog/computed.rb +2 -1
  27. data/lib/octocatalog-diff/catalog/puppetmaster.rb +43 -5
  28. data/lib/octocatalog-diff/cli.rb +38 -6
  29. data/lib/octocatalog-diff/cli/options.rb +36 -1
  30. data/lib/octocatalog-diff/cli/options/compare_file_text.rb +18 -0
  31. data/lib/octocatalog-diff/cli/options/hostname.rb +13 -2
  32. data/lib/octocatalog-diff/cli/options/puppet_master_api_version.rb +2 -2
  33. data/lib/octocatalog-diff/cli/options/puppet_master_token.rb +20 -0
  34. data/lib/octocatalog-diff/cli/options/puppet_master_token_file.rb +35 -0
  35. data/lib/octocatalog-diff/cli/options/puppet_master_update_catalog.rb +20 -0
  36. data/lib/octocatalog-diff/cli/options/puppet_master_update_facts.rb +20 -0
  37. data/lib/octocatalog-diff/cli/options/puppetdb_package_inventory.rb +18 -0
  38. data/lib/octocatalog-diff/cli/options/use_lcs.rb +14 -0
  39. data/lib/octocatalog-diff/facts/json.rb +13 -2
  40. data/lib/octocatalog-diff/facts/puppetdb.rb +43 -2
  41. data/lib/octocatalog-diff/util/parallel.rb +20 -16
  42. data/lib/octocatalog-diff/util/util.rb +2 -0
  43. data/scripts/env/env.sh +1 -1
  44. data/scripts/git-extract/git-extract.sh +1 -1
  45. data/scripts/puppet/puppet.sh +1 -1
  46. metadata +36 -30
@@ -58,6 +58,6 @@ end
58
58
 
59
59
  ## Hints for writing an integration test
60
60
 
61
- 0. If your integration test deals only with the calculation or display of differences, and not catalog compilation, and you are compiling catalogs multiple times, prefer `spec_catalog_old` and `spec_catalog_new` to pass in pre-compiled catalogs. This will make the test run faster.
61
+ 1. If your integration test deals only with the calculation or display of differences, and not catalog compilation, and you are compiling catalogs multiple times, prefer `spec_catalog_old` and `spec_catalog_new` to pass in pre-compiled catalogs. This will make the test run faster.
62
62
 
63
- 0. It's a good idea to check the exit code in a test of its own, and then `pending` any subsequent tests if that exit code doesn't match. This way only one test, and not all the tests, will fail if the catalog compilation doesn't work.
63
+ 1. It's a good idea to check the exit code in a test of its own, and then `pending` any subsequent tests if that exit code doesn't match. This way only one test, and not all the tests, will fail if the catalog compilation doesn't work.
data/doc/dev/releasing.md CHANGED
@@ -9,7 +9,7 @@ The project maintainers are responsible for bumping the version number, regenera
9
9
  To test the new version of `octocatalog-diff` in the GitHub Puppet repository, check out `github/puppet` and:
10
10
 
11
11
  - Start a new branch based off master
12
- - Run `script/update-octocatalog-diff -r <ocd_branch_name>`
12
+ - Run `script/update-octocatalog-diff <ocd_branch_name>`
13
13
  - Confirm and commit the result
14
14
  - Make sure all CI jobs pass
15
15
  - Run the `puppet-catalog-diff` CI job and make sure it passes and shows expected results
@@ -18,65 +18,65 @@ To test the new version of `octocatalog-diff` in the GitHub Puppet repository, c
18
18
 
19
19
  This section is useful when releasing a new version based on one PR submitted by a contributor. Following this workflow is important so that the contributor gets appropriate credit in the revision history for his or her work.
20
20
 
21
- 0. In your local checkout, start a new branch based off master.
22
- 0. Add the contributor's repository as a remote. For example:
21
+ 1. In your local checkout, start a new branch based off master.
22
+ 1. Add the contributor's repository as a remote. For example:
23
23
 
24
- ```
25
- git remote add octocat https://github.com/octocat/octocatalog-diff.git
26
- ```
24
+ ```
25
+ git remote add octocat https://github.com/octocat/octocatalog-diff.git
26
+ ```
27
27
 
28
- 0. Merge in the contributor's branch into your own. For example:
28
+ 1. Merge in the contributor's branch into your own. For example:
29
29
 
30
- ```
31
- git merge octocat/some-branch
32
- ```
30
+ ```
31
+ git merge octocat/some-branch
32
+ ```
33
33
 
34
- 0. Update `.version` and `doc/CHANGELOG.md` appropriately. In CHANGELOG you should link to the PR submitted by the contributor (not the PR you're creating now).
35
- 0. Commit your changes to `.version` and `doc/CHANGELOG.md`.
36
- 0. If necessary, auto-generate the build documentation, and commit the changes to your branch.
34
+ 1. Update `.version` and `doc/CHANGELOG.md` appropriately. In CHANGELOG you should link to the PR submitted by the contributor (not the PR you're creating now).
35
+ 1. Commit your changes to `.version` and `doc/CHANGELOG.md`.
36
+ 1. If necessary, auto-generate the build documentation, and commit the changes to your branch.
37
37
 
38
- ```
39
- rake doc:build
40
- ```
38
+ ```
39
+ rake doc:build
40
+ ```
41
41
 
42
- 0. Open a Pull Request based on your branch. Confirm that the history is correct, showing the contributor's commits first, and then your commit(s) updating the version file, change log, and/or auto-generated documentation.
43
- 0. Ensure that CI tests are all passing.
44
- 0. Ensure that you've performed "local testing" within GitHub (typically, ~1 day) to confirm the changes.
45
- 0. Merge your PR and delete your branch.
46
- 0. Confirm that the contributor's PR now appears as merged, and any associated issues have been closed.
42
+ 1. Open a Pull Request based on your branch. Confirm that the history is correct, showing the contributor's commits first, and then your commit(s) updating the version file, change log, and/or auto-generated documentation.
43
+ 1. Ensure that CI tests are all passing.
44
+ 1. Ensure that you've performed "local testing" within GitHub (typically, ~1 day) to confirm the changes.
45
+ 1. Merge your PR and delete your branch.
46
+ 1. Confirm that the contributor's PR now appears as merged, and any associated issues have been closed.
47
47
 
48
48
  ## Merging multiple PRs
49
49
 
50
50
  If multiple PRs will constitute a release, it's generally easier to merge each such PR individually, and then create a separate PR afterwards to update the necessary files.
51
51
 
52
- 0. Merge all constituent PRs and ensure that any associated issues have been closed.
53
- 0. Create your own branch based off master.
54
- 0. Update `.version` and `doc/CHANGELOG.md` appropriately. In CHANGELOG you should link to the PR submitted by the contributor (not the PR you're creating now).
55
- 0. Commit your changes to `.version` and `doc/CHANGELOG.md`.
56
- 0. If necessary, auto-generate the build documentation, and commit the changes to your branch.
52
+ 1. Merge all constituent PRs and ensure that any associated issues have been closed.
53
+ 1. Create your own branch based off master.
54
+ 1. Update `.version` and `doc/CHANGELOG.md` appropriately. In CHANGELOG you should link to the PR submitted by the contributor (not the PR you're creating now).
55
+ 1. Commit your changes to `.version` and `doc/CHANGELOG.md`.
56
+ 1. If necessary, auto-generate the build documentation, and commit the changes to your branch.
57
57
 
58
- ```
59
- rake doc:build
60
- ```
58
+ ```
59
+ rake doc:build
60
+ ```
61
61
 
62
- 0. Open a Pull Request based on your branch.
63
- 0. Ensure that CI tests are all passing.
64
- 0. Ensure that you've performed "local testing" within GitHub (typically, ~1 day) to confirm the changes.
65
- 0. Merge your PR and delete your branch.
62
+ 1. Open a Pull Request based on your branch.
63
+ 1. Ensure that CI tests are all passing.
64
+ 1. Ensure that you've performed "local testing" within GitHub (typically, ~1 day) to confirm the changes.
65
+ 1. Merge your PR and delete your branch.
66
66
 
67
67
  ## Releasing
68
68
 
69
69
  Generally, a new release will correspond to a merge to master of one or more Pull Requests.
70
70
 
71
- 0. Ensure that all changes associated with the release have been merged to master.
72
- - Merge all Pull Requests associated with release, including the version number bump, change log update, etc.
73
- - If necessary (for significant changes), complete a Pull Request to update the top-level README file.
74
- 0. Ensure the the master branch is checked out on your system.
75
- 0. Run the release procedure:
71
+ 1. Ensure that all changes associated with the release have been merged to master.
72
+ - Merge all Pull Requests associated with release, including the version number bump, change log update, etc.
73
+ - If necessary (for significant changes), complete a Pull Request to update the top-level README file.
74
+ 1. Ensure the the master branch is checked out on your system.
75
+ 1. Run the release procedure:
76
76
 
77
- ```
78
- rake gem:release
79
- ```
77
+ ```
78
+ rake gem:release
79
+ ```
80
80
 
81
81
  This rake task handles the following:
82
82
 
@@ -8,38 +8,38 @@ This document is intended for people who may not be familiar with git, GitHub, a
8
8
 
9
9
  1. Determine the branch name. If there's an open Pull Request, you can see the branch name near the top of the page.
10
10
 
11
- ![Pull Request branch](/doc/images/pull-request-identify-branch.png)
11
+ ![Pull Request branch](/doc/images/pull-request-identify-branch.png)
12
12
 
13
- 2. Clone the `octocatalog-diff` repository in your home directory. From the command line:
13
+ 1. Clone the `octocatalog-diff` repository in your home directory. From the command line:
14
14
 
15
- ```
16
- cd $HOME
17
- git clone https://github.com/github/octocatalog-diff.git
18
- ```
15
+ ```
16
+ cd $HOME
17
+ git clone https://github.com/github/octocatalog-diff.git
18
+ ```
19
19
 
20
- 3. Change into the directory created by your checkout:
20
+ 1. Change into the directory created by your checkout:
21
21
 
22
- ```
23
- cd $HOME/octocatalog-diff
24
- ```
22
+ ```
23
+ cd $HOME/octocatalog-diff
24
+ ```
25
25
 
26
- 4. Check out the branch you wish to use, filling in the branch name you determined in the first step:
26
+ 1. Check out the branch you wish to use, filling in the branch name you determined in the first step:
27
27
 
28
- ```
29
- git checkout BRANCH_NAME_FROM_STEP_1
30
- ```
28
+ ```
29
+ git checkout BRANCH_NAME_FROM_STEP_1
30
+ ```
31
31
 
32
- 5. Bootstrap the repository to pull in dependencies:
32
+ 1. Bootstrap the repository to pull in dependencies:
33
33
 
34
- ```
35
- ./script/bootstrap
36
- ```
34
+ ```
35
+ ./script/bootstrap
36
+ ```
37
37
 
38
- 6. Optional but recommended - run the test suite:
38
+ 1. Optional but recommended - run the test suite:
39
39
 
40
- ```
41
- rake
42
- ```
40
+ ```
41
+ rake
42
+ ```
43
43
 
44
44
  ## Use
45
45
 
@@ -53,7 +53,7 @@ We've created a wrapper script to make this easier for you.
53
53
  cd /etc/puppetlabs/code
54
54
  ```
55
55
 
56
- 2. Run the `script/octocatalog-diff-wrapper` script from *this* checkout. For example, if you checked out `octocatalog-diff` to your home directory, you could use:
56
+ 1. Run the `script/octocatalog-diff-wrapper` script from *this* checkout. For example, if you checked out `octocatalog-diff` to your home directory, you could use:
57
57
 
58
58
  ```
59
59
  $HOME/octocatalog-diff/script/octocatalog-diff-wrapper <options>
data/doc/installation.md CHANGED
@@ -25,26 +25,26 @@ For general information on installing gems, see: [RubyGems Basics](http://guides
25
25
 
26
26
  To install from source, you'll need a git client and internet access.
27
27
 
28
- 0. Clone the repository
28
+ 1. Clone the repository
29
29
 
30
- ```
31
- git clone https://github.com/github/octocatalog-diff.git
32
- ```
30
+ ```
31
+ git clone https://github.com/github/octocatalog-diff.git
32
+ ```
33
33
 
34
- 0. Bootstrap the repository (this will install dependent gems in the project)
34
+ 1. Bootstrap the repository (this will install dependent gems in the project)
35
35
 
36
- ```
37
- cd octocatalog-diff
38
- ./script/bootstrap
39
- ```
36
+ ```
37
+ cd octocatalog-diff
38
+ ./script/bootstrap
39
+ ```
40
40
 
41
- 0. RECOMMENDED: Make sure the tests pass on your machine
41
+ 1. RECOMMENDED: Make sure the tests pass on your machine
42
42
 
43
- ```
44
- rake
45
- ```
43
+ ```
44
+ rake
45
+ ```
46
46
 
47
- Note: If tests fail on your machine with a clean checkout of the master branch, we would definitely appreciate if you would report it. Please [open an issue](https://github.com/github/octocatalog-diff/issues/new) with the output and some information about your system (e.g. OS, ruby version, etc.) to let us know.
47
+ Note: If tests fail on your machine with a clean checkout of the master branch, we would definitely appreciate if you would report it. Please [open an issue](https://github.com/github/octocatalog-diff/issues/new) with the output and some information about your system (e.g. OS, ruby version, etc.) to let us know.
48
48
 
49
49
  Once the code is downloaded and bootstrapped, please proceed to [Configuration](/doc/configuration.md).
50
50
 
data/doc/limitations.md CHANGED
@@ -2,23 +2,23 @@
2
2
 
3
3
  Testing of Puppet catalogs is faster than running the agent, but you need to be careful of the following limitations:
4
4
 
5
- 0. Facts are not taken from a live agent run
5
+ 1. Facts are not taken from a live agent run
6
6
 
7
- octocatalog-diff by default uses the facts reported from a node's more recent Puppet run. If you have made changes to custom facts, catalog testing will **NOT** be an adequate test of whether your custom facts worked. (You can still use octocatalog-diff to help predict changes to nodes based on changes to facts, by overriding facts on the command line.)
7
+ octocatalog-diff by default uses the facts reported from a node's more recent Puppet run. If you have made changes to custom facts, catalog testing will **NOT** be an adequate test of whether your custom facts worked. (You can still use octocatalog-diff to help predict changes to nodes based on changes to facts, by overriding facts on the command line.)
8
8
 
9
- 0. Agents handle depenency ordering and implementation details
9
+ 1. Agents handle depenency ordering and implementation details
10
10
 
11
- The catalog defines the state of the system, but it's up to the agent to determine how to bring the system to a point that matches the catalog. The agent is responsible for order of operations and actually making the change.
11
+ The catalog defines the state of the system, but it's up to the agent to determine how to bring the system to a point that matches the catalog. The agent is responsible for order of operations and actually making the change.
12
12
 
13
- Two specific situations that catalog testing does **NOT** detect are:
13
+ Two specific situations that catalog testing does **NOT** detect are:
14
14
 
15
- - Dependency loops (e.g., you have made A require B, B require C, and C require A).
15
+ - Dependency loops (e.g., you have made A require B, B require C, and C require A).
16
16
 
17
- - Operations not supported by the provider. For example, assume that in your current Puppet manifests, you set the size of a file system to 100 GB. You change this in your new branch to 50 GB. octocatalog-diff will dutifully report this change to you. However, the agent will fail to make the change, because it is not possible to shrink a file system from 100 GB to 50 GB.
17
+ - Operations not supported by the provider. For example, assume that in your current Puppet manifests, you set the size of a file system to 100 GB. You change this in your new branch to 50 GB. octocatalog-diff will dutifully report this change to you. However, the agent will fail to make the change, because it is not possible to shrink a file system from 100 GB to 50 GB.
18
18
 
19
- 0. Changes in underlying providers may not be noticed
19
+ 1. Changes in underlying providers may not be noticed
20
20
 
21
- Consider that you are using a Puppet module that creates a file system. The current implementation of that module checks to see if *any* file system is present on the device, and creates a new file system there if no file system was present. You upgrade the module, and the new version checks to see if *the specified* file system is present on the device, and reformats the device with the specified file system (regardless of whether there was no file system or if there was an existing file system of a different type). There would be no catalog changes (hence octocatalog-diff would report nothing) because the catalog simply instructs the agent to create a file system of the specified type at the defined location. However, the actual implementation of those instructions has changed dramatically.
21
+ Consider that you are using a Puppet module that creates a file system. The current implementation of that module checks to see if *any* file system is present on the device, and creates a new file system there if no file system was present. You upgrade the module, and the new version checks to see if *the specified* file system is present on the device, and reformats the device with the specified file system (regardless of whether there was no file system or if there was an existing file system of a different type). There would be no catalog changes (hence octocatalog-diff would report nothing) because the catalog simply instructs the agent to create a file system of the specified type at the defined location. However, the actual implementation of those instructions has changed dramatically.
22
22
 
23
23
  In general catalog testing is great for:
24
24
 
data/doc/optionsref.md CHANGED
@@ -9,7 +9,8 @@
9
9
 
10
10
  ```
11
11
  Usage: octocatalog-diff [command line options]
12
- -n, --hostname HOSTNAME Use PuppetDB facts from last run of hostname
12
+ -n HOSTNAME1[,HOSTNAME2[,...]], Use PuppetDB facts from last run of a hostname or a comma separated list of multiple hostnames
13
+ --hostname
13
14
  --basedir DIRNAME Use an alternate base directory (git checkout of puppet repository)
14
15
  -f, --from FROM_BRANCH Branch you are coming from
15
16
  -t, --to TO_BRANCH Branch you are going to
@@ -36,6 +37,8 @@ Usage: octocatalog-diff [command line options]
36
37
  --fact-file STRING Override fact globally
37
38
  --to-fact-file STRING Override fact for the to branch
38
39
  --from-fact-file STRING Override fact for the from branch
40
+ --[no-]puppetdb-package-inventory
41
+ Include Puppet Enterprise package inventory data, if found
39
42
  --save-catalog STRING Save intermediate catalogs into files globally
40
43
  --to-save-catalog STRING Save intermediate catalogs into files for the to branch
41
44
  --from-save-catalog STRING Save intermediate catalogs into files for the from branch
@@ -71,6 +74,7 @@ Usage: octocatalog-diff [command line options]
71
74
  --from-enc PATH Path to ENC script (for the from catalog only)
72
75
  --to-enc PATH Path to ENC script (for the to catalog only)
73
76
  --[no-]display-detail-add Display parameters and other details for added resources
77
+ --[no-]use-lcs Use the LCS algorithm to determine differences in arrays
74
78
  --[no-]truncate-details Truncate details with --display-detail-add
75
79
  --no-header Do not print a header
76
80
  --default-header Print default header with output
@@ -86,7 +90,18 @@ Usage: octocatalog-diff [command line options]
86
90
  --puppet-binary STRING Full path to puppet binary globally
87
91
  --to-puppet-binary STRING Full path to puppet binary for the to branch
88
92
  --from-puppet-binary STRING Full path to puppet binary for the from branch
93
+ --puppet-master-token-file STRING
94
+ File containing PE RBAC token to authenticate to the Puppetserver API v4 globally
95
+ --to-puppet-master-token-file STRING
96
+ File containing PE RBAC token to authenticate to the Puppetserver API v4 for the to branch
97
+ --from-puppet-master-token-file STRING
98
+ File containing PE RBAC token to authenticate to the Puppetserver API v4 for the from branch
89
99
  --facts-terminus STRING Facts terminus: one of yaml, facter
100
+ --puppet-master-token STRING PE RBAC token to authenticate to the Puppetserver API v4 globally
101
+ --to-puppet-master-token STRING
102
+ PE RBAC token to authenticate to the Puppetserver API v4 for the to branch
103
+ --from-puppet-master-token STRING
104
+ PE RBAC token to authenticate to the Puppetserver API v4 for the from branch
90
105
  --puppetdb-token TOKEN Token to access the PuppetDB API
91
106
  --puppetdb-token-file PATH Path containing token for PuppetDB API, relative or absolute
92
107
  --puppetdb-url URL PuppetDB base URL
@@ -110,11 +125,23 @@ Usage: octocatalog-diff [command line options]
110
125
  --to-puppet-master STRING Hostname or Hostname:PortNumber for Puppet Master for the to branch
111
126
  --from-puppet-master STRING Hostname or Hostname:PortNumber for Puppet Master for the from branch
112
127
  --puppet-master-api-version STRING
113
- Puppet Master API version (2 for Puppet 3.x, 3 for Puppet 4.x) globally
128
+ Puppet Master API version (2 for Puppet 3.x, 3 for Puppet 4.x, 4 for Puppet Server >= 6.3.0) globally
114
129
  --to-puppet-master-api-version STRING
115
- Puppet Master API version (2 for Puppet 3.x, 3 for Puppet 4.x) for the to branch
130
+ Puppet Master API version (2 for Puppet 3.x, 3 for Puppet 4.x, 4 for Puppet Server >= 6.3.0) for the to branch
116
131
  --from-puppet-master-api-version STRING
117
- Puppet Master API version (2 for Puppet 3.x, 3 for Puppet 4.x) for the from branch
132
+ Puppet Master API version (2 for Puppet 3.x, 3 for Puppet 4.x, 4 for Puppet Server >= 6.3.0) for the from branch
133
+ --[no-]puppet-master-update-catalog
134
+ Update catalog in PuppetDB when using Puppetmaster API version 4 globally
135
+ --[no-]to-puppet-master-update-catalog
136
+ Update catalog in PuppetDB when using Puppetmaster API version 4 for the to branch
137
+ --[no-]from-puppet-master-update-catalog
138
+ Update catalog in PuppetDB when using Puppetmaster API version 4 for the from branch
139
+ --[no-]puppet-master-update-facts
140
+ Update facts in PuppetDB when using Puppetmaster API version 4 globally
141
+ --[no-]to-puppet-master-update-facts
142
+ Update facts in PuppetDB when using Puppetmaster API version 4 for the to branch
143
+ --[no-]from-puppet-master-update-facts
144
+ Update facts in PuppetDB when using Puppetmaster API version 4 for the from branch
118
145
  --puppet-master-ssl-ca STRING
119
146
  Full path to CA certificate that signed the Puppet Master certificate globally
120
147
  --to-puppet-master-ssl-ca STRING
@@ -158,6 +185,8 @@ Usage: octocatalog-diff [command line options]
158
185
  --no-ignore-tags Disable ignoring based on tags
159
186
  --ignore-tags STRING1[,STRING2[,...]]
160
187
  Specify tags to ignore
188
+ --compare-file-text-ignore-tags STRING1[,STRING2[,...]]
189
+ Tags that exclude a file resource from text comparison
161
190
  --[no-]preserve-environments Enable or disable environment preservation
162
191
  --environment STRING Environment for catalog compilation globally
163
192
  --to-environment STRING Environment for catalog compilation for the to branch
@@ -347,6 +376,21 @@ what is most often desired. (<a href="../lib/octocatalog-diff/cli/options/compar
347
376
  </td>
348
377
  </tr>
349
378
 
379
+ <tr>
380
+ <td valign=top>
381
+ <pre><code>--compare-file-text-ignore-tags STRING1[,STRING2[,...]]</code></pre>
382
+ </td>
383
+ <td valign=top>
384
+ Tags that exclude a file resource from text comparison
385
+ </td>
386
+ <td valign=top>
387
+ When a file is specified with `source => 'puppet:///modules/something/foo.txt'`, remove
388
+ the 'source' attribute and populate the 'content' attribute with the text of the file.
389
+ This allows for a diff of the content, rather than a diff of the location, which is
390
+ what is most often desired. (<a href="../lib/octocatalog-diff/cli/options/compare_file_text.rb">compare_file_text.rb</a>)
391
+ </td>
392
+ </tr>
393
+
350
394
  <tr>
351
395
  <td valign=top>
352
396
  <pre><code>--create-symlinks STRING1[,STRING2[,...]]</code></pre>
@@ -718,7 +762,7 @@ Puppet control repo template, the value of this should be 'hieradata', which is
718
762
  <pre><code>--from-puppet-master-api-version STRING</code></pre>
719
763
  </td>
720
764
  <td valign=top>
721
- Puppet Master API version (2 for Puppet 3.x, 3 for Puppet 4.x) for the from branch
765
+ Puppet Master API version (2 for Puppet 3.x, 3 for Puppet 4.x, 4 for Puppet Server >= 6.3.0) for the from branch
722
766
  </td>
723
767
  <td valign=top>
724
768
  Specify the API version to use for the Puppet Master. This makes it possible to authenticate to a
@@ -780,6 +824,32 @@ This timeout is specified in seconds. (<a href="../lib/octocatalog-diff/cli/opti
780
824
  </td>
781
825
  </tr>
782
826
 
827
+ <tr>
828
+ <td valign=top>
829
+ <pre><code>--from-puppet-master-token STRING</code></pre>
830
+ </td>
831
+ <td valign=top>
832
+ PE RBAC token to authenticate to the Puppetserver API v4 for the from branch
833
+ </td>
834
+ <td valign=top>
835
+ Specify a PE RBAC token used to authenticate to Puppetserver for v4
836
+ catalog API calls. (<a href="../lib/octocatalog-diff/cli/options/puppet_master_token.rb">puppet_master_token.rb</a>)
837
+ </td>
838
+ </tr>
839
+
840
+ <tr>
841
+ <td valign=top>
842
+ <pre><code>--from-puppet-master-token-file STRING</code></pre>
843
+ </td>
844
+ <td valign=top>
845
+ File containing PE RBAC token to authenticate to the Puppetserver API v4 for the from branch
846
+ </td>
847
+ <td valign=top>
848
+ Specify a path to a file containing a PE RBAC token used to authenticate to the
849
+ Puppetserver for a v4 catalog API call. (<a href="../lib/octocatalog-diff/cli/options/puppet_master_token_file.rb">puppet_master_token_file.rb</a>)
850
+ </td>
851
+ </tr>
852
+
783
853
  <tr>
784
854
  <td valign=top>
785
855
  <pre><code>--from-puppetdb
@@ -856,14 +926,17 @@ Puppet control repo template, the value of this should be 'hieradata', which is
856
926
 
857
927
  <tr>
858
928
  <td valign=top>
859
- <pre><code>-n HOSTNAME
860
- --hostname HOSTNAME</code></pre>
929
+ <pre><code>-n HOSTNAME1[,HOSTNAME2[,...]]
930
+ --hostname HOSTNAME1[,HOSTNAME2[,...]]</code></pre>
861
931
  </td>
862
932
  <td valign=top>
863
- Use PuppetDB facts from last run of hostname
933
+ Use PuppetDB facts from last run of a hostname or a comma separated list of multiple hostnames
864
934
  </td>
865
935
  <td valign=top>
866
- Set hostname, which is used to look up facts in PuppetDB, and in the header of diff display. (<a href="../lib/octocatalog-diff/cli/options/hostname.rb">hostname.rb</a>)
936
+ Set hostname, which is used to look up facts in PuppetDB, and in the header of diff display.
937
+ This option can recieve a single hostname, or a comma separated list of
938
+ multiple hostnames, which are split into an Array. Multiple hostnames do not
939
+ work with the `catalog-only` or `bootstrap-then-exit` options. (<a href="../lib/octocatalog-diff/cli/options/hostname.rb">hostname.rb</a>)
867
940
  </td>
868
941
  </tr>
869
942
 
@@ -1235,7 +1308,7 @@ to work correctly. (<a href="../lib/octocatalog-diff/cli/options/preserve_enviro
1235
1308
  <pre><code>--puppet-master-api-version STRING</code></pre>
1236
1309
  </td>
1237
1310
  <td valign=top>
1238
- Puppet Master API version (2 for Puppet 3.x, 3 for Puppet 4.x) globally
1311
+ Puppet Master API version (2 for Puppet 3.x, 3 for Puppet 4.x, 4 for Puppet Server >= 6.3.0) globally
1239
1312
  </td>
1240
1313
  <td valign=top>
1241
1314
  Specify the API version to use for the Puppet Master. This makes it possible to authenticate to a
@@ -1297,6 +1370,32 @@ This timeout is specified in seconds. (<a href="../lib/octocatalog-diff/cli/opti
1297
1370
  </td>
1298
1371
  </tr>
1299
1372
 
1373
+ <tr>
1374
+ <td valign=top>
1375
+ <pre><code>--puppet-master-token STRING</code></pre>
1376
+ </td>
1377
+ <td valign=top>
1378
+ PE RBAC token to authenticate to the Puppetserver API v4 globally
1379
+ </td>
1380
+ <td valign=top>
1381
+ Specify a PE RBAC token used to authenticate to Puppetserver for v4
1382
+ catalog API calls. (<a href="../lib/octocatalog-diff/cli/options/puppet_master_token.rb">puppet_master_token.rb</a>)
1383
+ </td>
1384
+ </tr>
1385
+
1386
+ <tr>
1387
+ <td valign=top>
1388
+ <pre><code>--puppet-master-token-file STRING</code></pre>
1389
+ </td>
1390
+ <td valign=top>
1391
+ File containing PE RBAC token to authenticate to the Puppetserver API v4 globally
1392
+ </td>
1393
+ <td valign=top>
1394
+ Specify a path to a file containing a PE RBAC token used to authenticate to the
1395
+ Puppetserver for a v4 catalog API call. (<a href="../lib/octocatalog-diff/cli/options/puppet_master_token_file.rb">puppet_master_token_file.rb</a>)
1396
+ </td>
1397
+ </tr>
1398
+
1300
1399
  <tr>
1301
1400
  <td valign=top>
1302
1401
  <pre><code>--puppetdb-api-version N</code></pre>
@@ -1310,6 +1409,23 @@ the default. (<a href="../lib/octocatalog-diff/cli/options/puppetdb_api_version.
1310
1409
  </td>
1311
1410
  </tr>
1312
1411
 
1412
+ <tr>
1413
+ <td valign=top>
1414
+ <pre><code>--puppetdb-package-inventory
1415
+ --no-puppetdb-package-inventory </code></pre>
1416
+ </td>
1417
+ <td valign=top>
1418
+ Include Puppet Enterprise package inventory data, if found
1419
+ </td>
1420
+ <td valign=top>
1421
+ When pulling facts from PuppetDB in a Puppet Enterprise environment, also include
1422
+ the Puppet Enterprise Package Inventory data in the fact results, if available.
1423
+ Generally you should not need to specify this, but including the package inventory
1424
+ data will produce a more accurate set of input facts for environments using
1425
+ package inventory. (<a href="../lib/octocatalog-diff/cli/options/puppetdb_package_inventory.rb">puppetdb_package_inventory.rb</a>)
1426
+ </td>
1427
+ </tr>
1428
+
1313
1429
  <tr>
1314
1430
  <td valign=top>
1315
1431
  <pre><code>--puppetdb-ssl-ca FILENAME</code></pre>
@@ -1683,7 +1799,7 @@ Puppet control repo template, the value of this should be 'hieradata', which is
1683
1799
  <pre><code>--to-puppet-master-api-version STRING</code></pre>
1684
1800
  </td>
1685
1801
  <td valign=top>
1686
- Puppet Master API version (2 for Puppet 3.x, 3 for Puppet 4.x) for the to branch
1802
+ Puppet Master API version (2 for Puppet 3.x, 3 for Puppet 4.x, 4 for Puppet Server >= 6.3.0) for the to branch
1687
1803
  </td>
1688
1804
  <td valign=top>
1689
1805
  Specify the API version to use for the Puppet Master. This makes it possible to authenticate to a
@@ -1745,6 +1861,32 @@ This timeout is specified in seconds. (<a href="../lib/octocatalog-diff/cli/opti
1745
1861
  </td>
1746
1862
  </tr>
1747
1863
 
1864
+ <tr>
1865
+ <td valign=top>
1866
+ <pre><code>--to-puppet-master-token STRING</code></pre>
1867
+ </td>
1868
+ <td valign=top>
1869
+ PE RBAC token to authenticate to the Puppetserver API v4 for the to branch
1870
+ </td>
1871
+ <td valign=top>
1872
+ Specify a PE RBAC token used to authenticate to Puppetserver for v4
1873
+ catalog API calls. (<a href="../lib/octocatalog-diff/cli/options/puppet_master_token.rb">puppet_master_token.rb</a>)
1874
+ </td>
1875
+ </tr>
1876
+
1877
+ <tr>
1878
+ <td valign=top>
1879
+ <pre><code>--to-puppet-master-token-file STRING</code></pre>
1880
+ </td>
1881
+ <td valign=top>
1882
+ File containing PE RBAC token to authenticate to the Puppetserver API v4 for the to branch
1883
+ </td>
1884
+ <td valign=top>
1885
+ Specify a path to a file containing a PE RBAC token used to authenticate to the
1886
+ Puppetserver for a v4 catalog API call. (<a href="../lib/octocatalog-diff/cli/options/puppet_master_token_file.rb">puppet_master_token_file.rb</a>)
1887
+ </td>
1888
+ </tr>
1889
+
1748
1890
  <tr>
1749
1891
  <td valign=top>
1750
1892
  <pre><code>--to-save-catalog STRING</code></pre>
@@ -1772,6 +1914,19 @@ has no effect when `--display-detail-add` is not used. (<a href="../lib/octocata
1772
1914
  </td>
1773
1915
  </tr>
1774
1916
 
1917
+ <tr>
1918
+ <td valign=top>
1919
+ <pre><code>--use-lcs
1920
+ --no-use-lcs </code></pre>
1921
+ </td>
1922
+ <td valign=top>
1923
+ Use the LCS algorithm to determine differences in arrays
1924
+ </td>
1925
+ <td valign=top>
1926
+ Configures using the Longest common subsequence (LCS) algorithm to determine differences in arrays (<a href="../lib/octocatalog-diff/cli/options/use_lcs.rb">use_lcs.rb</a>)
1927
+ </td>
1928
+ </tr>
1929
+
1775
1930
  <tr>
1776
1931
  <td valign=top>
1777
1932
  <pre><code>--validate-references