简体   繁体   English

如何使用NetApp SDK和Java获取卷列表?

[英]How to get volumelist using netapp sdk and java?

I want to get volumelist on storage system using netapp manageability sdk and java. 我想使用netapp可管理性sdk和java获取存储系统上的volumelist。 I am able to get only version and type of storage system. 我只能获取存储系统的版本和类型。 I am running a sample program given with sdk, but it gives me null values... 我正在运行一个用sdk给出的示例程序,但是它给了我null值...

Here is a code... 这是一个代码...

import com.netapp.nmsdk.client.ApiRunner;
import com.netapp.nmsdk.client.ApiTarget;
import com.netapp.nmsdk.client.ApiTarget.TargetType;
import com.netapp.nmsdk.ontap.api.volume.VolumeInfo;
import com.netapp.nmsdk.ontap.api.volume.VolumeListInfoIterStartRequest;
import com.netapp.nmsdk.ontap.api.volume.VolumeListInfoIterStartRequest;
import java.util.Iterator;
import java.util.List;

public class VolList {

public static void main(String[] args) { 

    if (args.length < 3) {
        System.err.println("Usage: VolList <storage-system> <user> <passwd> [<volume>]");
        System.err.println("    Note: This sample code will list the volume information of a 7-Mode Storage system.");
        System.exit(1);
    }
    try {
        ApiRunner runner = new ApiRunner(ApiTarget.builder()
            .withHost(args[0])
            .withUserName(args[1])
            .withPassword(args[2])
            .withTargetType(TargetType.FILER)
            .useHttp()
            .build());

        VolumeListInfoIterStartRequest volListReq = new VolumeListInfoIterStartRequest();
        if (args.length > 3) {
            volListReq.setVolume(args[3]);
        }

        Iterator<VolumeInfo> volumeIter = runner.iterate(volListReq, 10);

        VolumeInfo volume;

        while(volumeIter.hasNext()) {
            System.out.println("------------------------------------------------");
            volume = volumeIter.next();
            System.out.println("Name               : " + volume.getName()); 
            System.out.println("Type               : " + volume.getType()); 
            System.out.println("State              : " + volume.getState());
            System.out.println("Total size (bytes) : " + volume.getSizeTotal());
            System.out.println("Used size (bytes)  : " + volume.getSizeUsed());
            System.out.println("------------------------------------------------");
        }
    } catch(Exception e) {
        e.printStackTrace();
    }
}
}

how should I able to get volumelist using netapp and java? 我应该如何使用netapp和java获取volumelist?

Here is a answer: 这是一个答案:

import com.netapp.nmsdk.client.ApiRunner;
import com.netapp.nmsdk.client.ApiTarget;
import com.netapp.nmsdk.client.ApiTarget.TargetType;
import com.netapp.nmsdk.ontap.api.volume.VolumeInfo;
import com.netapp.nmsdk.ontap.api.volume.VolumeListInfoIterStartRequest;
import com.netapp.nmsdk.ontap.api.volume.VolumeListInfoIterStartRequest;
import java.util.Iterator;
import java.util.List;

public class VolList {

    public static void main(String[] args) { 


        try {
            ApiRunner runner = new ApiRunner(ApiTarget.builder()
                .withHost("your ip")
                .withUserName("your_username")
                .withPassword("your_password")
                .withTargetType(TargetType.FILER)
                .useHttp()
                .build());

            VolumeListInfoIterStartRequest volListReq = new VolumeListInfoIterStartRequest();

            Iterator<VolumeInfo> volumeIter = runner.iterate(volListReq, 10);

            VolumeInfo volume;

            while(volumeIter.hasNext()) {
                System.out.println("------------------------------------------------");
                volume = volumeIter.next();
                System.out.println("Name               : " + volume.getName()); 
                System.out.println("Type               : " + volume.getType()); 
                System.out.println("State              : " + volume.getState());
                System.out.println("Total size (bytes) : " + volume.getSizeTotal());
                System.out.println("Used size (bytes)  : " + volume.getSizeUsed());
                System.out.println("------------------------------------------------");
            }

            /// For getting aggr information ////////////////
            String aggrInfo = null;
    AggrListInfoRequest aggrListInfo = new AggrListInfoRequest();
    AggrListInfoResponse aggrlistResp = apirunner.run(aggrListInfo);
    JSONArray aggr_array = new JSONArray();
    for (AggrInfo aggr : aggrlistResp.getAggregates()) {

                System.out.println("Name"+aggr.getName());
                System.out.println("Name"+aggr.getBlockType());
                System.out.println("Name"+aggr.getOwnerName());
           }
         //////// End of aggregate information /////////////

       ///// Disk information //////////
       DiskListInfoRequest diskDetailReq = new DiskListInfoRequest();
    DiskListInfoResponse diskListInfoResp = apirunner.run(diskDetailReq);
    String diskInfo = null;
    JSONArray disk_array = new JSONArray();
    for (DiskDetailInfo disk : diskListInfoResp.getDiskDetails()) {
              System.out.println("Name"+disk.getName());
              System.out.println("vendor "+disk.getVendorId());
              System.out.println("Type"+ disk.getDiskType());
            }

       ////// End of disk information ////////
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM