-
Notifications
You must be signed in to change notification settings - Fork 4.9k
/
Copy pathrenamed_fields.py
44 lines (30 loc) · 1.13 KB
/
renamed_fields.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import yaml
def migration():
beats = ["Auditbeat", "Filebeat", "Heartbeat", "Metricbeat", "Packetbeat", "Winlogbeat"]
for beat in beats:
print(".{} renamed fields in 7.0".format(beat))
migration_fields = read_migration_fields(beat.lower())
print(get_table(migration_fields))
def get_table(migration_fields):
out = """[frame="topbot",options="header"]
|======================
|Old Field|New Field
"""
for k in migration_fields:
out += '|`{}` |`{}`\n'.format(k[0], k[1])
out += "|======================\n"
return out
def read_migration_fields(beat):
migration_fields = {}
migration_yml = "ecs-migration-8x.yml"
with open(migration_yml, 'r') as f:
migration = yaml.safe_load(f)
for k in migration:
if "beat" not in k or k["beat"] == beat:
if "to" in k and "from" in k:
if not isinstance(k["to"], str):
continue
migration_fields[k["from"]] = k["to"]
return sorted(migration_fields.items(), key=lambda x: x[0])
if __name__ == "__main__":
migration()