Hello, i have been googling this issue all day without success of finding a solution. I am fairly new to orionSDK and i want to make my life easier to find available ip adresses. The code is as follows.
from __future__ import print_function import re import requests from orionsdk import SwisClient import getpass def main(): npm_server = 'mw-solarwinds.***.**' username = 'jnk@***.**' password = getpass.getpass() target_node_ip = '10.112.12.0' snmpv3_credential_id = 3 orion_engine_id = 2 swis = SwisClient(npm_server, username, password) print("Add an SNMP v3 node:") corePluginContext = { 'BulkList': [{'Address': target_node_ip}], 'Credentials': [ { 'CredentialID': snmpv3_credential_id, 'Order': 1 } ], 'WmiRetriesCount': 0, 'WmiRetryIntervalMiliseconds': 1000 } corePluginConfig = swis.invoke('Orion.Discovery', 'CreateCorePluginConfiguration', corePluginContext) discoveryProfile = { 'Name': 'Get available IP', 'EngineID': orion_engine_id, 'JobTimeoutSeconds': 3600, 'SearchTimeoutMiliseconds': 5000, 'SnmpTimeoutMiliseconds': 5000, 'SnmpRetries': 2, 'ReeatIntervalMiliseconds': 1800, 'SnmpPort': 161, 'HopCount': 0, 'PreferredSnmpVersion': 'SNMP2c', 'DisableIcmp': False, 'AllowDuplicateNodes': False, 'IsAutoImport': True, 'IsHidden': True, 'PluginConfigurations': [{'PluginConfigurationItem': corePluginConfig}] } print("Running discovery...") result = swis.invoke('Orion.Discovery', 'StartDiscovery', discoveryProfile) print("Returned discovery profile id {}".format(result)) requests.packages.urllib3.disable_warnings() if __name__ == '__main__': main()
The error received is as follows:
[root@ml-apiipam-t1 jnk]# python3.6 get_available_ip.py Password: Add an SNMP v3 node: Traceback (most recent call last): File "get_available_ip.py", line 57, in <module> main() File "get_available_ip.py", line 30, in main corePluginConfig = swis.invoke('Orion.Discovery', 'CreateCorePluginConfiguration', corePluginContext) File "/usr/local/lib/python3.6/site-packages/orionsdk/swisclient.py", line 29, in invoke "Invoke/{}/{}".format(entity, verb), args).json() File "/usr/local/lib/python3.6/site-packages/orionsdk/swisclient.py", line 59, in _req resp.raise_for_status() File "/usr/local/lib/python3.6/site-packages/requests/models.py", line 940, in raise_for_status raise HTTPError(http_error_msg, response=self) requests.exceptions.HTTPError: 403 Client Error: Access to Orion.Discovery.CreateCorePluginConfiguration verb denied. for url: https://mw-***.***.**:17778/SolarWinds/InformationService/v3/Json/Invoke/Orion.Discovery/CreateCoreP luginConfiguration
If anyone can help me solve this problem i will forever be grateful. As mentioned, i am VERY new to the API.