inspec/lib/plugins/inspec-parallel/README.md

28 lines
857 B
Markdown
Raw Normal View History

CFINSPEC-120 `inspec parallel` feature (#5975) * Initial commit - Inspec parallel setup Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Added dry run option functionality and renamed subcommand Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Runner logic parsing options file and executing cmds Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Validation logic changes for dry run and run commands Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Validator bug fix when using options like --sudo with no value Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * initial commit for using default options Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Logic to not parse empty lines and comments and some cleanup Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Functional test cases added Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Test cases fix and bug fix in validator Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Add logic to append default options passed from cli Signed-off-by: Sonu Saha <sonu.saha@progress.com> * Add test for default options and extend options-file-1.txt Signed-off-by: Sonu Saha <sonu.saha@progress.com> * Add comments in options-file-2 and 3 Signed-off-by: Sonu Saha <sonu.saha@progress.com> * Bug fix and some refactoring Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Changes from pair programming Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com> * Fixed incorrect line no used in dry run validation & added verbose option Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Initial code with parallel gem setup Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Error handling and some changes in parallel running result Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Working spawn and fork implementation; no pipes or error handling Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com> * CFINSPEC-143 Child status reporter plugin Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com> * Read status from children using pipes; Windows implementation is likely broken Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com> * Linting Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com> * Removed parallel gem and it's code usage Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Erb templating and option file as shell/powershell option added Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Added missing raise error in content reading logic Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Adding for the sake of keeping bash file syntax correct Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Switch to select() polling, enabling Windows support; also add a terrible hack to the child-status reporter Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com> * Move child-status reporter into inspec-parallel plugin to reduce pollution Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com> * Rename a bunch of things, remove some instance variables, always validate, and use Inspec::UI exit codes Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com> * Rework validation to be Thor-based; add logic to inject child-status reporter Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com> * Linting Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com> * Refactor parent UI to make it object oriented Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com> * Add a prototype 'status' super-reporter Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com> * Improve status UI edge cases, add info to output, make default Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com> * Error handling added when running bash instead of system check Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Daemon run for background process in unix system for parallel runs Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Added logic to cleanup daemon process' Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Review changes for background command name and windows handling Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Error raised with error handling class for options file Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Fix to not intialise ui when background run is opted Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * typo fix in child reporter append logic in validator Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Changes to trap control c and exit gracefully Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Moved ctl c handling code to command class Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Linter fixes Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Error and runner logging added Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * ERB pid option to use child process id for generating result output Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Renamed 38125 to Process.pid for clear notation Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Log path option added for inspec parallel Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Adjust ERB eval Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com> * STDERR logging added Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Fix of --bg with ui Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Deleting log files if empty and status super reporter to show done Signed-off-by: Nikita Mathur <nikita.mathur@chef.io> * Docs for InSpec Parallel Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com> * Doc Review Signed-off-by: Deepa Kumaraswamy <dkumaras@progress.com> * Grammar corrections Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com> Co-authored-by: Sonu Saha <sonu.saha@progress.com> Co-authored-by: Clinton Wolfe <clintoncwolfe@gmail.com> Co-authored-by: Deepa Kumaraswamy <dkumaras@progress.com>
2022-06-13 17:58:41 +00:00
# Parallel Plugin
Plugin to handle parallel InSpec scan operations over multiple targets.
## parallel cli_command
Implements the `inspec parallel exec` CLI command.
## child-status Plugin
This reporter is an InSpec Streaming Reporter. It is used internally by inspec parallel to provide status updates on child processes.
### What This Plugin Does
For each control executed, after it is complete, the plugin emits a line to STDOUT like:
```
12/P/24/Control Title Here
```
When the run is complete, the single line 'EOF_MARKER' is emitted.
Where:
- 12 is the number of the control (12th seen out of all controls in all profiles)
- P indicates that it Passed (Also F = Failed, S = Skipped, E = Errored)
- 24 is the total number of controls in the run
- "Control Title Here" is the title (or if title is missing, id) of the last executed control