2014-01-06 4 views
0

netapp manageability sdk 및 java를 사용하여 스토리지 시스템에 volumelist를 가져오고 싶습니다. 버전 및 유형의 스토리지 시스템 만 사용할 수 있습니다. 내가 어떻게 할 수 NetApp 및 자바를 사용하여 volumelist을 얻을해야 ... 여기 netapp sdk 및 java를 사용하여 volumelist를 얻는 방법?

코드입니다 ...

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(); 
    } 
} 
} 

을 내가 SDK와 함께 주어진 샘플 프로그램을 실행하고, 그러나 그것은 나에게 null 값을 제공합니다? 나는 아래의 코드를 실행하지만, 오류가 발생했습니다

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(); 
     } 
    } 
} 

답변

0

는 답변입니다 나를. 집계 목록 및 디스크 목록을 얻는 방법을 설명 할 수 있습니까 ??
+1

그것은 완벽하게 작동 여기 – user3322141

+1

내 게시물을 편집하고 집계 및 디스크에 대한 주석이있는 두 개의 별도 블록을 추가했습니다 ... – Vishwas

0

:

Unable to find API: volume-list-info-iter-start.

코드 :

/* 
* 
* VolList.java 
* 
* Copyright (c) 2012 NetApp, Inc. 
* All rights reserved. 
* 
* Sample code using Ontap API to list the Volume information 
* of a 7-Mode Storage system. 
*/ 
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("------") 
       .withUserName("-----") 
       .withPassword("------") 
       .withTargetType(TargetType.FILER) 
       .useHttp() 
       .build()); 

      VolumeListInfoIterStartRequest volListReq = new VolumeListInfoIterStartRequest(); 

       //volListReq.setVolume("svl_engdata1vs1_zh_pd16_sv"); 


      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(); 
    } 
} 

}