|
| 1 | +#!/usr/bin/python3.5 |
| 2 | +"""Deletes webapp logs. |
| 3 | +
|
| 4 | +- gets list of logs via api |
| 5 | +- deletes logs via api |
| 6 | +
|
| 7 | +Usage: |
| 8 | + pa_delete_webapp_logs.py [--domain=<domain>] [--log_type=<log_type>] |
| 9 | +
|
| 10 | +Options: |
| 11 | + --domain=<domain> Domain name, eg www.mydomain.com [default: your-username.pythonanywhere.com] |
| 12 | + --log_type Log type, could be access, error, server or all [default: all] |
| 13 | + --log_index Log index, 0 for current log, 1-9 for one of archive logs or all [default: all] |
| 14 | +""" |
| 15 | + |
| 16 | +from docopt import docopt |
| 17 | +import getpass |
| 18 | +import os |
| 19 | + |
| 20 | +from pythonanywhere.api import Webapp |
| 21 | +from pythonanywhere.snakesay import snakesay |
| 22 | + |
| 23 | + |
| 24 | +def main(domain, log_type, log_index): |
| 25 | + if domain == 'your-username.pythonanywhere.com': |
| 26 | + username = getpass.getuser().lower() |
| 27 | + pa_domain = os.environ.get('PYTHONANYWHERE_DOMAIN', 'pythonanywhere.com') |
| 28 | + domain = '{username}.{pa_domain}'.format(username=username, pa_domain=pa_domain) |
| 29 | + |
| 30 | + webapp = Webapp(domain) |
| 31 | + log_types = ["access", "error", "server"] |
| 32 | + logs = webapp.get_log_info() |
| 33 | + if log_type == "all" and log_index == "all": |
| 34 | + for key in log_types: |
| 35 | + for log in logs[key]: |
| 36 | + webapp.delete_log(key, log) |
| 37 | + elif log_type == "all": |
| 38 | + for key in log_types: |
| 39 | + webapp.delete_log(key, int(log_index)) |
| 40 | + elif log_index == "all": |
| 41 | + for i in logs[log_type]: |
| 42 | + webapp.delete_log(log_type, int(i)) |
| 43 | + else: |
| 44 | + webapp.delete_log(log_type, int(log_index)) |
| 45 | + print(snakesay('All Done!')) |
| 46 | + |
| 47 | + |
| 48 | +if __name__ == '__main__': |
| 49 | + arguments = docopt(__doc__) |
| 50 | + main(arguments['--domain'], arguments['--log_type'], arguments['--log_index']) |
0 commit comments