diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/profiling/spam.py | 46 |
1 files changed, 34 insertions, 12 deletions
diff --git a/scripts/profiling/spam.py b/scripts/profiling/spam.py index afa26837..3f8d5207 100755 --- a/scripts/profiling/spam.py +++ b/scripts/profiling/spam.py @@ -12,15 +12,15 @@ from argparse import ArgumentParser SMTP_HOST = 'chipmonk.cdev.bitmask.net' +SMTP_PORT = 465 NUMBER_OF_THREADS = 20 logger = logging.getLogger(__name__) LOG_FORMAT = '%(asctime)s %(message)s' -logging.basicConfig(format=LOG_FORMAT, level=logging.INFO) -def _send_email(host, subject, to_addr, from_addr, body_text): +def _send_email(host, port, subject, to_addr, from_addr, body_text): """ Send an email """ @@ -31,7 +31,11 @@ def _send_email(host, subject, to_addr, from_addr, body_text): "", body_text ), "\r\n") - server = smtplib.SMTP_SSL(host) + logger.debug("setting up smtp...") + server = smtplib.SMTP_SSL(host, port) + logger.info( + "sending message: (%s, %s, %s, %i)" + % (from_addr, to_addr, host, port)) server.sendmail(from_addr, [to_addr], body) server.quit() @@ -45,20 +49,28 @@ def _parse_args(): 'number_of_messages', type=int, help='The amount of messages email address to spam') parser.add_argument( - '-s', dest='server', default=SMTP_HOST, + '--server', '-s', default=SMTP_HOST, help='The SMTP server to use') parser.add_argument( - '-t', dest='threads', default=NUMBER_OF_THREADS, + '--port', '-p', default=SMTP_PORT, + help='The SMTP port to use') + parser.add_argument( + '--threads', '-t', default=NUMBER_OF_THREADS, help='The maximum number of parallel threads to launch') + parser.add_argument( + '--debug', '-d', action='store_true', + help='Print debug messages') return parser.parse_args() class EmailSenderThread(threading.Thread): - def __init__(self, host, subject, to_addr, from_addr, body_text, + def __init__(self, host, port, subject, to_addr, from_addr, body_text, finished_fun): threading.Thread.__init__(self) + logger.debug("initilizing thread...") self._host = host + self._port = port self._subject = subject self._to_addr = to_addr self._from_addr = from_addr @@ -66,16 +78,18 @@ class EmailSenderThread(threading.Thread): self._finished_fun = finished_fun def run(self): + logger.debug("running thread...") _send_email( - self._host, self._subject, self._to_addr, self._from_addr, - self._body_text) + self._host, self._port, self._subject, self._to_addr, + self._from_addr, self._body_text) self._finished_fun() -def _launch_email_thread(host, subject, to_addr, from_addr, body_text, +def _launch_email_thread(host, port, subject, to_addr, from_addr, body_text, finished_fun): + logger.debug("will launch email thread...") thread = EmailSenderThread( - host, subject, to_addr, from_addr, body_text, finished_fun) + host, port, subject, to_addr, from_addr, body_text, finished_fun) thread.start() return thread @@ -89,16 +103,24 @@ class FinishedThreads(object): def signal(self): with self._lock: self._finished = self._finished + 1 - logger.info('Number of messages sent: %d.' % self._finished) + logger.info('number of messages sent: %d.' % self._finished) def _send_messages(args): host = args.server + port = args.port subject = "Message from Soledad script" to_addr = args.target_address from_addr = args.target_address body_text = "Test message" + # configure log level + if args.debug: + level = logging.DEBUG + else: + level = logging.INFO + logging.basicConfig(format=LOG_FORMAT, level=level) + semaphore = threading.Semaphore(args.threads) threads = [] finished_threads = FinishedThreads() @@ -111,7 +133,7 @@ def _send_messages(args): semaphore.acquire() threads.append( _launch_email_thread( - host, subject, to_addr, from_addr, body_text, + host, port, subject, to_addr, from_addr, body_text, _finished_fun)) for t in threads: |