summaryrefslogtreecommitdiffstats
path: root/config_binding_service/controller.py
diff options
context:
space:
mode:
authorTommy Carpenter <tommy@research.att.com>2017-08-11 15:02:32 -0400
committerTommy Carpenter <tommy@research.att.com>2017-08-11 19:12:47 +0000
commit0581c1ed0320acd612dc38757744e8cc1212014b (patch)
tree7a9f4dbb689f56307c4ad1ca03d942c77d30b6b5 /config_binding_service/controller.py
parent816ac43c7c53508ca3ec174f38bd49d1583f1d12 (diff)
Intial commit of CBS to ONAP
Change-Id: I2082544efc59476ac8de0dc39c899f968c3847bd Signed-off-by: Tommy Carpenter <tommy@research.att.com> Issue-Id: DCAEGEN2-47
Diffstat (limited to 'config_binding_service/controller.py')
-rw-r--r--config_binding_service/controller.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/config_binding_service/controller.py b/config_binding_service/controller.py
new file mode 100644
index 0000000..a74d60f
--- /dev/null
+++ b/config_binding_service/controller.py
@@ -0,0 +1,49 @@
+# ============LICENSE_START=======================================================
+# org.onap.dcae
+# ================================================================================
+# Copyright (c) 2017 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.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+#
+# ECOMP is a trademark and service mark of AT&T Intellectual Property.
+from config_binding_service import client, get_consul_uri, get_logger
+import requests
+from flask import request, Response
+import json
+
+def bind_config_for_scn(service_component_name):
+ try:
+ bound = client.resolve(service_component_name)
+ return Response(response=json.dumps(bound),
+ status=200,
+ mimetype="application/json")
+ except client.CantGetConfig as e:
+ return Response(status=e.code,
+ response=e.response)
+ except Exception as e: #should never happen...
+ _logger.error(e)
+ return Response(response="Please report this error",
+ status=500)
+
+def healthcheck():
+ #got this far, I must be alive... check my connection to Consul by checking myself
+ CONSUL = get_consul_uri()
+ res = requests.get("{0}/v1/catalog/service/config_binding_service".format(CONSUL))
+ if res.status_code == 200:
+ return Response(response = "CBS is alive and Consul connection OK",
+ status = 200)
+ else:
+ return Response(response = "CBS is alive but cannot reach Consul",
+ status = 503)
+