Effective December 3, NetApp adopts Microsoft’s Business-to-Customer (B2C) identity management to simplify and provide secure access to NetApp resources.
For accounts that did not pre-register (prior to Dec 3), access to your NetApp data may take up to 1 hour as your legacy NSS ID is synchronized to the new B2C identity.
To learn more, read the FAQ and watch the video.
Need assistance? Complete this form and select “Registration Issue” as the Feedback Category.

Software Development Kit (SDK) and API Discussions

Iterating over Events in DFM

TThaens24

Hi all,

I'm running a OnCommand 5.1, and I'm using the nmsdk 5.0 (which is compatible with OnCommand 5.1 I was told), and I'm getting errors when trying to iter over the events.

I'm just doing a basic test:

Test.java

import com.netapp.nmsdk.client.ApiRunner;

import com.netapp.nmsdk.client.ApiTarget;

import com.netapp.nmsdk.client.ApiTarget.TargetType;

import com.netapp.nmsdk.client.ApiTarget.Protocol;

import com.netapp.nmsdk.dfm.api.event.*;

public class Test {

   private final static String DFMHOST    = "<my-IP>";

   private final static String USERNAME   = "<my-username>";

   private final static String PASSWORD   = "<my-password>";

   private final static Protocol PROTOCOL = Protocol.HTTP;

   public static void main(String[] args)

   {

       try

       {

          ApiRunner runner = new ApiRunner(ApiTarget.builder()

                .withHost(DFMHOST)

                .withUserName(USERNAME)

                .withPassword(PASSWORD)

                .withTargetType(TargetType.DFM)

                .useProtocol(PROTOCOL)

                .build());

           EventListIterStartRequest evtReq = new EventListIterStartRequest();

           Iterator<EventInfo> evtIter = runner.iterate(evtReq);

           EventInfo info = null;

           while(evtIter.hasNext())

           {

               info = evtIter.next();

           }

       }

       catch(Exception e)

       {

           e.printStackTrace();

           System.exit(1);

       }

   }

}

I also tried the same with hosts, aggregates, volumes, luns, and I had no issue there.

Here my compile.sh and run.sh scripts:

compile.sh

#!/bin/sh

LIB_PATH=../../lib/

RUNTIME_LIB=${LIB_PATH}/common/nmsdk-runtime-5.0.jar

API_LIB=${LIB_PATH}/DataFabric_Manager/dfm-api-5.0.jar:${LIB_PATH}/Data_ONTAP/ontap-api-8.1.jar

CLASSPATH=${RUNTIME_LIB}:${API_LIB}

echo Test..

/usr/java/jdk1.7.0_04/bin/javac -cp "${CLASSPATH}" Test.java

echo Done.

run.sh

#!/bin/sh

LIB_PATH=../../lib

RUNTIME_LIB=${LIB_PATH}/common/nmsdk-runtime-5.0.jar

GUAVA_LIB=${LIB_PATH}/external/guava-r08.jar

COMMONS_CODEC_LIB=${LIB_PATH}/external/commons-codec-1.4.jar

COMMONS_IO_LIB=${LIB_PATH}/external/commons-io-2.0.1.jar

COMMONS_LANG_LIB=${LIB_PATH}/external/commons-lang-2.6.jar

API_LIB=${LIB_PATH}/DataFabric_Manager/dfm-api-5.0.jar

CLASSPATH=bin:${RUNTIME_LIB}:${GUAVA_LIB}:${COMMONS_CODEC_LIB}:${COMMONS_IO_LIB}:${COMMONS_LANG_LIB}:${API_LIB}

#echo java -cp "${CLASSPATH}:." "$@"

/usr/java/jdk1.7.0_04/bin/java -cp "${CLASSPATH}:." Test "$@"

Here are the errors I'm getting:

com.netapp.nmsdk.ApiExecutionException: Invalid input value '0' for field is-deleted - does not conform to required format for boolean datatype

        at com.netapp.nmsdk.marshal.ApiReader.convertTextContentToPrimitiveObject(ApiReader.java:405)

        at com.netapp.nmsdk.marshal.ApiReader.readPrimitiveObject(ApiReader.java:237)

        at com.netapp.nmsdk.marshal.ApiReader.readFields(ApiReader.java:131)

        at com.netapp.nmsdk.marshal.ApiReader.readFields(ApiReader.java:95)

        at com.netapp.nmsdk.marshal.ApiReader.readTypedef(ApiReader.java:74)

        at com.netapp.nmsdk.marshal.ApiReader.readCollection(ApiReader.java:264)

        at com.netapp.nmsdk.marshal.ApiReader.readFields(ApiReader.java:146)

        at com.netapp.nmsdk.marshal.ApiReader.readResponse(ApiReader.java:342)

        at com.netapp.nmsdk.client.BeanXmlApiInvocation.createPassedResponse(BeanXmlApiInvocation.java:117)

        at com.netapp.nmsdk.client.BeanXmlApiInvocation.createPassedResponse(BeanXmlApiInvocation.java:70)

        at com.netapp.nmsdk.client.XmlApiInvocation.readResponse(XmlApiInvocation.java:197)

        at com.netapp.nmsdk.client.ApiInvocation.processResponse(ApiInvocation.java:218)

        at com.netapp.nmsdk.client.ApiInvocation.invoke(ApiInvocation.java:112)

        at com.netapp.nmsdk.client.XmlApiInvocation.invoke(XmlApiInvocation.java:40)

        at com.netapp.nmsdk.client.ApiRunner.run(ApiRunner.java:135)

        at com.netapp.nmsdk.client.ApiRunner.run(ApiRunner.java:105)

        at com.netapp.nmsdk.client.ApiIteratorSupport$StartNextEndStyleIterator.retrieveNextBatch(ApiIteratorSupport.java:240)

        at com.netapp.nmsdk.client.ApiIteratorSupport$ApiIterator.retrieveNextBatchIfNecessary(ApiIteratorSupport.java:125)

        at com.netapp.nmsdk.client.ApiIteratorSupport$ApiIterator.hasNext(ApiIteratorSupport.java:102)

        at Test.main(Test.java:44)

Any idea's on how to solve this?

Kind regards

2 REPLIES 2

aashray

Hi,

I have looked into this and it looks like a bug in DFM.

I have filed a bug report with the DFM team for this.

I am currently trying to figure out a work around that you can use for now. Will let you know as soon as I have one.

Will let you know more about this once I hear from the DFM team.

Thanks and Regards

-Aashray

TThaens24

Thanks, I would be nice to have this working.

Announcements
NetApp on Discord Image

We're on Discord, are you?

Live Chat, Watch Parties, and More!

Explore Banner

Meet Explore, NetApp’s digital sales platform

Engage digitally throughout the sales process, from product discovery to configuration, and handle all your post-purchase needs.

NetApp Insights to Action
I2A Banner
Public