* Use grafana toolkit template for building plugin * Fix linter and type errors * Update styles building * Fix sass deprecation warning * Remove empty js files produced by webpack building sass * Fix signing script * Replace classnames with cx * Fix data source config page * Use custom webpack config instead of overriding original one * Use gpx_ prefix for plugin executable * Remove unused configs * Roll back react hooks dependencies usage * Move plugin-specific ts config to root config file * Temporary do not use rst2html for function description tooltip * Remove unused code * remove unused dependencies * update react table dependency * Migrate tests to typescript * remove unused dependencies * Remove old webpack configs * Add sign target to makefile * Add magefile * Update CI test job * Update go packages * Update build instructions * Downgrade go version to 1.18 * Fix go version in ci * Fix metric picker * Add comment to webpack config * remove angular mocks * update bra config * Rename datasource-zabbix to datasource (fix mage build) * Add instructions for building backend with mage * Fix webpack targets * Fix ci backend tests * Add initial e2e tests * Fix e2e ci tests * Update docker compose for cypress tests * build grafana docker image * Fix docker stop task * CI: add Grafana compatibility check
81 lines
1.7 KiB
Python
81 lines
1.7 KiB
Python
import os
|
|
from time import sleep
|
|
from pyzabbix import ZabbixAPI, ZabbixAPIException
|
|
|
|
zabbix_url = os.environ['ZBX_API_URL']
|
|
zabbix_user = os.environ['ZBX_API_USER']
|
|
zabbix_password = os.environ['ZBX_API_PASSWORD']
|
|
print(zabbix_url, zabbix_user, zabbix_password)
|
|
|
|
zapi = ZabbixAPI(zabbix_url, timeout=5)
|
|
|
|
for i in range(10):
|
|
print("Trying to connected to Zabbix API %s" % zabbix_url)
|
|
try:
|
|
zapi.login(zabbix_user, zabbix_password)
|
|
print("Connected to Zabbix API Version %s" % zapi.api_version())
|
|
break
|
|
except ZabbixAPIException as e:
|
|
print e
|
|
sleep(5)
|
|
except:
|
|
print("Waiting")
|
|
sleep(5)
|
|
|
|
|
|
config_path = os.environ['ZBX_CONFIG']
|
|
import_rules = {
|
|
'discoveryRules': {
|
|
'createMissing': True,
|
|
'updateExisting': True
|
|
},
|
|
'graphs': {
|
|
'createMissing': True,
|
|
'updateExisting': True
|
|
},
|
|
'groups': {
|
|
'createMissing': True
|
|
},
|
|
'hosts': {
|
|
'createMissing': True,
|
|
'updateExisting': True
|
|
},
|
|
'images': {
|
|
'createMissing': True,
|
|
'updateExisting': True
|
|
},
|
|
'items': {
|
|
'createMissing': True,
|
|
'updateExisting': True
|
|
},
|
|
'maps': {
|
|
'createMissing': True,
|
|
'updateExisting': True
|
|
},
|
|
'templateLinkage': {
|
|
'createMissing': True,
|
|
},
|
|
'templates': {
|
|
'createMissing': True,
|
|
'updateExisting': True
|
|
},
|
|
'triggers': {
|
|
'createMissing': True,
|
|
'updateExisting': True
|
|
},
|
|
}
|
|
|
|
print("Importing Zabbix config from %s" % config_path)
|
|
with open(config_path, 'r') as f:
|
|
config = f.read()
|
|
|
|
try:
|
|
# https://github.com/lukecyca/pyzabbix/issues/62
|
|
import_result = zapi.confimport("xml", config, import_rules)
|
|
print(import_result)
|
|
except ZabbixAPIException as e:
|
|
print e
|
|
|
|
for h in zapi.host.get(output="extend"):
|
|
print(h['name'])
|