Ad Widget

Collapse

Добавление группы к хосту через api

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Alex1987
    Member
    • Nov 2015
    • 55

    #1

    Добавление группы к хосту через api

    Пытаюсь написать скрипт, который добавил бы группу к хосту. host.update заменяет уже существующие группы, но мне нужно именно добавить к имеющимся группам.
    Скрипт:

    #!/usr/bin/python -u
    import sys
    import os
    import time
    from pyzabbix import ZabbixAPI

    zapi = ZabbixAPI("http://zabbix/")
    zapi.login("user", "password")


    for host in zapi.host.get(output = "extend", filter={'host':'Zabbix server'}):
    oldgroup = []
    for hostgroup in zapi.hostgroup.get(output = "extend", hostids = host['hostid']):
    oldgroup.append(hostgroup['groupid'])
    print oldgroup
    uhost = zapi.host.update({'hostid': host['hostid'], 'groups':[[oldgroup],113]})
    print uhost

    Несмотря на то, что старые группы собираются в массив oldgroup, группа c id 113 всё равно заменяет существующие.
    Может кто-нибудь подскажет, что не так я делаю.
    Спасибо.
  • Alex1987
    Member
    • Nov 2015
    • 55

    #2
    Сам нашел решение:

    #!/usr/bin/python -u
    import sys
    import os
    import time
    from pyzabbix import ZabbixAPI

    zapi = ZabbixAPI("http:///zabbix")
    zapi.login("user", "password")



    for host in zapi.host.get(output = "extend", filter={'host':'Zabbix server'}):
    oldgroup = []
    newgroup = [113]
    for hostgroup in zapi.hostgroup.get(output = "extend", hostids = host['hostid']):
    oldgroup.append(int(hostgroup['groupid']))
    oldgroup.extend(newgroup)
    print oldgroup
    uhost = zapi.host.update({'hostid': host['hostid'], 'groups'ldgroup})

    Comment

    • DRVTiny
      Senior Member
      • Sep 2011
      • 162

      #3
      Можно и в одно действие: hostgroup.massadd

      Comment

      Working...