1 from types import StringTypes
2 from django.contrib.auth import authenticate
3 from plstackapi.openstack.manager import OpenStackManager
4 from plstackapi.core.models import Site
7 def _get_sites(filter):
8 if isinstance(filter, StringTypes) and filter.isdigit():
10 if isinstance(filter, int):
11 sites = Site.objects.filter(id=filter)
12 elif isinstance(filter, StringTypes):
13 sites = Site.objects.filter(login_base=filter)
14 elif isinstance(filter, dict):
15 sites = Site.objects.filter(**filter)
20 def add_site(auth, fields):
21 user = authenticate(username=auth.get('username'),
22 password=auth.get('password'))
23 auth['tenant'] = user.site.login_base
26 site.os_manager = OpenStackManager(auth=auth, caller = user)
30 def update_site(auth, id, **fields):
31 user = authenticate(username=auth.get('username'),
32 password=auth.get('password'))
33 auth['tenant'] = user.site.login_base
35 sites = _get_sites(id)
40 site.os_manager = OpenStackManager(auth=auth, caller = user)
44 def delete_site(auth, filter={}):
45 user = authenticate(username=auth.get('username'),
46 password=auth.get('password'))
47 auth['tenant'] = user.site.login_base
48 sites = _get_sites(id)
50 site.os_manager = OpenStackManager(auth=auth, caller = user)
54 def get_sites(auth, filter={}):
55 user = authenticate(username=auth.get('username'),
56 password=auth.get('password'))
57 sites = _get_sites(filter)