# vim: tabstop=4 shiftwidth=4 softtabstop=4 # Copyright 2011 OpenStack LLC. # All Rights Reserved. # # 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. from abc import abstractmethod from quantum.api import extensions from quantum import wsgi class StubExtension(object): def __init__(self, alias="stub_extension"): self.alias = alias def get_name(self): return "Stub Extension" def get_alias(self): return self.alias def get_description(self): return "" def get_namespace(self): return "" def get_updated(self): return "" class StubPlugin(object): def __init__(self, supported_extensions=[]): self.supported_extension_aliases = supported_extensions class ExtensionExpectingPluginInterface(StubExtension): """ This extension expects plugin to implement all the methods defined in StubPluginInterface """ def get_plugin_interface(self): return StubPluginInterface class StubPluginInterface(extensions.PluginInterface): @abstractmethod def get_foo(self, bar=None): pass class StubBaseAppController(wsgi.Controller): def index(self, request): return "base app index" def show(self, request, id): return {'fort': 'knox'} def update(self, request, id): return {'uneditable': 'original_value'}