Changeset View
Changeset View
Standalone View
Standalone View
pykolab/wap_client/__init__.py
Show First 20 Lines • Show All 64 Lines • ▼ Show 20 Lines | post = json.dumps( | ||||
} | } | ||||
) | ) | ||||
response = request('POST', "system.authenticate", post=post) | response = request('POST', "system.authenticate", post=post) | ||||
if not response: | if not response: | ||||
return False | return False | ||||
if response.has_key('session_token'): | if 'session_token' in response: | ||||
session_id = response['session_token'] | session_id = response['session_token'] | ||||
return True | return True | ||||
def connect(uri=None): | def connect(uri=None): | ||||
global conn, API_SSL, API_PORT, API_HOSTNAME, API_BASE | global conn, API_SSL, API_PORT, API_HOSTNAME, API_BASE | ||||
if not uri == None: | if not uri == None: | ||||
result = urlparse(uri) | result = urlparse(uri) | ||||
▲ Show 20 Lines • Show All 101 Lines • ▼ Show 20 Lines | post = json.dumps( | ||||
} | } | ||||
) | ) | ||||
return request('POST', 'form_value.select_options', post=post) | return request('POST', 'form_value.select_options', post=post) | ||||
def get_group_input(): | def get_group_input(): | ||||
group_types = group_types_list() | group_types = group_types_list() | ||||
if len(group_types.keys()) > 1: | if len(group_types) > 1: | ||||
for key in group_types.keys(): | for key in group_types: | ||||
if not key == "status": | if not key == "status": | ||||
print "%s) %s" % (key,group_types[key]['name']) | print("%s) %s" % (key,group_types[key]['name'])) | ||||
group_type_id = utils.ask_question("Please select the group type") | group_type_id = utils.ask_question("Please select the group type") | ||||
elif len(group_types.keys()) > 0: | elif len(group_types) > 0: | ||||
print "Automatically selected the only group type available" | print("Automatically selected the only group type available") | ||||
group_type_id = group_types.keys()[0] | group_type_id = group_types.keys()[0] | ||||
else: | else: | ||||
print "No group types available" | print("No group types available") | ||||
sys.exit(1) | sys.exit(1) | ||||
if group_types.has_key(group_type_id): | if group_type_id in group_types: | ||||
group_type_info = group_types[group_type_id]['attributes'] | group_type_info = group_types[group_type_id]['attributes'] | ||||
else: | else: | ||||
print "No such group type" | print("No such group type") | ||||
sys.exit(1) | sys.exit(1) | ||||
params = { | params = { | ||||
'group_type_id': group_type_id | 'group_type_id': group_type_id | ||||
} | } | ||||
for attribute in group_type_info['form_fields'].keys(): | for attribute in group_type_info['form_fields']: | ||||
params[attribute] = utils.ask_question(attribute) | params[attribute] = utils.ask_question(attribute) | ||||
for attribute in group_type_info['auto_form_fields'].keys(): | for attribute in group_type_info['auto_form_fields']: | ||||
exec("retval = group_form_value_generate_%s(params)" % (attribute)) | exec("retval = group_form_value_generate_%s(params)" % (attribute)) | ||||
params[attribute] = retval[attribute] | params[attribute] = retval[attribute] | ||||
return params | return params | ||||
def get_user_input(): | def get_user_input(): | ||||
user_types = user_types_list() | user_types = user_types_list() | ||||
if user_types['count'] > 1: | if user_types['count'] > 1: | ||||
print "" | print("") | ||||
for key in user_types['list'].keys(): | for key in user_types['list']: | ||||
if not key == "status": | if not key == "status": | ||||
print "%s) %s" % (key,user_types['list'][key]['name']) | print("%s) %s" % (key,user_types['list'][key]['name'])) | ||||
print "" | print("") | ||||
user_type_id = utils.ask_question("Please select the user type") | user_type_id = utils.ask_question("Please select the user type") | ||||
elif user_types['count'] > 0: | elif user_types['count'] > 0: | ||||
print "Automatically selected the only user type available" | print("Automatically selected the only user type available") | ||||
user_type_id = user_types['list'].keys()[0] | user_type_id = user_types['list'].keys()[0] | ||||
else: | else: | ||||
print "No user types available" | print("No user types available") | ||||
sys.exit(1) | sys.exit(1) | ||||
if user_types['list'].has_key(user_type_id): | if user_type_id in user_types['list']: | ||||
user_type_info = user_types['list'][user_type_id]['attributes'] | user_type_info = user_types['list'][user_type_id]['attributes'] | ||||
else: | else: | ||||
print "No such user type" | print("No such user type") | ||||
sys.exit(1) | sys.exit(1) | ||||
params = { | params = { | ||||
'object_type': 'user', | 'object_type': 'user', | ||||
'type_id': user_type_id | 'type_id': user_type_id | ||||
} | } | ||||
must_attrs = [] | must_attrs = [] | ||||
may_attrs = [] | may_attrs = [] | ||||
for attribute in user_type_info['form_fields'].keys(): | for attribute in user_type_info['form_fields']: | ||||
if isinstance(user_type_info['form_fields'][attribute], dict): | if isinstance(user_type_info['form_fields'][attribute], dict): | ||||
if user_type_info['form_fields'][attribute].has_key('optional') and user_type_info['form_fields'][attribute]['optional']: | if 'optional' in user_type_info['form_fields'][attribute] and user_type_info['form_fields'][attribute]['optional']: | ||||
may_attrs.append(attribute) | may_attrs.append(attribute) | ||||
else: | else: | ||||
must_attrs.append(attribute) | must_attrs.append(attribute) | ||||
else: | else: | ||||
must_attrs.append(attribute) | must_attrs.append(attribute) | ||||
for attribute in must_attrs: | for attribute in must_attrs: | ||||
if isinstance(user_type_info['form_fields'][attribute], dict) and \ | if isinstance(user_type_info['form_fields'][attribute], dict) and \ | ||||
user_type_info['form_fields'][attribute].has_key('type'): | 'type' in user_type_info['form_fields'][attribute]: | ||||
if user_type_info['form_fields'][attribute]['type'] == 'select': | if user_type_info['form_fields'][attribute]['type'] == 'select': | ||||
if not user_type_info['form_fields'][attribute].has_key('values'): | if 'values' not in user_type_info['form_fields'][attribute]: | ||||
attribute_values = form_value_select_options('user', user_type_id, attribute) | attribute_values = form_value_select_options('user', user_type_id, attribute) | ||||
default = '' | default = '' | ||||
if attribute_values[attribute].has_key('default'): | if 'default' in attribute_values[attribute]: | ||||
default = attribute_values[attribute]['default'] | default = attribute_values[attribute]['default'] | ||||
params[attribute] = utils.ask_menu( | params[attribute] = utils.ask_menu( | ||||
"Choose the %s value" % (attribute), | "Choose the %s value" % (attribute), | ||||
attribute_values[attribute]['list'], | attribute_values[attribute]['list'], | ||||
default=default | default=default | ||||
) | ) | ||||
else: | else: | ||||
default = '' | default = '' | ||||
if user_type_info['form_fields'][attribute].has_key('default'): | if 'default' in user_type_info['form_fields'][attribute]: | ||||
default = user_type_info['form_fields'][attribute]['default'] | default = user_type_info['form_fields'][attribute]['default'] | ||||
params[attribute] = utils.ask_menu( | params[attribute] = utils.ask_menu( | ||||
"Choose the %s value" % (attribute), | "Choose the %s value" % (attribute), | ||||
user_type_info['form_fields'][attribute]['values'], | user_type_info['form_fields'][attribute]['values'], | ||||
default=default | default=default | ||||
) | ) | ||||
else: | else: | ||||
params[attribute] = utils.ask_question(attribute) | params[attribute] = utils.ask_question(attribute) | ||||
else: | else: | ||||
params[attribute] = utils.ask_question(attribute) | params[attribute] = utils.ask_question(attribute) | ||||
for attribute in user_type_info['fields'].keys(): | for attribute in user_type_info['fields']: | ||||
params[attribute] = user_type_info['fields'][attribute] | params[attribute] = user_type_info['fields'][attribute] | ||||
exec("retval = user_form_value_generate(params)") | exec("retval = user_form_value_generate(params)") | ||||
print retval | print(retval) | ||||
return params | return params | ||||
def group_add(params=None): | def group_add(params=None): | ||||
if params == None: | if params == None: | ||||
params = get_group_input() | params = get_group_input() | ||||
post = json.dumps(params) | post = json.dumps(params) | ||||
Show All 16 Lines | def group_form_value_generate_mail(params=None): | ||||
params = json.dumps(params) | params = json.dumps(params) | ||||
return request('POST', 'group_form_value.generate_mail', params) | return request('POST', 'group_form_value.generate_mail', params) | ||||
def group_find(params=None): | def group_find(params=None): | ||||
post = { 'search': { 'params': {} } } | post = { 'search': { 'params': {} } } | ||||
for (k,v) in params.iteritems(): | for (k,v) in params.items(): | ||||
post['search']['params'][k] = { 'value': v, 'type': 'exact' } | post['search']['params'][k] = { 'value': v, 'type': 'exact' } | ||||
return request('POST', 'group.find', post=json.dumps(post)) | return request('POST', 'group.find', post=json.dumps(post)) | ||||
def group_info(group=None): | def group_info(group=None): | ||||
if group == None: | if group == None: | ||||
group = utils.ask_question("group DN") | group = utils.ask_question("group DN") | ||||
return request('GET', 'group.info', get={ 'id': group }) | return request('GET', 'group.info', get={ 'id': group }) | ||||
Show All 17 Lines | def ou_delete(params={}): | ||||
return request('POST', 'ou.delete', post=json.dumps(params)) | return request('POST', 'ou.delete', post=json.dumps(params)) | ||||
def ou_edit(params={}): | def ou_edit(params={}): | ||||
return request('POST', 'ou.edit', post=json.dumps(params)) | return request('POST', 'ou.edit', post=json.dumps(params)) | ||||
def ou_find(params=None): | def ou_find(params=None): | ||||
post = { 'search': { 'params': {} } } | post = { 'search': { 'params': {} } } | ||||
for (k,v) in params.iteritems(): | for (k,v) in params.items(): | ||||
post['search']['params'][k] = { 'value': v, 'type': 'exact' } | post['search']['params'][k] = { 'value': v, 'type': 'exact' } | ||||
return request('POST', 'ou.find', post=json.dumps(post)) | return request('POST', 'ou.find', post=json.dumps(post)) | ||||
def ou_info(ou): | def ou_info(ou): | ||||
_params = { 'id': ou } | _params = { 'id': ou } | ||||
ou = request('GET', 'ou.info', get=_params) | ou = request('GET', 'ou.info', get=_params) | ||||
▲ Show 20 Lines • Show All 48 Lines • ▼ Show 20 Lines | def request_raw(method, api_uri, get=None, post=None, headers={}, isretry=False): | ||||
# retry with a new connection | # retry with a new connection | ||||
if reconnect: | if reconnect: | ||||
disconnect() | disconnect() | ||||
return request_raw(method, api_uri, get, post, headers, True) | return request_raw(method, api_uri, get, post, headers, True) | ||||
try: | try: | ||||
response_data = json.loads(data) | response_data = json.loads(data) | ||||
except ValueError, e: | except ValueError: | ||||
# Some data is not JSON | # Some data is not JSON | ||||
log.error(_("Response data is not JSON")) | log.error(_("Response data is not JSON")) | ||||
return response_data | return response_data | ||||
def resource_add(params=None): | def resource_add(params=None): | ||||
if params == None: | if params == None: | ||||
params = get_user_input() | params = get_user_input() | ||||
return request('POST', 'resource.add', post=json.dumps(params)) | return request('POST', 'resource.add', post=json.dumps(params)) | ||||
def resource_delete(params=None): | def resource_delete(params=None): | ||||
if params == None: | if params == None: | ||||
params = { | params = { | ||||
'id': utils.ask_question("Resource DN to delete", "resource") | 'id': utils.ask_question("Resource DN to delete", "resource") | ||||
} | } | ||||
return request('POST', 'resource.delete', post=json.dumps(params)) | return request('POST', 'resource.delete', post=json.dumps(params)) | ||||
def resource_find(params=None): | def resource_find(params=None): | ||||
post = { 'search': { 'params': {} } } | post = { 'search': { 'params': {} } } | ||||
for (k,v) in params.iteritems(): | for (k,v) in params.items(): | ||||
post['search']['params'][k] = { 'value': v, 'type': 'exact' } | post['search']['params'][k] = { 'value': v, 'type': 'exact' } | ||||
return request('POST', 'resource.find', post=json.dumps(post)) | return request('POST', 'resource.find', post=json.dumps(post)) | ||||
def resource_info(resource=None): | def resource_info(resource=None): | ||||
if resource == None: | if resource == None: | ||||
resource = utils.ask_question("Resource DN") | resource = utils.ask_question("Resource DN") | ||||
return request('GET', 'resource.info', get={ 'id': resource }) | return request('GET', 'resource.info', get={ 'id': resource }) | ||||
Show All 21 Lines | |||||
def role_delete(params=None): | def role_delete(params=None): | ||||
if params == None: | if params == None: | ||||
role_name = utils.ask_question("Role name") | role_name = utils.ask_question("Role name") | ||||
role = role_find_by_attribute({'cn': role_name}) | role = role_find_by_attribute({'cn': role_name}) | ||||
params = { | params = { | ||||
'role': role.keys()[0] | 'role': role.keys()[0] | ||||
} | } | ||||
if not params.has_key('role'): | if 'role' not in params: | ||||
role = role_find_by_attribute(params) | role = role_find_by_attribute(params) | ||||
params = { | params = { | ||||
'role': role.keys()[0] | 'role': role.keys()[0] | ||||
} | } | ||||
post = json.dumps(params) | post = json.dumps(params) | ||||
return request('POST', 'role.delete', post=post) | return request('POST', 'role.delete', post=post) | ||||
▲ Show 20 Lines • Show All 77 Lines • ▼ Show 20 Lines | if user == None: | ||||
} | } | ||||
else: | else: | ||||
get = { | get = { | ||||
'id': user | 'id': user | ||||
} | } | ||||
user_info = request('GET', 'user.info', get=get) | user_info = request('GET', 'user.info', get=get) | ||||
for attribute in attributes.keys(): | for attribute in attributes: | ||||
user_info[attribute] = attributes[attribute] | user_info[attribute] = attributes[attribute] | ||||
post = json.dumps(user_info) | post = json.dumps(user_info) | ||||
user_edit = request('POST', 'user.edit', get=get, post=post) | user_edit = request('POST', 'user.edit', get=get, post=post) | ||||
return user_edit | return user_edit | ||||
def user_find(attribs=None): | def user_find(attribs=None): | ||||
if attribs == None: | if attribs == None: | ||||
post = { | post = { | ||||
'search': { | 'search': { | ||||
'params': { | 'params': { | ||||
utils.ask_question("Attribute") : { | utils.ask_question("Attribute") : { | ||||
Lint: PEP8 E203: whitespace before ':' | |||||
'value': utils.ask_question("value"), | 'value': utils.ask_question("value"), | ||||
'type': 'exact' | 'type': 'exact' | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
else: | else: | ||||
post = { 'search': { 'params': {} } } | post = { 'search': { 'params': {} } } | ||||
for (k,v) in attribs.iteritems(): | for (k,v) in attribs.items(): | ||||
post['search']['params'][k] = { 'value': v, 'type': 'exact' } | post['search']['params'][k] = { 'value': v, 'type': 'exact' } | ||||
post = json.dumps(post) | post = json.dumps(post) | ||||
user = request('POST', 'user.find', post=post) | user = request('POST', 'user.find', post=post) | ||||
return user | return user | ||||
Show All 35 Lines |
whitespace before ':'