76 lines
2.7 KiB
Python
76 lines
2.7 KiB
Python
# Copyright (c) 2013 Rackspace Hosting, Inc.
|
|
#
|
|
# 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.
|
|
"""marconi-queues (public): handles all the routes for queuing,
|
|
messaging, and claiming.
|
|
"""
|
|
|
|
|
|
from marconi.common.transport.wsgi import health
|
|
from marconi.queues.transport.wsgi import (
|
|
claims, driver, messages, metadata, queues, stats, v1,
|
|
)
|
|
|
|
|
|
class Driver(driver.DriverBase):
|
|
|
|
def __init__(self, conf, storage, cache):
|
|
super(Driver, self).__init__(conf, storage, cache)
|
|
|
|
@property
|
|
def bridge(self):
|
|
queue_controller = self._storage.queue_controller
|
|
message_controller = self._storage.message_controller
|
|
claim_controller = self._storage.claim_controller
|
|
return [
|
|
# Home
|
|
('/',
|
|
v1.V1Resource()),
|
|
|
|
# Queues Endpoints
|
|
('/queues',
|
|
queues.CollectionResource(self._validate,
|
|
queue_controller)),
|
|
('/queues/{queue_name}',
|
|
queues.ItemResource(queue_controller,
|
|
message_controller)),
|
|
('/queues/{queue_name}/stats',
|
|
stats.Resource(queue_controller)),
|
|
('/queues/{queue_name}/metadata',
|
|
metadata.Resource(self._wsgi_conf, self._validate,
|
|
queue_controller)),
|
|
|
|
# Messages Endpoints
|
|
('/queues/{queue_name}/messages',
|
|
messages.CollectionResource(self._wsgi_conf,
|
|
self._validate,
|
|
message_controller)),
|
|
('/queues/{queue_name}/messages/{message_id}',
|
|
messages.ItemResource(message_controller)),
|
|
|
|
# Claims Endpoints
|
|
('/queues/{queue_name}/claims',
|
|
claims.CollectionResource(self._wsgi_conf,
|
|
self._validate,
|
|
claim_controller)),
|
|
('/queues/{queue_name}/claims/{claim_id}',
|
|
claims.ItemResource(self._wsgi_conf,
|
|
self._validate,
|
|
claim_controller)),
|
|
|
|
# Health
|
|
('/health',
|
|
health.Resource())
|
|
]
|