Ad Widget

Collapse

как отвязать шаблоны и все элементы его в api?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Skaurus
    Junior Member
    • Mar 2012
    • 5

    #1

    как отвязать шаблоны и все элементы его в api?

    Здравствуйте.

    Пробую с помощью API отвязать шаблон от хоста.
    Использовал и template.massUpdate с templates_clear и template.massRemove с templateids_link.
    Итог - шаблон отвязался, а итемы, триггеры и графики остались.
    Версия 1.8.9.
    Неужели нужно выбирать еще и эти элементы отдельно и удалять?
  • noname
    Senior Member
    • Jan 2008
    • 120

    #2
    чтобы отсоединить с очисткой итемов, следует использовать templates_clear => [{templateid => ?}]

    P.S. Синтаксис взят из perl, разобраться, что тут сказано, несложно

    Comment

    • Skaurus
      Junior Member
      • Mar 2012
      • 5

      #3
      Собственно на перле только и пишем)

      Code:
      $hash = {
      	jsonrpc   => "2.0",
      	method    => "template.Update",
      	auth      => $auth,
      	id        => $id,
      	params    => {
      		      templates       => [{templateid => $new_templ],
      	              hosts           => [{hostid     => $hostid}],
      		      templates_clear => [{templateid => $old_templ}]		
      		      }
      	 };
      Вот кусочек скрипта который делает изменение шаблона узла при определенных условиях.

      Дампер возвращает
      Code:
      $VAR1 = {
                'data' => '[ CTemplate::update ] You do not have permission to perform this operation',
                'message' => 'Application error.',
                'code' => -32500
              };
      Права у пользователя API read-write на этот узел(собственно узел и добавлялся через API). Все переменные возвращают верные id.
      Может у кого есть мысли? А то уже начинаю подумывать вытягивать все id итемов для узла и через item.delete, но решение, мягко говоря, не верное идеалогически.
      Last edited by Skaurus; 19-03-2012, 13:38.

      Comment

      • noname
        Senior Member
        • Jan 2008
        • 120

        #4
        А права на шаблон какие?

        P.s. Чтобы убедиться (и только для этого), что все работает как надо, поставьте вашему api-пользователю суперадмина. Не забудьте вернуть обратно

        Comment

        • alp
          Member
          • Nov 2009
          • 90

          #5
          Что-то не происходит отвязка от шаблона =/
          zapi.host.update({"hostid": cmph[i], "templates_clear": {"templateids": "10007"} })
          Таким обращением прогоняю в цикле несколько хостов, При каждом обращении несколько минут думаем(база весит 30 гигов и содержит 16 тысяч хостов), после чего переходим к следующему. После выполнения смотрим на хосты с которыми работали и видим, что к ним попрежнему привязан шаблон с id 10007. Это ошибка в АПИ или я что-то делаю не так?
          Забыл сказать, что у всех редактируемых хостов существует привязка к двум шаблонам и задача состоит в том чтобы один из шаблонов отвязать.
          Last edited by alp; 23-05-2012, 09:45.

          Comment

          Working...