monasca_api.v2.reference.versions

Source code for monasca_api.v2.reference.versions

# Copyright 2014 Hewlett-Packard
# Copyright 2018 OP5 AB
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.

import falcon
import six

from monasca_api.api import versions_api
from monasca_api.v2.common.exceptions import HTTPUnprocessableEntityError
from monasca_api.v2.reference import helpers

VERSIONS = {
    'v2.0': {
        'id': 'v2.0',
        'links': [{
            'rel': 'self',
            'href': ''
        }],
        'status': 'CURRENT',
        'updated': "2013-03-06T00:00:00.000Z"
    }
}


[docs]class Versions(versions_api.VersionsAPI): def __init__(self): super(Versions, self).__init__()
[docs] def on_get(self, req, res, version_id=None): req_uri = req.uri.decode('utf8') if six.PY2 else req.uri helpers.validate_authorization(req, ['api:versions']) result = { 'links': [{ 'rel': 'self', 'href': req_uri }], 'elements': [] } if version_id is None: for version in VERSIONS: VERSIONS[version]['links'][0]['href'] = ( req_uri + version) result['elements'].append(VERSIONS[version]) res.body = helpers.to_json(result) res.status = falcon.HTTP_200 else: if version_id in VERSIONS: VERSIONS[version_id]['links'][0]['href'] = req_uri res.body = helpers.to_json(VERSIONS[version_id]) res.status = falcon.HTTP_200 else: raise HTTPUnprocessableEntityError('Invalid version', 'No versions found matching ' + version_id)
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.