Showing results for 
Search instead for 
Did you mean: 
Create Post

NCM Status, Backup status/download configs and last transfer message. NPM Node details resource

Hi Community,

had an idea around 11 o'clock last night and wanted to to share an awesome new resource with you guys. The resource can be placed on the node's details page to have visibility into ncm from the nodes landing page.

I have seen a few times when devices are added into npm and not added into ncm so i wanted a way to capture this information and have it accessible from npm. Even when the device is added into ncm there can still be issues downloading configs i.e. when a 'connection is refused' by the device. So i have created a resource to-do well, just that

At the moment this resource will work with any vendor that is capable of ncm some slight changes to the SQL will be required. dont worry ill show you how to add other vendors into the resource, the current download is checking for only Cisco but you can added what ever vendor.

the Logic is simple here.

what were checking is the nodes table and ncm_nodes and where ncm_nodeID is null and vendor is like Cisco then 'should be in ncm module'  and polling the the ncm_nodeproperties into get the last status change and building case statements to give dynamic icons effect lol.



Updated version:

pastedImage_11.png  pastedImage_12.png

Some fundamentals, this report is used in Report Writer so simply place the file here: "C\Program Files (x86)\SolarWinds\Orion\Reports" this report uses the same icons as solarwinds so you should have any issues (hopfully lol)

Because links are different from my PPE you will need to update the ncm status link to match yours and the download field. you can actually have these links go to anywhere so feel free to point to anywhere


Here is a snippet of the SQL that you will need to-date to add more vendors in as you can see Cisco is already selected.


  n.Status NOT IN ('9')


AND n.nodeID = ${NodeID}

think that covers everything, perhaps.. just a personal preferences i like this under the 'management' resource 


Any issues please drop me a line and ill try get back to you asap

final thing... if you are in the UK please feel free come along to the London SWUG for some more awesome tips and tricks

June 1, 2017 London, UK SWUG with myself and alexslv


Updated 14/05/2017:

Minor SQL for substrings

updated links to direct access to node properties page for easy access to enable ncm

updated icon for downloading


Hey, awesome work buddy, thanks for sharing.

Just one question - why do you use vendor filter in sql script? I guess if

you were to remove this line then it will work for all vendors by default.

Am I missing something here?

my pleasure

that did cross my mind..

perhaps if i re-versed the logic  and polled from ncm_nodes then the nodes table then made the joins... na that wouldn't work...

Because the query is checking for null values from the nodes table and ncm_nodes table and based on ncm nodeid it would return a value based on any vendor and hp and friends will all show up as 'Enable ncm',  this is because these guys dont have an ncm_nodeid but can join on the corenodeid and nodeid from nodes it will give incorrect values

tested in case i was going mad  


i_like_eggs Nice work, thanks for sharing!


Looks great! Keep the tips and tricks coming!


could someone smarter than me convert this to SWQL so we can still use it?


I checked it in SWQL Studios, and it appears to have worked for me.




,case when nc.NodeID is null then 'Small-Relative-3.gif' ELSE 'Small-Relative-2.gif' END AS i1

,case when nc.NodeID is null then 'Enable NCM' ELSE 'OK' END AS [NCM Status]

,case when ne.LoginStatus LIKE '%issues%' OR ne.LoginStatus like '%Refused%' OR nc.NodeID is null then 'Small-Relative-3.gif' ELSE 'Small-Relative-2.gif' END AS i2

,case when ne.LoginStatus LIKE '%issues%' OR ne.LoginStatus like '%Refused%'  OR nc.NodeID is null  then 'Review Running/Start Config' ELSE 'OK' End AS [NCM connection]

,'Trap.gif' AS [Download]

,case when ne.LastTransferMessage = 'Complete' then 'Complete' Else (SUBSTRING(ne.LastTransferMessage,1, 18) + '...') END AS [Last Transfer]

FROM Orion.Nodes AS n

JOIN NCM.Nodes AS nc ON n.NodeID=nc.CoreNodeID

JOIN (select CoreNodeID,LoginStatus,LastTransferMessage from Cirrus.NodeProperties nps where nps.LoginStatus NOT LIKE '%OK%') AS ne ON ne.CoreNodeID = nc.CoreNodeID


n.Status NOT IN ('9')

AND (n.Vendor IN ('CISCO'))

AND n.nodeID = ${NodeID}

Thank you,


Version history
Revision #:
1 of 1
Last update:
‎05-12-2017 07:58 AM
Updated by: