Skip to content
This repository was archived by the owner on Dec 22, 2025. It is now read-only.

Commit 08cd07e

Browse files
authored
Merge pull request #23 from votdev/issue_22
2 parents 838b50a + 47ad8c0 commit 08cd07e

File tree

5 files changed

+27
-7
lines changed

5 files changed

+27
-7
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
v1.4
2+
* Issue #22: Prevent Python type errors when sending an SNMP trap.
3+
14
v1.3
25

36
* Add 'trap-default-severity' configuration option.

prometheus-webhook-snmp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import click
88
from prometheus_webhook_snmp import utils
99

1010

11-
__version__ = "1.3"
11+
__version__ = "1.4"
1212

1313

1414
pass_context = click.make_pass_decorator(utils.Context, ensure=True)

prometheus-webhook-snmp.spec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# Please submit bugfixes or comments via http://bugs.opensuse.org/
1616

1717
Name: prometheus-webhook-snmp
18-
Version: 1.3
18+
Version: 1.4
1919
Release: 0
2020
Summary: Prometheus Alertmanager receiver for SNMP traps
2121
License: GPL-3.0

prometheus_webhook_snmp/utils.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,17 +135,17 @@ def send_snmp_trap(config, trap_data):
135135
var_binds = hlapi.NotificationType(hlapi.ObjectIdentity(trap_data['oid']))
136136
var_binds.addVarBinds(
137137
hlapi.ObjectType(hlapi.ObjectIdentity(oids['alertname']),
138-
hlapi.OctetString(trap_data['alertname'])),
138+
hlapi.OctetString(trap_data['alertname'] or '')),
139139
hlapi.ObjectType(hlapi.ObjectIdentity(oids['status']),
140140
hlapi.OctetString(trap_data['status'])),
141141
hlapi.ObjectType(hlapi.ObjectIdentity(oids['severity']),
142142
hlapi.OctetString(trap_data['severity'])),
143143
hlapi.ObjectType(hlapi.ObjectIdentity(oids['instance']),
144-
hlapi.OctetString(trap_data['instance'])),
144+
hlapi.OctetString(trap_data['instance'] or '')),
145145
hlapi.ObjectType(hlapi.ObjectIdentity(oids['job']),
146-
hlapi.OctetString(trap_data['job'])),
146+
hlapi.OctetString(trap_data['job'] or '')),
147147
hlapi.ObjectType(hlapi.ObjectIdentity(oids['description']),
148-
hlapi.OctetString(trap_data['description'])),
148+
hlapi.OctetString(trap_data['description'] or '')),
149149
hlapi.ObjectType(hlapi.ObjectIdentity(oids['labels']),
150150
hlapi.OctetString(json.dumps(trap_data['labels']))),
151151
hlapi.ObjectType(hlapi.ObjectIdentity(oids['timestamp']),

tests/test_misc.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33

44
from pyfakefs import fake_filesystem
55

6-
from prometheus_webhook_snmp.utils import parse_notification, Config
6+
from prometheus_webhook_snmp.utils import parse_notification, Config, \
7+
send_snmp_trap
78

89
NOTIFICATION_FIRING = {
910
'receiver': 'test-01',
@@ -116,6 +117,22 @@ def test_parse_notification_no_oid(self):
116117
self.assertEqual(trap_data['timestamp'], 1554110387)
117118
self.assertIsInstance(trap_data['rawdata'], dict)
118119

120+
def test_send_snmp_trap(self):
121+
config = Config()
122+
self.assertIsInstance(config['trap_default_severity'], str)
123+
send_snmp_trap(config, {
124+
'oid': '1.3.6.1.4.1.50495.15.1.2.1',
125+
'alertname': None,
126+
'status': 'resolved',
127+
'severity': config['trap_default_severity'],
128+
'instance': None,
129+
'job': None,
130+
'description': None,
131+
'labels': {},
132+
'timestamp': 1554110387,
133+
'rawdata': {}
134+
})
135+
119136

120137
class ConfigTestCase(unittest.TestCase):
121138
fs = fake_filesystem.FakeFilesystem()

0 commit comments

Comments
 (0)