def cmd_unlock(con, arg):
if arg in locks:
del locks[arg]
+ con.sock.send("OK")
+ else:
+ con.sock.send("FAIL")
def cmd_lock_soft(con, arg):
lock(con, arg, False)
def cmd_lock_hard(con, arg):
lock(con, arg, True)
+def cmd_show_locks(con):
+ cmd_log(con, "Dumping locks data:");
+ if len(locks):
+ for lockdata in locks.iteritems():
+ tree, data = lockdata
+ cmd_log(con, "Tree: %s, Conn name: %s, Hard Lock: %s, Time: %s"
+ % (tree, data['name'], data['hard'], time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(data['time']))))
+ else:
+ cmd_log(con, "No locks found.");
def cmd_log(con, msg):
logfile.write('%s [%s] -- %s\n' % (time.strftime('%Y-%m-%d %H:%M:%S'),
def cmd_name(con, name):
con.name=name
-
def load_creds():
global users, cookies
users={}
'log1':cmd_log, 'name':cmd_name, 'linp':cmd_login_passwd,
'linc':cmd_login_cookie}
-cmdlist_noargs={'lout':cmd_logout, 'gett':cmd_gettree}
+cmdlist_noargs={'lout':cmd_logout, 'gett':cmd_gettree, 'slck':cmd_show_locks}
# Global stuff and initializations
# vi: encoding=utf-8 ts=8 sts=4 sw=4 et
import os
+import sys
import socket
import time
import config
global sock
sock=socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
sock.connect(socketname)
- if name:
- sock.send('name %s\0' % name)
+ if not name:
+ name = "pid_%d_name_%s" % (os.getpid(), sys.argv[0])
+ sock.send('name %s\0' % name)
def login_passwd(login, passwd):
'Return cookie if ok'
def unlock(path):
sock.send('ulck %s\0' % path)
+ ret = sock.recv(20)
+ if ret == "OK":
+ return True
+ return False
def log(msg):
sock.send('log1 %s\0' % msg)
+def locks_dump():
+ sock.send('slck\0')
+
def gettree():
sock.send('gett\0')
pkgs=[]