/*
* Copyright (c) 2014 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.vnxe.requests;
import java.util.ArrayList;
import java.util.List;
import org.junit.BeforeClass;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.emc.storageos.services.util.EnvConfig;
import com.emc.storageos.vnxe.VNXeException;
import com.emc.storageos.vnxe.models.ModifyFileSystemParam;
import com.emc.storageos.vnxe.models.NfsShareCreateParam;
import com.emc.storageos.vnxe.models.NfsShareDeleteParam;
import com.emc.storageos.vnxe.models.NfsShareParam;
import com.emc.storageos.vnxe.models.VNXeCommandJob;
import com.emc.storageos.vnxe.models.CreateFileSystemParam;
import com.emc.storageos.vnxe.models.FileSystemParam;
import com.emc.storageos.vnxe.models.VNXeBase;
import com.emc.storageos.vnxe.models.VNXeFSSupportedProtocolEnum;
public class FileSystemActionRequestTest {
private static KHClient _client;
private static String host = EnvConfig.get("sanity", "vnxe.host");
private static String userName = EnvConfig.get("sanity", "vnxe.username");
private static String password = EnvConfig.get("sanity", "vnxe.password");
private static final Logger logger = LoggerFactory.getLogger(FileSystemActionRequestTest.class);
@BeforeClass
public static void setup() throws Exception {
synchronized (_client) {
_client = new KHClient(host, userName, password);
}
}
@Test
public void createFileSystem() {
CreateFileSystemParam parm = new CreateFileSystemParam();
parm.setName("test-file-03");
FileSystemParam fsParm = new FileSystemParam();
fsParm.setIsThinEnabled(true);
VNXeBase nasServer = new VNXeBase();
nasServer.setId("nas_1");
fsParm.setNasServer(nasServer);
VNXeBase pool = new VNXeBase();
pool.setId("pool_1");
fsParm.setPool(pool);
fsParm.setSize(2200000000L);
fsParm.setSupportedProtocols(0);
fsParm.setIsCacheDisabled(true);
fsParm.setSupportedProtocols(VNXeFSSupportedProtocolEnum.NFS_CIFS.getValue());
parm.setFsParameters(fsParm);
FileSystemActionRequest req = new FileSystemActionRequest(_client);
VNXeCommandJob response = null;
try {
response = req.createFileSystemAsync(parm);
} catch (VNXeException e) {
// TODO Auto-generated catch block
logger.error("VNXeException occured", e);
}
System.out.println(response.getId() + "state: " + response.getState());
}
// @Test
public void modifyFileSystem() {
ModifyFileSystemParam parm = new ModifyFileSystemParam();
NfsShareCreateParam nfsShareParm = new NfsShareCreateParam();
nfsShareParm.setName("fs-21-share-1");
nfsShareParm.setPath("/");
NfsShareParam shareParm = new NfsShareParam();
List<VNXeBase> hosts = new ArrayList<VNXeBase>();
VNXeBase host = new VNXeBase();
host.setId("Host_1");
hosts.add(host);
shareParm.setReadWriteHosts(hosts);
nfsShareParm.setNfsShareParameters(shareParm);
List<NfsShareCreateParam> nfsList = new ArrayList<NfsShareCreateParam>();
nfsList.add(nfsShareParm);
parm.setNfsShareCreate(nfsList);
FileSystemActionRequest req = new FileSystemActionRequest(_client);
VNXeCommandJob job = req.modifyFileSystemAsync(parm, "res_4");
System.out.println(job.getId());
}
// @Test
public void removeNfsShare() {
ModifyFileSystemParam parm = new ModifyFileSystemParam();
NfsShareDeleteParam nfsShareParm = new NfsShareDeleteParam();
VNXeBase nfs = new VNXeBase();
nfs.setId("NFSShare_1");
nfsShareParm.setNfsShare(nfs);
List<NfsShareDeleteParam> shares = new ArrayList<NfsShareDeleteParam>();
shares.add(nfsShareParm);
parm.setNfsShareDelete(shares);
FileSystemActionRequest req = new FileSystemActionRequest(_client);
VNXeCommandJob job = req.modifyFileSystemAsync(parm, "res_4");
System.out.println(job.getId());
}
// @Test
public void expandFileSystem() {
String resourceId = "res_4";
long newSize = 2000000000L;
ModifyFileSystemParam modifyFSParm = new ModifyFileSystemParam();
// set fileSystemParam
FileSystemParam fsParm = new FileSystemParam();
fsParm.setSize(newSize);
modifyFSParm.setFsParameters(fsParm);
FileSystemActionRequest req = new FileSystemActionRequest(_client);
VNXeCommandJob job = req.modifyFileSystemAsync(modifyFSParm, resourceId);
System.out.println(job.getId());
}
}