X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=plstackapi%2Fcore%2Fapi%2Fslivers.py;h=cc45b8d23e5d562a6f1b7bb2b0543780a334625b;hb=79748614aac46debf940cc3a558d8816d9f683bd;hp=0fcc191a9d17efcf03711fd431fe7da3fd91739e;hpb=771f4b90f36fadc1f72b3311eb861e3d22654d3a;p=plstackapi.git diff --git a/plstackapi/core/api/slivers.py b/plstackapi/core/api/slivers.py index 0fcc191..cc45b8d 100644 --- a/plstackapi/core/api/slivers.py +++ b/plstackapi/core/api/slivers.py @@ -1,9 +1,9 @@ from types import StringTypes +from django.contrib.auth import authenticate from plstackapi.openstack.client import OpenStackClient from plstackapi.openstack.driver import OpenStackDriver from plstackapi.core.api.auth import auth_check from plstackapi.core.models import Sliver, Slice -from plstackapi.core.api.flavors import _get_flavors from plstackapi.core.api.images import _get_images from plstackapi.core.api.keys import _get_keys from plstackapi.core.api.slices import _get_slices @@ -26,30 +26,20 @@ def _get_slivers(filter): def add_sliver(auth, fields): driver = OpenStackDriver(client = auth_check(auth)) - - flavors = _get_flavors(fields.get('flavor')) - if flavors: fields['flavor'] = flavors[0] + images = _get_images(fields.get('image')) if images: fields['image'] = images[0] - keys = _get_keys(fields.get('get')) + keys = _get_keys(fields.get('key')) if keys: fields['key'] = keys[0] slices = _get_slices(fields.get('slice')) - if slices: fields['slice'] = slices[0] + if slices: + fields['slice'] = slices[0] deployment_networks = _get_deployment_networks(fields.get('deploymentNetwork')) if deployment_networks: fields['deploymentNetwork'] = deployment_networks[0] nodes = _get_nodes(fields.get('node')) - if nodes: fields['node'] = nodess[0] - + if nodes: fields['node'] = nodes[0] sliver = Sliver(**fields) - # create quantum sliver - sliver = driver.spawn_instance(name=sliver.name, - key_name = sliver.key.name, - flavor=sliver.flavor.name, - image = sliver.image.name, - hostname = sliver.node.hostname ) - - sliver.instance_id=sliver.id - + sliver.driver = driver sliver.save() return sliver @@ -60,12 +50,13 @@ def delete_sliver(auth, filter={}): driver = OpenStackDriver(client = auth_check(auth)) slivers = _get_slivers(filter) for sliver in slivers: - driver.destroy_instance(sliver.sliver_id) + sliver.driver = driver sliver.delete() return 1 def get_slivers(auth, filter={}): - client = auth_check(auth) + user = authenticate(username=auth.get('username'), + password=auth.get('password')) if 'slice' in filter: slices = _get_slices(filter.get('slice')) if slices: filter['slice'] = slices[0]