"""
Contains html text in variables to make and html response
"""
import yaml
from http import HTTPStatus
from html import escape as html_escape
__author__ = "Alfonso Tierno "
html_start = """
Welcome to OSM
"""
html_upload_body = """
"""
html_nslcmop_body = """
nslcm operations VNFRS
"""
def format(data, request, response, session):
"""
Format a nice html response, depending on the data
:param data:
:param request: cherrypy request
:param response: cherrypy response
:return: string with teh html response
"""
response.headers["Content-Type"] = 'text/html'
if response.status == HTTPStatus.UNAUTHORIZED.value:
if response.headers.get("WWW-Authenticate") and request.config.get("auth.allow_basic_authentication"):
response.headers["WWW-Authenticate"] = "Basic" + response.headers["WWW-Authenticate"][6:]
return
else:
return html_auth2.format(error=data)
body = html_body.format(item=request.path_info)
if response.status and response.status > 202:
body += html_body_error.format(yaml.safe_dump(data, explicit_start=True, indent=4, default_flow_style=False))
elif isinstance(data, (list, tuple)):
if request.path_info == "/vnfpkgm/v1/vnf_packages":
body += html_upload_body.format(request.path_info, "VNFD")
elif request.path_info == "/nsd/v1/ns_descriptors":
body += html_upload_body.format(request.path_info + "_content", "NSD")
for k in data:
if isinstance(k, dict):
data_id = k.pop("_id", None)
elif isinstance(k, str):
data_id = k
body += '
'.format(url=request.path_info, id=data_id,
t=html_escape(str(k)))
elif isinstance(data, dict):
if "Location" in response.headers:
body += ' show '.format(response.headers["Location"])
else:
body += ''\
.format(request.path_info)
if request.path_info.startswith("/nslcm/v1/ns_instances_content/") or \
request.path_info.startswith("/nslcm/v1/ns_instances/"):
_id = request.path_info[request.path_info.rfind("/")+1:]
body += html_nslcmop_body.format(id=_id)
body += "