aboutsummaryrefslogtreecommitdiffstats
path: root/moon_orchestrator/moon_orchestrator
diff options
context:
space:
mode:
Diffstat (limited to 'moon_orchestrator/moon_orchestrator')
-rw-r--r--moon_orchestrator/moon_orchestrator/api/pods.py55
-rw-r--r--moon_orchestrator/moon_orchestrator/drivers.py4
2 files changed, 34 insertions, 25 deletions
diff --git a/moon_orchestrator/moon_orchestrator/api/pods.py b/moon_orchestrator/moon_orchestrator/api/pods.py
index a83ca9ae..31ae31de 100644
--- a/moon_orchestrator/moon_orchestrator/api/pods.py
+++ b/moon_orchestrator/moon_orchestrator/api/pods.py
@@ -44,15 +44,18 @@ class Pods(Resource):
:internal_api: get_pdp
"""
pods = {}
- if uuid:
- return {"pods": self.driver.get_pods(uuid)}
- for _pod_key, _pod_values in self.driver.get_pods().items():
- pods[_pod_key] = []
- for _pod_value in _pod_values:
- if _pod_value['namespace'] != "moon":
- continue
- pods[_pod_key].append(_pod_value)
- return {"pods": pods}
+ try:
+ if uuid:
+ return {"pods": self.driver.get_pods(uuid)}
+ for _pod_key, _pod_values in self.driver.get_pods().items():
+ pods[_pod_key] = []
+ for _pod_value in _pod_values:
+ if _pod_value['namespace'] != "moon":
+ continue
+ pods[_pod_key].append(_pod_value)
+ return {"pods": pods}
+ except Exception as e:
+ return {"result": False, "message": str(e)}, 500
@check_auth
def post(self, uuid=None, user_id=None):
@@ -74,21 +77,24 @@ class Pods(Resource):
}
"""
logger.debug("POST param={}".format(request.json))
- self.driver.create_pipeline(
- request.json.get("keystone_project_id"),
- request.json.get("pdp_id"),
- request.json.get("security_pipeline"),
- manager_data=request.json,
- active_context=None,
- active_context_name=None)
- pods = {}
- for _pod_key, _pod_values in self.driver.get_pods().items():
- pods[_pod_key] = []
- for _pod_value in _pod_values:
- if _pod_value['namespace'] != "moon":
- continue
- pods[_pod_key].append(_pod_value)
- return {"pods": pods}
+ try:
+ self.driver.create_pipeline(
+ request.json.get("keystone_project_id"),
+ request.json.get("pdp_id"),
+ request.json.get("security_pipeline"),
+ manager_data=request.json,
+ active_context=None,
+ active_context_name=None)
+ pods = {}
+ for _pod_key, _pod_values in self.driver.get_pods().items():
+ pods[_pod_key] = []
+ for _pod_value in _pod_values:
+ if _pod_value['namespace'] != "moon":
+ continue
+ pods[_pod_key].append(_pod_value)
+ return {"pods": pods}
+ except Exception as e:
+ return {"result": False, "message": str(e)}, 500
@check_auth
def delete(self, uuid=None, user_id=None):
@@ -128,4 +134,3 @@ class Pods(Resource):
:internal_api: update_pdp
"""
return {"pods": None}
-
diff --git a/moon_orchestrator/moon_orchestrator/drivers.py b/moon_orchestrator/moon_orchestrator/drivers.py
index b21f2639..9c230cce 100644
--- a/moon_orchestrator/moon_orchestrator/drivers.py
+++ b/moon_orchestrator/moon_orchestrator/drivers.py
@@ -259,6 +259,8 @@ class K8S(Driver):
},
]
logger.debug("data={}".format(data))
+ # When policies and models are empty, is it right that it returns 200 ?
+ # Should it return no found policies or models ?
policies = manager_data.get('policies')
if not policies:
logger.info("No policy data from Manager, trying to get them")
@@ -274,6 +276,8 @@ class K8S(Driver):
"models", dict())
logger.debug("models={}".format(models))
+ if not policy_ids:
+ raise exceptions.PolicyUnknown
for policy_id in policy_ids:
if policy_id in policies:
genre = policies[policy_id].get("genre", "authz")