diff options
author | Andrew Gauld <agauld@att.com> | 2020-07-28 16:41:43 +0000 |
---|---|---|
committer | Andrew Gauld <agauld@att.com> | 2020-07-28 16:43:02 +0000 |
commit | 711d4eae913f34e78aa10e8cd511f3b8e43cd54f (patch) | |
tree | e0bf966addd527a3dd9812c6ed54e2ca0a97a10a /adapter/acumos/aoconversion/utils.py | |
parent | a1a37bde3365ebf0aaa543b2f10ebdb13bd4af40 (diff) |
Pull JSON schemas at build/test not run time
Change-Id: I4f095a8a80f1c2868319c58bb0e9db916044d067
Issue-ID: DCAEGEN2-2221
Signed-off-by: Andrew Gauld <agauld@att.com>
Diffstat (limited to 'adapter/acumos/aoconversion/utils.py')
-rw-r--r-- | adapter/acumos/aoconversion/utils.py | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/adapter/acumos/aoconversion/utils.py b/adapter/acumos/aoconversion/utils.py index a5aae75..7403505 100644 --- a/adapter/acumos/aoconversion/utils.py +++ b/adapter/acumos/aoconversion/utils.py @@ -1,7 +1,7 @@ # ============LICENSE_START==================================================== # org.onap.dcae # ============================================================================= -# Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. +# Copyright (c) 2019-2020 AT&T Intellectual Property. All rights reserved. # ============================================================================= # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -19,6 +19,30 @@ import json +class FetchSchemaError(RuntimeError): + pass + + +class _Schema: + def __init__(self, path): + self.ret = None + self.path = path + + def get(self): + try: + if self.ret is None: + with open(self.path, 'r') as f: + self.ret = json.loads(f.read()) + return self.ret + except Exception as e: + raise FetchSchemaError("Unexpected error from fetching schema", e) + + +schema_schema = _Schema('schemas/schema.json') +component_schema = _Schema('schemas/compspec.json') +dataformat_schema = _Schema('schemas/dataformat.json') + + def get_metadata(model_repo_path, model_name): # for now, assume it's called "metadata.json" return json.loads(open("{0}/{1}/metadata.json".format(model_repo_path, model_name), "r").read()) |