/*
* Copyright (c) 2014 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.vnxe.requests;
import java.util.List;
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.models.HostIpPortCreateParam;
import com.emc.storageos.vnxe.models.VNXeCommandResult;
import com.emc.storageos.vnxe.models.VNXeHostIpPort;
import com.sun.jersey.core.util.MultivaluedMapImpl;
public class HostIpPortRequests extends KHRequests<VNXeHostIpPort> {
private static final Logger _logger = LoggerFactory.getLogger(FileSystemListRequest.class);
private static final String URL = "/api/types/hostIPPort/instances";
private static final String FIELDS = "id,name,type,address,netmask,isIgnored,host";
public HostIpPortRequests(KHClient client) {
super(client);
_url = URL;
_fields = FIELDS;
}
/**
* Get all HostIpPort
*
* @return
*/
public List<VNXeHostIpPort> get() {
return getDataForObjects(VNXeHostIpPort.class);
}
/**
* Get HostIpPort by ipaddress
*
* @param address
* @return
*/
public VNXeHostIpPort getIpPortByIpAddress(String address) {
MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
queryParams.add(VNXeConstants.FILTER, VNXeConstants.IPADDRESS_FILTER + "\"" + address + "\"");
setQueryParameters(queryParams);
VNXeHostIpPort result = null;
List<VNXeHostIpPort> ipPortList = getDataForObjects(VNXeHostIpPort.class);
// it should just return 1
if (ipPortList != null && !ipPortList.isEmpty()) {
result = ipPortList.get(0);
} else {
_logger.info("No hostIpPort found using the address: " + address);
}
return result;
}
/**
* Create HostIpPort
*
* @param param
* @return
*/
public VNXeCommandResult createHostIpPort(HostIpPortCreateParam param) {
_logger.info("Creating hostIpPort: " + param.getAddress());
return postRequestSync(param);
}
}