1 from types import StringTypes
2 from plstackapi.openstack.client import OpenStackClient
3 from plstackapi.openstack.driver import OpenStackDriver
4 from plstackapi.core.api.auth import auth_check
5 from plstackapi.core.models import Role
8 def _get_roles(filter):
9 if isinstance(filter, StringTypes) and filter.isdigit():
11 if isinstance(filter, int):
12 roles = Role.objects.filter(id=filter)
13 elif isinstance(filter, StringTypes):
14 roles = Role.objects.filter(role_type=filter)
15 elif isinstance(filter, dict):
16 roles = Role.objects.filter(**filter)
21 def add_role(auth, name):
22 driver = OpenStackDriver(client = auth_check(auth))
23 keystone_role = driver.create_role(name=name)
24 role = Role(role_type=name, role_id=keystone_role.id)
28 def delete_role(auth, filter={}):
29 driver = OpenStackDriver(client = auth_check(auth))
30 roles = _get_roles(filter)
32 driver.delete_role({'id': role.role_id})
36 def get_roles(auth, filter={}):
37 client = auth_check(auth)
38 return _get_roles(filter)