Migrate function docs_by_service_category
This commit is contained in:
parent
e87a2c2b57
commit
f18cf1ee35
@ -30,12 +30,16 @@ def read_data(filename):
|
||||
data.setdefault("documents", list())
|
||||
data.setdefault("services", list())
|
||||
data.setdefault("service_categories", list())
|
||||
data.setdefault("repositories", list())
|
||||
for item in pathlib.Path(DATA_DIR, "documents").glob("*.yaml"):
|
||||
with open(item, "r") as fp:
|
||||
data["documents"].append(yaml.safe_load(fp))
|
||||
for item in pathlib.Path(DATA_DIR, "services").glob("*.yaml"):
|
||||
with open(item, "r") as fp:
|
||||
data["services"].append(yaml.safe_load(fp))
|
||||
for item in pathlib.Path(DATA_DIR, "repositories").glob("*.yaml"):
|
||||
with open(item, "r") as fp:
|
||||
data["repositories"].append(yaml.safe_load(fp))
|
||||
for item in pathlib.Path(DATA_DIR, "service_categories").glob(
|
||||
"*.yaml"
|
||||
):
|
||||
|
@ -20,3 +20,4 @@
|
||||
documents: []
|
||||
service_categories: []
|
||||
services: []
|
||||
repositories: []
|
||||
|
@ -13,6 +13,7 @@
|
||||
|
||||
import copy
|
||||
import warnings
|
||||
import json
|
||||
|
||||
import otc_metadata.data
|
||||
|
||||
@ -48,6 +49,11 @@ class Services(object):
|
||||
self._service_data["services"],
|
||||
key=lambda x: f"{x.get('service_type')}{x.get('service_title')}",
|
||||
)
|
||||
# sort repositories by <service_type>
|
||||
self._service_data["repositories"] = sorted(
|
||||
self._service_data["repositories"],
|
||||
key=lambda x: f"{x.get('service_type')}",
|
||||
)
|
||||
# sort service categories by <name>_<title>
|
||||
self._service_data["service_categories"] = sorted(
|
||||
self._service_data["service_categories"],
|
||||
@ -71,6 +77,11 @@ class Services(object):
|
||||
"Service Docs data listing."
|
||||
return copy.deepcopy(self._service_data["documents"])
|
||||
|
||||
@property
|
||||
def all_repositories(self):
|
||||
"Service Repositories data listing."
|
||||
return copy.deepcopy(self._service_data["repositories"])
|
||||
|
||||
@property
|
||||
def service_dict(self):
|
||||
"Service Docs data listing."
|
||||
@ -178,10 +189,10 @@ class Services(object):
|
||||
return res
|
||||
|
||||
def docs_by_service_category(self, category, environment=None):
|
||||
"""List services matching category
|
||||
"""List docs matching category
|
||||
|
||||
:param str category: Category name
|
||||
:param str env: Optional service environment. Influeces "repository"
|
||||
:param str environment: Optional service environment. Influeces "repository"
|
||||
field
|
||||
"""
|
||||
res = []
|
||||
@ -193,13 +204,21 @@ class Services(object):
|
||||
warnings.warn("No Service defition of type %s" % (cat))
|
||||
continue
|
||||
if service["service_category"] == category:
|
||||
res_doc = copy.deepcopy(doc)
|
||||
res_doc.update(**service)
|
||||
if environment:
|
||||
for srv_env in service["repositories"]:
|
||||
if srv_env.get("environment") == environment:
|
||||
res_doc["repository"] = srv_env["repo"]
|
||||
res.append(res_doc)
|
||||
for repositories in self.all_repositories:
|
||||
if repositories["service_type"] == service["service_type"]:
|
||||
res_doc = copy.deepcopy(doc)
|
||||
res_doc["repositories"] = repositories["repositories"]
|
||||
res_doc.update(**service)
|
||||
|
||||
# Get the cloud environments from the document instead of service
|
||||
res_doc["cloud_environments"] = doc["cloud_environments"]
|
||||
if environment:
|
||||
repo_env_filter = []
|
||||
for repo in repositories["repositories"]:
|
||||
if repo["environment"] == environment:
|
||||
repo_env_filter.append(repo)
|
||||
res_doc["repositories"] = repo_env_filter
|
||||
res.append(res_doc)
|
||||
return res
|
||||
|
||||
def docs_by_service_type(self, service_type):
|
||||
|
Loading…
x
Reference in New Issue
Block a user