1 from plstackapi.openstack.client import OpenStackClient
2 from plstackapi.openstack.driver import OpenStackDriver
3 from plstackapi.core.api.auth import auth_check
4 from plstackapi.core.models import Site
7 def _get_sites(filter):
8 if isinstance(filter, int):
9 sites = Site.objects.filter(id=filter)
10 elif isinstance(filter, StringTypes):
11 sites = Site.objects.filter(name=filter)
12 elif isinstance(filer, dict):
13 sites = Site.objects.filter(**filter)
18 def add_site(auth, fields):
19 driver = OpenStackDriver(client = auth_check(auth))
21 nova_fields = {'tenant_name': site.login_base,
22 'description': site.name,
23 'enabled': site.enabled}
24 tenant = driver.create_tenant(**nova_fields)
25 site.tenant_id=tenant.id
29 def update_site(auth, id, **fields):
30 driver = OpenStackDriver(client = auth_check(auth))
31 sites = _get_sites(id)
37 if 'description' in fields:
38 nova_fields['description'] = fields['name']
39 if 'enabled' in fields:
40 nova_fields['enabled'] = fields['enabled']
41 driver.update_tenant(site.tenant_id, **nova_fields)
45 def delete_site(auth, filter={}):
46 driver = OpenStackDriver(client = auth_check(auth))
47 sites = _get_sites(id)
49 driver.delete_tenant(id=site.tenant_id)
53 def get_sites(auth, filter={}):
54 client = auth_check(auth)
55 sites = _get_sites(id)