| Total Complexity | 5 |
| Total Lines | 28 |
| Duplicated Lines | 0 % |
| Coverage | 33.33% |
| Changes | 0 | ||
| 1 | 2 | from __future__ import absolute_import |
|
| 2 | 2 | from __future__ import print_function |
|
| 3 | |||
| 4 | 2 | import sys |
|
| 5 | |||
| 6 | 2 | from .xml import ElementTree as ET |
|
| 7 | 2 | from .constants import XCCDF11_NS |
|
| 8 | |||
| 9 | |||
| 10 | 2 | def map_versions_to_rule_ids(reference_file_name): |
|
| 11 | try: |
||
| 12 | reference_root = ET.parse(reference_file_name) |
||
| 13 | except IOError: |
||
| 14 | print( |
||
| 15 | "INFO: DISA STIG Reference file not found for this platform: %s" % |
||
| 16 | reference_file_name) |
||
| 17 | sys.exit(0) |
||
| 18 | |||
| 19 | reference_rules = reference_root.findall('.//{%s}Rule' % XCCDF11_NS) |
||
| 20 | |||
| 21 | dictionary = {} |
||
| 22 | |||
| 23 | for rule in reference_rules: |
||
| 24 | version = rule.find('.//{%s}version' % XCCDF11_NS) |
||
| 25 | if version is not None and version.text: |
||
| 26 | dictionary[version.text] = rule.get('id') |
||
| 27 | return dictionary |
||
| 28 |