5 Replies Latest reply on Aug 18, 2016 6:46 AM by beagless

    Discovering volume for a node in python

    lazypete

      Im looking for a way to get the list of volume from a node.

       

      I used SWQL to obtain the list from Orion NPM, but since none of the Node's volume have been discovered it return an empty list.

       

      Is there a way to trigger a volume discovery from the API for a specific Node?

      is this obtained by some pollers I need to assign to the node for this to happen?

        • Re: Discovering volume for a node in python
          tdanner

          There is not a way to obtain a list of volumes from an existing node. However, you can add a node using the discovery API. This will also add the volumes. You can then delete any added volumes that you don't want to monitor. See this post for details and an example script in Perl: Triggering discovery of SNMPV2 device through JSON API

          • Re: Discovering volume for a node in python
            nickigraus

            Make yourself a test node in Orion, add pollers as needed - sorry, can't recall the name of the poller, to pull volumes via SNMP.

             

            Connect to the database and do

             

            SELECT p.NetObjectType, p.PollerType

              FROM [SolarWindsOrion].[dbo].[Nodes] as n

              left join [SolarWindsOrion].[dbo].[Pollers] as p on n.NodeID = p.NetObjectID

              where n.Caption like 'MyTest Node' and p.Enabled = 1

             

            Add the respective poller, you are missing.

              • Re: Discovering volume for a node in python
                lazypete

                I checked this out, took me a while had production problems last few days.

                 

                nickigraus I tried your solution, but its not working I have all the pooler on my node and I still don't get the volumes.

                 

                tdanner Im working on your solution, but I **** at perl so translating this in python is not an easy thing.

                The funny thing is that I've been sucessful up to a point.

                 

                The perl code doesn't do anything very complex, and at som point it fills a structure with info like engineID, SnmpPort, SnmpRetries...

                and finally PluginConfiguration with a XML content.

                What is funny is that when I ran the code it kept telling me:

                TypeError: invoke() got an unexpected keyword argument 'Name'

                 

                Until I had removed all the data in the structure... probably I did something wrong....

                 

                Anyway still working on it.