X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetstack%2Fcore%2Fapi%2Fsites.py;h=123f13937bd9c61b35606887aabc511e87015d01;hb=732913407cc255ab864e39522585e1b98e654af1;hp=cfca6cf15acea4dd166ef87a19e708eac3950824;hpb=30fd4291ad7fdb809bb8ebbf738c3195436c2455;p=plstackapi.git diff --git a/planetstack/core/api/sites.py b/planetstack/core/api/sites.py index cfca6cf..123f139 100644 --- a/planetstack/core/api/sites.py +++ b/planetstack/core/api/sites.py @@ -1,10 +1,8 @@ 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) @@ -19,42 +17,42 @@ def _get_sites(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