Hi everyone !
I'm currently developing a script in python to delete all service times.
Here is my script :
But when I'm running it with Admin user, I've got this error:
Any guess why ? And how this can work ?
I'm using Zabbix 4.2.0 and Python 2.7.5.
Thank you all.
I'm currently developing a script in python to delete all service times.
Here is my script :
Code:
from pyzabbix import ZabbixAPI, ZabbixAPIException
import datetime
import argparse
import re
import ConfigParser
import os
# mandatroy settings, can be set either in variable below, in a config file
# (~/.zabbirc, directory_script/.zabbixrc) or in command line.
# default < config < cli
settings = {
'url': 'None',
'username': None,
'password': None
}
def parse_cli():
"""
Parse CLI arguments and return whatever has been given in parameter in a
dict.
"""
parser = argparse.ArgumentParser(
description='Delete all the downtimes for all services in Zabbix'
)
parser.add_argument(
'-u', '--username',
action='store',
required=False,
help='Username to use when connecting'
)
parser.add_argument(
'-p', '--password',
required=False,
action='store',
help='Password to use when connecting'
)
parser.add_argument(
'--url',
action='store',
help='URL to Zabbix server',
required=False
)
args = vars(parser.parse_args())
# parse_args creates key with None value, we don't want them as
# those values could be set via config file
for setting, value in args.items():
if value is None:
del args[setting]
return args
def validate_settings():
"""
Validate if all the settings have been provided and valid.
"""
for setting, value in settings.items():
if value is None:
print setting + " is not defined."
return False
return True
def get_services_id(zapi):
"""
Return a list of IDs based on service names.
"""
services = []
try:
services = zapi.service.get(
output = ['serviceid'],
filter = {'showsla': 1}
)
except ZabbixAPIException as e:
pass
return services
def delete_service_times():
"""
Connect to Zabbix and delete all the downtimes for all services.
"""
zapi = ZabbixAPI(settings['url'])
zapi.login(settings['username'], settings['password'])
services_del = get_services_id(zapi)
if len(services_del) > 0:
try:
r = zapi.service.deletetimes(
filter = {'serviceIds': services_del}
)
except ZabbixAPIException as e:
print ("Error deleting service times: " + format(e))
return False
else:
print ("No services found in Zabbix.")
return False
return True
def main():
cli = parse_cli()
settings.update(cli)
if validate_settings():
return delete_service_times()
return False
if __name__ == "__main__":
if main():
print ("All service times have been deleted sucessfully.")
Code:
Error deleting service times: ("Error -32500: Application error., No permissions to referred object or it does not exist! while sending {'params': {'filter': {'serviceIds': [{u'serviceid': u'29'}, {u'serviceid': u'45'}, {u'serviceid': u'67'}, {u'serviceid': u'62'}, {u'serviceid': u'78'}, {u'serviceid': u'16'}, {u'serviceid': u'121'}, {u'serviceid': u'80'}, {u'serviceid': u'99'}, {u'serviceid': u'20'}, {u'serviceid': u'48'}, {u'serviceid': u'25'}, {u'serviceid': u'98'}, {u'serviceid': u'31'}, {u'serviceid': u'330'}, {u'serviceid': u'100'}, {u'serviceid': u'35'}, {u'serviceid': u'34'}, {u'serviceid': u'51'}, {u'serviceid': u'27'}, {u'serviceid': u'46'}, {u'serviceid': u'50'}, {u'serviceid': u'28'}, {u'serviceid': u'49'}, {u'serviceid': u'103'}, {u'serviceid': u'15'}, {u'serviceid': u'146'}, {u'serviceid': u'18'}, {u'serviceid': u'53'}, {u'serviceid': u'43'}, {u'serviceid': u'177'}, {u'serviceid': u'55'}, {u'serviceid': u'104'}, {u'serviceid': u'63'}, {u'serviceid': u'172'}, {u'serviceid': u'154'}, {u'serviceid': u'40'}, {u'serviceid': u'21'}, {u'serviceid': u'58'}, {u'serviceid': u'182'}, {u'serviceid': u'22'}, {u'serviceid': u'14'}, {u'serviceid': u'64'}, {u'serviceid': u'65'}, {u'serviceid': u'39'}, {u'serviceid': u'66'}, {u'serviceid': u'79'}, {u'serviceid': u'61'}, {u'serviceid': u'24'}, {u'serviceid': u'59'}, {u'serviceid': u'142'}, {u'serviceid': u'42'}, {u'serviceid': u'32'}, {u'serviceid': u'37'}, {u'serviceid': u'30'}, {u'serviceid': u'26'}, {u'serviceid': u'340'}, {u'serviceid': u'176'}, {u'serviceid': u'57'}, {u'serviceid': u'329'}, {u'serviceid': u'143'}, {u'serviceid': u'36'}, {u'serviceid': u'47'}, {u'serviceid': u'54'}, {u'serviceid': u'38'}, {u'serviceid': u'44'}, {u'serviceid': u'174'}, {u'serviceid': u'119'}, {u'serviceid': u'134'}, {u'serviceid': u'169'}, {u'serviceid': u'157'}, {u'serviceid': u'184'}, {u'serviceid': u'145'}, {u'serviceid': u'165'}, {u'serviceid': u'166'}, {u'serviceid': u'183'}, {u'serviceid': u'341'}, {u'serviceid': u'342'}, {u'serviceid': u'343'}, {u'serviceid': u'122'}, {u'serviceid': u'158'}, {u'serviceid': u'331'}, {u'serviceid': u'175'}, {u'serviceid': u'124'}, {u'serviceid': u'155'}, {u'serviceid': u'179'}, {u'serviceid': u'109'}, {u'serviceid': u'164'}, {u'serviceid': u'133'}, {u'serviceid': u'135'}, {u'serviceid': u'117'}, {u'serviceid': u'181'}, {u'serviceid': u'114'}, {u'serviceid': u'102'}, {u'serviceid': u'123'}, {u'serviceid': u'115'}, {u'serviceid': u'125'}, {u'serviceid': u'150'}, {u'serviceid': u'168'}, {u'serviceid': u'171'}, {u'serviceid': u'140'}, {u'serviceid': u'126'}, {u'serviceid': u'141'}, {u'serviceid': u'138'}, {u'serviceid': u'139'}, {u'serviceid': u'136'}, {u'serviceid': u'178'}, {u'serviceid': u'106'}, {u'serviceid': u'127'}, {u'serviceid': u'128'}, {u'serviceid': u'180'}, {u'serviceid': u'52'}, {u'serviceid': u'137'}, {u'serviceid': u'19'}, {u'serviceid': u'105'}, {u'serviceid': u'56'}, {u'serviceid': u'60'}, {u'serviceid': u'130'}, {u'serviceid': u'113'}, {u'serviceid': u'152'}, {u'serviceid': u'107'}, {u'serviceid': u'132'}]}}, 'jsonrpc': '2.0', 'method': 'service.deletetimes', 'auth': u'434c4692f388524d9c363ae92dbc3535', 'id': 2}", -32500)
I'm using Zabbix 4.2.0 and Python 2.7.5.
Thank you all.
Comment