1
0
mirror of https://github.com/haiwen/seafile-server.git synced 2025-04-28 03:20:10 +00:00
seafile-server/python/seafile/rpcclient.py
feiniks 5899f110b9
Add online gc (#706)
* Add online gc core

* Add check gc when update repo

* Go add check gc when update repo

* Add gc unit test

* Support set pwd_hash for gc and fsck

* Optimize to check if block exists

---------

Co-authored-by: 杨赫然 <heran.yang@seafile.com>
2024-10-24 18:34:16 +08:00

1102 lines
33 KiB
Python

from pysearpc import searpc_func, SearpcError, NamedPipeClient
class SeafServerThreadedRpcClient(NamedPipeClient):
def __init__(self, pipe_path):
NamedPipeClient.__init__(self, pipe_path, "seafserv-threaded-rpcserver")
# repo manipulation
@searpc_func("string", ["string", "string", "string", "string", "int", "string", "string"])
def seafile_create_repo(name, desc, owner_email, passwd, enc_version, pwd_hash_algo, pwd_hash_params):
pass
create_repo = seafile_create_repo
@searpc_func("string", ["string", "string", "string", "string", "string", "string", "string", "int", "string", "string", "string"])
def seafile_create_enc_repo(repo_id, name, desc, owner_email, magic, random_key, salt, enc_version, pwd_hash, pwd_hash_algo, pwd_hash_params):
pass
create_enc_repo = seafile_create_enc_repo
@searpc_func("objlist", ["string", "int", "int"])
def seafile_get_repos_by_id_prefix(id_prefix, start, limit):
pass
get_repos_by_id_prefix = seafile_get_repos_by_id_prefix
@searpc_func("object", ["string"])
def seafile_get_repo(repo_id):
pass
get_repo = seafile_get_repo
@searpc_func("int", ["string"])
def seafile_destroy_repo(repo_id):
pass
remove_repo = seafile_destroy_repo
@searpc_func("objlist", ["int", "int", "string", "int"])
def seafile_get_repo_list(start, limit, order_by, ret_virt_repo):
pass
get_repo_list = seafile_get_repo_list
@searpc_func("int64", [])
def seafile_count_repos():
pass
count_repos = seafile_count_repos
@searpc_func("int", ["string", "string", "string", "string"])
def seafile_edit_repo(repo_id, name, description, user):
pass
edit_repo = seafile_edit_repo
@searpc_func("int", ["string", "string"])
def seafile_is_repo_owner(user_id, repo_id):
pass
is_repo_owner = seafile_is_repo_owner
@searpc_func("int", ["string", "string"])
def seafile_set_repo_owner(email, repo_id):
pass
set_repo_owner = seafile_set_repo_owner
@searpc_func("string", ["string"])
def seafile_get_repo_owner(repo_id):
pass
get_repo_owner = seafile_get_repo_owner
@searpc_func("objlist", [])
def seafile_get_orphan_repo_list():
pass
get_orphan_repo_list = seafile_get_orphan_repo_list
@searpc_func("objlist", ["string", "int", "int", "int"])
def seafile_list_owned_repos(user_id, ret_corrupted, start, limit):
pass
list_owned_repos = seafile_list_owned_repos
@searpc_func("objlist", ["string"])
def seafile_search_repos_by_name(name):
pass
search_repos_by_name = seafile_search_repos_by_name
@searpc_func("int64", ["string"])
def seafile_server_repo_size(repo_id):
pass
server_repo_size = seafile_server_repo_size
@searpc_func("int", ["string", "string"])
def seafile_repo_set_access_property(repo_id, role):
pass
repo_set_access_property = seafile_repo_set_access_property
@searpc_func("string", ["string"])
def seafile_repo_query_access_property(repo_id):
pass
repo_query_access_property = seafile_repo_query_access_property
@searpc_func("int", ["string", "string", "string"])
def seafile_revert_on_server(repo_id, commit_id, user_name):
pass
revert_on_server = seafile_revert_on_server
@searpc_func("objlist", ["string", "string", "string"])
def seafile_diff():
pass
get_diff = seafile_diff
@searpc_func("int", ["string", "string", "string", "string", "string"])
def seafile_post_file(repo_id, tmp_file_path, parent_dir, filename, user):
pass
post_file = seafile_post_file
@searpc_func("int", ["string", "string", "string", "string"])
def seafile_post_dir(repo_id, parent_dir, new_dir_name, user):
pass
post_dir = seafile_post_dir
@searpc_func("int", ["string", "string", "string", "string"])
def seafile_post_empty_file(repo_id, parent_dir, filename, user):
pass
post_empty_file = seafile_post_empty_file
@searpc_func("int", ["string", "string", "string", "string", "string", "string"])
def seafile_put_file(repo_id, tmp_file_path, parent_dir, filename, user, head_id):
pass
put_file = seafile_put_file
@searpc_func("int", ["string", "string", "string", "string"])
def seafile_del_file(repo_id, parent_dir, filename, user):
pass
del_file = seafile_del_file
@searpc_func("int", ["string", "string", "string"])
def seafile_batch_del_files(repo_id, filepaths, user):
pass
batch_del_files = seafile_batch_del_files
@searpc_func("object", ["string", "string", "string", "string", "string", "string", "string", "int", "int"])
def seafile_copy_file(src_repo, src_dir, src_filename, dst_repo, dst_dir, dst_filename, user, need_progress, synchronous):
pass
copy_file = seafile_copy_file
@searpc_func("object", ["string", "string", "string", "string", "string", "string", "int", "string", "int", "int"])
def seafile_move_file(src_repo, src_dir, src_filename, dst_repo, dst_dir, dst_filename, replace, user, need_progress, synchronous):
pass
move_file = seafile_move_file
@searpc_func("int", ["string", "string", "string", "string", "string"])
def seafile_rename_file(repo_id, parent_dir, oldname, newname, user):
pass
rename_file = seafile_rename_file
@searpc_func("int", ["string", "string"])
def seafile_is_valid_filename(repo_id, filename):
pass
is_valid_filename = seafile_is_valid_filename
@searpc_func("object", ["string", "int", "string"])
def seafile_get_commit(repo_id, version, commit_id):
pass
get_commit = seafile_get_commit
@searpc_func("string", ["string", "string", "int", "int"])
def seafile_list_file_blocks(repo_id, file_id, offset, limit):
pass
list_file_blocks = seafile_list_file_blocks
@searpc_func("objlist", ["string", "string", "int", "int"])
def seafile_list_dir(repo_id, dir_id, offset, limit):
pass
list_dir = seafile_list_dir
@searpc_func("objlist", ["string", "string", "sting", "string", "int", "int"])
def list_dir_with_perm(repo_id, dir_path, dir_id, user, offset, limit):
pass
@searpc_func("int64", ["string", "int", "string"])
def seafile_get_file_size(store_id, version, file_id):
pass
get_file_size = seafile_get_file_size
@searpc_func("int64", ["string", "int", "string"])
def seafile_get_dir_size(store_id, version, dir_id):
pass
get_dir_size = seafile_get_dir_size
@searpc_func("objlist", ["string", "string", "string"])
def seafile_list_dir_by_path(repo_id, commit_id, path):
pass
list_dir_by_path = seafile_list_dir_by_path
@searpc_func("string", ["string", "string", "string"])
def seafile_get_dir_id_by_commit_and_path(repo_id, commit_id, path):
pass
get_dir_id_by_commit_and_path = seafile_get_dir_id_by_commit_and_path
@searpc_func("string", ["string", "string"])
def seafile_get_file_id_by_path(repo_id, path):
pass
get_file_id_by_path = seafile_get_file_id_by_path
@searpc_func("string", ["string", "string"])
def seafile_get_dir_id_by_path(repo_id, path):
pass
get_dir_id_by_path = seafile_get_dir_id_by_path
@searpc_func("string", ["string", "string", "string"])
def seafile_get_file_id_by_commit_and_path(repo_id, commit_id, path):
pass
get_file_id_by_commit_and_path = seafile_get_file_id_by_commit_and_path
@searpc_func("object", ["string", "string"])
def seafile_get_dirent_by_path(repo_id, commit_id, path):
pass
get_dirent_by_path = seafile_get_dirent_by_path
@searpc_func("objlist", ["string", "string", "string", "int"])
def seafile_list_file_revisions(repo_id, commit_id, path, limit):
pass
list_file_revisions = seafile_list_file_revisions
@searpc_func("objlist", ["string", "string"])
def seafile_calc_files_last_modified(repo_id, parent_dir, limit):
pass
calc_files_last_modified = seafile_calc_files_last_modified
@searpc_func("int", ["string", "string", "string", "string"])
def seafile_revert_file(repo_id, commit_id, path, user):
pass
revert_file = seafile_revert_file
@searpc_func("string", ["string", "string"])
def seafile_check_repo_blocks_missing(repo_id, blklist):
pass
check_repo_blocks_missing = seafile_check_repo_blocks_missing
@searpc_func("int", ["string", "string", "string", "string"])
def seafile_revert_dir(repo_id, commit_id, path, user):
pass
revert_dir = seafile_revert_dir
@searpc_func("objlist", ["string", "int", "string", "string", "int"])
def get_deleted(repo_id, show_days, path, scan_stat, limit):
pass
# share repo to user
@searpc_func("string", ["string", "string", "string", "string"])
def seafile_add_share(repo_id, from_email, to_email, permission):
pass
add_share = seafile_add_share
@searpc_func("objlist", ["string", "string", "int", "int"])
def seafile_list_share_repos(email, query_col, start, limit):
pass
list_share_repos = seafile_list_share_repos
@searpc_func("objlist", ["string", "string"])
def seafile_list_repo_shared_to(from_user, repo_id):
pass
list_repo_shared_to = seafile_list_repo_shared_to
@searpc_func("string", ["string", "string", "string", "string", "string", "string"])
def share_subdir_to_user(repo_id, path, owner, share_user, permission, passwd):
pass
@searpc_func("int", ["string", "string", "string", "string"])
def unshare_subdir_for_user(repo_id, path, owner, share_user):
pass
@searpc_func("int", ["string", "string", "string", "string", "string"])
def update_share_subdir_perm_for_user(repo_id, path, owner, share_user, permission):
pass
@searpc_func("object", ["string", "string", "string", "int"])
def get_shared_repo_by_path(repo_id, path, shared_to, is_org):
pass
@searpc_func("objlist", ["int", "string", "string", "int", "int"])
def seafile_list_org_share_repos(org_id, email, query_col, start, limit):
pass
list_org_share_repos = seafile_list_org_share_repos
@searpc_func("int", ["string", "string", "string"])
def seafile_remove_share(repo_id, from_email, to_email):
pass
remove_share = seafile_remove_share
@searpc_func("int", ["string", "string", "string", "string"])
def set_share_permission(repo_id, from_email, to_email, permission):
pass
# share repo to group
@searpc_func("int", ["string", "int", "string", "string"])
def seafile_group_share_repo(repo_id, group_id, user_name, permisson):
pass
group_share_repo = seafile_group_share_repo
@searpc_func("int", ["string", "int", "string"])
def seafile_group_unshare_repo(repo_id, group_id, user_name):
pass
group_unshare_repo = seafile_group_unshare_repo
@searpc_func("string", ["string"])
def seafile_get_shared_groups_by_repo(repo_id):
pass
get_shared_groups_by_repo=seafile_get_shared_groups_by_repo
@searpc_func("objlist", ["string", "string"])
def seafile_list_repo_shared_group(from_user, repo_id):
pass
list_repo_shared_group = seafile_list_repo_shared_group
@searpc_func("object", ["string", "string", "int", "int"])
def get_group_shared_repo_by_path(repo_id, path, group_id, is_org):
pass
@searpc_func("objlist", ["string"])
def get_group_repos_by_user (user):
pass
@searpc_func("objlist", ["string", "int"])
def get_org_group_repos_by_user (user, org_id):
pass
@searpc_func("objlist", ["string", "string", "string"])
def seafile_get_shared_users_for_subdir(repo_id, path, from_user):
pass
get_shared_users_for_subdir = seafile_get_shared_users_for_subdir
@searpc_func("objlist", ["string", "string", "string"])
def seafile_get_shared_groups_for_subdir(repo_id, path, from_user):
pass
get_shared_groups_for_subdir = seafile_get_shared_groups_for_subdir
@searpc_func("string", ["string", "string", "string", "int", "string", "string"])
def share_subdir_to_group(repo_id, path, owner, share_group, permission, passwd):
pass
@searpc_func("int", ["string", "string", "string", "int"])
def unshare_subdir_for_group(repo_id, path, owner, share_group):
pass
@searpc_func("int", ["string", "string", "string", "int", "string"])
def update_share_subdir_perm_for_group(repo_id, path, owner, share_group, permission):
pass
@searpc_func("string", ["int"])
def seafile_get_group_repoids(group_id):
pass
get_group_repoids = seafile_get_group_repoids
@searpc_func("objlist", ["int"])
def seafile_get_repos_by_group(group_id):
pass
get_repos_by_group = seafile_get_repos_by_group
@searpc_func("objlist", ["string"])
def get_group_repos_by_owner(user_name):
pass
@searpc_func("string", ["string"])
def get_group_repo_owner(repo_id):
pass
@searpc_func("int", ["int", "string"])
def seafile_remove_repo_group(group_id, user_name):
pass
remove_repo_group = seafile_remove_repo_group
@searpc_func("int", ["int", "string", "string"])
def set_group_repo_permission(group_id, repo_id, permission):
pass
# branch and commit
@searpc_func("objlist", ["string"])
def seafile_branch_gets(repo_id):
pass
branch_gets = seafile_branch_gets
@searpc_func("objlist", ["string", "int", "int"])
def seafile_get_commit_list(repo_id, offset, limit):
pass
get_commit_list = seafile_get_commit_list
###### Token ####################
@searpc_func("int", ["string", "string", "string"])
def seafile_set_repo_token(repo_id, email, token):
pass
set_repo_token = seafile_set_repo_token
@searpc_func("string", ["string", "string"])
def seafile_get_repo_token_nonnull(repo_id, email):
"""Get the token of the repo for the email user. If the token does not
exist, a new one is generated and returned.
"""
pass
get_repo_token_nonnull = seafile_get_repo_token_nonnull
@searpc_func("string", ["string", "string"])
def seafile_generate_repo_token(repo_id, email):
pass
generate_repo_token = seafile_generate_repo_token
@searpc_func("int", ["string", "string"])
def seafile_delete_repo_token(repo_id, token, user):
pass
delete_repo_token = seafile_delete_repo_token
@searpc_func("objlist", ["string"])
def seafile_list_repo_tokens(repo_id):
pass
list_repo_tokens = seafile_list_repo_tokens
@searpc_func("objlist", ["string"])
def seafile_list_repo_tokens_by_email(email):
pass
list_repo_tokens_by_email = seafile_list_repo_tokens_by_email
@searpc_func("int", ["string", "string"])
def seafile_delete_repo_tokens_by_peer_id(email, user_id):
pass
delete_repo_tokens_by_peer_id = seafile_delete_repo_tokens_by_peer_id
@searpc_func("int", ["string"])
def delete_repo_tokens_by_email(email):
pass
###### quota ##########
@searpc_func("int64", ["string"])
def seafile_get_user_quota_usage(user_id):
pass
get_user_quota_usage = seafile_get_user_quota_usage
@searpc_func("int64", ["string"])
def seafile_get_user_share_usage(user_id):
pass
get_user_share_usage = seafile_get_user_share_usage
@searpc_func("int64", ["int"])
def seafile_get_org_quota_usage(org_id):
pass
get_org_quota_usage = seafile_get_org_quota_usage
@searpc_func("int64", ["int", "string"])
def seafile_get_org_user_quota_usage(org_id, user):
pass
get_org_user_quota_usage = seafile_get_org_user_quota_usage
@searpc_func("int", ["string", "int64"])
def set_user_quota(user, quota):
pass
@searpc_func("int64", ["string"])
def get_user_quota(user):
pass
@searpc_func("int", ["int", "int64"])
def set_org_quota(org_id, quota):
pass
@searpc_func("int64", ["int"])
def get_org_quota(org_id):
pass
@searpc_func("int", ["int", "string", "int64"])
def set_org_user_quota(org_id, user, quota):
pass
@searpc_func("int64", ["int", "string"])
def get_org_user_quota(org_id, user):
pass
@searpc_func("int", ["string", "int64"])
def check_quota(repo_id, delta):
pass
@searpc_func("objlist", [])
def list_user_quota_usage():
pass
# password management
@searpc_func("int", ["string", "string"])
def seafile_check_passwd(repo_id, magic):
pass
check_passwd = seafile_check_passwd
@searpc_func("int", ["string", "string", "string"])
def seafile_set_passwd(repo_id, user, passwd):
pass
set_passwd = seafile_set_passwd
@searpc_func("int", ["string", "string"])
def seafile_unset_passwd(repo_id, user):
pass
unset_passwd = seafile_unset_passwd
# repo permission checking
@searpc_func("string", ["string", "string"])
def check_permission(repo_id, user):
pass
# folder permission check
@searpc_func("string", ["string", "string", "string"])
def check_permission_by_path(repo_id, path, user):
pass
# org repo
@searpc_func("string", ["string", "string", "string", "string", "string", "int", "int"])
def seafile_create_org_repo(name, desc, user, passwd, magic, random_key, enc_version, org_id):
pass
create_org_repo = seafile_create_org_repo
@searpc_func("int", ["string"])
def seafile_get_org_id_by_repo_id(repo_id):
pass
get_org_id_by_repo_id = seafile_get_org_id_by_repo_id
@searpc_func("objlist", ["int", "int", "int"])
def seafile_get_org_repo_list(org_id, start, limit):
pass
get_org_repo_list = seafile_get_org_repo_list
@searpc_func("int", ["int"])
def seafile_remove_org_repo_by_org_id(org_id):
pass
remove_org_repo_by_org_id = seafile_remove_org_repo_by_org_id
@searpc_func("objlist", ["int", "string"])
def list_org_repos_by_owner(org_id, user):
pass
@searpc_func("string", ["string"])
def get_org_repo_owner(repo_id):
pass
# org group repo
@searpc_func("int", ["string", "int", "int", "string", "string"])
def add_org_group_repo(repo_id, org_id, group_id, owner, permission):
pass
@searpc_func("int", ["string", "int", "int"])
def del_org_group_repo(repo_id, org_id, group_id):
pass
@searpc_func("string", ["int", "int"])
def get_org_group_repoids(org_id, group_id):
pass
@searpc_func("string", ["int", "int", "string"])
def get_org_group_repo_owner(org_id, group_id, repo_id):
pass
@searpc_func("objlist", ["int", "string"])
def get_org_group_repos_by_owner(org_id, user):
pass
@searpc_func("string", ["int", "string"])
def get_org_groups_by_repo(org_id, repo_id):
pass
@searpc_func("int", ["int", "int", "string", "string"])
def set_org_group_repo_permission(org_id, group_id, repo_id, permission):
pass
# inner pub repo
@searpc_func("int", ["string", "string"])
def set_inner_pub_repo(repo_id, permission):
pass
@searpc_func("int", ["string"])
def unset_inner_pub_repo(repo_id):
pass
@searpc_func("objlist", [])
def list_inner_pub_repos():
pass
@searpc_func("objlist", ["string"])
def list_inner_pub_repos_by_owner(user):
pass
@searpc_func("int64", [])
def count_inner_pub_repos():
pass
@searpc_func("int", ["string"])
def is_inner_pub_repo(repo_id):
pass
# org inner pub repo
@searpc_func("int", ["int", "string", "string"])
def set_org_inner_pub_repo(org_id, repo_id, permission):
pass
@searpc_func("int", ["int", "string"])
def unset_org_inner_pub_repo(org_id, repo_id):
pass
@searpc_func("objlist", ["int"])
def list_org_inner_pub_repos(org_id):
pass
@searpc_func("objlist", ["int", "string"])
def list_org_inner_pub_repos_by_owner(org_id, user):
pass
@searpc_func("int", ["string", "int"])
def set_repo_history_limit(repo_id, days):
pass
@searpc_func("int", ["string"])
def get_repo_history_limit(repo_id):
pass
@searpc_func("int", ["string", "int64"])
def set_repo_valid_since(repo_id, timestamp):
pass
# virtual repo
@searpc_func("string", ["string", "string", "string", "string", "string", "string"])
def create_virtual_repo(origin_repo_id, path, repo_name, repo_desc, owner, passwd=''):
pass
@searpc_func("objlist", ["string"])
def get_virtual_repos_by_owner(owner):
pass
@searpc_func("object", ["string", "string", "string"])
def get_virtual_repo(origin_repo, path, owner):
pass
# system default library
@searpc_func("string", [])
def get_system_default_repo_id():
pass
# Change password
@searpc_func("int", ["string", "string", "string", "string"])
def seafile_change_repo_passwd(repo_id, old_passwd, new_passwd, user):
pass
change_repo_passwd = seafile_change_repo_passwd
# Clean trash
@searpc_func("int", ["string", "int"])
def clean_up_repo_history(repo_id, keep_days):
pass
# Trashed repos
@searpc_func("objlist", ["int", "int"])
def get_trash_repo_list(start, limit):
pass
@searpc_func("int", ["string"])
def del_repo_from_trash(repo_id):
pass
@searpc_func("int", ["string"])
def restore_repo_from_trash(repo_id):
pass
@searpc_func("objlist", ["string"])
def get_trash_repos_by_owner(owner):
pass
@searpc_func("int", [])
def empty_repo_trash():
pass
@searpc_func("int", ["string"])
def empty_repo_trash_by_owner(owner):
pass
@searpc_func("object", ["string"])
def empty_repo_trash_by_owner(owner):
pass
@searpc_func("object", ["int", "string", "string"])
def generate_magic_and_random_key(enc_version, repo_id, password):
pass
@searpc_func("int64", [])
def get_total_file_number():
pass
@searpc_func("int64", [])
def get_total_storage():
pass
@searpc_func("object", ["string", "string"])
def get_file_count_info_by_path(repo_id, path):
pass
@searpc_func("string", ["string"])
def get_trash_repo_owner(repo_id):
pass
@searpc_func("int64", ["string", "string"])
def seafile_get_upload_tmp_file_offset(repo_id, file_path):
pass
get_upload_tmp_file_offset = seafile_get_upload_tmp_file_offset
@searpc_func("int", ["string", "string", "string", "string"])
def seafile_mkdir_with_parents (repo_id, parent_dir, relative_path, username):
pass
mkdir_with_parents = seafile_mkdir_with_parents
@searpc_func("int", ["string", "string"])
def get_server_config_int (group, key):
pass
@searpc_func("int", ["string", "string", "int"])
def set_server_config_int (group, key, value):
pass
@searpc_func("int64", ["string", "string"])
def get_server_config_int64 (group, key):
pass
@searpc_func("int", ["string", "string", "int64"])
def set_server_config_int64 (group, key, value):
pass
@searpc_func("string", ["string", "string"])
def get_server_config_string (group, key):
pass
@searpc_func("int", ["string", "string", "string"])
def set_server_config_string (group, key, value):
pass
@searpc_func("int", ["string", "string"])
def get_server_config_boolean (group, key):
pass
@searpc_func("int", ["string", "string", "int"])
def set_server_config_boolean (group, key, value):
pass
@searpc_func("int", ["string", "int"])
def repo_has_been_shared (repo_id, including_groups):
pass
@searpc_func("objlist", ["string"])
def get_shared_users_by_repo (repo_id):
pass
@searpc_func("objlist", ["int", "string"])
def org_get_shared_users_by_repo (org_id, repo_id):
pass
@searpc_func("string", ["string", "string", "string", "int"])
def convert_repo_path(repo_id, path, user, is_org):
pass
# repo status
@searpc_func("int", ["string", "int"])
def set_repo_status(repo_id, status):
pass
@searpc_func("int", ["string"])
def get_repo_status(repo_id):
pass
# token for web access to repo
@searpc_func("string", ["string", "string", "string", "string", "int"])
def seafile_web_get_access_token(repo_id, obj_id, op, username, use_onetime=1):
pass
web_get_access_token = seafile_web_get_access_token
@searpc_func("object", ["string"])
def seafile_web_query_access_token(token):
pass
web_query_access_token = seafile_web_query_access_token
@searpc_func("string", ["string"])
def seafile_query_zip_progress(token):
pass
query_zip_progress = seafile_query_zip_progress
@searpc_func("int", ["string"])
def cancel_zip_task(token):
pass
###### GC ####################
@searpc_func("int", [])
def seafile_gc():
pass
gc = seafile_gc
@searpc_func("int", [])
def seafile_gc_get_progress():
pass
gc_get_progress = seafile_gc_get_progress
# password management
@searpc_func("int", ["string", "string"])
def seafile_is_passwd_set(repo_id, user):
pass
is_passwd_set = seafile_is_passwd_set
@searpc_func("object", ["string", "string"])
def seafile_get_decrypt_key(repo_id, user):
pass
get_decrypt_key = seafile_get_decrypt_key
# Copy tasks
@searpc_func("object", ["string"])
def get_copy_task(task_id):
pass
@searpc_func("int", ["string"])
def cancel_copy_task(task_id):
pass
# event
@searpc_func("int", ["string", "string"])
def publish_event(channel, content):
pass
@searpc_func("json", ["string"])
def pop_event(channel):
pass
@searpc_func("objlist", ["string", "string"])
def search_files(self, repo_id, search_str):
pass
@searpc_func("objlist", ["string", "string", "string"])
def search_files_by_path(self, repo_id, path, search_str):
pass
#user management
@searpc_func("int", ["string", "string", "int", "int"])
def add_emailuser(self, email, passwd, is_staff, is_active):
pass
@searpc_func("int", ["string", "string"])
def remove_emailuser(self, source, email):
pass
@searpc_func("int", ["string", "string"])
def validate_emailuser(self, email, passwd):
pass
@searpc_func("object", ["string"])
def get_emailuser(self, email):
pass
@searpc_func("object", ["string"])
def get_emailuser_with_import(self, email):
pass
@searpc_func("object", ["int"])
def get_emailuser_by_id(self, user_id):
pass
@searpc_func("objlist", ["string", "int", "int", "string"])
def get_emailusers(self, source, start, limit, status):
pass
@searpc_func("objlist", ["string", "string", "int", "int"])
def search_emailusers(self, source, email_patt, start, limit):
pass
@searpc_func("objlist", ["string", "int", "int"])
def search_ldapusers(self, keyword, start, limit):
pass
@searpc_func("int64", ["string"])
def count_emailusers(self, source):
pass
@searpc_func("int64", ["string"])
def count_inactive_emailusers(self, source):
pass
@searpc_func("objlist", ["string"])
def filter_emailusers_by_emails(self):
pass
@searpc_func("int", ["string", "int", "string", "int", "int"])
def update_emailuser(self, source, user_id, password, is_staff, is_active):
pass
@searpc_func("int", ["string", "string"])
def update_role_emailuser(self, email, role):
pass
@searpc_func("objlist", [])
def get_superusers(self):
pass
@searpc_func("objlist", ["string", "string"])
def get_emailusers_in_list(self, source, user_list):
pass
@searpc_func("int", ["string", "string"])
def update_emailuser_id (self, old_email, new_email):
pass
#group management
@searpc_func("int", ["string", "string", "string", "int"])
def create_group(self, group_name, user_name, gtype, parent_group_id):
pass
@searpc_func("int", ["int", "string", "string", "int"])
def create_org_group(self, org_id, group_name, user_name, parent_group_id):
pass
@searpc_func("int", ["int"])
def remove_group(self, group_id):
pass
@searpc_func("int", ["int", "string", "string"])
def group_add_member(self, group_id, user_name, member_name):
pass
@searpc_func("int", ["int", "string", "string"])
def group_remove_member(self, group_id, user_name, member_name):
pass
@searpc_func("int", ["int", "string"])
def group_set_admin(self, group_id, member_name):
pass
@searpc_func("int", ["int", "string"])
def group_unset_admin(self, group_id, member_name):
pass
@searpc_func("int", ["int", "string"])
def set_group_name(self, group_id, group_name):
pass
@searpc_func("int", ["int", "string"])
def quit_group(self, group_id, user_name):
pass
@searpc_func("objlist", ["string", "int"])
def get_groups(self, user_name, return_ancestors):
pass
@searpc_func("objlist", [])
def list_all_departments(self):
pass
@searpc_func("objlist", ["int", "int", "string"])
def get_all_groups(self, start, limit, source):
pass
@searpc_func("objlist", ["int"])
def get_ancestor_groups(self, group_id):
pass
@searpc_func("objlist", ["int"])
def get_top_groups(self, including_org):
pass
@searpc_func("objlist", ["int"])
def get_child_groups(self, group_id):
pass
@searpc_func("objlist", ["int"])
def get_descendants_groups(self, group_id):
pass
@searpc_func("object", ["int"])
def get_group(self, group_id):
pass
@searpc_func("objlist", ["int"])
def get_group_members(self, group_id):
pass
@searpc_func("objlist", ["int", "string"])
def get_members_with_prefix(self, group_id, prefix):
pass
@searpc_func("int", ["int", "string", "int"])
def check_group_staff(self, group_id, username, in_structure):
pass
@searpc_func("int", ["string"])
def remove_group_user(self, username):
pass
@searpc_func("int", ["int", "string", "int"])
def is_group_user(self, group_id, user, in_structure):
pass
@searpc_func("int", ["int", "string"])
def set_group_creator(self, group_id, user_name):
pass
@searpc_func("objlist", ["string", "int", "int"])
def search_groups(self, group_patt, start, limit):
pass
@searpc_func("objlist", ["int", "string"])
def search_group_members(self, group_id, pattern):
pass
@searpc_func("objlist", ["string"])
def get_groups_members(self, group_ids):
pass
#org management
@searpc_func("int", ["string", "string", "string"])
def create_org(self, org_name, url_prefix, creator):
pass
@searpc_func("int", ["int"])
def remove_org(self, org_id):
pass
@searpc_func("objlist", ["int", "int"])
def get_all_orgs(self, start, limit):
pass
@searpc_func("int64", [])
def count_orgs(self):
pass
@searpc_func("object", ["string"])
def get_org_by_url_prefix(self, url_prefix):
pass
@searpc_func("object", ["string"])
def get_org_by_id(self, org_id):
pass
@searpc_func("int", ["int", "string", "int"])
def add_org_user(self, org_id, email, is_staff):
pass
@searpc_func("int", ["int", "string"])
def remove_org_user(self, org_id, email):
pass
@searpc_func("objlist", ["string"])
def get_orgs_by_user(self, email):
pass
@searpc_func("objlist", ["string", "int", "int"])
def get_org_emailusers(self, url_prefix, start, limit):
pass
@searpc_func("int", ["int", "int"])
def add_org_group(self, org_id, group_id):
pass
@searpc_func("int", ["int", "int"])
def remove_org_group(self, org_id, group_id):
pass
@searpc_func("int", ["int"])
def is_org_group(self, group_id):
pass
@searpc_func("int", ["int"])
def get_org_id_by_group(self, group_id):
pass
@searpc_func("objlist", ["int", "int", "int"])
def get_org_groups(self, org_id, start, limit):
pass
@searpc_func("objlist", ["string", "int"])
def get_org_groups_by_user (self, user, org_id):
pass
@searpc_func("objlist", ["int"])
def get_org_top_groups(self, org_id):
pass
@searpc_func("int", ["int", "string"])
def org_user_exists(self, org_id, email):
pass
@searpc_func("int", ["int", "string"])
def is_org_staff(self, org_id, user):
pass
@searpc_func("int", ["int", "string"])
def set_org_staff(self, org_id, user):
pass
@searpc_func("int", ["int", "string"])
def unset_org_staff(self, org_id, user):
pass
@searpc_func("int", ["int", "string"])
def set_org_name(self, org_id, org_name):
pass
@searpc_func("int", ["string", "string"])
def set_reference_id(self, primary_id, reference_id):
pass
@searpc_func("string", ["string"])
def get_primary_id(self, email):
pass