from types import StringTypes
-from openstack.client import OpenStackClient
-from openstack.driver import OpenStackDriver
-from core.api.auth import auth_check
+from django.contrib.auth import authenticate
+from openstack.manager import OpenStackManager
from core.models import Site
-
def _get_sites(filter):
if isinstance(filter, StringTypes) and filter.isdigit():
filter = int(filter)
return sites
def add_site(auth, fields):
- driver = OpenStackDriver(client = auth_check(auth))
+ user = authenticate(username=auth.get('username'),
+ password=auth.get('password'))
+ auth['tenant'] = user.site.login_base
+
site = Site(**fields)
- nova_fields = {'tenant_name': site.login_base,
- 'description': site.name,
- 'enabled': site.enabled}
- tenant = driver.create_tenant(**nova_fields)
- site.tenant_id=tenant.id
+ site.os_manager = OpenStackManager(auth=auth, caller = user)
site.save()
return site
def update_site(auth, id, **fields):
- driver = OpenStackDriver(client = auth_check(auth))
+ user = authenticate(username=auth.get('username'),
+ password=auth.get('password'))
+ auth['tenant'] = user.site.login_base
+
sites = _get_sites(id)
if not sites:
return
site = Site[0]
- nova_fields = {}
- if 'description' in fields:
- nova_fields['description'] = fields['name']
- if 'enabled' in fields:
- nova_fields['enabled'] = fields['enabled']
- driver.update_tenant(site.tenant_id, **nova_fields)
+ site.os_manager = OpenStackManager(auth=auth, caller = user)
site.update(**fields)
return site
def delete_site(auth, filter={}):
- driver = OpenStackDriver(client = auth_check(auth))
+ user = authenticate(username=auth.get('username'),
+ password=auth.get('password'))
+ auth['tenant'] = user.site.login_base
sites = _get_sites(id)
for site in sites:
- driver.delete_tenant(id=site.tenant_id)
+ site.os_manager = OpenStackManager(auth=auth, caller = user)
site.delete()
return 1
def get_sites(auth, filter={}):
- client = auth_check(auth)
+ user = authenticate(username=auth.get('username'),
+ password=auth.get('password'))
sites = _get_sites(filter)
return sites