cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
866
Views
0
Helpful
2
Replies

cdb.get_object not working

ajbharad
Cisco Employee
Cisco Employee

get_object via Maapi API is working as expected where as via CDB API it`s not.
Can anybody tell me what wrong am I doing here ?

(NCS Version : nso-4.7.2.1)

 

VIA MAAPI API
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
>>> import socket
>>> import _ncs
>>> from _ncs import maapi
>>> sock_maapi = socket.socket()
>>> maapi.connect(sock_maapi, ip='127.0.0.1', port=_ncs.NCS_PORT)
>>> maapi.start_user_session( sock_maapi, 'admin', 'python', [], '127.0.0.1', _ncs.PROTO_TCP)
>>> th = maapi.start_trans(sock_maapi, _ncs.OPERATIONAL, _ncs.READ)
>>>
>>> val = maapi.get_object(sock_maapi, th, 500, "/org-openroadm-alarm:active-alarm-list/activeAlarms{SM/HW_ENVMON_PEM_ALARM/22#CHASSIS/LCC/1}")
>>> val
[<_ncs.Value type=C_BUF(5) value='SM/HW_ENVMON_PE'...>, <_ncs.Value type=C_XMLTAG(2) value='tag<269073225>'>, <_ncs.Value type=C_XMLTAG(2) value='tag<61
7911018>'>, <_ncs.Value type=C_BUF(5) value='UNKNOWN'>, <_ncs.Value type=C_XMLTAG(2) value='tag<269073225>'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEX
ISTS'>, <_ncs.Value type=C_XMLTAG(2) value='tag<10387472>'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEXISTS'>, <_ncs.Value type=C_NOEXISTS(1) value='NOE
XISTS'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEXISTS'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEXISTS'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEXI
STS'>, <_ncs.Value type=C_BUF(5) value='0'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEXISTS'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEXISTS'>, <_ncs.V
alue type=C_NOEXISTS(1) value='NOEXISTS'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEXISTS'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEXISTS'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEXISTS'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEXISTS'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEXISTS'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEXISTS'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEXISTS'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEXISTS'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEXISTS'>, <_ncs.Value type=C_XMLTAG(2) value='tag<731641763>'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEXISTS'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEXISTS'>, <_ncs.Value type=C_XMLTAG(2) value='tag<1811221493>'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEXISTS'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEXISTS'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEXISTS'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEXISTS'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEXISTS'>, <_ncs.Value type=C_DATETIME(19) value='2019-05-07T20:2'...>, <_ncs.Value type=C_ENUM_HASH(28) value='enum<2>'>, <_ncs.Value type=C_NOEXISTS(1) value='NOEXISTS'>, <_ncs.Value type=C_BUF(5) value='Power Module re'...>, <_ncs.Value type=C_BUF(5) value='PEM-PWR-TRAY-LV'...>]
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

VIA CDB API :
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
>>> import socket
>>> import _ncs
>>> from _ncs import cdb
>>> from datetime import datetime
>>>
>>> cdb_socket = socket.socket()
>>> cdb.connect(cdb_socket, cdb.DATA_SOCKET, ip="127.0.0.1", port=4569)
>>> cdb.start_session(cdb_socket, cdb.OPERATIONAL)
>>>
>>> val = cdb.get_object(cdb_socket, 1, "/org-openroadm-alarm:active-alarm-list/activeAlarms{SM/HW_ENVMON_PEM_ALARM/22#CHASSIS/LCC/1}")
>>> val
[<_ncs.Value type=C_BUF(5) value='SM/HW_ENVMON_PE'...>, <_ncs.Value type=UNKNOWN_TYPE(-1147064420) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(-1079073056) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(-1082928868) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(33497248) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(33497248) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(-1079261152) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(1939215456) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(-1077718960) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(-1080009472) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(-1077931672) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(0) value='badval'>, <_ncs.Value type=C_INT64(9) value='139860236406064'>, <_ncs.Value type=UNKNOWN_TYPE(-1077931672) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(33497248) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(0) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(-1082417744) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(-1077931672) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(0) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(34180480) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(0) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(0) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(0) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(-1082731442) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(-1079686864) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(0) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(0) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(0) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(0) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(0) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(0) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(-1097425915) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(0) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(0) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(0) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(0) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(1939216456) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(1939222912) value='badval'>, <_ncs.Value type=UNKNOWN_TYPE(1939223135) value='badval'>]
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

2 Replies 2

ramkraja
Cisco Employee
Cisco Employee

@ajbharad wrote:

get_object via Maapi API is working as expected where as via CDB API it`s not.
Can anybody tell me what wrong am I doing here ?

>>> val = maapi.get_object(sock_maapi, th, 500, "/org-openroadm-alarm:active-alarm-list/activeAlarms{SM/HW_ENVMON_PEM_ALARM/22#CHASSIS/LCC/1}")
>>> val = cdb.get_object(cdb_socket, 1, "/org-openroadm-alarm:active-alarm-list/activeAlarms{SM/HW_ENVMON_PEM_ALARM/22#CHASSIS/LCC/1}")


get_object returns *all* the children for a given list instance. But only *N* children are filled with the correct values. The rest of them are dummy values, with 'UNKNOWN_TYPE' and 'badval'.

In your maapi call above, you ask for 500 values under that list instance. In the CDB call, you ask only for 1 value, so you get a proper value only for the first leaf in the list, which it the key. Increase that param in the CDB call, and you can get the same output as your maapi call above.

/Ram

Thanks a lot.

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the NSO Developer community: