Commit 77182fb8 authored by John Giannelos's avatar John Giannelos
Browse files

Implemented compute instance refreshing in registry

parent efa0d1ef
......@@ -8,7 +8,7 @@ from kamaki.clients.compute import ComputeClient
from kamaki.clients.cyclades import CycladesClient
from kamaki.config import Config
from occi.core_model import Mixin
from occi.core_model import Mixin, Resource
from occi.backend import MixinBackend
from occi.extensions.infrastructure import COMPUTE, START, STOP, SUSPEND, RESTART, RESOURCE_TEMPLATE, OS_TEMPLATE
from occi.wsgi import Application
......@@ -46,6 +46,36 @@ class MyAPP(Application):
self.register_backend(FLAVOR, MixinBackend())
def refresh_compute_instances(self, snf):
servers = snf.list_servers()
snf_keys = []
for server in servers:
snf_keys.append(str(server['id']))
resources = self.registry.resources
occi_keys = resources.keys()
diff = [x for x in snf_keys if '/compute/'+x not in occi_keys]
for key in diff:
details = snf.get_server_details(int(key))
flavor = snf.get_flavor_details(details['flavorRef'])
resource = Resource(key, COMPUTE, [])
resource.actions = [START]
resource.attribute = {}
resource.attributes['occi.core.id'] = key
resource.attributes['occi.compute.state'] = 'inactive'
resource.attributes['occi.compute.architecture'] = SERVER_CONFIG['compute_arch']
resource.attributes['occi.compute.cores'] = flavor['cpu']
resource.attributes['occi.compute.memory'] = flavor['ram']
resource.attributes['occi.compute.hostname'] = SERVER_CONFIG['hostname'] % {'id':int(key)}
self.registry.add_resource(key, resource, None)
def __call__(self, environ, response):
conf = Config()
......@@ -54,6 +84,7 @@ class MyAPP(Application):
cyclClient = CycladesClient(conf)
#Up-to-date flavors and images
self.refresh_compute_instances(compClient)
self.refresh_images(compClient, cyclClient)
self.refresh_flavors(compClient, cyclClient)
......@@ -63,7 +94,6 @@ class MyAPP(Application):
def main():
APP = MyAPP(registry = snfRegistry())
COMPUTE_BACKEND = ComputeBackend()
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment