summaryrefslogtreecommitdiffstats
path: root/scripts/automation/trex_control_plane/client_utils/yaml_utils.py
diff options
context:
space:
mode:
authorDan Klein <danklein10@gmail.com>2015-10-18 10:24:53 +0300
committerDan Klein <danklein10@gmail.com>2015-10-18 10:24:53 +0300
commit4a8d34c7548e85e97426bc1d85c670003b1f5870 (patch)
tree47bf2a6af656ac7b0e11ce19bc234a4bab4d80bb /scripts/automation/trex_control_plane/client_utils/yaml_utils.py
parent2c38ad7f49fbddfdc75c150cbb2abdd54e3ede52 (diff)
more yaml utils, better streams handling
Diffstat (limited to 'scripts/automation/trex_control_plane/client_utils/yaml_utils.py')
-rwxr-xr-xscripts/automation/trex_control_plane/client_utils/yaml_utils.py115
1 files changed, 8 insertions, 107 deletions
diff --git a/scripts/automation/trex_control_plane/client_utils/yaml_utils.py b/scripts/automation/trex_control_plane/client_utils/yaml_utils.py
index 3ec3c9c8..0d808880 100755
--- a/scripts/automation/trex_control_plane/client_utils/yaml_utils.py
+++ b/scripts/automation/trex_control_plane/client_utils/yaml_utils.py
@@ -30,14 +30,6 @@ class CTRexYAMLLoader(object):
self.yaml_path = yaml_ref_file_path
self.ref_obj = None
- def load_reference(self):
- try:
- self.ref_obj = yaml.load(file(self.yaml_path, 'r'))
- except yaml.YAMLError as e:
- raise
- except Exception as e:
- raise
-
def check_term_param_type(self, val, val_field, ref_val, multiplier):
print val, val_field, ref_val
tmp_type = ref_val.get('type')
@@ -85,7 +77,7 @@ class CTRexYAMLLoader(object):
if isinstance(evaluated_obj, dict) and evaluated_obj.keys() == [root_obj]:
evaluated_obj = evaluated_obj.get(root_obj)
if not self.ref_obj:
- self.load_reference()
+ self.ref_obj = load_yaml_to_obj(self.yaml_path) # load reference object to class attribute.
ref_item = self.ref_obj.get(root_obj)
if ref_item is not None:
try:
@@ -151,104 +143,13 @@ class CTRexYAMLLoader(object):
return val
-
-
-
-
-#
-# def yaml_obj_validator(evaluated_obj, yaml_reference_file_path, root_obj, fill_defaults=True):
-# """
-# validate SINGLE ROOT object with yaml reference file.
-# Fills up default values if hasn't been assigned by user and available.
-#
-# :param evaluated_obj: python object that should match the yaml reference file
-# :param yaml_reference_file_path:
-# :param fill_defaults:
-# :return: a python representation object of the YAML file if OK
-# """
-# type_dict = {"double":float,
-# "int":int,
-# "array":list,
-# "string":str,
-# "boolean":bool}
-#
-# def validator_rec_helper(obj_to_eval, ref_obj, root_key):
-# ref_item = ref_obj.get(root_key)
-# if ref_item is not None:
-# if "type" in obj_to_eval:
-# ref_item = ref_item[obj_to_eval.get("type")]
-# if isinstance(ref_item, dict) and "type" not in ref_item: # this is not a terminal
-# result_obj = {}
-# # iterate over key-value pairs
-# for k, v in ref_item.items():
-# if k in obj_to_eval:
-# # need to validate with ref obj
-# tmp_type = v.get('type')
-# if tmp_type == "object":
-# # go deeper into nesting hierarchy
-# result_obj[k] = validator_rec_helper(obj_to_eval.get(k), ref_obj, k)
-# elif isinstance(tmp_type, list):
-# # item can be one of multiple types
-# python_types = set()
-# for t in tmp_type:
-# if t in type_dict:
-# python_types.add(type_dict.get(t))
-# else:
-# raise TypeError("Unknown resolving for type {0}".format(t))
-# if type(obj_to_eval[k]) not in python_types:
-# raise TypeError("Type of object field '{0}' is not allowed".format(k))
-#
-# else:
-# # this is a single type field
-# python_type = type_dict.get(tmp_type)
-# if not isinstance(obj_to_eval[k], python_type):
-# raise TypeError("Type of object field '{0}' is not allowed".format(k))
-# else:
-# # WE'RE OK!
-# result_obj[k] = obj_to_eval[k]
-# else:
-# # this is an object field that wasn't specified by the user
-# if v.get('has_default'):
-# # WE'RE OK!
-# result_obj[k] = v.get('default')
-# else:
-# # This is a mandatory field!
-# raise ValueError("The {0} field is mandatory and must be specified explicitly".format(v))
-# return result_obj
-#
-# elif isinstance(ref_item, list):
-# return []
-# else:
-#
-#
-#
-# else:
-# raise KeyError("The given key is not ")
-#
-#
-#
-#
-# pass
-# pass
-# elif isinstance(obj_to_eval, list):
-# # iterate as list sequence
-# pass
-# else:
-# # evaluate as single item
-# pass
-# pass
-#
-# try:
-# yaml_ref = yaml.load(file(yaml_reference_file_path, 'r'))
-# result = validator_rec_helper(evaluated_obj, yaml_ref, root_obj)
-#
-# except yaml.YAMLError as e:
-# raise
-# except Exception:
-# raise
-
-def yaml_loader(file_path):
- pass
+def load_yaml_to_obj(file_path):
+ try:
+ return yaml.load(file(file_path, 'r'))
+ except yaml.YAMLError as e:
+ raise
+ except Exception as e:
+ raise
def yaml_exporter(file_path):
pass