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: mw-***.***.**:17778/.../CreateCoreP
luginConfiguration
If anyone can help me solve this problem i will forever be grateful. As mentioned, i am VERY new to the API.