/* * Copyright (c) 2014 EMC Corporation * All Rights Reserved */ package com.emc.storageos.vnxe.requests; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.junit.BeforeClass; import org.junit.Test; import com.emc.storageos.services.util.EnvConfig; import com.emc.storageos.vnxe.VNXeApiClient; import com.emc.storageos.vnxe.VNXeApiClientFactory; import com.emc.storageos.vnxe.VNXeUtils; import com.emc.storageos.vnxe.models.BasicSystemInfo; import com.emc.storageos.vnxe.models.Snap; import com.emc.storageos.vnxe.models.StorageResource; import com.emc.storageos.vnxe.models.VNXUnityTreeQuota; import com.emc.storageos.vnxe.models.VNXeBase; import com.emc.storageos.vnxe.models.VNXeCifsShare; import com.emc.storageos.vnxe.models.VNXeCommandJob; import com.emc.storageos.vnxe.models.VNXeCommandResult; import com.emc.storageos.vnxe.models.VNXeExportResult; import com.emc.storageos.vnxe.models.VNXeFCPort; import com.emc.storageos.vnxe.models.VNXeHostInitiator; import com.emc.storageos.vnxe.models.VNXeHostInitiator.HostInitiatorTypeEnum; import com.emc.storageos.vnxe.models.VNXeIscsiNode; import com.emc.storageos.vnxe.models.VNXeLicense; import com.emc.storageos.vnxe.models.VNXeLun; import com.emc.storageos.vnxe.models.VNXePool; import com.emc.storageos.vnxe.models.VNXeStorageSystem; import com.emc.storageos.vnxe.models.VNXeStorageTier; public class ApiClientTest { private static KHClient _client; private static VNXeApiClient apiClient; private static String host = EnvConfig.get("sanity", "unity.host"); private static String userName = EnvConfig.get("sanity", "unity.username"); private static String password = EnvConfig.get("sanity", "unity.password"); private static int port = 443; @BeforeClass public static void setup() throws Exception { VNXeApiClientFactory factory = new VNXeApiClientFactory(); factory.setConnectionTimeoutMs(30000); factory.setConnManagerTimeout(60000); factory.setMaxConnections(300); factory.setMaxConnectionsPerHost(100); factory.setNeedCertificateManager(true); factory.setSocketConnectionTimeoutMs(3600000); factory.init(); apiClient = factory.getUnityClient(host, port, userName, password); } // @Test public void createCifsShare() { apiClient.createCIFSShare("fs_5", "fs_5_share2", "FULL", "/"); } // @Test public void findCifsShareByName() { VNXeCifsShare share = apiClient.findCifsShareByName("fs_5_share2"); if (share != null) { System.out.println(share.getId()); } else { System.out.println("not found"); } } // @Test public void removeCifsShare() { VNXeCommandJob job = apiClient.removeCifsShare("CIFSShare_1", "fs_5"); System.out.println("job: " + job.getId()); } // @Test public void createCifsShareforSnap() { VNXeCommandJob job = apiClient.createCifsShareForSnap("98784247817", "snap-share-1", "READ", "/", "fs_5"); System.out.println("job: " + job.getId()); } // @Test public void deleteCifsShareForSnap() { VNXeCommandJob job = apiClient.deleteCifsShareForSnapshot("CIFSShare_2"); System.out.println("job: " + job.getId()); } // @Test public void deleteNfsShareForSnap() { VNXeCommandJob job = apiClient.deleteNfsShareForSnapshot(""); System.out.println("job: " + job.getId()); } // @Test public void getNetmask() { String mask = VNXeUtils.convertCIDRToNetmask(24); System.out.println(mask); } // @Test public void getIscsiPorts() { List<VNXeIscsiNode> allnodes = apiClient.getAllIscsiPorts(); for (VNXeIscsiNode node : allnodes) { System.out.println("iqn: " + node.getName()); VNXeBase sp = node.getEthernetPort().getStorageProcessorId(); System.out.println("sp: " + sp.getId()); if (node.getIscsiPortal() != null) { System.out.println("ip: " + node.getIscsiPortal().getIpAddress()); } } } // @Test public void getPools() { List<VNXePool> pools = apiClient.getPools(); System.out.println(pools.size()); for (VNXePool pool : pools) { String name = pool.getName(); System.out.println(name); String status = pool.getStatus(); System.out.println(pool.getStatus()); } } @Test public void createLun() { String name = "tyu-lun1"; VNXeCommandJob job = apiClient.createLun(name, "pool_1", 2000000000L, true, null); System.out.println(job.getId()); } // @Test public void getLunByResourceId() { List<VNXeLun> luns = apiClient.getLunByStorageResourceId("res_12"); for (VNXeLun lun : luns) { System.out.println(lun.getId()); } } // @Test public void createLunGroup() { VNXeCommandResult result = apiClient.createLunGroup("testGroup1"); System.out.println(result.getStorageResource().getId()); } // @Test public void addLunsToLunGroup() { List<String> luns = new ArrayList<String>(); luns.add("sv_27"); VNXeCommandResult result = apiClient.addLunsToLunGroup("res_14", luns); System.out.println(result.getSuccess()); } // @Test public void getLicense() { Map<String, Boolean> map = apiClient.getLicenses(); System.out.println(map.get(VNXeLicense.FeatureEnum.SNAP.name())); } // @Test public void removeLunsFromLunGroup() { List<String> luns = new ArrayList<String>(); luns.add("sv_1"); VNXeCommandResult result = apiClient.removeLunsFromLunGroup("res_26", luns); System.out.println(result.getSuccess()); } // @Test public void deleteLunsFromLunGroup() { List<String> luns = new ArrayList<String>(); luns.add("sv_46"); VNXeCommandJob result = apiClient.deleteLunsFromLunGroup("res_20", luns); System.out.println(result.getId()); } // @Test public void deleteLunGroup() { VNXeCommandResult result = apiClient.deleteLunGroup("res_14", true, true); System.out.println(result.getId()); } // @Test public void exportLun() { String lunId = "sv_1"; VNXeHostInitiator init = new VNXeHostInitiator(); init.setChapUserName("iqn.1998-01.com.vmware:lgly6193-7ae20d76"); init.setType(HostInitiatorTypeEnum.INITIATOR_TYPE_ISCSI); init.setName("lgly6193.lss.emc.com"); List<VNXeHostInitiator> inits = new ArrayList<VNXeHostInitiator>(); inits.add(init); VNXeBase vnxehost = apiClient.prepareHostsForExport(inits); VNXeExportResult result = apiClient.exportLun(vnxehost, lunId, null); System.out.println(result.getHlu()); } // @Test public void unexportLun() { String lunId = "sv_26"; VNXeHostInitiator init = new VNXeHostInitiator(); init.setChapUserName("iqn.1998-01.com.vmware:lgly6193-7ae20d76"); init.setType(HostInitiatorTypeEnum.INITIATOR_TYPE_ISCSI); init.setName("lgly6193.lss.emc.com"); List<VNXeHostInitiator> inits = new ArrayList<VNXeHostInitiator>(); inits.add(init); VNXeBase vnxehost = apiClient.prepareHostsForExport(inits); apiClient.unexportLun(vnxehost.getId(), lunId); } // @Test public void getLun() { apiClient.getLun("sv_4"); apiClient.getLun("sv_5"); } // @Test public void isFastVpEnabled() { boolean isenabled = apiClient.isFASTVPEnabled(); System.out.println(isenabled); } // @Test public void getLunByLunGroup() { VNXeLun lun = apiClient.getLunByLunGroup("res_1", "vol9"); System.out.println(lun.getId()); } // @Test public void createLunSnap() { apiClient.createLunSnap("sv_37", "test-snap"); } // @Test public void createLunGroupSnap() { apiClient.createLunGroupSnap("res_4", "test-group-snap"); } // @Test public void getFCPort() { List<VNXeFCPort> ports = apiClient.getAllFcPorts(); System.out.println(ports.size()); for (VNXeFCPort port : ports) { System.out.println(port.getName() + " " + port.getPortWwn()); System.out.println(port.getPortWwn()); } } // @Test public void getBasicSystemInfo() { BasicSystemInfo info = apiClient.getBasicSystemInfo(); System.out.println(info.getSoftwareVersion()); } @Test public void getSystem() { VNXeStorageSystem system = apiClient.getStorageSystem(); System.out.println(system.getModel()); // apiClient.getNasServers(); } // @Test public void getStorageTier() { List<VNXeStorageTier> tiers = apiClient.getStorageTiers(); for (VNXeStorageTier tier : tiers) { System.out.println(tier.getSizeTotal()); System.out.println(VNXeUtils.convertDoubleSizeToViPRLong(tier.getSizeTotal())); } } // @Test public void createConsistencyGroup() { VNXeCommandResult result = apiClient.createConsistencyGroup("testGroup1"); System.out.println(result.getStorageResource().getId()); } // @Test public void createSnap() { VNXeCommandJob job = apiClient.createSnap("res_47", "snap1vipr41812", false); System.out.println(job.getId()); } // @Test public void deleteSnap() { apiClient.deleteSnap("38654705983"); } // @Test public void getSnapsBygroupId() { List<Snap> snaps = apiClient.getSnapshotsBySnapGroup("85899345949"); for (Snap snap : snaps) { System.out.println(snap.getId()); } } // @Test public void restoreSnap() { VNXeCommandJob job = apiClient.restoreSnap("38654706051"); System.out.println(job.getId()); } // @Test public void getSnap() { Snap snap = apiClient.getSnapshot("38654706039"); System.out.print(snap.getAttachedWWN()); System.out.print(snap.isAttached()); } // @Test public void getJob() { JobRequest req = new JobRequest(_client, "N-612"); VNXeCommandJob job = req.get(); System.out.println(job.getMessageOut().getMessage()); } // @Test public void getQuota() { FileSystemQuotaRequests req = new FileSystemQuotaRequests(_client); List<VNXUnityTreeQuota> list = req.get(); System.out.println(list.get(0).getPath()); } // @Test public void getCG() { StorageResourceRequest req = new StorageResourceRequest(_client); StorageResource res = req.get("res_1"); System.out.println(res.getName()); System.out.println(res.getLuns().size()); } // @Test public void getHostInitiator() { HostInitiatorRequest req = new HostInitiatorRequest(_client); VNXeHostInitiator res = req.get("HostInitiator_4"); System.out.println(res.getPortWWN()); System.out.println(res.getNodeWWN()); } // @Test public void getLunSnap() { List<Snap> snaps = apiClient.getSnapshotsForLun("sv_3"); for (Snap snap : snaps) { System.out.println(snap.getName()); } } // @Test public void createLunInCG() { List<String> names = new ArrayList<String>(); names.add("vv5113"); VNXeCommandJob job = apiClient.createLunsInConsistencyGroup(names, "pool_1", 2000000000L, true, null, "res_116"); System.out.println(job.getId()); } // @Test public void getCgIdByName() { String id = apiClient.getConsistencyGroupIdByName("cg5118"); System.out.println(id); } // @Test public void modifyHlu() { apiClient.modifyHostLunHlu("Host_20", "Host_20_sv_189_prod", 0); } // @Test public void deleteInitiator() { apiClient.deleteInitiator("11:22:33:44:55:66:77:88:99:00:11:22:33:44:55:66"); } }