/*
* Copyright (c) 2016 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.vnxe.requests;
import javax.ws.rs.core.MultivaluedMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.emc.storageos.vnxe.VNXeConstants;
import com.emc.storageos.vnxe.VNXeException;
import com.emc.storageos.vnxe.models.FileSystemQuotaConfigParam;
import com.emc.storageos.vnxe.models.VNXUnityQuotaConfig;
import com.emc.storageos.vnxe.models.VNXeCommandJob;
import com.sun.jersey.core.util.MultivaluedMapImpl;
public class FileSystemQuotaConfigRequests extends KHRequests<VNXUnityQuotaConfig> {
private static final Logger _logger = LoggerFactory.getLogger(FileSystemQuotaConfigRequests.class);
private static final String URL = "/api/types/quotaConfig/instances";
private static final String URL_INSTANCE = "/api/instances/quotaConfig/";
private static final String URL_MODIFY = "/action/modify";
private static final String FIELDS = "filesystem,treeQuota,defaultHardLimit,defaultSoftLimit,gracePeriod";
public FileSystemQuotaConfigRequests(KHClient client) {
super(client);
_url = URL;
_fields = FIELDS;
}
/**
* update the specific file system quotaConfig
*
* @param quotaConfigId
* Id of the quota config to be updated
* @param param
* FileSystemQuotaConfigParam
* @return VNXeCommandJob
*/
public VNXeCommandJob updateFileSystemQuotaConfig(String quotaConfigId, FileSystemQuotaConfigParam param) {
_url = URL_INSTANCE + quotaConfigId + URL_MODIFY;
MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
queryParams.add(VNXeConstants.TIMEOUT, "0");
setQueryParameters(queryParams);
_logger.info("Post request async for: " + quotaConfigId);
return postRequestAsync(param);
}
/**
* Get the specific file system quotaConfig's details
*
* @param quotaConfigId
* Id of the quota config to be updated
* @return VNXUnityQuotaConfig - quotaConfig Object
*/
public VNXUnityQuotaConfig getFileSystemQuotaConfig(String quotaConfigId) throws VNXeException {
_url = URL_INSTANCE + quotaConfigId;
setQueryParameters(null);
_logger.info("getting data for quota config: " + quotaConfigId);
return getDataForOneObject(VNXUnityQuotaConfig.class);
}
}