summaryrefslogtreecommitdiffstats
path: root/adapter/acumos/aoconversion/utils.py
diff options
context:
space:
mode:
authorAndrew Gauld <agauld@att.com>2020-07-28 16:41:43 +0000
committerAndrew Gauld <agauld@att.com>2020-07-28 16:43:02 +0000
commit711d4eae913f34e78aa10e8cd511f3b8e43cd54f (patch)
treee0bf966addd527a3dd9812c6ed54e2ca0a97a10a /adapter/acumos/aoconversion/utils.py
parenta1a37bde3365ebf0aaa543b2f10ebdb13bd4af40 (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.py26
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())