NetXMS Support Forum

Russian Support => Общие вопросы => Topic started by: joni on April 17, 2015, 01:49:35 PM

Title: API 2.0-M3
Post by: joni on April 17, 2015, 01:49:35 PM
простейший запрос перестал обрабатываться

for alarm in session.getAlarms().values():
print '%s (%d): %s' % (session.getObjectName(alarm.getSourceObjectId()), alarm.getCurrentSeverity(), alarm.getMessage())

или

for node in filter(lambda x: isinstance(x, objects.Node), s.getAllObjects()):
    print node.getObjectName()


но это работает

import org.netxms.client
import sys
for action in s.getActions():
    name = action.getName()
    data = action.getData()
    print name, '---', data


Title: Re: API 2.0-M3
Post by: Alex Kirhenshtein on April 17, 2015, 02:42:51 PM
>>> for alarm in session.getAlarms().values():
... print '%s (%d): %s' % (session.getObjectName(alarm.getSourceObjectId()), alarm.getCurrentSeverity(), alarm.getMessage())
...
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
TypeError: %d format: a number is required, not org.netxms.client.constants.Severity
>>>


Severity теперь Enum.

>>> alarm
org.netxms.client.events.Alarm@4e904fd5
>>> session.getObjectName(alarm.getSourceObjectId())
u'AirAlk.local'
>>> alarm.getCurrentSeverity()
CRITICAL
>>> type(alarm.getCurrentSeverity())
<type 'org.netxms.client.constants.Severity'>
>>> alarm.getCurrentSeverity().getValue()
4



Второй пример у меня отлично работает:
>>> for node in filter(lambda x: isinstance(x, objects.Node), s.getAllObjects()):
... print node.getObjectName()
...
AirAlk.local
Title: Re: API 2.0-M3
Post by: joni on April 20, 2015, 03:32:18 PM
спасибо, работает.