update get_slices()
[plstackapi.git] / plstackapi / core / api / slices.py
index 731fa75..eda2249 100644 (file)
@@ -1,17 +1,20 @@
 import re
+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 Slice
 from plstackapi.core.api.sites import _get_sites
 
-
 def _get_slices(filter):
+    if isinstance(filter, StringTypes) and filter.isdigit():
+        filter = int(filter)
     if isinstance(filter, int):
         slices = Slice.objects.filter(id=filter)
     elif isinstance(filter, StringTypes):
         slices = Slice.objects.filter(name=filter)
-    elif isinstance(filer, dict):
+    elif isinstance(filter, dict):
         slices = Slice.objects.filter(**filter)
     else:
         slices = []
@@ -20,9 +23,11 @@ def _get_slices(filter):
  
 def add_slice(auth, fields):
     driver = OpenStackDriver(client = auth_check(auth))
-    sites = _get_sites(fields.get('site')) 
+    login_base = fields['name'][:fields['name'].find('_')]
+    sites = _get_sites(login_base) 
     if sites: fields['site'] = sites[0]     
     slice = Slice(**fields)
+   
     # create tenant
     nova_fields = {'tenant_name': slice.name,
                    'description': slice.description,
@@ -69,12 +74,15 @@ def delete_slice(auth, filter={}):
     driver = OpenStackDriver(client = auth_check(auth))   
     slices = _get_slices(id)
     for slice in slices:
+        driver.delete_network(slice.network_id)
+        driver.delete_router(slice.router_id)
         driver.delete_slice(id=slice.tenant_id) 
         slice.delete()
     return 1
 
 def get_slices(auth, filter={}):
-    client = auth_check(auth)
+    user = authenticate(username=auth.get('username'),
+                        password=auth.get('password'))
     if 'site' in filter:
         sites = _get_sites(filter.get('site'))
         if sites: filter['site'] = sites[0]