From: P2P-Next Date: Thu, 19 Aug 2010 07:15:26 +0000 (+0300) Subject: server: modified *Run for bandwidth limiting X-Git-Tag: next-share-m32~5 X-Git-Url: http://p2p-next.cs.pub.ro/gitweb/?a=commitdiff_plain;h=22aa66965861bfd12a36acc13b5cd366c8f58861;p=cs-p2p-next.git server: modified *Run for bandwidth limiting --- diff --git a/autorun/server/BitTorrentClientRun.py b/autorun/server/BitTorrentClientRun.py index d8612d5..1cf8bea 100644 --- a/autorun/server/BitTorrentClientRun.py +++ b/autorun/server/BitTorrentClientRun.py @@ -23,15 +23,20 @@ class BitTorrentClientRun: self.my_logger = logging.getLogger('autorun.BitTorrentClientRun') self.my_logger.setLevel(logging.DEBUG) - def config_run(self, download_dir, output_dir, output_file, log_dir, log_file, port, torrent_file): + def config_run(self, download_dir, output_dir, + output_file, log_dir, log_file, + port, up_limit, down_limit, torrent_file): + self.download_dir = download_dir self.output_dir = output_dir self.output_file = output_file # output from stdout self.log_dir = log_dir self.log_file = log_file # output from stderr self.port = port + self.up_limit = up_limit + self.down_limit = down_limit self.torrent_file = torrent_file - + def start(self): t = Template(self.simple_run_expr) self.simple_run_command = t.substitute( @@ -42,6 +47,8 @@ class BitTorrentClientRun: log_dir = self.log_dir, log_file = self.log_file, port = str(self.port), + up_limit = str(self.up_limit), + down_limit = str(self.down_limit), torrent_file = self.torrent_file ) @@ -54,6 +61,8 @@ class BitTorrentClientRun: log_dir = self.log_dir, log_file = self.log_file, port = str(self.port), + up_limit = str(self.up_limit), + down_limit = str(self.down_limit), torrent_file = self.torrent_file ) @@ -88,12 +97,13 @@ class BitTorrentClientRun: stderr=log_redirect) else: #for HRKTORRENT, verbose logs are not redirected #set lib env variable !!!!hardcodeeeeeeeeeeeed!!!! - parts = self.base_path.split("/"); + """parts = self.base_path.split("/"); lib_path = "" for i in range(0, len(parts)-1): lib_path = lib_path + parts[i]+"/" lib_path = lib_path + "libtorrent-rasterbar/lib" os.environ["LD_LIBRARY_PATH"] = lib_path + """ if not os.path.isdir(self.log_dir): try: os.makedirs(self.log_dir) diff --git a/autorun/server/HrktorrentRun.py b/autorun/server/HrktorrentRun.py index dfb9e8c..d1f38e9 100644 --- a/autorun/server/HrktorrentRun.py +++ b/autorun/server/HrktorrentRun.py @@ -3,6 +3,7 @@ """ Base class for running libtorrent (hrktorrent) client instances 2010, Razvan Deaconescu, razvan.deaconescu@cs.pub.ro + 2010, Adriana Draghici, adriana.draghici@cti.pub.ro """ import sys @@ -15,9 +16,10 @@ DEBUG = False class HrktorrentRun(BitTorrentClientRun): def __init__(self, base_path): + #!!! Local limits are always on (-l parameter) BitTorrentClientRun.__init__(self, base_path, - "$base_path/hrktorrent --downloaddir$download_dir --minport$port --maxport$port $torrent_file &> $output_dir/$output_file", - "$base_path/hrktorrent --downloaddir$download_dir --minport$port --maxport$port $torrent_file &> $output_dir/$output_file") + "$base_path/hrktorrent -o$download_dir -p$port -P$port -d$down_limit -u$up_limit -l $torrent_file &> $output_dir/$output_file", + "$base_path/hrktorrent -o$download_dir -p$port -P$port -d$down_limit -u$up_limit -l $torrent_file &> $output_dir/$output_file") def main(): @@ -29,19 +31,21 @@ def main(): bt_client_data = { CLIENT: HRKTORRENT, PORT:10350, BASE_DIR:"/home/p2p/p2p-clients/hrktorrent-logging/hrktorrent", - TORRENT: "/home/p2p/export/torrent-files/himym.torrent", + TORRENT: "/home/p2p/export/torrent-files/fedora.torrent", DL_DIR: "/home/p2p/p2p-dld/hrktorrent", LOG_DIR: "/home/p2p/p2p-log/hrktorrent", OUT_DIR: "/home/p2p/p2p-log/hrktorrent", OUT_FILE: "test.out", #status messages LOG_FILE: "", #verbose messages - + UP_LIMIT:100, + DL_LIMIT:300 } hr = HrktorrentRun("/home/p2p/p2p-clients/hrktorrent-logging/hrktorrent") hr.config_run(bt_client_data[DL_DIR], bt_client_data[OUT_DIR], bt_client_data[OUT_FILE], bt_client_data[LOG_DIR], - bt_client_data[LOG_FILE], bt_client_data[PORT], + bt_client_data[LOG_FILE], bt_client_data[PORT], + bt_client_data[UP_LIMIT], bt_client_data[DL_LIMIT], bt_client_data[TORRENT]) hr.start() hr.run_client(hr.simple_run_command, HRKTORRENT) diff --git a/autorun/server/TransmissionRun.py b/autorun/server/TransmissionRun.py index 08f4ca1..c1bebe9 100644 --- a/autorun/server/TransmissionRun.py +++ b/autorun/server/TransmissionRun.py @@ -3,11 +3,13 @@ """ Base class for running Transmission client instances 2010, Razvan Deaconescu, razvan.deaconescu@cs.pub.ro + 2010, Adriana Draghici, adriana.draghici@cti.pub.ro """ import sys import os.path from BitTorrentClientRun import BitTorrentClientRun +from Util import * DEBUG = False @@ -15,20 +17,50 @@ DEBUG = False class TransmissionRun(BitTorrentClientRun): def __init__(self, base_path): BitTorrentClientRun.__init__(self, base_path, - "$base_path/transmissioncli --download-dir $download_dir --port $port $torrent_file >> $output_dir/$output_file", - "TR_DEBUG=2 $base_path/transmission --download-dir $download_dir --port $port $torrent_file 2>> $log_dir/$log_file >> $output_dir/$output_file") - + "$base_path/transmissioncli -w $download_dir -p $port -u $up_limit -d $down_limit $torrent_file >> $output_dir/$output_file", + "TR_DEBUG=2 $base_path/transmissioncli -w $download_dir -p $port -u $up_limit -d $down_limit $torrent_file \ + 2>> $log_dir/$log_file >> $output_dir/$output_file") def main(): """ Test case """ - + """ tr = TransmissionRun("/home/p2p/p2p-clients/transmission") - tr.config_run("/home/p2p/p2p-dld/transmission", "/home/p2p/p2p-log/transmission", "transmission-fedora.out", "/home/p2p/p2p-log/transmission", "transmission-fedora.log", 10150, "/home/p2p/p2p-meta/fedora.torrent") + tr.config_run("/home/p2p/p2p-dld/transmission", + "/home/p2p/p2p-log/transmission", + "transmission-opensuse.out", + "/home/p2p/p2p-log/transmission", + "transmission-opensuse.log", + 10150, + 200, + 300, + "/home/p2p/export/torrent-files/opensuse.torrent") tr.start() + """ + bt_client_data = { + CLIENT: TRANSMISSION, PORT:10150, + BASE_DIR:"", + TORRENT: "/home/p2p/export/torrent-files/opensuse.torrent", + DL_DIR: "/home/p2p/p2p-dld/transmission", + LOG_DIR: "/home/p2p/p2p-log/transmission", + OUT_DIR: "/home/p2p/p2p-log/transmission", + OUT_FILE: "test.out", #status messages + LOG_FILE: "", #verbose messages + UP_LIMIT:100, + DL_LIMIT:300 + } + tr = TransmissionRun("/home/p2p/p2p-clients/transmission") + tr.config_run(bt_client_data[DL_DIR], bt_client_data[OUT_DIR], + bt_client_data[OUT_FILE], bt_client_data[LOG_DIR], + bt_client_data[LOG_FILE], bt_client_data[PORT], + bt_client_data[UP_LIMIT], bt_client_data[DL_LIMIT], + bt_client_data[TORRENT]) + tr.start() + tr.run_client(tr.simple_run_command, HRKTORRENT) + if __name__ == "__main__": sys.exit(main())