Skip to content

Commit 7791b88

Browse files
committed
Add clock field for json output. Mandatory when you need to synchronize your items. Default in current minute epoch
1 parent f96faf2 commit 7791b88

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

module/protobix/datacontainer.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import simplejson
2+
import time
23

34
from senderprotocol import SenderProtocol
45

@@ -16,12 +17,13 @@ def set_type(self, data_type):
1617
if data_type == "lld" or data_type == "items":
1718
self.data_type = data_type
1819

19-
def add_item(self, host, key, value):
20+
def add_item(self, host, key, value, clock=int(time.time())/60*60):
2021
if self.data_type == "items":
21-
item = { "host": host, "key": key, "value": value}
22+
item = { "host": host, "key": key,
23+
"value": value, "clock": clock}
2224
elif self.data_type == "lld":
23-
item = { "host": host, "key": key, "value":
24-
simplejson.dumps({"data":value})}
25+
item = { "host": host, "key": key, "clock": clock,
26+
"value": simplejson.dumps({"data":value}) }
2527
self.items_list.append(item)
2628

2729
def add(self, data):
@@ -30,6 +32,5 @@ def add(self, data):
3032
if not data[host][key] == []:
3133
self.add_item( host, key, data[host][key])
3234

33-
3435
def get_items_list(self):
3536
return self.items_list

module/protobix/senderprotocol.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import simplejson
44
import socket
55
import struct
6+
import time
67

78
from senderexception import SenderException
89

@@ -47,7 +48,8 @@ def set_dryrun(self, dryrun):
4748

4849
def __repr__(self):
4950
return simplejson.dumps({ "data": ("%r" % self.data_container),
50-
"request": self.request })
51+
"request": self.request,
52+
"clock": int(time.time()) })
5153

5254
def send_to_zabbix(self, data):
5355
data_len = struct.pack('<Q', len(data))
@@ -85,7 +87,8 @@ def send(self, container):
8587
def bulk_send(self, container):
8688
self.data_container = container
8789
data = simplejson.dumps({ "data": self.data_container.get_items_list(),
88-
"request": self.request })
90+
"request": self.request,
91+
"clock": int(time.time()) })
8992
zbx_answer = self.send_to_zabbix(data)
9093
if self.verbosity:
9194
print zbx_answer.get('info')
@@ -95,7 +98,8 @@ def single_send(self, container):
9598
self.data_container = container
9699
for item in self.data_container.get_items_list():
97100
data = simplejson.dumps({ "data": [ item ],
98-
"request": self.request })
101+
"request": self.request,
102+
"clock": int(time.time()) })
99103
result = '-'
100104
zbx_answer = 0
101105
if not self.dryrun:

0 commit comments

Comments
 (0)