Skip to content

Commit a1aba54

Browse files
committed
grokfile endpoint
note: grokfile API endpoint does not currently return all data
1 parent 946f0fc commit a1aba54

File tree

3 files changed

+131
-1
lines changed

3 files changed

+131
-1
lines changed

README.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Python API Wrapper Module
1+
# Cribl Python API Wrapper Module
22

33
## Overview
44
The API wrapper module provides a developer with basic create/update/delete utilities for multiple areas of the Stream API.
@@ -17,13 +17,22 @@ The distribution can be visualized as follows:
1717
├── cribl_python_api_wrapper
1818
│   ├── auth
1919
│   ├── collectors
20+
│   ├── diag
2021
│   ├── event_breaker_rules
2122
│   ├── executors
23+
│   ├── fleet_mappings
2224
│   ├── functions
25+
│   ├── global_variables
2326
│   ├── groups
2427
│   ├── inputs
28+
│   ├── jobs
2529
│   ├── lib
30+
│   ├── licenses
2631
│   ├── lookups
32+
│   ├── mappings
33+
│   ├── messages
34+
│   ├── notification_targets
35+
│   ├── notifications
2736
│   ├── outputs
2837
│   ├── packs
2938
│   ├── parsers
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from .grokfile_operations import *
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
from cribl_python_api_wrapper.lib.http_operations import *
2+
3+
4+
def get_grokfiles(base_url, cribl_auth_token, worker_group=None, fleet=None, group=None, verify=True):
5+
headers = {"Content-type": "application/json",
6+
"Authorization": "Bearer " + cribl_auth_token}
7+
payload = None
8+
9+
try:
10+
if worker_group is not None and fleet is None:
11+
group = worker_group
12+
elif fleet is not None and worker_group is None:
13+
group = fleet
14+
elif fleet is not None and worker_group is not None:
15+
raise Exception("Worker group and fleet were both set; operation can be performed on only one worker group"
16+
" or fleet at a time.")
17+
18+
if group is not None:
19+
return get(base_url + "/m/" + group + "/lib/grok",
20+
headers=headers, payload=payload, verify=verify)
21+
else:
22+
return get(base_url + "/lib/grok",
23+
headers=headers, payload=payload)
24+
25+
except Exception as e:
26+
raise Exception(
27+
"General exception raised while attempting to get parser information from Cribl: %s" % str(e))
28+
29+
30+
def get_grokfile(base_url, cribl_auth_token, grokfile_id, worker_group=None, fleet=None, group=None, verify=True):
31+
headers = {"Content-type": "application/json",
32+
"Authorization": "Bearer " + cribl_auth_token}
33+
payload = None
34+
35+
try:
36+
if worker_group is not None and fleet is None:
37+
group = worker_group
38+
elif fleet is not None and worker_group is None:
39+
group = fleet
40+
elif fleet is not None and worker_group is not None:
41+
raise Exception("Worker group and fleet were both set; operation can be performed on only one worker group"
42+
" or fleet at a time.")
43+
if group is not None:
44+
return get(base_url + "/m/" + group + "/lib/grok" + "/" + grokfile_id,
45+
headers=headers, payload=payload, verify=verify)
46+
else:
47+
return get(base_url + "/lib/grok" + "/" + grokfile_id,
48+
headers=headers, payload=payload, verify=verify)
49+
except Exception as e:
50+
raise Exception("General exception raised while attempting to create pipeline: %s " % str(e))
51+
52+
53+
def create_grokfile(base_url, cribl_auth_token, config, worker_group=None, fleet=None, group=None, verify=True):
54+
headers = {"Content-type": "application/json",
55+
"Authorization": "Bearer " + cribl_auth_token}
56+
payload = config
57+
58+
try:
59+
if worker_group is not None and fleet is None:
60+
group = worker_group
61+
elif fleet is not None and worker_group is None:
62+
group = fleet
63+
elif fleet is not None and worker_group is not None:
64+
raise Exception("Worker group and fleet were both set; operation can be performed on only one worker group"
65+
" or fleet at a time.")
66+
if group is not None:
67+
return post(base_url + "/m/" + group + "/lib/grok/",
68+
headers=headers, payload=payload, verify=verify)
69+
else:
70+
return post(base_url + "/lib/grok",
71+
headers=headers, payload=payload, verify=verify)
72+
except Exception as e:
73+
raise Exception("General exception raised while attempting to create pipeline: %s " % str(e))
74+
75+
76+
def update_grokfile(base_url, cribl_auth_token, grokfile_id, config, worker_group=None, fleet=None, group=None,
77+
verify=True):
78+
headers = {"Content-type": "application/json",
79+
"Authorization": "Bearer " + cribl_auth_token}
80+
payload = config
81+
82+
try:
83+
if worker_group is not None and fleet is None:
84+
group = worker_group
85+
elif fleet is not None and worker_group is None:
86+
group = fleet
87+
elif fleet is not None and worker_group is not None:
88+
raise Exception("Worker group and fleet were both set; operation can be performed on only one worker group"
89+
" or fleet at a time.")
90+
if group is not None:
91+
return patch(base_url + "/m/" + group + "/lib/grok/" + grokfile_id,
92+
headers=headers, payload=payload, verify=verify)
93+
else:
94+
return patch(base_url + "/lib/grok/" + grokfile_id,
95+
headers=headers, payload=payload, verify=verify)
96+
except Exception as e:
97+
raise Exception("General exception raised while attempting to update parser: %s " % str(e))
98+
99+
100+
def delete_grokfile(base_url, cribl_auth_token, grokfile_id, worker_group=None, fleet=None, group=None, verify=True):
101+
headers = {"Content-type": "application/json",
102+
"Accept": "application/json",
103+
"Authorization": "Bearer " + cribl_auth_token}
104+
try:
105+
if worker_group is not None and fleet is None:
106+
group = worker_group
107+
elif fleet is not None and worker_group is None:
108+
group = fleet
109+
elif fleet is not None and worker_group is not None:
110+
raise Exception("Worker group and fleet were both set; operation can be performed on only one worker group"
111+
" or fleet at a time.")
112+
if group is not None:
113+
return delete(base_url + "/m/" + group + "/lib/grok/" + grokfile_id,
114+
headers=headers, verify=verify)
115+
else:
116+
return delete(base_url + "/lib/grok/" + grokfile_id,
117+
headers=headers, verify=verify)
118+
119+
except Exception as e:
120+
raise Exception("General exception raised while attempting to delete input %s: %s" % (grokfile_id, str(e)))

0 commit comments

Comments
 (0)