Skip to content

Commit 9758e4a

Browse files
helper script deleting webapp logs
1 parent 0288750 commit 9758e4a

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

scripts/pa_delete_webapp_logs.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
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

Comments
 (0)