nfv/nfv/nfv-vim/nfv_vim/api/_link.py

39 lines
1.1 KiB
Python
Executable File

#
# Copyright (c) 2015-2016 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
import pecan
from wsme import types as wsme_types
class Link(wsme_types.Base):
"""
Representation of a Link using JSON Hyper-Schema
"""
title = wsme_types.text
rel = wsme_types.text
href = wsme_types.text
method = wsme_types.text
type = wsme_types.text
@classmethod
def make_link(cls, rel, url, resource, resource_args=None,
title=wsme_types.Unset, method=wsme_types.Unset,
type=wsme_types.Unset):
forwarded_proto = pecan.request.headers.get('X-Forwarded-Proto', '')
if 'https' == forwarded_proto.lower():
if url.startswith('http:'):
url = url.replace('http', 'https', 1)
if resource_args is None:
resource_args = ''
template = '%s/%s'
template += '%s' if resource_args.startswith('?') else '/%s'
return Link(title=title, rel=rel,
href=template % (url, resource, resource_args),
method=method, type=type)