def _get_nfvo(nfvo_id) -> Dict: try: resp = get(f'{url}/nfvOrchestrators/{nfvo_id}', headers=accept_h) resp.raise_for_status() except HTTPError as e: if e.response.status_code == 404: raise NfvoNotFound(nfvo_id) elif e.response.status_code == 401: raise Unauthorized() else: raise return resp.json()
def get_rano_list() -> List[Dict]: try: resp = get(f'{url}/ranOrchestrators', headers=accept_h) resp.raise_for_status() except HTTPError as e: if e.response.status_code == 401: raise Unauthorized() else: raise return [ _convert_rano(rano) for rano in resp.json()['_embedded']['ranOrchestrators'] ]
def _request(req: api.request, url, json=None, params=None, headers=None): try: resp = req(url, json=json, params=params, headers=headers, verify=False, stream=True) except (ConnectionError, Timeout, TooManyRedirects, URLRequired) as e: raise ServerError('OSM connection error: ' + str(e)) try: resp.raise_for_status() except HTTPError as e: if e.response.status_code == 400: raise BadRequest(description=e.response.text) elif e.response.status_code == 401: raise Unauthorized(description=e.response.text) elif e.response.status_code == 403: raise Forbidden(description=e.response.text) elif e.response.status_code == 404: raise ResourceNotFound(description=e.response.text) elif e.response.status_code == 405: raise MethodNotAllowed(description=e.response.text) elif e.response.status_code == 409: raise Conflict(description=e.response.text) elif e.response.status_code == 422: raise Unprocessable(description=e.response.text) else: raise ServerError(description=e.response.text) try: ctype = resp.headers['content-type'] except KeyError: # success but no content return None, resp.headers if 'application/json' in ctype: return resp.json(), resp.headers elif 'application/yaml' in ctype: return YAML.load(resp.text, Loader=YAML.SafeLoader), resp.headers else: return resp.text, resp.headers