Changeset View
Changeset View
Standalone View
Standalone View
tests/functional/resource_func.py
import pykolab | import pykolab | ||||
from pykolab import wap_client | from pykolab import wap_client | ||||
conf = pykolab.getConf() | conf = pykolab.getConf() | ||||
def resource_add(type, cn, members=None, owner=None, **kw): | def resource_add(type, cn, members=None, owner=None, **kw): | ||||
if type == None or type == '': | if type is None or type == '': | ||||
raise Exception | raise Exception | ||||
if cn == None or cn == '': | if cn is None or cn == '': | ||||
raise Exception | raise Exception | ||||
resource_details = { | resource_details = { | ||||
'cn': cn, | 'cn': cn, | ||||
'kolabtargetfolder': "shared/Resources/" + cn + "@example.org", | 'kolabtargetfolder': "shared/Resources/" + cn + "@example.org", | ||||
'uniquemember': members, | 'uniquemember': members, | ||||
'owner': owner, | 'owner': owner, | ||||
'ou': 'ou=resources,dc=example,dc=org' | 'ou': 'ou=resources,dc=example,dc=org' | ||||
} | } | ||||
resource_details.update(kw) | resource_details.update(kw) | ||||
result = wap_client.authenticate(conf.get('ldap', 'bind_dn'), conf.get('ldap', 'bind_pw'), conf.get('kolab', 'primary_domain')) | bind_dn = conf.get('ldap', 'bind_dn') | ||||
bind_pw = conf.get('ldap', 'bind_pw') | |||||
domain = conf.get('kolab', 'primary_domain') | |||||
result = wap_client.authenticate(bind_dn, bind_pw, domain) | |||||
type_id = 0 | type_id = 0 | ||||
resource_types = wap_client.resource_types_list() | resource_types = wap_client.resource_types_list() | ||||
for key in resource_types['list'].keys(): | for key in resource_types['list'].keys(): | ||||
if resource_types['list'][key]['key'] == type: | if resource_types['list'][key]['key'] == type: | ||||
type_id = key | type_id = key | ||||
if type_id == 0: | if type_id == 0: | ||||
raise Exception | raise Exception | ||||
resource_type_info = resource_types['list'][type_id]['attributes'] | resource_type_info = resource_types['list'][type_id]['attributes'] | ||||
params = {} | params = {} | ||||
for attribute in resource_type_info['form_fields'].keys(): | for attribute in resource_type_info['form_fields'].keys(): | ||||
attr_details = resource_type_info['form_fields'][attribute] | attr_details = resource_type_info['form_fields'][attribute] | ||||
if isinstance(attr_details, dict): | if isinstance(attr_details, dict): | ||||
if not attr_details.has_key('optional') or attr_details['optional'] == False or resource_details.has_key(attribute): | if 'optional' not in attr_details or attr_details['optional'] is False or attribute in resource_details: | ||||
params[attribute] = resource_details[attribute] | params[attribute] = resource_details[attribute] | ||||
elif isinstance(attr_details, list): | elif isinstance(attr_details, list): | ||||
params[attribute] = resource_details[attribute] | params[attribute] = resource_details[attribute] | ||||
fvg_params = params | fvg_params = params | ||||
fvg_params['object_type'] = 'resource' | fvg_params['object_type'] = 'resource' | ||||
fvg_params['type_id'] = type_id | fvg_params['type_id'] = type_id | ||||
fvg_params['attributes'] = [attr for attr in resource_type_info['auto_form_fields'].keys() if not attr in params.keys()] | fvg_params['attributes'] = [attr for attr in resource_type_info['auto_form_fields'].keys() if attr not in params] | ||||
result = wap_client.resource_add(params) | result = wap_client.resource_add(params) | ||||
result['dn'] = "cn=" + result['cn'] + ",ou=Resources,dc=example,dc=org" | result['dn'] = "cn=" + result['cn'] + ",ou=Resources,dc=example,dc=org" | ||||
return result | return result | ||||
def purge_resources(): | def purge_resources(): | ||||
wap_client.authenticate(conf.get("ldap", "bind_dn"), conf.get("ldap", "bind_pw"), conf.get('kolab', 'primary_domain')) | bind_dn = conf.get('ldap', 'bind_dn') | ||||
bind_pw = conf.get('ldap', 'bind_pw') | |||||
domain = conf.get('kolab', 'primary_domain') | |||||
result = wap_client.authenticate(bind_dn, bind_pw, domain) | |||||
resources = wap_client.resources_list() | resources = wap_client.resources_list() | ||||
for resource in resources['list']: | for resource in resources['list']: | ||||
wap_client.resource_delete({'id': resource}) | wap_client.resource_delete({'id': resource}) | ||||
#from tests.functional.purge_imap import purge_imap | # from tests.functional.purge_imap import purge_imap | ||||
#purge_imap() | # purge_imap() | ||||