1 from types import StringTypes
2 from django.contrib.auth import authenticate
3 from openstack.manager import OpenStackManager
4 from core.models import Site
6 def _get_sites(filter):
7 if isinstance(filter, StringTypes) and filter.isdigit():
9 if isinstance(filter, int):
10 sites = Site.objects.filter(id=filter)
11 elif isinstance(filter, StringTypes):
12 sites = Site.objects.filter(login_base=filter)
13 elif isinstance(filter, dict):
14 sites = Site.objects.filter(**filter)
19 def add_site(auth, fields):
20 user = authenticate(username=auth.get('username'),
21 password=auth.get('password'))
22 auth['tenant'] = user.site.login_base
25 site.os_manager = OpenStackManager(auth=auth, caller = user)
29 def update_site(auth, id, **fields):
30 user = authenticate(username=auth.get('username'),
31 password=auth.get('password'))
32 auth['tenant'] = user.site.login_base
34 sites = _get_sites(id)
39 site.os_manager = OpenStackManager(auth=auth, caller = user)
43 def delete_site(auth, filter={}):
44 user = authenticate(username=auth.get('username'),
45 password=auth.get('password'))
46 auth['tenant'] = user.site.login_base
47 sites = _get_sites(id)
49 site.os_manager = OpenStackManager(auth=auth, caller = user)
53 def get_sites(auth, filter={}):
54 user = authenticate(username=auth.get('username'),
55 password=auth.get('password'))
56 sites = _get_sites(filter)