aboutsummaryrefslogtreecommitdiffstats
path: root/osdf
diff options
context:
space:
mode:
authorvrvarma <vikas.varma@att.com>2020-03-03 22:22:28 -0500
committervrvarma <vikas.varma@att.com>2020-03-04 20:55:57 -0500
commitde5fdaafad9fccba0b9a7f308d72f26816dd1a0f (patch)
treee8e683e21002c20f3d743375d742bf0819d82409 /osdf
parent7d4f37c45d50c56dfe438c04dbecea3ca9f7c9d2 (diff)
Adding the generic solver code
Add docker file for optim engine Run pods as a non-root user Fix docker tag script Change-Id: If25fe66b839a70e83e35292031a2da012e81fe47 Signed-off-by: vrvarma <vikas.varma@att.com> Issue-ID: OPTFRA-712
Diffstat (limited to 'osdf')
-rwxr-xr-xosdf/__init__.py5
-rw-r--r--osdf/adapters/aaf/sms.py2
-rw-r--r--osdf/apps/baseapp.py6
-rw-r--r--osdf/utils/file_utils.py34
-rw-r--r--osdf/utils/mdc_utils.py9
-rw-r--r--osdf/webapp/appcontroller.py17
6 files changed, 60 insertions, 13 deletions
diff --git a/osdf/__init__.py b/osdf/__init__.py
index c33639e..8036d89 100755
--- a/osdf/__init__.py
+++ b/osdf/__init__.py
@@ -20,11 +20,12 @@
from jinja2 import Template
-
end_point_auth_mapping = { # map a URL endpoint to auth group
"cmscheduler": "CMScheduler",
"placement": "Placement",
- "pci": "PCIOpt"
+ "pci": "PCIOpt",
+ "optmodel": "OptEngine",
+ "optengine": "OptEngine"
}
userid_suffix, passwd_suffix = "Username", "Password"
diff --git a/osdf/adapters/aaf/sms.py b/osdf/adapters/aaf/sms.py
index fd3a5d5..0168ba0 100644
--- a/osdf/adapters/aaf/sms.py
+++ b/osdf/adapters/aaf/sms.py
@@ -100,6 +100,8 @@ def load_secrets():
config['pciHMSPassword'] = decrypt_pass(secret_dict['pciHMS']['Password'])
config['osdfPCIOptUsername'] = secret_dict['osdfPCIOpt']['UserName']
config['osdfPCIOptPassword'] = decrypt_pass(secret_dict['osdfPCIOpt']['Password'])
+ config['osdfOptEngineUsername'] = secret_dict['osdfOptEngine']['UserName']
+ config['osdfOptEnginePassword'] = decrypt_pass(secret_dict['osdfOptEngine']['Password'])
cfg_base.http_basic_auth_credentials = creds.load_credentials(osdf_config)
cfg_base.dmaap_creds = creds.dmaap_creds()
diff --git a/osdf/apps/baseapp.py b/osdf/apps/baseapp.py
index 008ce1d..fd94c11 100644
--- a/osdf/apps/baseapp.py
+++ b/osdf/apps/baseapp.py
@@ -35,7 +35,7 @@ from osdf.config.base import osdf_config
from osdf.logging.osdf_logging import error_log, debug_log
from osdf.operation.error_handling import request_exception_to_json_body, internal_error_message
from osdf.operation.exceptions import BusinessException
-from osdf.utils.mdc_utils import clear_mdc, mdc_from_json, default_mdc
+from osdf.utils.mdc_utils import clear_mdc, mdc_from_json, default_mdc, get_request_id
from requests import RequestException
from schematics.exceptions import DataError
@@ -88,11 +88,11 @@ def handle_data_error(e):
@app.before_request
def log_request():
- g.request_start = time.clock()
+ g.request_start = time.process_time()
if request.data:
if request.get_json():
request_json = request.get_json()
- g.request_id = request_json['requestInfo']['requestId']
+ g.request_id = get_request_id(request_json)
mdc_from_json(request_json)
else:
g.request_id = "N/A"
diff --git a/osdf/utils/file_utils.py b/osdf/utils/file_utils.py
new file mode 100644
index 0000000..b12c17d
--- /dev/null
+++ b/osdf/utils/file_utils.py
@@ -0,0 +1,34 @@
+# -------------------------------------------------------------------------
+# Copyright (c) 2020 AT&T Intellectual Property
+#
+# 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.
+#
+# -------------------------------------------------------------------------
+#
+
+# File related utilities
+
+import os
+from shutil import rmtree
+
+from osdf.logging.osdf_logging import debug_log
+
+
+def delete_file_folder(p):
+ if not p:
+ return
+ debug_log.debug('Deleting folder/file {}'.format(p))
+ if os.path.isfile(p):
+ os.remove(p)
+ else:
+ rmtree(p, ignore_errors=True)
diff --git a/osdf/utils/mdc_utils.py b/osdf/utils/mdc_utils.py
index bcd0615..14b726d 100644
--- a/osdf/utils/mdc_utils.py
+++ b/osdf/utils/mdc_utils.py
@@ -53,9 +53,16 @@ def default_mdc():
def mdc_from_json(request_json):
default_mdc()
- MDC.put('requestID', request_json['requestInfo']['requestId'])
+ MDC.put('requestID', get_request_id(request_json))
MDC.put('partnerName', request_json['requestInfo']['sourceId'])
+def get_request_id(request_json):
+ request_id = request_json['requestInfo'].get('requestId')
+ if not request_id:
+ request_id = request_json['requestInfo'].get('requestID')
+ return request_id
+
+
def clear_mdc():
MDC.clear()
diff --git a/osdf/webapp/appcontroller.py b/osdf/webapp/appcontroller.py
index e48e93f..5db879a 100644
--- a/osdf/webapp/appcontroller.py
+++ b/osdf/webapp/appcontroller.py
@@ -16,14 +16,16 @@
# -------------------------------------------------------------------------
#
+import json
+
+from flask import Response
from flask import request
from flask_httpauth import HTTPBasicAuth
-from flask import Response
-import json
+
import osdf
import osdf.config.base as cfg_base
-from osdf.config.base import osdf_config
from osdf.adapters.aaf import aaf_authentication as aaf_auth
+from osdf.config.base import osdf_config
auth_basic = HTTPBasicAuth()
@@ -38,10 +40,11 @@ unauthorized_message = json.dumps(error_body)
@auth_basic.get_password
def get_pw(username):
- end_point = request.url.split('/')[-1]
- auth_group = osdf.end_point_auth_mapping.get(end_point)
- return cfg_base.http_basic_auth_credentials[auth_group].get(
- username) if auth_group else None
+ auth_group = ''
+ for k in osdf.end_point_auth_mapping:
+ if k in request.url:
+ auth_group = osdf.end_point_auth_mapping.get(k)
+ return cfg_base.http_basic_auth_credentials[auth_group].get(username) if auth_group else None
@auth_basic.error_handler