]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/journal-remote/log-generator.py
more portable python shebangs (#5816)
[thirdparty/systemd.git] / src / journal-remote / log-generator.py
CommitLineData
3e67e5c9 1#!/usr/bin/env python3
d3b7fd54
ZJS
2import sys
3import argparse
4
5PARSER = argparse.ArgumentParser()
6PARSER.add_argument('n', type=int)
7PARSER.add_argument('--dots', action='store_true')
2c1a55cf
ZJS
8PARSER.add_argument('--data-size', type=int, default=4000)
9PARSER.add_argument('--data-type', choices={'random', 'simple'})
d3b7fd54
ZJS
10OPTIONS = PARSER.parse_args()
11
12template = """\
13__CURSOR=s=6863c726210b4560b7048889d8ada5c5;i=3e931;b=f446871715504074bf7049ef0718fa93;m={m:x};t=4fd05c
14__REALTIME_TIMESTAMP={realtime_ts}
15__MONOTONIC_TIMESTAMP={monotonic_ts}
16_BOOT_ID=f446871715504074bf7049ef0718fa93
17_TRANSPORT=syslog
18PRIORITY={priority}
19SYSLOG_FACILITY={facility}
20SYSLOG_IDENTIFIER=/USR/SBIN/CRON
21MESSAGE={message}
22_UID=0
23_GID=0
24_MACHINE_ID=69121ca41d12c1b69a7960174c27b618
25_HOSTNAME=hostname
26SYSLOG_PID=25721
27_PID=25721
28_SOURCE_REALTIME_TIMESTAMP={source_realtime_ts}
29DATA={data}
30"""
31
00d5eaaf 32m = 0x198603b12d7
d3b7fd54
ZJS
33realtime_ts = 1404101101501873
34monotonic_ts = 1753961140951
35source_realtime_ts = 1404101101483516
36priority = 3
37facility = 6
38
39src = open('/dev/urandom', 'rb')
40
41bytes = 0
2c1a55cf 42counter = 0
d3b7fd54
ZJS
43
44for i in range(OPTIONS.n):
45 message = repr(src.read(2000))
2c1a55cf
ZJS
46 if OPTIONS.data_type == 'random':
47 data = repr(src.read(OPTIONS.data_size))
48 else:
49 # keep the pattern non-repeating so we get a different blob every time
50 data = '{:0{}}'.format(counter, OPTIONS.data_size)
51 counter += 1
d3b7fd54
ZJS
52
53 entry = template.format(m=m,
54 realtime_ts=realtime_ts,
55 monotonic_ts=monotonic_ts,
56 source_realtime_ts=source_realtime_ts,
57 priority=priority,
58 facility=facility,
59 message=message,
60 data=data)
61 m += 1
62 realtime_ts += 1
63 monotonic_ts += 1
64 source_realtime_ts += 1
65
66 bytes += len(entry)
67
68 print(entry)
69
70 if OPTIONS.dots:
71 print('.', file=sys.stderr, end='', flush=True)
72
73if OPTIONS.dots:
00d5eaaf 74 print(file=sys.stderr)
d3b7fd54 75print('Wrote {} bytes'.format(bytes), file=sys.stderr)