# Autogenerated for simulations
simulator-logs
test/functest/simulators/config
+test/functest/simulators/policy/response-payloads
test/functest/simulators/osdf
/pylint.out
aaiGetInterDomainLinksUrl: /aai/v19/network/logical-links?link-type=inter-domain&operational-status=up
#DES api
-desUrl: https://des.url:9000
+desUrl: http://des.url:9000
desApiPath: /datalake/v1/exposure/
desHeaders:
Accept: application/json
COPY onap-osdf-tm/optf-osdf-${MVN_ARTIFACT_VERSION}.zip /tmp/optf-osdf.zip
COPY onap-osdf-tm/apps /opt/osdf/apps
RUN unzip -q -o -B /tmp/optf-osdf.zip -d /opt/ && rm -f /tmp/optf-osdf.zip
-RUN mkdir -p /usr/local/share/ca-certificates \
- && cp /opt/osdf/ssl_certs/aaf_root_ca.cer /usr/local/share/ca-certificates/aafcacert.crt \
- && chmod 444 /usr/local/share/ca-certificates/aafcacert.crt \
- && update-ca-certificates
RUN mkdir -p /var/log/onap/optf/osdf/ \
&& chown -R onap:onap /var/log/onap \
#
import requests
-from requests.auth import HTTPBasicAuth
+from requests.exceptions import HTTPError
from osdf.config.base import osdf_config
+from osdf.utils.interfaces import RestClient
class DESException(Exception):
config = osdf_config.deployment
user, password = config['desUsername'], config['desPassword']
- auth = HTTPBasicAuth(user, password)
headers = config["desHeaders"]
req_url = config["desUrl"] + config["desApiPath"] + service_id
+ rc = RestClient(userid=user, passwd=password, url=req_url, headers=headers, method="POST")
try:
- response = requests.post(req_url, data=request_data, headers=headers, auth=auth, verify=False)
+ response_json = rc.request(data=request_data)
+ return response_json.get("result")
except requests.RequestException as e:
raise DESException("Request exception was encountered {}".format(e))
-
- if response.status_code == 200:
- return response.json().get("result")
- else:
- raise DESException("Response code other than 200. Response code: {}".format(response.status_code))
+ except HTTPError as ex:
+ raise DESException("Response code other than 200. Response code: {}".format(ex.response.status_code))
#
import requests
-from osdf.utils.data_types import list_like
+
from osdf.operation.exceptions import MessageBusConfigurationException
+from osdf.utils.data_types import list_like
+from osdf.utils.interfaces import RestClient
class MessageRouterClient(object):
consumer_group_id=':',
timeout_ms=15000, fetch_limit=1000,
userid_passwd=':'):
- """
+ """Class initializer
+
:param dmaap_url: protocol, host and port; can also be a list of URLs
(e.g. https://dmaap-host.onapdemo.onap.org:3905/events/org.onap.dmaap.MULTICLOUD.URGENT),
can also be a list of such URLs
self.topic_urls = [dmaap_url] if not list_like(dmaap_url) else dmaap_url
self.timeout_ms = timeout_ms
self.fetch_limit = fetch_limit
- userid, passwd = userid_passwd.split(':')
- self.auth = (userid, passwd) if userid and passwd else None
+ self.userid, self.passwd = userid_passwd.split(':')
consumer_group, consumer_id = consumer_group_id.split(':')
self.consumer_group = consumer_group
self.consumer_id = consumer_id
def get(self, outputjson=True):
"""Fetch messages from message router (DMaaP or UEB)
+
:param outputjson: (optional, specifies if response is expected to be in json format), ignored for "POST"
:return: response as a json object (if outputjson is True) or as a string
"""
for url in urls[:-1]:
try:
return self.http_request(method='GET', url=url, outputjson=outputjson)
- except:
+ except Exception:
pass
return self.http_request(method='GET', url=urls[-1], outputjson=outputjson)
for url in self.topic_urls[:-1]:
try:
return self.http_request(method='POST', url=url, inputjson=inputjson, msg=msg)
- except:
+ except Exception:
pass
return self.http_request(method='POST', url=self.topic_urls[-1], inputjson=inputjson, msg=msg)
def http_request(self, url, method, inputjson=True, outputjson=True, msg=None, **kwargs):
- """
- Perform the actual URL request (GET or POST), and do error handling
+ """Perform the actual URL request (GET or POST), and do error handling
+
:param url: full URL (including topic, limit, timeout, etc.)
:param method: GET or POST
:param inputjson: Specify whether input is in json format (valid only for POST)
:param msg: content to be posted (valid only for POST)
:return: response as a json object (if outputjson or POST) or as a string; None if error
"""
- res = requests.request(url=url, method=method, auth=self.auth, **kwargs)
- if res.status_code == requests.codes.ok:
- return res.json() if outputjson or method == "POST" else res.content
- else:
- raise Exception("HTTP Response Error: code {}; headers:{}, content: {}".format(
- res.status_code, res.headers, res.content))
+
+ rc = RestClient(userid=self.userid, passwd=self.passwd, url=url, method=method)
+ try:
+ res = rc.request(raw_response=True, data=msg, **kwargs)
+ if res.status_code == requests.codes.ok:
+ return res.json() if outputjson or method == "POST" else res.content
+ else:
+ raise Exception("HTTP Response Error: code {}; headers:{}, content: {}".format(
+ res.status_code, res.headers, res.content))
+
+ except requests.RequestException as ex:
+ raise Exception("Request Exception occurred {}".format(str(ex)))
import requests
import yaml
-from osdf.config.base import osdf_config, creds_prefixes
-from osdf.logging.osdf_logging import MH, debug_log
+from osdf.config.base import creds_prefixes
+from osdf.config.base import osdf_config
+from osdf.logging.osdf_logging import debug_log
+from osdf.logging.osdf_logging import MH
def get_rest_client(request_json, service):
"""Get a RestClient based on request_json's callback URL and osdf_config's credentials based on service name
+
:param request_json:
:param service: so or cm
:return: rc -- RestClient
"""Simple REST Client that supports get/post and basic auth"""
def __init__(self, userid=None, passwd=None, log_func=None, url=None, timeout=None, headers=None,
- method="POST", req_id=None):
+ method="POST", req_id=None, verify=None):
self.auth = (userid, passwd) if userid and passwd else None
self.headers = headers if headers else {}
self.method = method
self.log_func = log_func
self.timeout = (30, 90) if timeout is None else timeout
self.req_id = req_id
+ self.verify = verify
def add_headers(self, headers):
self.headers.update(headers)
def request(self, url=None, method=None, asjson=True, ok_codes=(2, ),
raw_response=False, noresponse=False, timeout=None, **kwargs):
- """
+ """Sends http request to the specified url
+
:param url: REST end point to query
:param method: GET or POST (default is None => self.method)
:param asjson: whether the expected response is in json format
else:
debug_log.debug("Requesting URL: {} for request ID: {}".format(url or self.url, self.req_id))
+ if not url:
+ url = self.url
+ if not self.verify and url.startswith("https"):
+ verify = osdf_config.deployment["aaf_ca_certs"]
+ else:
+ verify = self.verify
+
res = requests.request(url=url or self.url, method=method or self.method,
auth=self.auth, headers=self.headers,
- timeout=timeout or self.timeout, **kwargs)
+ timeout=timeout or self.timeout, verify=verify, **kwargs)
if self.log_func:
self.log_func(MH.received_http_response(res))
+++ /dev/null
------BEGIN CERTIFICATE-----
-MIIFPjCCAyagAwIBAgIJAJ6u7cCnzrWdMA0GCSqGSIb3DQEBCwUAMCwxDjAMBgNV
-BAsMBU9TQUFGMQ0wCwYDVQQKDARPTkFQMQswCQYDVQQGEwJVUzAeFw0xODA0MDUx
-NDE1MjhaFw0zODAzMzExNDE1MjhaMCwxDjAMBgNVBAsMBU9TQUFGMQ0wCwYDVQQK
-DARPTkFQMQswCQYDVQQGEwJVUzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
-ggIBAMA5pkgRs7NhGG4ew5JouhyYakgYUyFaG121+/h8qbSdt0hVQv56+EA41Yq7
-XGie7RYDQK9NmAFF3gruE+6X7wvJiChp+Cyd7sFMnb65uWhxEdxWTM2BJFrgfzUn
-H8ZCxgaCo3XH4PzlKRy2LQQJEJECwl/RZmRCXijMt5e9h8XoZY/fKkKcZZUsWNCM
-pTo266wjvA9MXLmdgReRj0+vrCjrNqy+htwJDztoiHWiYPqT6o8EvGcgjNqjlZx7
-NUNf8MfLDByqKF6+wRbHv1GKjn3/Vijd45Fv8riyRYROiFanvbV6jIfBkv8PZbXg
-2VDWsYsgp8NAvMxK+iV8cO+Ck3lBI2GOPZbCEqpPVTYbLUz6sczAlCXwQoPzDIZY
-wYa3eR/gYLY1gP2iEVHORag3bLPap9ZX5E8DZkzTNTjovvLk8KaCmfcaUMJsBtDd
-ApcUitz10cnRyZc1sX3gE1f3DpzQM6t9C5sOVyRhDcSrKqqwb9m0Ss04XAS9FsqM
-P3UWYQyqDXSxlUAYaX892u8mV1hxnt2gjb22RloXMM6TovM3sSrJS0wH+l1nznd6
-aFXftS/G4ZVIVZ/LfT1is4StoyPWZCwwwly1z8qJQ/zhip5NgZTxQw4mi7ww35DY
-PdAQOCoajfSvFjqslQ/cPRi/MRCu079heVb5fQnnzVtnpFQRAgMBAAGjYzBhMB0G
-A1UdDgQWBBRTVTPyS+vQUbHBeJrBKDF77+rtSTAfBgNVHSMEGDAWgBRTVTPyS+vQ
-UbHBeJrBKDF77+rtSTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAN
-BgkqhkiG9w0BAQsFAAOCAgEAPx/IaK94n02wPxpnYTy+LVLIxwdq/kawNd6IbiMz
-L87zmNMDmHcGbfoRCj8OkhuggX9Lx1/CkhpXimuYsZOFQi5blr/u+v4mIbsgbmi9
-7j+cUHDP0zLycvSvxKHty51LwmaX9a4wkJl5zBU4O1sd/H9tWcEmwJ39ltKoBKBx
-c94Zc3iMm5ytRWGj+0rKzLDAXEWpoZ5bE5PLJauA6UDCxDLfs3FwhbS7uDggxYvf
-jySF5FCNET94oJ+m8s7VeHvoa8iPGKvXrIqdd7XDHnqJJlVKr7m9S0fMbyEB8ci2
-RtOXDt93ifY1uhoEtEykn4dqBSp8ezvNMnwoXdYPDvTd9uCAFeWFLVreBAWxd25h
-PsBTkZA5hpa/rA+mKv6Af4VBViYr8cz4dZCsFChuioVebe9ighrfjB//qKepFjPF
-CyjzKN1u0JKm/2x/ORqxkTONG8p3uDwoIOyimUcTtTMv42bfYD88RKakqSFXE9G+
-Z0LlaKABqfjK49o/tsAp+c5LoNlYllKhnetO3QAdraHwdmC36BhoghzR1jpX751A
-cZn2VH3Q4XKyp01cJNCJIrua+A+bx6zh3RyW6zIIkbRCbET+UD+4mr8WIcSE3mtR
-ZVlnhUDO4z9//WKMVzwS9Rh8/kuszrGFI1KQozXCHLrce3YP6RYZfOed79LXaRwX
-dYY=
------END CERTIFICATE-----
\ No newline at end of file
+++ /dev/null
-Bag Attributes
- localKeyID: F5 64 7B F8 32 67 FD CE 81 5E 0D 13 36 B7 67 35 47 33 B8 9B
- friendlyName: oof@oof.onap.org
-subject=/C=US/O=ONAP/OU=oof@oof.onap.org/OU=OSAAF/CN=oof.api.simpledemo.onap.org
-issuer=/C=US/O=ONAP/OU=OSAAF/CN=intermediateCA_1
------BEGIN CERTIFICATE-----
-MIIEKjCCAxKgAwIBAgIBHjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEN
-MAsGA1UECgwET05BUDEOMAwGA1UECwwFT1NBQUYxGTAXBgNVBAMMEGludGVybWVk
-aWF0ZUNBXzEwHhcNMTgwNDI1MTIxMzAxWhcNMTkwNDIwMTIxMzAxWjBtMQswCQYD
-VQQGEwJVUzENMAsGA1UECgwET05BUDEZMBcGA1UECwwQb29mQG9vZi5vbmFwLm9y
-ZzEOMAwGA1UECwwFT1NBQUYxJDAiBgNVBAMMG29vZi5hcGkuc2ltcGxlZGVtby5v
-bmFwLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANGpQUtgLXG3
-dVikd/QC2Q24wzeTOeZzbx3PnidNYZT5K0sJ/TdnZF6O/4+9gXQ6AQS2Q8wfQ009
-MQAA5vhUaq5yZ2K+XAtEFGln1TxTFpGu3WDOwQ800Vw18Dk8WidrkzDJv489Bn1f
-SSaPC0IaRB0K1d8BD63ZHgsuEY8lt31DX2wFWJcfN9mxNDzuLTZoLxtxKsedoZKH
-rsOOILwXOhwuunfx40i6RQN/pFX6C2i8dtOA5OwUm9Q1RrZ2Tv1Uf4IURriH6bfZ
-5n50yxTuL22TMYXsF/ohrdgwacuC0aV9ZSGhIZUJPyHVg7+QTBioHmoUJInVKuIx
-kkC4lENbLYUCAwEAAaOB+jCB9zAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIG
-wDAzBglghkgBhvhCAQ0EJhYkT3BlblNTTCBHZW5lcmF0ZWQgU2VydmVyIENlcnRp
-ZmljYXRlMB0GA1UdDgQWBBQwbU5oHU2iYHCoVz4hFCvBW59cdTBUBgNVHSMETTBL
-gBQd5lldG54KOKRipsGF8/PP1vGX6qEwpC4wLDEOMAwGA1UECwwFT1NBQUYxDTAL
-BgNVBAoMBE9OQVAxCzAJBgNVBAYTAlVTggEBMA4GA1UdDwEB/wQEAwIF4DAdBgNV
-HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBADEa
-0VuxoFIygeQTqlizpHNwfApPmlAVSKDTWuEu4rhJs8GT61EuWZQPygXEUHCYmGvJ
-GMwEGGIDGiQqxMqlqng46gksNJbi1ktXr6Du18qW7gziUd84ve8KcecjZru1Sk1e
-UJ/6WEQVE17CHKcnzQZsMDakgP+61VgKbk5NlkeF/Qh4L6/3jY7g+xoXqaId5RT9
-BetmH/cMsj33lxQTs0fcXTbAQd6BX5ug854OJ1mU4ngJnNBdmn9Ow1bB71ohf5Xv
-OEYX8+khjgjlmM0u1hBRL4qViv3y2Gzhpm1M8cETMDj4g0zIJytzIYMxO8XvDPCF
-YmVZHXJDLsCogSOmmh0=
------END CERTIFICATE-----
-Bag Attributes: <No Attributes>
-subject=/C=US/O=ONAP/OU=OSAAF/CN=intermediateCA_1
-issuer=/OU=OSAAF/O=ONAP/C=US
------BEGIN CERTIFICATE-----
-MIIEVDCCAjygAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMQ4wDAYDVQQLDAVPU0FB
-RjENMAsGA1UECgwET05BUDELMAkGA1UEBhMCVVMwHhcNMTgwNDA1MTQxNTQwWhcN
-MTgwNjA0MTQxNTQwWjBHMQswCQYDVQQGEwJVUzENMAsGA1UECgwET05BUDEOMAwG
-A1UECwwFT1NBQUYxGTAXBgNVBAMMEGludGVybWVkaWF0ZUNBXzEwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCY3YPA/YQdz4kaZQzdRzWNjmn33WYAWZ8+
-EIz3PhkEzk7M1q9N7Icx2LvozMj4VH0yGz/HYlliHhw26ZRsjYMSR8zATsXl4oW9
-w9BrjuyvM3w8Ptxe8WbUFF9LJDGyXPeVvcXVo0iyh3QYPWC/AWmomN19MvBFN5vH
-AvEG/7qtonViNfISW9Gr9LpXB0foCmUDBu/lV+SwRGajoCPqdZhZ6/L6/yqDvha2
-wsML/UZXlGhXAedt/xOKmT/dSXx/I0vWBVp6Tq4zu87yCvd+I6Tpa5HjttA2I5EV
-zdHX+JYBPBBcVCyO9YQOYjJuoVDE4D5etY6dEipKG/KZF/rqAoqZAgMBAAGjZjBk
-MB0GA1UdDgQWBBQd5lldG54KOKRipsGF8/PP1vGX6jAfBgNVHSMEGDAWgBRTVTPy
-S+vQUbHBeJrBKDF77+rtSTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQE
-AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAmgeiitBDi/YEqFh2Cqp0VIEqw8hiuV87
-rADQWMK4hv5WXl3KJTjFAnWsYFUKrm6s1jNH16FyGExUQgwggob0Vt+MHiUs36jU
-kyret/uE5qrjz+/J+i2XG6s1oKcDRVD/jU4qBygZWFBMuwl7sz8IEvaYXGM43s96
-Du3UF9E+V3aMppqkGWz6MnrTmANnWAlDAMeifcoexjrpxiKbp8f49HX1UzwFoeEg
-RnVwNqgDWT66yGV6mbNl6FpE/U81RpCRY1ZJDeVTxbqIaG/UPV4hpQ+BEVBDF+cb
-rGsvsNYYpWx5srIQ7WtGKIlaDFbfWPwnHDHegzr8ypAS3KNWULE+QXCbHWtB+b0Y
-WhP/2F6Jjb+ByvJqQoE+nHEYBeUOZUUZC4IuQFNJ5Wy5P0CNXdheiWhdrBmG02Gy
-KMi0FJx6BEoWM2xcdl6bn5j9mhF4TX7zgepNWlgTra4Z8Oz8iqbQk33/s2OKM4ic
-6ZezUYhNp+MuUt4Se+ufNcGV65jnUKeROtWzNLwP+xwglEFlG8aNiAORthd7QJuT
-Ey2cX7H7f38ENQ5YCriUk1nVLO9F66l/rNRzYZgQzRI3IvDW8vyM2TLW2mcZNsaf
-qjFMcCDweV2FRb8eTbmWzzB2/xTVpGzVJqzwgE+U7UtJx5CZS3wPkvXuEgvcg1tY
-m1r4NGYFvLM=
------END CERTIFICATE-----
+++ /dev/null
------BEGIN CERTIFICATE-----\r
-MIIEKjCCAxKgAwIBAgIBHjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEN\r
-MAsGA1UECgwET05BUDEOMAwGA1UECwwFT1NBQUYxGTAXBgNVBAMMEGludGVybWVk\r
-aWF0ZUNBXzEwHhcNMTgwNDI1MTIxMzAxWhcNMTkwNDIwMTIxMzAxWjBtMQswCQYD\r
-VQQGEwJVUzENMAsGA1UECgwET05BUDEZMBcGA1UECwwQb29mQG9vZi5vbmFwLm9y\r
-ZzEOMAwGA1UECwwFT1NBQUYxJDAiBgNVBAMMG29vZi5hcGkuc2ltcGxlZGVtby5v\r
-bmFwLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANGpQUtgLXG3\r
-dVikd/QC2Q24wzeTOeZzbx3PnidNYZT5K0sJ/TdnZF6O/4+9gXQ6AQS2Q8wfQ009\r
-MQAA5vhUaq5yZ2K+XAtEFGln1TxTFpGu3WDOwQ800Vw18Dk8WidrkzDJv489Bn1f\r
-SSaPC0IaRB0K1d8BD63ZHgsuEY8lt31DX2wFWJcfN9mxNDzuLTZoLxtxKsedoZKH\r
-rsOOILwXOhwuunfx40i6RQN/pFX6C2i8dtOA5OwUm9Q1RrZ2Tv1Uf4IURriH6bfZ\r
-5n50yxTuL22TMYXsF/ohrdgwacuC0aV9ZSGhIZUJPyHVg7+QTBioHmoUJInVKuIx\r
-kkC4lENbLYUCAwEAAaOB+jCB9zAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIG\r
-wDAzBglghkgBhvhCAQ0EJhYkT3BlblNTTCBHZW5lcmF0ZWQgU2VydmVyIENlcnRp\r
-ZmljYXRlMB0GA1UdDgQWBBQwbU5oHU2iYHCoVz4hFCvBW59cdTBUBgNVHSMETTBL\r
-gBQd5lldG54KOKRipsGF8/PP1vGX6qEwpC4wLDEOMAwGA1UECwwFT1NBQUYxDTAL\r
-BgNVBAoMBE9OQVAxCzAJBgNVBAYTAlVTggEBMA4GA1UdDwEB/wQEAwIF4DAdBgNV\r
-HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBADEa\r
-0VuxoFIygeQTqlizpHNwfApPmlAVSKDTWuEu4rhJs8GT61EuWZQPygXEUHCYmGvJ\r
-GMwEGGIDGiQqxMqlqng46gksNJbi1ktXr6Du18qW7gziUd84ve8KcecjZru1Sk1e\r
-UJ/6WEQVE17CHKcnzQZsMDakgP+61VgKbk5NlkeF/Qh4L6/3jY7g+xoXqaId5RT9\r
-BetmH/cMsj33lxQTs0fcXTbAQd6BX5ug854OJ1mU4ngJnNBdmn9Ow1bB71ohf5Xv\r
-OEYX8+khjgjlmM0u1hBRL4qViv3y2Gzhpm1M8cETMDj4g0zIJytzIYMxO8XvDPCF\r
-YmVZHXJDLsCogSOmmh0=\r
------END CERTIFICATE-----
\ No newline at end of file
+++ /dev/null
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEA0alBS2Atcbd1WKR39ALZDbjDN5M55nNvHc+eJ01hlPkrSwn9
-N2dkXo7/j72BdDoBBLZDzB9DTT0xAADm+FRqrnJnYr5cC0QUaWfVPFMWka7dYM7B
-DzTRXDXwOTxaJ2uTMMm/jz0GfV9JJo8LQhpEHQrV3wEPrdkeCy4RjyW3fUNfbAVY
-lx832bE0PO4tNmgvG3Eqx52hkoeuw44gvBc6HC66d/HjSLpFA3+kVfoLaLx204Dk
-7BSb1DVGtnZO/VR/ghRGuIfpt9nmfnTLFO4vbZMxhewX+iGt2DBpy4LRpX1lIaEh
-lQk/IdWDv5BMGKgeahQkidUq4jGSQLiUQ1sthQIDAQABAoIBAHeHah1B6MajE/iE
-U4q+sOYcxtcBTYovl1LEkeLQP+jBoUf3mvAiNtud5N8a6BnOE9SO4NoXnLQFRdE9
-snAzGFr6CC0IX8tgdc6eDriEmiJWMgnF9dTohM9wRNMssC03LEQtUNOls/R4BWlB
-NebquJhiHAo2Pa0cUf+HtSUKGLEFVqyGyf/psqw+y38VP5ZVv5BvlPGRsSyExbwD
-uZ7QNC5szL7k1kqsiQ0nRxHBZxTI9gBQr2LKM8TY4TAmFr2JIoFDr9BDZ5GANzGR
-aglyQWERRuNhGDkS9Okn/vfxjhUcuaNciULUyIMt0RT3IlgmgWyWqk75xueaCiMr
-kpFWRWECgYEA72WwP+rqv6gM88kD+zBKcyianW6TYSN6TDBpzX4StcPr32KYqvXW
-CXgUUjfZQduyNrfxxI7C/6fGWT6oj3G7I3dI+GXMQ6TYWUIos0uhL4SBPZa04hKf
-Y3P6PBFGOqv301/mwS5MI2sMOBrpJH/hig0ExXrzM2EAQi7V6adji5kCgYEA4DOg
-NTuLaB0FinHzPCySiujjcAWBsvjhpF+C3g3RMOFC0EKCy3snPnxyLYQENcIueE9r
-9y68pnpqNqFWOJqLINc727cU2+becFfpinGQEnZuC/48FbiDDR2uTv/vd4OT8+ng
-tuNGXbBz/XP9nvjS5t06MDOrOrseBSpo3ZfmBM0CgYEAxQCOgJrl4R/+wKL75rp/
-mbKhQcqb94UFgCsa9iK4bOG0ehid/5ncL+CkAGC7JWoQhtzqVNESgOXk4M4iUiDK
-Wk4wO1EyPbwq2ZELAzjKhNrqq+8YHS4sAeCP3NxuSZv4jfZOY0yhFUhjPsxObV3b
-EQrTkVszRWWem9gE6ol37okCgYEAhEeRb7b5Em2FFmES/N7je1fa0P4+vuS+5OeB
-ZBhM44UUkaGcYAgCaIiuKRKqFTnDhzJ85fNKVQMG5cKdB3qPOcojxAeqI/B8L1Z/
-MTK9qVb8qNDQjJQ3piZr8KpqlF4qjg/giKdhned9F/42lnQCoznFmijyDw3VsYCL
-LKrxiMUCgYAvq51mzXuGRGEJp8QmVBJGfSwIlqB9F5zdkVfWADP6X99MSH0PGpvU
-SJOYO9gQJA31v3AECLUXYjYFlEX4PcAhMCwVONm2AAok0EXIc1UgJrpNkdRIjhJW
-81NkKznllRF7LownV1zoOl9CcIn8u9XoRd1OjRTzU8QTZ1QfLkexoQ==
------END RSA PRIVATE KEY-----
import mock
from mock import patch
from requests import RequestException
+from requests.exceptions import HTTPError
import unittest
from osdf.adapters.dcae import des
from osdf.adapters.dcae.des import DESException
response.status_code = 200
response.ok = True
response.json.return_value = response_json
- self.patcher_req = patch('requests.post', return_value=response)
+ self.patcher_req = patch('requests.request', return_value=response)
self.Mock_req = self.patcher_req.start()
self.assertEqual(expected, des.extract_data(service_id, data))
self.patcher_req.stop()
response = mock.MagicMock()
response.status_code = 404
- self.patcher_req = patch('requests.post', return_value=response)
+ response.raise_for_status.side_effect = HTTPError("404")
+ self.patcher_req = patch('requests.request', return_value=response)
self.Mock_req = self.patcher_req.start()
self.assertRaises(DESException, des.extract_data, service_id, data)
self.patcher_req.stop()
- self.patcher_req = patch('requests.post', side_effect=RequestException("error"))
+ self.patcher_req = patch('requests.request', side_effect=RequestException("error"))
self.Mock_req = self.patcher_req.start()
self.assertRaises(DESException, des.extract_data, service_id, data)
self.patcher_req.stop()
aaiServiceInstanceUrl : "/aai/v20/nodes/service-instances/service-instance/"
#DES api
-desUrl: https://des.url:9000
+desUrl: http://des.url:9000
desApiPath: /datalake/v1/exposure/
desHeaders:
Accept: application/json
# -------------------------------------------------------------------------
#
import requests
-import unittest
-
from requests.models import Response
-from osdf.utils.interfaces import RestClient, get_rest_client
+import unittest
from unittest.mock import patch
+from osdf.utils.interfaces import get_rest_client
+from osdf.utils.interfaces import RestClient
+
m1 = Response()
m1._content = b'{"msg": "OK"}'
def test_rc_request(self, mock_good_response):
rc = RestClient()
rc.add_headers({})
- rc.request(req_id="testReq")
+ rc.request(url="http://localhost", req_id="testReq")
@patch('requests.request', return_value=mock_good_response)
def test_rc_request_v1(self, mock_good_response):
def test_rc_request_v2(self, mock_bad_response):
rc = RestClient()
try:
- rc.request()
+ rc.request(url="http://localhost")
except requests.RequestException:
return
raise Exception("Allows bad requests instead of raising exception")
if __name__ == "__main__":
unittest.main()
-