|
1
|
|
|
# Copyright 2022, Red Hat, Inc. |
|
2
|
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later |
|
3
|
|
|
|
|
4
|
1 |
|
from ..data_structures import OvalVariable |
|
5
|
1 |
|
from .oval_endpoint_information_parser import OVALEndpointInformation |
|
6
|
1 |
|
from .shared_static_methods_of_parser import SharedStaticMethodsOfParser |
|
7
|
|
|
|
|
8
|
|
|
|
|
9
|
1 |
|
class OVALVariableParser(OVALEndpointInformation): |
|
10
|
1 |
|
def __init__(self, variables, oval_var_id_to_value_id, ref_values): |
|
11
|
1 |
|
self.oval_var_id_to_value_id = oval_var_id_to_value_id |
|
12
|
1 |
|
self.ref_values = ref_values |
|
13
|
1 |
|
self.variables = variables |
|
14
|
|
|
|
|
15
|
1 |
|
def get_variable(self, variable_id): |
|
16
|
1 |
|
xml_variable = self.variables[variable_id] |
|
17
|
1 |
|
variable_dict = { |
|
18
|
|
|
"variable_id": xml_variable.attrib.get("id"), |
|
19
|
|
|
"comment": xml_variable.attrib.get("comment", ""), |
|
20
|
|
|
"variable_type": SharedStaticMethodsOfParser.get_key_of_xml_element(xml_variable), |
|
21
|
|
|
"variable_data": self._get_items(xml_variable), |
|
22
|
|
|
} |
|
23
|
|
|
|
|
24
|
1 |
|
if variable_dict["variable_type"] == "external_variable": |
|
25
|
1 |
|
variable_dict["variable_data"] = { |
|
26
|
|
|
"external_variable": { |
|
27
|
|
|
"value": self.ref_values.get( |
|
28
|
|
|
self.oval_var_id_to_value_id.get(variable_id, ""), |
|
29
|
|
|
"not found" |
|
30
|
|
|
) |
|
31
|
|
|
} |
|
32
|
|
|
} |
|
33
|
|
|
return OvalVariable(**variable_dict) |
|
34
|
|
|
|