1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-01 15:09:14 +00:00

Clean seaserv

This commit is contained in:
plt
2012-07-26 11:32:52 +08:00
parent 5299aa392e
commit fa11fc6af6
5 changed files with 5 additions and 276 deletions

View File

@@ -8,7 +8,7 @@ from django.http import HttpResponse, HttpResponseServerError
from auth.decorators import login_required, api_login_required from auth.decorators import login_required, api_login_required
from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_groups, get_users, get_repos, \ from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_groups, get_repos, \
get_repo, get_commits, get_branches, \ get_repo, get_commits, get_branches, \
seafserv_threaded_rpc, seafserv_rpc, get_binding_peerids, get_ccnetuser, \ seafserv_threaded_rpc, seafserv_rpc, get_binding_peerids, get_ccnetuser, \
get_group_repoids, check_group_staff get_group_repoids, check_group_staff

View File

@@ -1,14 +1,9 @@
import service import service
from service import cclient, ccnet_rpc, monitor_rpc, seafserv_rpc, \ from service import ccnet_rpc, monitor_rpc, seafserv_rpc, \
seafserv_threaded_rpc, ccnet_threaded_rpc seafserv_threaded_rpc, ccnet_threaded_rpc
from service import translate_peerid, translate_msgtime, translate_groupid, \ from service import send_command
translate_userid, translate_msgtime2, translate_time_sec, \
translate_time_usec, get_peer_avatar_url, get_user_avatar_url, \
translate_userid_simple, translate_peerid_simple
from service import get_peers_by_role, get_peers_by_myrole, send_command
from service import get_groups, get_group from service import get_groups, get_group
from service import get_users, get_user, get_events, count_event
from service import get_repos, get_repo, get_commits, get_branches from service import get_repos, get_repo, get_commits, get_branches
from service import get_binding_peerids from service import get_binding_peerids
from service import get_ccnetuser from service import get_ccnetuser

View File

@@ -1,43 +1,4 @@
""" """
Peer:
peer.props.id: Peer's ID.
peer.props.name peer's name
peer.props.user_id The ID of the user this peer belong to.
peer.props.timestamp Last modification time in milliseconds.
peer.props.role_list The roles I give to this peer's user.
peer.props.myrole_list This roles this peer's user gives to me.
User:
user.props.id: User ID.
user.props.name: User Name.
user.props.timestamp Last modification time in milliseconds.
user.props.is_self True if this is myself.
user.props.role_list The roles I give to this user.
user.props.myrole_list This roles this user gives to me.
user.props.default_relay The user's default relay.
user.props.avatar_url The user's default relay.
Group:
group.props.id: Group ID.
group.props.name: Group Name.
group.props.creator: Creator
group.props.rendezvous: The ID of the rendezvous peer.
group.props.timestamp: Last modification time.
group.props.members: The peer IDs of the group members seperated by ' '.
group.props.followers: The peer IDs of the followers.
group.props.maintainers: The peer IDs of the maintainers.
Message:
msg.props.id: Message ID
msg.props.parent_id Parent ID
msg.props.src The user who sent this message
msg.props.dest
msg.props.is_to_group True if this is a group message
msg.props.ctime Creation time
msg.props.rtime Receive time
msg.props.n_ack Number of acks
msg.props.n_reply Number of replies
msg.props.content
Repo: Repo:
id: Repo ID id: Repo ID
@@ -67,12 +28,6 @@ Commit:
parent_id: parent_id:
second_parent_id: second_parent_id:
SyncInfo:
repo_id:
head_commit: The head_commit of master branch at seahub
deleted_on_relay: True if repo is deleted on relay
""" """
@@ -99,17 +54,6 @@ else:
print "Load config from " + CCNET_CONF_PATH print "Load config from " + CCNET_CONF_PATH
CCNET_CONF_PATH = os.path.normpath(os.path.expanduser(CCNET_CONF_PATH)) CCNET_CONF_PATH = os.path.normpath(os.path.expanduser(CCNET_CONF_PATH))
# This does not connect daemon, used for the web to display
# (name, id) info
cclient = ccnet.Client()
if os.path.exists(CCNET_CONF_PATH):
cclient.load_confdir(CCNET_CONF_PATH)
cclient.inited = True
else:
cclient.inited = False
pool = ccnet.ClientPool(CCNET_CONF_PATH) pool = ccnet.ClientPool(CCNET_CONF_PATH)
ccnet_rpc = ccnet.CcnetRpcClient(pool, req_pool=True) ccnet_rpc = ccnet.CcnetRpcClient(pool, req_pool=True)
ccnet_threaded_rpc = ccnet.CcnetThreadedRpcClient(pool, req_pool=True) ccnet_threaded_rpc = ccnet.CcnetThreadedRpcClient(pool, req_pool=True)
@@ -117,185 +61,9 @@ monitor_rpc = seafile.MonitorRpcClient(pool)
seafserv_rpc = seafile.ServerRpcClient(pool, req_pool=True) seafserv_rpc = seafile.ServerRpcClient(pool, req_pool=True)
seafserv_threaded_rpc = seafile.ServerThreadedRpcClient(pool, req_pool=True) seafserv_threaded_rpc = seafile.ServerThreadedRpcClient(pool, req_pool=True)
user_db = {}
def translate_userid(user_id):
try:
user = user_db[user_id]
except:
user = ccnet_threaded_rpc.get_user(user_id)
if user:
user_db[user_id] = user
else:
return user_id[:8]
if user.props.name:
return user.props.name + "(" + user_id[:4] + ")"
else:
return user_id[:8]
def translate_userid_simple(user_id):
try:
user = user_db[user_id]
except:
user = ccnet_threaded_rpc.get_user(user_id)
if user:
user_db[user_id] = user
else:
return user_id[:8]
if user.props.name:
return user.props.name
else:
return user_id[:8]
peer_db = {}
def translate_peerid(peer_id):
try:
peer = peer_db[peer_id]
except:
peer = ccnet_rpc.get_peer(peer_id)
if peer:
peer_db[peer_id] = peer
else:
return peer_id[:8]
if peer.props.name:
return peer.props.name
else:
return peer_id[:8]
def translate_peerid_simple(peer_id):
try:
peer = peer_db[peer_id]
except:
peer = ccnet_rpc.get_peer(peer_id)
if peer:
peer_db[peer_id] = peer
else:
return peer_id[:8]
if peer.props.name:
return peer.props.name
else:
return peer_id[:8]
def get_peer_avatar_url(peer_id):
try:
peer = peer_db[peer_id]
except:
peer = ccnet_rpc.get_peer(peer_id)
if peer:
peer_db[peer_id] = peer
else:
return None
try:
user = user_db[peer.props.user_id]
except:
user = ccnet_threaded_rpc.get_user(user_id)
if user:
user_db[user_id] = user
else:
return None
return user.props.avatar_url
def get_user_avatar_url(user_id):
try:
user = user_db[user_id]
except:
user = ccnet_threaded_rpc.get_user(user_id)
if user:
user_db[user_id] = user
else:
return None
return user.props.avatar_url
group_db = {}
def translate_groupid(group_id):
try:
group = group_db[group_id]
except:
group = ccnet_threaded_rpc.get_group(group_id)
if group:
group_db[group_id] = group
else:
return group_id[:8]
if group.props.name:
return group.props.name + "(" + group_id[:4] + ")"
else:
return group_id[:8]
def translate_msgtime(msgtime):
return datetime.fromtimestamp(
(float(msgtime))/1000000).strftime("%Y-%m-%d %H:%M:%S")
def translate_msgtime2(msgtime):
return datetime.fromtimestamp(
(float(msgtime))).strftime("%Y-%m-%d %H:%M:%S")
def translate_time_sec(time):
return datetime.fromtimestamp(
(float(time))).strftime("%Y-%m-%d %H:%M:%S")
def translate_time_usec(time):
return datetime.fromtimestamp(
(float(time))/1000000).strftime("%Y-%m-%d %H:%M:%S")
#### Basic ccnet API #### #### Basic ccnet API ####
def get_peers_by_role(role):
try:
peer_ids = ccnet_rpc.get_peers_by_role(role)
except SearpcError:
return []
peers = []
for peer_id in peer_ids.split("\n"):
# too handle the ending '\n'
if peer_id == '':
continue
peer = ccnet_rpc.get_peer(peer_id)
peers.append(peer)
return peers
def get_peers_by_myrole(myrole):
try:
peer_ids = ccnet_rpc.get_peers_by_myrole(myrole)
except SearpcError:
return []
peers = []
for peer_id in peer_ids.split("\n"):
# too handle the ending '\n'
if peer_id == '':
continue
peer = ccnet_rpc.get_peer(peer_id)
peers.append(peer)
return peers
def get_users():
user_ids = ccnet_threaded_rpc.list_users()
if not user_ids:
return []
users = []
for user_id in user_ids.split("\n"):
# too handle the ending '\n'
if user_id == '':
continue
user = ccnet_threaded_rpc.get_user(user_id)
users.append(user)
return users
def get_user(user_id):
user = ccnet_threaded_rpc.get_user(user_id)
return user
def get_ccnetuser(username=None, userid=None): def get_ccnetuser(username=None, userid=None):
# Get emailuser from db # Get emailuser from db
@@ -341,20 +109,6 @@ def get_group(group_id):
return group return group
def get_events(offset, limit):
events = ccnet_rpc.get_events(offset, limit)
for event in events:
if not event.props.body:
event.detail = ""
else:
event.detail = json.loads(event.props.body)
return events
def count_event():
return ccnet_rpc.count_event()
def send_command(command): def send_command(command):
client = pool.get_client() client = pool.get_client()
client.send_cmd(command) client.send_cmd(command)

View File

@@ -2,7 +2,7 @@ from django.conf.urls.defaults import *
from django.conf import settings from django.conf import settings
from django.views.generic.simple import direct_to_template from django.views.generic.simple import direct_to_template
from seahub.views import root, peers, myhome, \ from seahub.views import root, myhome, \
repo, repo_history, modify_token, remove_repo, sys_seafadmin, sys_useradmin, \ repo, repo_history, modify_token, remove_repo, sys_seafadmin, sys_useradmin, \
org_seafadmin, org_useradmin, org_group_admin, org_remove, \ org_seafadmin, org_useradmin, org_group_admin, org_remove, \
activate_user, user_add, user_remove, sys_group_admin, sys_org_admin, \ activate_user, user_add, user_remove, sys_group_admin, sys_org_admin, \

View File

@@ -27,7 +27,7 @@ from auth.forms import AuthenticationForm, PasswordResetForm, SetPasswordForm, \
PasswordChangeForm PasswordChangeForm
from auth.tokens import default_token_generator from auth.tokens import default_token_generator
from share.models import FileShare from share.models import FileShare
from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_groups, get_users, get_repos, \ from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_groups, get_repos, \
get_repo, get_commits, get_branches, \ get_repo, get_commits, get_branches, \
seafserv_threaded_rpc, seafserv_rpc, get_binding_peerids, get_ccnetuser, \ seafserv_threaded_rpc, seafserv_rpc, get_binding_peerids, get_ccnetuser, \
get_group_repoids, check_group_staff get_group_repoids, check_group_staff
@@ -51,26 +51,6 @@ from seahub.settings import FILE_PREVIEW_MAX_SIZE, CROCODOC_API_TOKEN
def root(request): def root(request):
return HttpResponseRedirect(reverse(myhome)) return HttpResponseRedirect(reverse(myhome))
def peers(request):
peer_type = request.REQUEST.get('type', 'all')
peer_ids = ccnet_rpc.list_peers()
peers = []
for peer_id in peer_ids.split("\n"):
# too handle the ending '\n'
if peer_id == '':
continue
peer = ccnet_rpc.get_peer(peer_id)
if peer_type == 'all':
peers.append(peer)
if peer_type == 'mypeer':
if peer.props.role_list.find('MyPeer') != -1:
peers.append(peer)
users = get_users()
return render_to_response('peers.html', {
'peers': peers,
'users': users,
}, context_instance=RequestContext(request))
def validate_owner(request, repo_id): def validate_owner(request, repo_id):
""" """