[DCAE] INFO.yaml update
[dcaegen2/platform.git] / adapter / acumos / aoconversion / scanner.py
index 22a5922..f8b4531 100644 (file)
@@ -1,7 +1,8 @@
 # ============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.
+# Copyright (c) 2021 highstreet technologies GmbH. 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.
@@ -47,8 +48,7 @@ class Config(object):
     Configuration parameters as attributes, make sure the required ones are there,
     populate defaults.
     """
-    def __init__(self, dcaeurl, dcaeuser, onboardingurl, onboardinguser, onboardingpass, certfile, dockerregistry, dockeruser, dockerpass, acumosurl=None, interval=900, dockerhost='unix:///var/run/docker.sock', tmpdir='/var/tmp/aoadapter', certverify=True, catalogs=None, port=None, **extras):
-        self.dcaeurl = dcaeurl
+    def __init__(self, dcaeuser, onboardingurl, onboardinguser, onboardingpass, certfile, dockerregistry, dockeruser, dockerpass, http_proxy, https_proxy, no_proxy, acumosurl=None, interval=900, dockerhost='tcp://localhost:2375', tmpdir='/var/tmp/aoadapter', certverify=True, catalogs=None, port=None, **extras):
         self.dcaeuser = dcaeuser
 
         def x(fmt, *args, **kwargs):
@@ -65,6 +65,9 @@ class Config(object):
         self._dockerpass = dockerpass
         self.interval = interval
         self.tmpdir = tmpdir
+        self.http_proxy = http_proxy if http_proxy is not None else ""
+        self.https_proxy = https_proxy if http_proxy is not None else ""
+        self.no_proxy = no_proxy if no_proxy is not None else ""
         if catalogs is not None and type(catalogs) is not list:
             catalogs = [catalogs]
         self.catalogs = catalogs
@@ -117,7 +120,7 @@ def _x_zip_matcher(art):
 
 def _md_json_matcher(art):
     """ Is this artifact the metadata.json file? """
-    return art['name'].endswith('.json')
+    return art['name'].__contains__('metadata') & art['name'].endswith('.json')
 
 
 def _walk(config):
@@ -137,6 +140,7 @@ def _walk(config):
 
 
 def onboard(aa, callback, solution, revid):
+
     xrev = aa.jsonget('/solutions/{}/revisions/{}', solution['solutionId'], revid)
     callback(model_name=solution['name'], model_version=xrev['version'], model_last_updated=xrev['modified'], rating=solution['ratingAverageTenths'] / 10.0, proto_getter=aa.artgetter(xrev, _x_proto_matcher), zip_getter=aa.artgetter(xrev, _x_zip_matcher), metadata_getter=aa.artgetter(xrev, _md_json_matcher))
 
@@ -251,23 +255,23 @@ class Apihandler(BaseHTTPRequestHandler):
 
     def do_GET(self):
         self.doqp()
-        if self.path == '/' or self.path == '/index.html':
+        if self.path == '/' or self.path == '/index.html' or self.path == '/acumos-adapter/' or self.path == '/acumos-adapter/index.html':
             self.replyraw(self.server.index, 'text/html')
             return
         if 'acumos' not in self.qparams:
             self.send_error(400)
             return
         aa = _AcumosAccess(self.server.config, self.qparams['acumos'])
-        if self.path == '/listCatalogs.js':
+        if self.path == '/acumos-adapter/listCatalogs.js':
             self.replyjson([{'name': x['name'], 'id': x['catalogId']} for x in aa.jsonget('/catalogs')])
             return
-        if self.path == '/listSolutions.js':
+        if self.path == '/acumos-adapter/listSolutions.js':
             if 'catalogId' not in self.qparams:
                 self.send_error(400)
                 return
             self.replyjson([{'name': x['name'], 'id': x['solutionId']} for x in aa.jsonget('/solutions?catalogId={}', self.qparams['catalogId'])])
             return
-        if self.path == '/listRevisions.js':
+        if self.path == '/acumos-adapter/listRevisions.js':
             if 'solutionId' not in self.qparams:
                 self.send_error(400)
                 return
@@ -277,7 +281,7 @@ class Apihandler(BaseHTTPRequestHandler):
 
     def do_POST(self):
         self.doqp()
-        if self.path == '/onboard.js':
+        if self.path == '/acumos-adapter/onboard.js':
             if 'acumos' not in self.qparams:
                 self.send_error(400)
                 return
@@ -299,7 +303,7 @@ class Apihandler(BaseHTTPRequestHandler):
             else:
                 solution = aa.jsonget('/solutions/{}', self.qparams['solutionId'])
                 onboard(aa, callback, solution, self.qparams['revisionId'])
-            self.replyraw('OK', 'text/plain')
+            self.replyraw('OK'.encode('utf-8'), 'text/plain')
             return
         self.send_error(400)