Files
@ 3f9fff4c9811
Branch filter:
Location: Morevna/src/morevna.py - annotation
3f9fff4c9811
1.7 KiB
text/x-python
fixed long running server, fixed logging
d72018278450 d72018278450 3f9fff4c9811 d72018278450 d72018278450 259f29140f23 7b737e64c6a0 41ea9614ce8c d72018278450 b73a5d69a11b b73a5d69a11b b73a5d69a11b b73a5d69a11b 8b0dc65400f3 8b0dc65400f3 8b0dc65400f3 b73a5d69a11b d72018278450 d72018278450 d72018278450 8b0dc65400f3 b73a5d69a11b d72018278450 d72018278450 d72018278450 164e41861584 8b0dc65400f3 7b737e64c6a0 7b737e64c6a0 b73a5d69a11b b73a5d69a11b b73a5d69a11b b73a5d69a11b 41ea9614ce8c 41ea9614ce8c d72018278450 d72018278450 8b0dc65400f3 8b0dc65400f3 8b0dc65400f3 7b737e64c6a0 7b737e64c6a0 b73a5d69a11b f6a35be79a81 3f9fff4c9811 3f9fff4c9811 3f9fff4c9811 3f9fff4c9811 b73a5d69a11b d72018278450 d72018278450 d72018278450 d72018278450 13d0327a4abb 13d0327a4abb 13d0327a4abb 13d0327a4abb d72018278450 164e41861584 d72018278450 d72018278450 d72018278450 164e41861584 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 | import sys
import os.path
import logging as log
from argparse import ArgumentParser
from util import spawnDaemon
import config as conf
import stats
from hashtree import HashTree
from client import Client
from server import Server
def _checkFile(f):
if not os.path.isfile(f):
print("invalid file specified:",f,file=sys.stderr)
sys.exit(1)
def buildTree(args):
_checkFile(args.datafile)
tree=HashTree.fromFile(args.datafile)
tree.save(args.treefile)
def push(args):
_checkFile(args.datafile)
if args.host: conf.hosts.insert(0,args.host)
if args.port: conf.port=args.port
c=Client(args.datafile)
blocksToTransfer=c.negotiate()
c.sendData(blocksToTransfer)
print()
print(stats.report())
def serve(args):
_checkFile(args.datafile)
if args.tree:
_checkFile(args.tree)
if args.host: conf.hosts.insert(0,args.host)
if args.port: conf.port=args.port
s=Server(args.datafile,args.tree)
try:
spawnDaemon(s.serve)
except Exception as e:
log.exception("exception: %s",e)
parser=ArgumentParser()
subparsers=parser.add_subparsers()
pBuild=subparsers.add_parser("build")
pBuild.add_argument("treefile", help="stored hash tree location")
pBuild.add_argument("datafile")
pBuild.set_defaults(func=buildTree)
pUpdate=subparsers.add_parser("push")
pUpdate.add_argument("-p","--port",type=int)
pUpdate.add_argument("--host",default="127.0.0.1")
pUpdate.add_argument("datafile")
pUpdate.set_defaults(func=push)
pServe=subparsers.add_parser("serve")
pServe.add_argument("-p","--port",type=int)
pServe.add_argument("--host",default="")
pServe.add_argument("-t","--tree",help="stored hash tree location")
pServe.add_argument("datafile")
pServe.set_defaults(func=serve)
args=parser.parse_args()
args.func(args)
|