add an example of a versioned api
This commit is contained in:
@@ -53,11 +53,19 @@ flags.DEFINE_flag(flags.HelpXMLFlag())
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# An example of an API that only exposes read-only methods.
|
||||||
class ReadOnlyCompute(direct.Limited):
|
class ReadOnlyCompute(direct.Limited):
|
||||||
"""Read-only Compute API."""
|
"""Read-only Compute API."""
|
||||||
|
|
||||||
_allowed = ['get', 'get_all', 'get_console_output']
|
_allowed = ['get', 'get_all', 'get_console_output']
|
||||||
|
|
||||||
|
# An example of an API that provides a backwards compatibility layer.
|
||||||
|
class VolumeVersionOne(direct.Limited):
|
||||||
|
_allowed = ['create', 'delete', 'update', 'get']
|
||||||
|
|
||||||
|
def create(self, context, size, name):
|
||||||
|
self.proxy.create(context, size, name, description=None)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
utils.default_flagfile()
|
utils.default_flagfile()
|
||||||
@@ -65,10 +73,11 @@ if __name__ == '__main__':
|
|||||||
logging.setup()
|
logging.setup()
|
||||||
|
|
||||||
direct.register_service('compute', compute.API())
|
direct.register_service('compute', compute.API())
|
||||||
direct.register_service('compute-readonly', ReadOnlyCompute(compute.API()))
|
|
||||||
direct.register_service('volume', volume.API())
|
direct.register_service('volume', volume.API())
|
||||||
direct.register_service('network', network.API())
|
direct.register_service('network', network.API())
|
||||||
direct.register_service('reflect', direct.Reflection())
|
direct.register_service('reflect', direct.Reflection())
|
||||||
|
direct.register_service('compute-readonly', ReadOnlyCompute(compute.API()))
|
||||||
|
direct.register_service('volume-v1', VolumeVersionOne(volume.API()))
|
||||||
router = direct.Router()
|
router = direct.Router()
|
||||||
with_json = direct.JsonParamsMiddleware(router)
|
with_json = direct.JsonParamsMiddleware(router)
|
||||||
with_req = direct.PostParamsMiddleware(with_json)
|
with_req = direct.PostParamsMiddleware(with_json)
|
||||||
|
Reference in New Issue
Block a user