13 Replies Latest reply on Oct 19, 2012 12:42 PM by emarkiewicz

    Using sample.pl to create simple nodes

    emarkiewicz

      All,

      I’m new to SolarWinds and Orion and using your API with Perl.  I can query the CMDB for existing node information using the sample.pl program so I know I have connectivity. Now I’m trying to add a node and am a little confused.  As directed, I checked the “Orion SDK.pdf” document for details on adding a node, and that pointed me to a table titled “Required Properties by Protocol”.  I’m trying to simply add a device for ICMP monitoring and according to the table, the minimum information I need to supply is the following;

       

      EntityType – “Orion.Nodes”

      IPAddress - <Simple IPv4 address>

      IPAddressGUID - <?????????>

      Caption - <Node/device name>

      DynamicIP – “False”

      EngineID – “1” (I assume)

      Status – “1”

      UnManaged – “False”

      Allow64BitCounter – “False”

      ObjectSubType – “ICMP”

       

      Can someone tell me where I get an IPAddressGUID?  Is it necessary?

      Thanks.

        • Re: Using sample.pl to create simple nodes
          tom.rybka

          The IPAddressGUID property contains an IPAddress encoded in 128bits and represented in a GUID value. The schema used is described below:

           

          IPv4 address: xxx.yyy.www.zzz

          IPAddressGUID: DDCCBBAA-0000-0000-0000-000000000000

          where AA, BB, CC, DD are hexadecimal values of xxx, yyy, www, zzz (in listing order, zero-padded)

           

          IPv6 address: AABB:CCDD:EEFF:GGHH:IIJJ:KKLL:MMNN:OOPP

          IPAddressGUID: PPOONNMM-LLKK-JJII-GGHH-AABBCCDDEEFF

           

          See the Perl module attached with a function ip2guid that generates the GUID from an input address provided (supports both IPv4/6).

          • Re: Using sample.pl to create simple nodes
            emarkiewicz

            Tom,

            OK, I've got a bigger problem now I was wondering if you could help me with.  The Perl Create script failed.  I tried the following code:

             

            #!/usr/bin/perl

             

             

            use strict;                       # Perl pragma to restrict unsafe constructs

            use warnings;                     # Help detect problems

            use diagnostics;                  # Extra help in debugging code

            use XML::Simple;

            use SW::InformationService;

             

             

            ########################################################################

            # Use P01eoaswdv01, (10.48.8.28)

            #    This section makes the connection to an Orion poller

            ########################################################################

            my $hostname = "HOSTNAME";                         # fill in a hostname

            my $username = "UID";

            my $password = "PWD";

             

             

            my $endpoint = "https://$hostname:17778/SolarWinds/InformationService/OrionBasic";

            my $swis = SW::InformationService->new();

            $swis->outputxml("true");

            $swis->proxy($endpoint);

            $swis->proxy->ssl_opts(verify_hostname => 0);

            $swis->proxy->http_request->authorization_basic($username, $password);

             

             

            ########################################################################

            # Create command

            ########################################################################

            print $swis->Create('Orion.Nodes', {Caption=>'NODENAME', IPAddress=>'99.99.99.99', IPAddressGUID=>'63636363-0000-0000-0000-000000000000', DynamicIP=>'False', EngineID=>'1', Status=>'1', UnManag

            ed=>'False', Allow64BitCounter=>'False', ObjectSubType=>'ICMP', SysObjectID=>'', MachineType=>'', VendorIcon=>'', RediscoveryInterval=>'60', PollInterval=>'60', StatCollection=>'1'});

             

             

            print "\n\nWe B Done!\n";

             

             

             

             

             

             

            And it failed with a bunch of errors:

             

             

             

            <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Header><log xmlns="http://schemas.solarwinds.com/2007/08/informationservice">2012-10-17 14:11:46,306 [3] ERROR SolarWinds.InformationService.Core.CrudProcessor - Create operation failed.&#xD;

            System.Data.SqlClient.SqlException (0x80131904): Invalid column name 'Allow64BitCounter'.&#xD;

               at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)&#xD;

               at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)&#xD;

               at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()&#xD;

               at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)&#xD;

               at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()&#xD;

               at System.Data.SqlClient.SqlDataReader.get_MetaData()&#xD;

               at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)&#xD;

               at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)&#xD;

               at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)&#xD;

               at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)&#xD;

               at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)&#xD;

               at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)&#xD;

               at SolarWinds.InformationService.DataProviders.SqlDataProvider.Create(StorageElement storage, IDictionary`2 columns)&#xD;

               at SolarWinds.Data.Providers.Orion.OrionDataProvider.Create(StorageElement storage, IDictionary`2 columns)&#xD;

               at SolarWinds.InformationService.Core.CrudProcessor.CreateInternal(String entityType, IDictionary`2 properties, IQueryExecutionContext context)&#xD;

               at SolarWinds.InformationService.Core.CrudProcessor.Create(IServiceHost serviceHost, String entityType, IDictionary`2 properties, IQueryExecutionContext context)&#xD;

            2012-10-17 14:11:46,308 [3] ERROR SolarWinds.InformationService.Core.InformationService - Exception for Operation: &lt;soap:Envelope xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:swis="http://schemas.solarwinds.com/2007/08/informationservice" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:msa="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:sys="http://schemas.datacontract.org/2004/07/System.Xml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:swpb="http://schemas.solarwinds.com/2007/08/informationservice/propertybag" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"&gt;&#xD;

              &lt;s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"&gt;&#xD;

                &lt;To s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none"&gt;https://p01eoaswdv01:17778/SolarWinds/InformationService/OrionBasic</To>

                &lt;Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none"&gt;http://schemas.solarwinds.com/2007/08/informationservice/InformationService/Create</Action>

              &lt;/s:Header&gt;&#xD;

              &lt;soap:Body&gt;&#xD;

                &lt;swis:Create&gt;&#xD;

                  &lt;swis:entityType xsi:type="xsd:string"&gt;Orion.Nodes&lt;/swis:entityType&gt;&#xD;

                  &lt;swis:properties&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;EngineID&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:int"&gt;1&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;SysObjectID&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:string" /&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;IPAddress&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:string"&gt;10.48.8.40&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;Status&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:int"&gt;1&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;DynamicIP&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:boolean"&gt;true&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;Allow64BitCounter&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:boolean"&gt;true&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;IPAddressGUID&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:string"&gt;2808300a-0000-0000-0000-000000000000&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;RediscoveryInterval&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:int"&gt;60&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;Caption&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:string"&gt;denpdapnec-01&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;ObjectSubType&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:string"&gt;ICMP&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;MachineType&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:string" /&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;VendorIcon&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:string" /&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;UnManaged&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:boolean"&gt;true&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;PollInterval&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:int"&gt;60&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;StatCollection&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:int"&gt;1&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                  &lt;/swis:properties&gt;&#xD;

                &lt;/swis:Create&gt;&#xD;

              &lt;/soap:Body&gt;&#xD;

            &lt;/soap:Envelope&gt;&#xD;

            2012-10-17 14:11:46,311 [3] ERROR SolarWinds.InformationService.Core.InformationService - Exception caught in method Create&#xD;

            System.Data.SqlClient.SqlException (0x80131904): Invalid column name 'Allow64BitCounter'.&#xD;

               at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)&#xD;

               at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)&#xD;

               at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()&#xD;

               at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)&#xD;

               at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()&#xD;

               at System.Data.SqlClient.SqlDataReader.get_MetaData()&#xD;

               at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)&#xD;

               at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)&#xD;

               at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)&#xD;

               at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)&#xD;

               at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)&#xD;

               at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)&#xD;

               at SolarWinds.InformationService.DataProviders.SqlDataProvider.Create(StorageElement storage, IDictionary`2 columns)&#xD;

               at SolarWinds.Data.Providers.Orion.OrionDataProvider.Create(StorageElement storage, IDictionary`2 columns)&#xD;

               at SolarWinds.InformationService.Core.CrudProcessor.CreateInternal(String entityType, IDictionary`2 properties, IQueryExecutionContext context)&#xD;

               at SolarWinds.InformationService.Core.CrudProcessor.Create(IServiceHost serviceHost, String entityType, IDictionary`2 properties, IQueryExecutionContext context)&#xD;

               at SolarWinds.InformationService.Core.InformationService.Create(String entityType, IDictionary`2 properties)&#xD;

            </log></s:Header><s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring xml:lang="en-US">Create failed, check fault information.</faultstring><detail><InformationServiceFaultContract xmlns="http://schemas.solarwinds.com/2007/08/informationservice" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Message>Invalid column name 'Allow64BitCounter'.</Message></InformationServiceFaultContract></detail></s:Fault></s:Body></s:Envelope>

             

             

            We B Done!

            monitoring@dia34483:~/OrionDevelopment$ ^C

            monitoring@dia34483:~/OrionDevelopment$ ./testAddICMPOnlydevice.pl denpdapnec-01 10.48.8.40

            Using GUID: 2808300a-0000-0000-0000-000000000000

            Use of uninitialized value $_[0] in pattern match (m//) at

                    /usr/local/share/perl/5.12.4/SOAP/Lite.pm line 342 (#1)

                (W uninitialized) An undefined value was used as if it were already

                defined.  It was interpreted as a "" or a 0, but maybe it was a mistake.

                To suppress this warning assign a defined value to your variables.

             

             

                To help you figure out what was undefined, perl will try to tell you the

                name of the variable (if any) that was undefined. In some cases it cannot

                do this, so it also tells you what operation you used the undefined value

                in.  Note, however, that perl optimizes your program and the operation

                displayed in the warning may not necessarily appear literally in your

                program.  For example, "that $foo" is usually optimized into "that "

                . $foo, and the warning will refer to the concatenation (.) operator,

                even though there is no . in your program.

             

             

            <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Header><log xmlns="http://schemas.solarwinds.com/2007/08/informationservice">2012-10-17 14:12:37,484 [3] ERROR SolarWinds.InformationService.Core.CrudProcessor - Create operation failed.&#xD;

            System.Data.SqlClient.SqlException (0x80131904): Invalid column name 'Allow64BitCounter'.&#xD;

               at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)&#xD;

               at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)&#xD;

               at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()&#xD;

               at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)&#xD;

               at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()&#xD;

               at System.Data.SqlClient.SqlDataReader.get_MetaData()&#xD;

               at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)&#xD;

               at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)&#xD;

               at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)&#xD;

               at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)&#xD;

               at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)&#xD;

               at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)&#xD;

               at SolarWinds.InformationService.DataProviders.SqlDataProvider.Create(StorageElement storage, IDictionary`2 columns)&#xD;

               at SolarWinds.Data.Providers.Orion.OrionDataProvider.Create(StorageElement storage, IDictionary`2 columns)&#xD;

               at SolarWinds.InformationService.Core.CrudProcessor.CreateInternal(String entityType, IDictionary`2 properties, IQueryExecutionContext context)&#xD;

               at SolarWinds.InformationService.Core.CrudProcessor.Create(IServiceHost serviceHost, String entityType, IDictionary`2 properties, IQueryExecutionContext context)&#xD;

            2012-10-17 14:12:37,485 [3] ERROR SolarWinds.InformationService.Core.InformationService - Exception for Operation: &lt;soap:Envelope xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:swis="http://schemas.solarwinds.com/2007/08/informationservice" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:msa="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:sys="http://schemas.datacontract.org/2004/07/System.Xml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:swpb="http://schemas.solarwinds.com/2007/08/informationservice/propertybag" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"&gt;&#xD;

              &lt;s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"&gt;&#xD;

                &lt;To s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none"&gt;https://p01eoaswdv01:17778/SolarWinds/InformationService/OrionBasic</To>

                &lt;Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none"&gt;http://schemas.solarwinds.com/2007/08/informationservice/InformationService/Create</Action>

              &lt;/s:Header&gt;&#xD;

              &lt;soap:Body&gt;&#xD;

                &lt;swis:Create&gt;&#xD;

                  &lt;swis:entityType xsi:type="xsd:string"&gt;Orion.Nodes&lt;/swis:entityType&gt;&#xD;

                  &lt;swis:properties&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;EngineID&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:int"&gt;1&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;SysObjectID&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:string" /&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;IPAddress&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:string"&gt;10.48.8.40&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;Status&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:int"&gt;1&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;DynamicIP&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:boolean"&gt;true&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;Allow64BitCounter&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:boolean"&gt;true&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;IPAddressGUID&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:string"&gt;2808300a-0000-0000-0000-000000000000&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;RediscoveryInterval&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:int"&gt;60&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;Caption&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:string"&gt;denpdapnec-01&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;ObjectSubType&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:string"&gt;ICMP&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;MachineType&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:string" /&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;VendorIcon&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:string" /&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;UnManaged&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:boolean"&gt;true&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;PollInterval&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:int"&gt;60&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                    &lt;item&gt;&#xD;

                      &lt;key xsi:type="xsd:string"&gt;StatCollection&lt;/key&gt;&#xD;

                      &lt;type xsi:type="xsd:string"&gt;System.String&lt;/type&gt;&#xD;

                      &lt;value xsi:type="xsd:int"&gt;1&lt;/value&gt;&#xD;

                    &lt;/item&gt;&#xD;

                  &lt;/swis:properties&gt;&#xD;

                &lt;/swis:Create&gt;&#xD;

              &lt;/soap:Body&gt;&#xD;

            &lt;/soap:Envelope&gt;&#xD;

            2012-10-17 14:12:37,489 [3] ERROR SolarWinds.InformationService.Core.InformationService - Exception caught in method Create&#xD;

            System.Data.SqlClient.SqlException (0x80131904): Invalid column name 'Allow64BitCounter'.&#xD;

               at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)&#xD;

               at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)&#xD;

               at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()&#xD;

               at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)&#xD;

               at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()&#xD;

               at System.Data.SqlClient.SqlDataReader.get_MetaData()&#xD;

               at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)&#xD;

               at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)&#xD;

               at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)&#xD;

               at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)&#xD;

               at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)&#xD;

               at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)&#xD;

               at SolarWinds.InformationService.DataProviders.SqlDataProvider.Create(StorageElement storage, IDictionary`2 columns)&#xD;

               at SolarWinds.Data.Providers.Orion.OrionDataProvider.Create(StorageElement storage, IDictionary`2 columns)&#xD;

               at SolarWinds.InformationService.Core.CrudProcessor.CreateInternal(String entityType, IDictionary`2 properties, IQueryExecutionContext context)&#xD;

               at SolarWinds.InformationService.Core.CrudProcessor.Create(IServiceHost serviceHost, String entityType, IDictionary`2 properties, IQueryExecutionContext context)&#xD;

               at SolarWinds.InformationService.Core.InformationService.Create(String entityType, IDictionary`2 properties)&#xD;

            </log></s:Header><s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring xml:lang="en-US">Create failed, check fault information.</faultstring><detail><InformationServiceFaultContract xmlns="http://schemas.solarwinds.com/2007/08/informationservice" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Message>Invalid column name 'Allow64BitCounter'.</Message></InformationServiceFaultContract></detail></s:Fault></s:Body></s:Envelope>

             

             

             

             

            Any idea on what went wrong?  I know the first part works because I can connect to the poller and get data out.  But this one just dies.  Any direction would be greatly appreciated.

            ~Ed

            • Re: Using sample.pl to create simple nodes
              emarkiewicz

              Tom,

              Heck, never mind on the error above.  I took another look at the output and saw the "Invalid column name 'Allow64BitCounter'" entry.  I took that out of the Perl "Create" statement and everything seemed to work fine.  I was able to create the Orion Node.

              ~Ed

              • Re: Using sample.pl to create simple nodes
                emarkiewicz

                Tom,

                 

                I tried your Perl module and it works fine.  I do have a question and a suggestion.

                 

                Question:

                In your description of how SolarWinds(Orion) implements your GUID, you have the fourth group of hexadecimal digits not reversed.  Is this intended?

                     Example:     Input - AABB:CCDD:EEFF:GGHH:IIJJ:KKLL:MMNN:OOPP

                                       Output - PPOONNMM-LLKK-JJII-GGHH-AABBCCDDEEFF

                 

                Suggestion:

                In my environment I need to create an ~automated~ application that takes data from various applications and inputs them into Orion.  Some of the IPv6 addresses are stored in compressed format;

                     Example:     Full address - fe80:0000:0000:0000:02aa:00ff:fe9a:4ca2

                                       Compressed - fe80::2aa:ff:fe9a:4ca2

                 

                To catch this condition I use the Net::IP Perl module and run the following command to expand the address;

                     Example:     my $ipv6LongAddress = Net::IP::ip_expand_address($InputCompressedAddress, 6);

                 

                And then perform all the ~adjustments~ on the expanded address.  Just an FYI.

                 

                ~Ed

                  • Re: Using sample.pl to create simple nodes
                    tom.rybka

                    Ed,

                     

                    The order of bytes and the permutation is really correct, although it may become strange. There are several design aspects taken into account when we have introduced the schema as described.

                     

                    The module supports compressed notation as well, it should accept all standard notations of IP addresses. You right, using Net::IP module would work, I have considered using Net::IP module for manipulation with IP addresses, however I have found out that this module is not bundled in all Perl distributions by default, so in order to help as broad audience as possible, I decided to go the path not requiring it.

                  • Re: Using sample.pl to create simple nodes
                    emarkiewicz

                    Tom,

                    Thanks for all the help and guidance on this issue.  I really appreciate it.

                    ~Ed

                    • Re: Using sample.pl to create simple nodes
                      emarkiewicz

                      Tom,

                      Quick question.  Do you have an example on how to call your 'Invoke' method through Perl?  I'm trying to use the SWIS verb, "Orion.NPM.Interfaces.DiscoverInerfacesOnNode" to query a node I've created and can't get it to work.

                      ~Ed