X-Git-Url: https://code.grnet.gr/git/snf-occi/blobdiff_plain/711721d6806197744e7af712523042cbb9d898a9..b7fca2d23658fcfde1faca6b73f6867a05a8e87b:/snfOCCI/snf-occi-server.py diff --git a/snfOCCI/snf-occi-server.py b/snfOCCI/snf-occi-server.py index 09753cc..b24f528 100755 --- a/snfOCCI/snf-occi-server.py +++ b/snfOCCI/snf-occi-server.py @@ -24,18 +24,18 @@ class MyAPP(Application): An OCCI WSGI application. ''' - def __call__(self, environ, response): + def refresh_images(self): snf = ComputeClient(Config()) - - #Up-to-date flavors and images - images = snf.list_images() for image in images: IMAGE_ATTRIBUTES = {'occi.core.id': str(image['id'])} IMAGE = Mixin("http://schemas.ogf.org/occi/infrastructure#", str(image['name']), [OS_TEMPLATE], attributes = IMAGE_ATTRIBUTES) - APP.register_backend(IMAGE, MixinBackend()) + self.register_backend(IMAGE, MixinBackend()) + def refresh_flavors(self): + + snf = ComputeClient(Config()) flavors = snf.list_flavors() for flavor in flavors: details = snf.get_flavor_details(flavor['id']) @@ -45,9 +45,15 @@ class MyAPP(Application): 'occi.storage.size': details['disk'], } FLAVOR = Mixin("http://schemas.ogf.org/occi/infrastructure#", str(flavor['name']), [RESOURCE_TEMPLATE], attributes = FLAVOR_ATTRIBUTES) - APP.register_backend(FLAVOR, MixinBackend()) + self.register_backend(FLAVOR, MixinBackend()) + + + def __call__(self, environ, response): + + #Up-to-date flavors and images - #TODO up-to-date compute instances + self.refresh_images() + self.refresh_flavors() # token will be represented in self.extras return self._call_occi(environ, response, security = None, token = environ['HTTP_AUTH_TOKEN'])