News:

We really need your input in this questionnaire

Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - SKYnv

#166
Начал потихоньку рисовать карты.
и такой вот момент

текущая реализация зависимости статуса объекта от другого не позволяет рисовать кольца stp, то есть когда стату объекта норма, когда у однго из двух соседних свичей он норма. То есть нужен эдакий trueshold.
#167
Общие вопросы / Re: Баги 1.2.3
September 12, 2012, 08:03:07 PM
Quote from: Victor Kirhenshtein on September 12, 2012, 05:03:22 PM
Quote from: SKYnv on September 12, 2012, 04:47:46 PM
Есть кстати вопрос-предложение. Написать скрипт для поиска регрессов в парсере скриптов? Могу заняться в принципе на выходных, опыта правда в данной области не было, но принцип то один у всех )

Да, это было бы хорошо. Скрипты используются все активней и активней, и баги вылезают очень занятные.
тогда займусь. очевидные вещи точно заскриптую.
1.2.3.1 завелся нормально, пока регрессий не заметил.
#169
General Support / how use configuration poll hook
September 12, 2012, 05:00:09 PM
Configuration poll hook is new feature of NetXMS 1.2.3
How it use?

1) create script in script library with Hook::ConfigurationPoll name.
2) write your script.

This script will be executed for node after each configuration poll

simple script example
//rename node after configuration poll to snmp sysLocation
//if sysLocation is null then rename to node ip address
//also 3 custom attributes will be setted
// you can use this attributes in events with %{attribute_name} macros
//uncomment trace line and run netxmsd with -D1 param for logging

sub main()
{
  if ($node->isSNMP)
   {
  //trace(1,"hook executed for ".$node->ipAddr);
   transport = CreateSNMPTransport($node);
    if (transport == null)
    {
    //trace(1,"snmp transport error on ".$node->ipAddr);
    return -1;
    }
   
    location = SNMPGetValue(transport, ".1.3.6.1.2.1.1.6.0"); // sysLocation
    sysname = SNMPGetValue(transport, ".1.3.6.1.2.1.1.5.0");  // sysname
    uptime = SNMPGetValue(transport, ".1.3.6.1.2.1.1.3.0");   // uptime
   
    //trace(1,"[".location."], [".sysname."], [".uptime."]");
   
    if (location != null && location !="" && location!=" ")
     { 
         //trace(1,"attr location changed to ".location);
         RenameObject($node, location);
     }
    else
    {
         //trace(1,"error in location block");
         RenameObject($node, $node->ipAddr); //change name to node ip address
    }   
    if (sysname != null && sysname !="" && sysname !=" ")
    {
         SetCustomAttribute($node, "sysname", sysname); //set custom attribute for node snmp sysName
         //trace(1,"attr sysname changed to ".location);
    }
    else
    {
         //trace(1,"error in sysname block");
    }

    if (uptime != null)
    {
         SetCustomAttribute($node, "uptime", SecondsToUptime(uptime/100)); //set custom attribute uptime for node
         //trace(1,"attr uptime changed to ".SecondsToUptime(uptime/100));
    }
    else
    {
        //trace(1,"error in uptime block");
    }
   
    //trace(1,"end execution");
    SetCustomAttribute($node, "last_update",localtime(time())->mday.".".localtime(time())->mon.".".localtime(time())->year.", ".localtime(time())->hour.":".localtime(time())->min.":".localtime(time())->sec);       
  }
}
#170
Общие вопросы / Re: Баги 1.2.3
September 12, 2012, 04:47:46 PM
Quote from: Victor Kirhenshtein on September 12, 2012, 01:40:40 PM
Иконка там неправильная, но и не от старой консоли тоже. Поправлю.

и так по невнимательности в configuration hook
написал
Quoteif (node->isSNMP)
заместо
Quoteif ($node->isSNMP)
понятное дело что ничего не работало, но скрипт выполнялся, просто данный цикл игнорировался и ошибок нигде не писалось. Тяжело для отладки.

Ну и дальше
transport = CreateSNMPTransport(node);
    if (transport == null)
    return -1;
   

не возвращало ошибку, хотя переменная Node не инициализированна и возвращается null

Давненько кстати у меня вкладка ports пустая (белый лист), думал баги, на 1.2.3.1 тоже девственно чиста.

уф, hook прекрасно отрабатывает.
Теперь начну экспериментировать с вызовом евентов из скрипта.

Есть кстати вопрос-предложение. Написать скрипт для поиска регрессов в парсере скриптов? Могу заняться в принципе на выходных, опыта правда в данной области не было, но принцип то один у всех )
#171
Quote from: MaG on September 12, 2012, 03:04:50 PM
SKYnv
а хз я строчку конфигурации с первых релизов не менял )
Victor Kirhenshtein
./configure --prefix=/usr/local/netxms --with-server --with-pgsql --with-agent --with-openssl --with-gd --with-internal-libtre
и без изменений
ясн, а почему unicode билд не попробуйте? или не принципиально? --enable-unicode
#172
а разве
Quote--with-nxhttpd
сейчас работает? вроде же на сервлет перешли? или они не зависят друг от друга?
#173
Общие вопросы / Re: Баги 1.2.3
September 12, 2012, 01:02:43 PM
Quote from: Victor Kirhenshtein on September 12, 2012, 12:07:16 PM
Выложил обновленные исходники:  https://www.netxms.org/download/archive/netxms-1.2.3.1.tar.gz. Попробуйте.
и еще, это у меня комп глючит или в трее nxmc иконка от legacy console?
#174
Общие вопросы / Re: Баги 1.2.3
September 12, 2012, 11:32:48 AM
Quote from: Victor Kirhenshtein on September 12, 2012, 11:31:03 AM
Разобрался - это я неудачно исправил ошибку с n=n-1. Сейчас поправлю и сделаю новый билд.

ну вот )) спасибо ждёмс ))
#175
Общие вопросы / Re: Баги 1.2.3
September 12, 2012, 10:59:02 AM
Quote from: SKYnv on September 11, 2012, 08:39:01 PM
странно, но использование в скриптах
transport = CreateSNMPTransport(node_object)


QuoteERROR: Script finished with error: Error 1 in "line line_number": Data stack underflow

Посмотрю еще утром на свежую голову.

В общем да, все скрипты с Snmp  Что работали в прошлой версии, теперь не хотя.
ошибка таже

а например такой скрипт

EnumerateNodes(FindObject(1));

sub EnumerateNodes(rootObject)
{
    foreach(node : GetObjectChildren(rootObject))
    {
        if (classof(node) == "Node")
        {
               
             transport = CreateSNMPTransport(node);
               if (transport == null)
               return -1;

               oid_loc = ".1.3.6.1.2.1.1.6.0";  // location
               location = SNMPGetValue(transport, oid_loc);

               if (location != null && location !="" && location!=" ")
            {
               RenameObject(node, location);
               println("Object ".node->ipAddr." renamed to ".location);
            }
            else
             {
               RenameObject(node, node->ipAddr);
               println("Object ".node->ipAddr." renamed to ".node->ipAddr);
             }


        }
        else if (classof(node) == "NetObj")
        {
            EnumerateNodes(node);
        }
    }
}

падает на строке
Quoteelse if (classof(node) == "NetObj")
в предыдущей версии работал на ура.

в чем может быть причина?
#176
Общие вопросы / Re: Баги 1.2.3
September 11, 2012, 08:39:01 PM
странно, но использование в скриптах
transport = CreateSNMPTransport(node_object)


QuoteERROR: Script finished with error: Error 1 in "line line_number": Data stack underflow

Посмотрю еще утром на свежую голову.
#177
Общие вопросы / Re: Баги 1.2.3
September 11, 2012, 08:09:14 PM
Quote from: Victor Kirhenshtein on September 11, 2012, 07:57:08 PM
Да, это может быть если созданы графики в новой консоли. Здесь совместимость только в одну сторону. Legacy консоли давно пора на свалку истории...
ну свалка не свалка, а работает она порой гораздо стабильнее и быстрее ява )

после более плотных экспериментов посмотрю насчет багов. Так вроде все зацепилось нормально. Сейчас вот с Hook::ConfigurationPoll поэкспериментирую и спать, или на ночь оставлю.
пока вот такой набросал для теста

//rename node after configuration poll to snmp sysLocation
//if sysLocation is null then rename to node ip addres
//also 2 custom attrubuts will be setted
// you can use this attributs in events with %{attribute_name} macros

sub main()
{
trace(0,"hook executed");
trace(1,"hook executed");
  if $node->isSNMP
  {
   transport = CreateSNMPTransport($node);
    if (transport == null)
    return -1;

    oid_loc = ".1.3.6.1.2.1.1.6.0";  // sysLocation
    oid_uptime = ".1.3.6.1.2.1.1.3.0";  // uptime
    oid_name = ".1.3.6.1.2.1.1.5.0";  // sysname
   
   
    location = SNMPGetValue(transport, oid_loc);
    sysname = SNMPGetValue(transport, oid_name);
    uptime = SNMPGetValue(transport, oid_uptime);

    if (location != null && location !="" && location!=" ")
         RenameObject($node, location);
    else RenameObject($node, $node->ipAddr); //change name to node ip address
       
      if (sysname != null && sysname !="" && sysname !=" ")
          SetCustomAttribute($node, "sysname", sysname); //set custom attribute for node snmp sysName

      if (uptime != null)
          SetCustomAttribute($node, "uptime", SecondsToUptime(uptime/100)); //set custom attribute uptime for node
  }
}


2) Да кстати шрифт в WebUI в любом поле редактирования скриптов просто садистски маленький ))
#178
Общие вопросы / Баги 1.2.3
September 11, 2012, 07:27:18 PM
1)
legacy console
predefined graphs Не открываются, вернее показывают пустое окно
#179
Announcements / Re: NetXMS 1.2.3 released
September 11, 2012, 06:36:03 PM
Great work! thanks!
#180
Общие вопросы / Re: Баги 1.2.3-rc4
September 11, 2012, 05:19:28 AM
Quote from: Victor Kirhenshtein on September 10, 2012, 10:58:55 PM
Да, потрясающий баг :( В интерпретаторе операция -- выглядит так:

Похоже придется таки 1.2.3 перепаковывать... Релиз будет завтра.
всякое бывает ) ctr+c ctrl-v ))