abide_dev_utils 0.5.0 → 0.5.2
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.
- checksums.yaml +4 -4
- data/README.md +30 -0
- data/abide_dev_utils.gemspec +1 -0
- data/lib/abide_dev_utils/cli/comply.rb +1 -1
- data/lib/abide_dev_utils/version.rb +1 -1
- data/lib/abide_dev_utils/xccdf/cis/hiera.rb +10 -8
- metadata +17 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '03743386fed00b094d759cb20a53d25d807492fd98097564d140aa0cacfecce0'
|
|
4
|
+
data.tar.gz: be8082a88120f30f2754f79194a818c7640fd5f104c0c57dc07cd84d8bbc460f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1bcd5add724cc85cc95915d778a6320de028b351ea19920b712efe228a4e01efdb36bb2840f5b566f5cf8a3d9ebe90236138fdd0bc0d83e90fbe1f4a0cf67763
|
|
7
|
+
data.tar.gz: 91f71049317153abafaa32fd9bacdfbfa26b1ba2145ddd902238f6cbc8e31417540eee0812b67ecdb5b5b0c500f1b0ce02ee43b028c37ffb3d87753c75e1729e
|
data/README.md
CHANGED
|
@@ -88,6 +88,8 @@ Install the gem:
|
|
|
88
88
|
|
|
89
89
|
### Overview of Commands
|
|
90
90
|
|
|
91
|
+
* `abide comply` - Command namespace for Puppet Comply commands
|
|
92
|
+
* `abide comply report` - Creates a scan report in YAML format by scraping Puppet Comply
|
|
91
93
|
* `abide jira` - Command namespace for Jira commands
|
|
92
94
|
* `abide jira auth` - Authenticate with Jira. Only useful as a stand-alone command to test authentication
|
|
93
95
|
* `abide jira from_coverage` - Creates a parent issue with subtasks from a Puppet coverage report
|
|
@@ -100,6 +102,34 @@ Install the gem:
|
|
|
100
102
|
* `abide xccdf` - Command namespace for XCCDF commands
|
|
101
103
|
* `abide xccdf to_hiera` - Converts a benchmark XCCDF file to a Hiera yaml file
|
|
102
104
|
|
|
105
|
+
### Comply Command Reference
|
|
106
|
+
|
|
107
|
+
#### report
|
|
108
|
+
|
|
109
|
+
* Required positional parameters:
|
|
110
|
+
* `COMPLY_URL` - The URL of Puppet Comply
|
|
111
|
+
* `COMPLY_PASSWORD` - The password for the Puppet Comply user
|
|
112
|
+
* Options:
|
|
113
|
+
* `--out-file`, `-o` - The path to save the scan report. Defaults to `./comply_scan_report.yaml`
|
|
114
|
+
* `--username`, `-u` - The Puppet Comply username. Defaults to `comply`
|
|
115
|
+
* `--status`, `-s` - A comma-separated list of check statuses to ONLY include in the report. Valid statuses are: `pass`, `fail`, `error`, `notapplicable`, `notchecked`, `unknown`, `informational`
|
|
116
|
+
* `--only`, `-O` - A comma-separated list of node certnames to ONLY build reports for. No other nodes will have reports built for them except the ones specified. This option is mutually exclusive with `--ignore` and, if both are set, this options will take precedence over `--ignore`.
|
|
117
|
+
* `--ignore`, `-I` - A comma-separated list of node certnames to ignore building reports for. This options is mutually exclusive with `--only` and, if both are set, `--only` will take precedence over this option.
|
|
118
|
+
|
|
119
|
+
Examples:
|
|
120
|
+
|
|
121
|
+
Generating a report of all failed and err'd scan checks
|
|
122
|
+
|
|
123
|
+
```sh
|
|
124
|
+
abide comply report https://comply.my.instance 'my_comply_password!' -s fail,error
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Generating a report for certain nodes only
|
|
128
|
+
|
|
129
|
+
```sh
|
|
130
|
+
abide comply report https://comply.my.instance 'my_comply_password!' -O specific-node.my.instance
|
|
131
|
+
```
|
|
132
|
+
|
|
103
133
|
### Jira Command Reference
|
|
104
134
|
|
|
105
135
|
#### from_coverage
|
data/abide_dev_utils.gemspec
CHANGED
|
@@ -45,6 +45,7 @@ Gem::Specification.new do |spec|
|
|
|
45
45
|
spec.add_development_dependency 'console'
|
|
46
46
|
spec.add_development_dependency 'github_changelog_generator'
|
|
47
47
|
spec.add_development_dependency 'gem-release'
|
|
48
|
+
spec.add_development_dependency 'pry'
|
|
48
49
|
spec.add_development_dependency 'rspec', '~> 3.10'
|
|
49
50
|
spec.add_development_dependency 'rubocop', '~> 1.8'
|
|
50
51
|
spec.add_development_dependency 'rubocop-rspec', '~> 2.1'
|
|
@@ -80,7 +80,7 @@ module Abide
|
|
|
80
80
|
comply_url = conf.fetch(:url) if comply_url.nil?
|
|
81
81
|
comply_password = comply_password.nil? ? conf.fetch(:password, Abide::CLI::PROMPT.password) : comply_password
|
|
82
82
|
username = @data.fetch(:username, nil).nil? ? conf.fetch(:username, 'comply') : @data[:username]
|
|
83
|
-
status = @data.fetch(:status, nil).nil? ? conf.
|
|
83
|
+
status = @data.fetch(:status, nil).nil? ? conf.fetch(:status, nil) : @data[:status]
|
|
84
84
|
ignorelist = @data.fetch(:ignore, nil).nil? ? conf.fetch(:ignore, nil) : @data[:ignore]
|
|
85
85
|
onlylist = @data.fetch(:only, nil).nil? ? conf.fetch(:only, nil) : @data[:only]
|
|
86
86
|
report = AbideDevUtils::Comply.scan_report(comply_url,
|
|
@@ -41,7 +41,7 @@ module AbideDevUtils
|
|
|
41
41
|
@version = xpath(XPATHS[:benchmark][:version]).children.to_s
|
|
42
42
|
@profiles = xpath(XPATHS[:profiles][:all])
|
|
43
43
|
@parent_key = make_parent_key(@doc, parent_key_prefix)
|
|
44
|
-
@hash = make_hash(@doc,
|
|
44
|
+
@hash = make_hash(@doc, num)
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
def yaml_title
|
|
@@ -63,8 +63,8 @@ module AbideDevUtils
|
|
|
63
63
|
# Convert the Hiera object to YAML string
|
|
64
64
|
# @return [String] YAML-formatted string
|
|
65
65
|
def to_yaml
|
|
66
|
-
yh = @hash
|
|
67
|
-
|
|
66
|
+
yh = @hash.transform_keys do |k|
|
|
67
|
+
[@parent_key, k].join('::').strip
|
|
68
68
|
end
|
|
69
69
|
yh.to_yaml
|
|
70
70
|
end
|
|
@@ -101,15 +101,15 @@ module AbideDevUtils
|
|
|
101
101
|
Nokogiri.XML(File.open(xccdf_file))
|
|
102
102
|
end
|
|
103
103
|
|
|
104
|
-
def make_hash(doc,
|
|
105
|
-
hash = {
|
|
104
|
+
def make_hash(doc, num)
|
|
105
|
+
hash = { 'title' => @title, 'version' => @version }
|
|
106
106
|
profiles = doc.xpath('xccdf:Benchmark/xccdf:Profile')
|
|
107
107
|
profiles.each do |p|
|
|
108
108
|
title = normalize_profile_name(p.xpath('./xccdf:title').children.to_s)
|
|
109
|
-
hash[
|
|
109
|
+
hash[title.to_s] = []
|
|
110
110
|
selects = p.xpath('./xccdf:select')
|
|
111
111
|
selects.each do |s|
|
|
112
|
-
hash[
|
|
112
|
+
hash[title.to_s] << normalize_ctrl_name(s['idref'].to_s, num)
|
|
113
113
|
end
|
|
114
114
|
end
|
|
115
115
|
hash
|
|
@@ -120,14 +120,16 @@ module AbideDevUtils
|
|
|
120
120
|
nstr.gsub!(/[^a-z0-9]$/, '')
|
|
121
121
|
nstr.gsub!(/^[^a-z]/, '')
|
|
122
122
|
nstr.gsub!(/^(l1_|l2_|ng_)/, '')
|
|
123
|
-
nstr.delete!('(
|
|
123
|
+
nstr.delete!('(/|\\|\+)')
|
|
124
124
|
nstr.gsub!(UNDERSCORED, '_')
|
|
125
|
+
nstr.strip!
|
|
125
126
|
nstr
|
|
126
127
|
end
|
|
127
128
|
|
|
128
129
|
def normalize_profile_name(prof)
|
|
129
130
|
prof_name = normalize_str("profile_#{prof}")
|
|
130
131
|
prof_name.gsub!(NEXT_GEN_WINDOWS, 'ngws')
|
|
132
|
+
prof_name.strip!
|
|
131
133
|
prof_name
|
|
132
134
|
end
|
|
133
135
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: abide_dev_utils
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.5.
|
|
4
|
+
version: 0.5.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Heston Snodgrass
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-09-10 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: nokogiri
|
|
@@ -164,6 +164,20 @@ dependencies:
|
|
|
164
164
|
- - ">="
|
|
165
165
|
- !ruby/object:Gem::Version
|
|
166
166
|
version: '0'
|
|
167
|
+
- !ruby/object:Gem::Dependency
|
|
168
|
+
name: pry
|
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
|
170
|
+
requirements:
|
|
171
|
+
- - ">="
|
|
172
|
+
- !ruby/object:Gem::Version
|
|
173
|
+
version: '0'
|
|
174
|
+
type: :development
|
|
175
|
+
prerelease: false
|
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
177
|
+
requirements:
|
|
178
|
+
- - ">="
|
|
179
|
+
- !ruby/object:Gem::Version
|
|
180
|
+
version: '0'
|
|
167
181
|
- !ruby/object:Gem::Dependency
|
|
168
182
|
name: rspec
|
|
169
183
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -339,7 +353,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
339
353
|
- !ruby/object:Gem::Version
|
|
340
354
|
version: '0'
|
|
341
355
|
requirements: []
|
|
342
|
-
rubygems_version: 3.
|
|
356
|
+
rubygems_version: 3.1.4
|
|
343
357
|
signing_key:
|
|
344
358
|
specification_version: 4
|
|
345
359
|
summary: Helper utilities for developing Abide
|