Adding Agent node via JSON not PS nor PY

I'm looking for the variables for adding nodes SNMP (for network equipemnt) AND agent for win and linux (worse case scenario, WMI)

Case: We are trying to automate creation of a node/server using our ITSM / ITAM tool with http post... as you can see it's http post/get/patch etc. and only json files can be imported so no powershell, python scripts can be imported.

Right now:

If a node is already in SW and we want to edit an asset (manually) in our ITAM, using the right json formated body the node custom properties can be edited with http post of course.

But now we want to automate that and create an asset in our ITAM, so it automatically creates the node in SW (using agent / wmi / snmp). Using one centralized tool, for adding, editing and deleting, thus our ITAM tool.

I first tried the other way around. Creating a Solarwinds alerts, using trigger action http post. That did work, but.! the editing and deleting part is a no-go... because our ITAM uses a "field id" for api calls instead of the Solarwinds Caption (asset id in ITAM) when we created it. 

So our only move is to make http post using only json in our ITAM if we want this to work/automate. 

This is an example of the editing part:







"properties": {

    "CustomerAccountManager": "${_card["customer-account-manager"]!}"

    "CustomerContactPerson": "${_card["customer-contact-person"]!}"

    "CustomerContactPhone": "${_card["customer-contact-phone"]!}"

    "CustomerPackageCloudstarter": "${_card["has-cloudstarter-package"]!}"

    "CustomerPackageCorporateInternet": "${_card["has-corporate-internet-package"]!}"

    "CustomerPackageEVPN": "${_card["has-evpn-package"]!}"

    "CustomerPackageSIP": "${_card["has-a-sip-package"]!}"

    "CustomerServiceLevelAgreement": "${_card["service-level-agreement"]!}"


    "DeviceOLTName": "${_card["olt-name"]!}"

    "DeviceOLTSlotNumber": "${_card["slot-number"]!}"

    "DeviceOLTSlotPonNumber": "${_card["pon-number"]!}"

    "DeviceONTNumber": "${_card["ont-number"]!}"




  • I don't have the code you want, I prefer PowerShell and python, but I have done similar projects, and hope that something I say will help you.

    I have found its better to add the new node by using the API to add to a discovery task with automatic import rules to get it all set up correctly for monitoring, and have a 2nd job that synchronizes custom properties. I actually go and find matching devices in the two systems, add just the ID from the other system (service now) to Orion, then I come back and validate the custom properties on all nodes using the ID, updating only what needs it. That way I have my new stuff getting imported however it needs to be done, from the automated tasks or by hand, and a process to bring the 2 systems in sync. Technically I also go and add the Orion ID back into service now. The list of things that don't have IDs or somehow have duplicated IDs in both systems get looked at so I can improve the automation and do clean up. 

    We also try to make all these types of jobs run from one place, not a bunch of different systems just so people know how to find oddball stuff when they need to. We use RunDeck, and it executes all sorts of stuff, Ansible, PowerShell, Python, Bash, etc. so we pick the best/easiest tool for the job, but it still gets controlled, scheduled, logged in the same ways for everything. 

    Honestly, you might be fine with your process, but make sure you think about not just the 'add device' part, but also the maintenance and decommission of systems since you have so much of it that would apply to the other phases. I find that I have less work with my current process, but every place is different, and I do consistently alter what I do to match what we need.

    Good luck, I hope you find your answer.