X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=n2vc%2Futils.py;h=0dbd71ef1d7c8db567f56e5fbd633abbcf414537;hp=16a47332cf284cba606dc27b5af3e281d902e15a;hb=82b591ceed704c798ead2d9104085a08e75b511b;hpb=475a7221e3598ad1c75ce802c5ad74ef7ecf72f1 diff --git a/n2vc/utils.py b/n2vc/utils.py index 16a4733..0dbd71e 100644 --- a/n2vc/utils.py +++ b/n2vc/utils.py @@ -15,6 +15,7 @@ import base64 import re import binascii +import yaml from enum import Enum from juju.machine import Machine from juju.application import Application @@ -32,7 +33,11 @@ def base64_to_cacert(b64string): try: cacert = base64.b64decode(b64string).decode("utf-8") - cacert = re.sub(r"\\n", r"\n", cacert,) + cacert = re.sub( + r"\\n", + r"\n", + cacert, + ) except binascii.Error as e: raise N2VCInvalidCertificate(message="Invalid CA Certificate: {}".format(e)) @@ -113,10 +118,32 @@ JujuStatusToOSM = { }, } -DB_DATA = Dict( - { - "api_endpoints": Dict( - {"table": "admin", "filter": {"_id": "juju"}, "key": "api_endpoints"} - ) - } -) + +def obj_to_yaml(obj: object) -> str: + """ + Converts object to yaml format + :return: yaml data + """ + # dump to yaml + dump_text = yaml.dump(obj, default_flow_style=False, indent=2) + # split lines + lines = dump_text.splitlines() + # remove !!python/object tags + yaml_text = "" + for line in lines: + index = line.find("!!python/object") + if index >= 0: + line = line[:index] + yaml_text += line + "\n" + return yaml_text + + +def obj_to_dict(obj: object) -> dict: + """ + Converts object to dictionary format + :return: dict data + """ + # convert obj to yaml + yaml_text = obj_to_yaml(obj) + # parse to dict + return yaml.load(yaml_text, Loader=yaml.Loader)