/* * Copyright (c) 2014 EMC Corporation * All Rights Reserved */ package com.emc.storageos.vnxe.requests; import com.emc.storageos.vnxe.VNXeException; import com.emc.storageos.vnxe.models.ModifyFileSystemParam; import com.emc.storageos.vnxe.models.VNXeCommandJob; import com.emc.storageos.vnxe.models.VNXeCommandResult; import com.emc.storageos.vnxe.models.CreateFileSystemParam; import com.emc.storageos.vnxe.models.StorageResource; public class FileSystemActionRequest extends KHRequests<StorageResource> { private static final String URL_CREATE = "/api/types/storageResource/action/createFilesystem"; private static final String URL_RESOURCE = "/api/instances/storageResource/"; private static final String MODIFY = "/action/modifyFilesystem"; public FileSystemActionRequest(KHClient client) { super(client); } /** * create file system with async call * * @param param: CreateFileSystemParam * @return VNXeCommandJob * @throws VNXeException */ public VNXeCommandJob createFileSystemAsync(CreateFileSystemParam param) throws VNXeException { _url = URL_CREATE; return postRequestAsync(param); } /** * create file system with sync call * * @param param: CreateFileSystemParam * @return VNXeCommandResult * @throws VNXeException */ public VNXeCommandResult createFileSystemSync(CreateFileSystemParam param) throws VNXeException { _url = URL_CREATE; return postRequestSync(param); } /** * modify file system, export/unexport, etc * * @param param: ModifyFileSystemParam * @param resourceId: storage resource Id * @return VNXeCommandJob * @throws VNXeException */ public VNXeCommandJob modifyFileSystemAsync(ModifyFileSystemParam param, String resourceId) throws VNXeException { StringBuilder urlBld = new StringBuilder(URL_RESOURCE); urlBld.append(resourceId); urlBld.append(MODIFY); _url = urlBld.toString(); return postRequestAsync(param); } }