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, int):
10 roles = Role.objects.filter(id=filter)
11 elif isinstance(filter, StringTypes):
12 roles = Role.objects.filter(role_type=filter)
13 elif isinstance(filter, dict):
14 roles = Role.objects.filter(**filter)
19 def add_role(auth, name):
20 driver = OpenStackDriver(client = auth_check(auth))
21 keystone_role = driver.create_role(name=name)
22 role = Role(role_type=name, role_id=keystone_role.id)
26 def delete_role(auth, filter={}):
27 driver = OpenStackDriver(client = auth_check(auth))
28 roles = _get_roles(filter)
30 driver.delete_role({'id': role.role_id})
34 def get_roles(auth, filter={}):
35 client = auth_check(auth)
36 return _get_roles(filter)