mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-08-31 14:05:33 +00:00
[trac930] add statistics validation for bob
This commit is contained in:
@@ -318,14 +318,18 @@ class BoB:
|
||||
answer = isc.config.ccsession.create_answer(0)
|
||||
elif command == "sendstats":
|
||||
# send statistics data to the stats daemon immediately
|
||||
cmd = isc.config.ccsession.create_command(
|
||||
statistics_data = {
|
||||
'boot_time': time.strftime('%Y-%m-%dT%H:%M:%SZ', _BASETIME)
|
||||
}
|
||||
valid = self.ccs.get_module_spec().validate_statistics(
|
||||
True, statistics_data)
|
||||
if valid:
|
||||
cmd = isc.config.ccsession.create_command(
|
||||
'set', { "owner": "Boss",
|
||||
"data": {
|
||||
'boot_time': time.strftime('%Y-%m-%dT%H:%M:%SZ', _BASETIME)
|
||||
}})
|
||||
seq = self.cc_session.group_sendmsg(cmd, 'Stats')
|
||||
self.cc_session.group_recvmsg(True, seq)
|
||||
answer = isc.config.ccsession.create_answer(0)
|
||||
"data": statistics_data })
|
||||
seq = self.cc_session.group_sendmsg(cmd, 'Stats')
|
||||
self.cc_session.group_recvmsg(True, seq)
|
||||
answer = isc.config.ccsession.create_answer(0)
|
||||
elif command == "ping":
|
||||
answer = isc.config.ccsession.create_answer(0, "pong")
|
||||
elif command == "show_processes":
|
||||
|
@@ -137,9 +137,27 @@ class TestBoB(unittest.TestCase):
|
||||
def group_sendmsg(self, msg, group):
|
||||
(self.msg, self.group) = (msg, group)
|
||||
def group_recvmsg(self, nonblock, seq): pass
|
||||
class DummyModuleCCSession():
|
||||
module_spec = isc.config.module_spec.ModuleSpec({
|
||||
"module_name": "Boss",
|
||||
"statistics": [
|
||||
{
|
||||
"item_name": "boot_time",
|
||||
"item_type": "string",
|
||||
"item_optional": False,
|
||||
"item_default": "1970-01-01T00:00:00Z",
|
||||
"item_title": "Boot time",
|
||||
"item_description": "A date time when bind10 process starts initially",
|
||||
"item_format": "date-time"
|
||||
}
|
||||
]
|
||||
})
|
||||
def get_module_spec(self):
|
||||
return self.module_spec
|
||||
bob = BoB()
|
||||
bob.verbose = True
|
||||
bob.cc_session = DummySession()
|
||||
bob.ccs = DummyModuleCCSession()
|
||||
# a bad command
|
||||
self.assertEqual(bob.command_handler(-1, None),
|
||||
isc.config.ccsession.create_answer(1, "bad command"))
|
||||
|
Reference in New Issue
Block a user