Fixed compute instance naming
authorJohn Giannelos <johngiannelos@gmail.com>
Mon, 30 Apr 2012 14:00:07 +0000 (17:00 +0300)
committerJohn Giannelos <johngiannelos@gmail.com>
Mon, 30 Apr 2012 14:00:07 +0000 (17:00 +0300)
snfOCCI/compute.py
snfOCCI/registry.py
snfOCCI/snf-occi-server.py

index 7d2dc97..e9da682 100644 (file)
@@ -50,7 +50,7 @@ class ComputeBackend(MyBackend):
         conf.set('token',extras['token'])
         snf = ComputeClient(conf)
 
-        vm_name = entity.attributes['occi.compute.hostname']
+        vm_name = entity.attributes['occi.core.title']
         info = snf.create_server(vm_name, flavor_id, image_id)
         entity.attributes['occi.core.id'] = str(info['id'])
         entity.attributes['occi.compute.architecture'] = SERVER_CONFIG['compute_arch']
index 767be4b..d797851 100644 (file)
@@ -1,4 +1,11 @@
+from kamaki.clients.compute import ComputeClient
+from kamaki.clients.cyclades import CycladesClient
+from kamaki.config  import Config
+
 from occi import registry
+from occi.core_model import Mixin
+from occi.backend import MixinBackend
+from occi.extensions.infrastructure import RESOURCE_TEMPLATE, OS_TEMPLATE
 
 class snfRegistry(registry.NonePersistentRegistry):
 
index 09753cc..b24f528 100755 (executable)
@@ -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'])