ha/service-mgmt-api/sm-api/sm_api/api/controllers/v1/__init__.py

108 lines
3.8 KiB
Python

#
# Copyright (c) 2014-2018 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
import pecan
from pecan import rest
from wsme import types as wsme_types
import wsmeext.pecan as wsme_pecan
from sm_api.api.controllers.v1 import link
from sm_api.api.controllers.v1 import service_groups
from sm_api.api.controllers.v1 import services
from sm_api.api.controllers.v1 import servicenode
from sm_api.api.controllers.v1 import sm_sda
from sm_api.api.controllers.v1 import nodes
class Version1(wsme_types.Base):
""" Version-1 of the API.
"""
id = wsme_types.text
"The ID of the version, also acts as the release number"
links = [link.Link]
"Links that point to a specific URL for this version and documentation"
nodes = [link.Link]
"Links to the SM node resource"
service_groups = [link.Link]
"Links to the SM service-group resource"
services = [link.Link]
"Links to the SM service resource"
servicenode = [link.Link]
"Links to the SM node operation resource"
sm_sda = [link.Link]
"Links to the SM service domain assignement resource"
@classmethod
def convert(cls):
v1 = Version1()
v1.id = "v1"
v1.links = [link.Link.make_link('self', pecan.request.host_url,
'v1', '', bookmark=True)]
v1.nodes = [link.Link.make_link('self',
pecan.request.host_url,
'nodes', ''),
link.Link.make_link('bookmark',
pecan.request.host_url,
'nodes', '',
bookmark=True)]
v1.service_groups = [link.Link.make_link('self',
pecan.request.host_url,
'service_groups', ''),
link.Link.make_link('bookmark',
pecan.request.host_url,
'service_groups', '',
bookmark=True)]
v1.services = [link.Link.make_link('self',
pecan.request.host_url,
'services', ''),
link.Link.make_link('bookmark',
pecan.request.host_url,
'services', '',
bookmark=True)]
v1.servicenode = [link.Link.make_link('self',
pecan.request.host_url,
'servicenode', ''),
link.Link.make_link('bookmark',
pecan.request.host_url,
'servicenode', '',
bookmark=True)]
v1.sm_sda = [link.Link.make_link('self',
pecan.request.host_url,
'sm_sda', ''),
link.Link.make_link('bookmark',
pecan.request.host_url,
'sm_sda', '',
bookmark=True)]
return v1
class Controller(rest.RestController):
"""Version 1 API controller root."""
service_groups = service_groups.ServiceGroupController()
services = services.ServicesController()
servicenode = servicenode.ServiceNodeController()
sm_sda = sm_sda.SmSdaController()
nodes = nodes.NodesController()
@wsme_pecan.wsexpose(Version1)
def get(self):
return Version1.convert()
__all__ = Controller