From 7ef613de6d9cd794fd10ae43d98ffa9312418e68 Mon Sep 17 00:00:00 2001 From: krishnaa96 Date: Thu, 8 Apr 2021 14:14:48 +0530 Subject: Update AAI query to DSL query - Slice termination Issue-ID: OPTFRA-936 Signed-off-by: krishnaa96 Change-Id: I7a2bba7d23645c8bff9f503361a93fd3ac3ebc3a --- osdf/adapters/aai/fetch_aai_data.py | 46 +++++++++++++++++++++++++++++++------ 1 file changed, 39 insertions(+), 7 deletions(-) (limited to 'osdf/adapters') diff --git a/osdf/adapters/aai/fetch_aai_data.py b/osdf/adapters/aai/fetch_aai_data.py index d869882..fad2512 100644 --- a/osdf/adapters/aai/fetch_aai_data.py +++ b/osdf/adapters/aai/fetch_aai_data.py @@ -16,10 +16,22 @@ # ------------------------------------------------------------------------- # +import json import requests from requests.auth import HTTPBasicAuth from requests import RequestException +from osdf.logging.osdf_logging import debug_log + +AAI_HEADERS = { + "X-TransactionId": "9999", + "X-FromAppId": "OOF", + "Accept": "application/json", + "Content-Type": "application/json", +} + +AUTH = HTTPBasicAuth("AAI", "AAI") + class AAIException(Exception): pass @@ -33,19 +45,14 @@ def get_aai_data(request_json, osdf_config): :param osdf_config: configuration specific to OSDF app :return:response body from AAI """ - aai_headers = { - "X-TransactionId": "9999", - "X-FromAppId": "OOF", - "Accept": "application/json", - "Content-Type": "application/json", - } + nxi_id = request_json["NxIId"] config = osdf_config.deployment aai_url = config["aaiUrl"] aai_req_url = aai_url + config["aaiServiceInstanceUrl"] + nxi_id + "?depth=2" try: - response = requests.get(aai_req_url, headers=aai_headers, auth=HTTPBasicAuth("AAI", "AAI"), verify=False) + response = requests.get(aai_req_url, headers=AAI_HEADERS, auth=AUTH, verify=False) except RequestException as e: raise AAIException("Request exception was encountered {}".format(e)) @@ -53,3 +60,28 @@ def get_aai_data(request_json, osdf_config): return response.json() else: raise AAIException("Error response recieved from AAI for the request {}".format(aai_req_url)) + + +def execute_dsl_query(query, format, osdf_config): + """Get the response from AAI + + :param query: dsl query to be executed + :param format format of the output + :param osdf_config: configuration specific to OSDF app + :return:response body from AAI + """ + config = osdf_config.deployment + dsl_url = config["aaiUrl"] + config["dslQueryPath"] + format + + data = json.dumps({'dsl': query}) + debug_log.debug("aai dsl request: {}".format(data)) + try: + response = requests.put(dsl_url, data=data, headers=AAI_HEADERS, auth=AUTH, verify=False) + except RequestException as ex: + raise AAIException("Request exception was encountered {}".format(ex)) + + if response.status_code == 200: + return response.json() + else: + raise AAIException("Response code other than 200 from AAI: {} {}".format(response.status_code, + response.content)) -- cgit 1.2.3-korg