I am trying to discover nodes.
My initial JSON is such
$jsonPreconfig = '[{
"BulkList": [{"Address":"X.X.X.X"}],
"Credentials": [
{
"CredentialID": 2,
"Order": 1
}
],
"WmiRetriesCount": 0,
"WmiRetryIntervalMiliseconds": 1000
}]';
POST $jsonPreconfig TO -> /SolarWinds/InformationService/v3/Json/Invoke/Orion.Discovery/CreateCorePluginConfiguration
RETURNS
$coreConfig = '<?xml version="1.0" encoding="utf-16"?>
<PluginItems>
<knownTypes>
<ArrayOfstring
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<string>SolarWinds.Orion.Core.Models.Discovery.CoreDiscoveryPluginConfiguration,SolarWinds.Orion.Core.Models</string>
</ArrayOfstring>
</knownTypes>
<pluginItem>
<ArrayOfDiscoveryPluginConfigurationBase
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.datacontract.org/2004/07/SolarWinds.Orion.Core.Models.Discovery">
<DiscoveryPluginConfigurationBase
xmlns:d2p1="http://schemas.solarwinds.com/2008/Orion" i:type="d2p1:CoreDiscoveryPluginConfiguration">
<d2p1:ActiveDirectoryList />
<d2p1:AddressRange />
<d2p1:AgentsAddresses
xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<d2p1:AutoImportVolumeTypes
xmlns:d3p1="http://schemas.datacontract.org/2004/07/SolarWinds.Common.Snmp" i:nil="true" />
<d2p1:BulkList
xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:string>192.168.111.252</d3p1:string>
</d2p1:BulkList>
<d2p1:Credentials>
<d2p1:credentials>
<knownTypes>
<ArrayOfstring
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
</knownTypes>
<pluginItem>
<d2p1:ArrayOfCredential
xmlns:i="http://www.w3.org/2001/XMLSchema-instance" />
</pluginItem>
</d2p1:credentials>
</d2p1:Credentials>
<d2p1:DiscoverAgentNodes>false</d2p1:DiscoverAgentNodes>
<d2p1:PreferredPollingMethod>SNMP</d2p1:PreferredPollingMethod>
<d2p1:SharedCredentials
xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:KeyValueOfintint>
<d3p1:Key>1</d3p1:Key>
<d3p1:Value>2</d3p1:Value>
</d3p1:KeyValueOfintint>
</d2p1:SharedCredentials>
<d2p1:SubnetList />
<d2p1:WMICredentials />
<d2p1:WmiRetries>0</d2p1:WmiRetries>
<d2p1:WmiRetryInterval>PT1S</d2p1:WmiRetryInterval>
</DiscoveryPluginConfigurationBase>
</ArrayOfDiscoveryPluginConfigurationBase>
</pluginItem>
</PluginItems>';
Then I convert this to JSON
Which is
$jsonCoreConfig = '{
"knownTypes":{
"ArrayOfstring":{
"string":"SolarWinds.Orion.Core.Models.Discovery.CoreDiscoveryPluginConfiguration,SolarWinds.Orion.Core.Models"
}
},
"pluginItem":{
"ArrayOfDiscoveryPluginConfigurationBase":{
"DiscoveryPluginConfigurationBase":{
"BulkList":{
"string":"X.X.X.X"
},
"Credentials":{
"credentials":{
"knownTypes":{
"ArrayOfstring":[
]
},
"pluginItem":[
]
}
},
"DiscoverAgentNodes":"false",
"PreferredPollingMethod":"SNMP",
"SharedCredentials":{
"KeyValueOfintint":{
"Key":"1",
"Value":"2"
}
},
"WmiRetries":"0",
"WmiRetryInterval":"PT1S"
}
}
}
}';
Put the above in here
$startDiscovery = '[{"Name": "UNIT_TESTDiscovery",
"EngineID": 1,
"JobTimeoutSeconds": 3600,
"SearchTimeoutMiliseconds": 2000,
"SnmpTimeoutMiliseconds": 2000,
"SnmpRetries": 4,
"RepeatIntervalMiliseconds": 1800,
"SnmpPort": 161,
"HopCount": 0,
"PreferredSnmpVersion": "SNMP2c",
"DisableIcmp": "False",
"AllowDuplicateNodes": "False",
"IsAutoImport": "True",
"IsHidden": "True",
"PluginConfigurations": [
{
"PluginConfigurationItem": '. $jsonCoreConfig.'
}
]
}]';
POST $startDiscovery TO -> /SolarWinds/InformationService/v3/json/Invoke/Orion.Discovery/StartDiscovery
Then I get back
{
"Message":"Verb Orion.Discovery.StartDiscovery cannot unpackage parameter 0 with type SolarWinds.Data.Providers.Orion.Verbs.Discovery+StartDiscoveryContext",
"ExceptionType":"SolarWinds.InformationService.Verb.VerbExecutorException",
"FullException":"SolarWinds.InformationService.Verb.VerbExecutorException: Verb Orion.Discovery.StartDiscovery cannot unpackage parameter 0 with type SolarWinds.Data.Providers.Orion.Verbs.Discovery+StartDiscoveryContext ---> Newtonsoft.Json.JsonReaderException: Error reading string. Unexpected token: StartArray. Path '[0]PluginConfigurations[0].PluginConfigurationItem'.\r\n at Newtonsoft.Json.JsonReader.ReadAsStringInternal()\r\n at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadForType(JsonReader reader, JsonContract contract, Boolean hasConverter)\r\n at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)\r\n at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)\r\n at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)\r\n at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)\r\n at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)\r\n at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)\r\n at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)\r\n at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)\r\n at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)\r\n at SolarWinds.InformationService.Verb.VerbExecutorContext.<>c__DisplayClass22_0.<UnpackageParameters>b__0(Int32 index)\r\n --- End of inner exception stack trace ---\r\n at SolarWinds.InformationService.Verb.VerbExecutorContext.<>c__DisplayClass22_0.<UnpackageParameters>b__0(Int32 index)\r\n at SolarWinds.InformationService.Verb.VerbExecutorContext.CreateParameters(Func`2 getParameterAt, Int32 parametersCount, Stream stream)\r\n at SolarWinds.InformationService.Verb.VerbExecutorContext.UnpackageParameters(JArray parameters)\r\n at SolarWinds.InformationService.Core.InformationService.Invoke[T](String entity, String verb, Action`1 setupParameters, Func`2 extractReturnValue)"
}
Any help will be very much appreciated! Thank you in advance.