32 lines
850 B
Python
32 lines
850 B
Python
import yaml
|
|
import logging
|
|
|
|
|
|
def _yaml_constructor(loader, node):
|
|
return node.value
|
|
|
|
|
|
class Util(object):
|
|
def __init__(self, cfg):
|
|
self.cfg = cfg
|
|
yaml.SafeLoader.add_constructor("tag:yaml.org,2002:python/unicode", _yaml_constructor)
|
|
|
|
|
|
def load_yaml(data):
|
|
generator = yaml.safe_load_all(data)
|
|
data_list = list(generator)
|
|
return data_list
|
|
|
|
|
|
def verify_integrity(new_data, schema):
|
|
logger = logging.getLogger('util.verify_integrity')
|
|
try:
|
|
# Verify that updated fields exist
|
|
schema_keys = schema['properties'].keys()
|
|
for prop in new_data.keys():
|
|
if prop not in schema_keys:
|
|
raise Exception('{} is not a valid field'.format(prop))
|
|
except Exception as e:
|
|
logger.error(e)
|
|
raise e
|