package com.sobey.cmop.mvc.service.iaas.imp;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.sobey.cmop.mvc.comm.BaseSevcie;
import com.sobey.cmop.mvc.constant.NetworkConstant;
import com.sobey.cmop.mvc.dao.custom.BasicUnitDaoCustom;
import com.sobey.cmop.mvc.entity.ComputeItem;
import com.sobey.cmop.mvc.entity.MonitorCompute;
import com.sobey.cmop.mvc.entity.MonitorElb;
import com.sobey.cmop.mvc.entity.NetworkDnsItem;
import com.sobey.cmop.mvc.entity.NetworkEipItem;
import com.sobey.cmop.mvc.entity.NetworkElbItem;
import com.sobey.cmop.mvc.entity.StorageItem;
import com.sobey.cmop.mvc.service.iaas.IBasicUnitService;
@Service
@Transactional(readOnly = true)
public class BasicUnitServiceImp extends BaseSevcie implements IBasicUnitService {
private static Logger logger = LoggerFactory.getLogger(BasicUnitServiceImp.class);
@Resource
private BasicUnitDaoCustom basicUnitDao;
@SuppressWarnings("rawtypes")
@Override
public List<ComputeItem> getComputeListByElb(Integer elbId) {
List<ComputeItem> computeItems = new ArrayList<ComputeItem>();
List list = basicUnitDao.getComputeListByElb(elbId);
for (int i = 0; i < list.size(); i++) {
Object[] object = (Object[]) list.get(i);
computeItems.add(this.wrapComputeItem(object));
}
return computeItems;
}
@SuppressWarnings("rawtypes")
@Override
public List<ComputeItem> getComputeItemListByResources(Integer userId) {
List<ComputeItem> computeItems = new ArrayList<ComputeItem>();
List list = basicUnitDao.getComputeItemListByResources(userId);
for (int i = 0; i < list.size(); i++) {
Object[] object = (Object[]) list.get(i);
computeItems.add(this.wrapComputeItem(object));
}
return computeItems;
}
/**
* 封装成ComputeItem
*
* @param object
* @return
*/
@Override
public ComputeItem wrapComputeItem(Object[] object) {
ComputeItem computeItem = new ComputeItem();
computeItem.setId(Integer.valueOf(object[0].toString()));
computeItem.setApply(comm.applyService.getApply(Integer.valueOf(object[1].toString())));
computeItem.setIdentifier(object[2].toString());
computeItem.setComputeType(Integer.valueOf(object[3].toString()));
computeItem.setOsType(Integer.valueOf(object[4].toString()));
computeItem.setOsBit(Integer.valueOf(object[5].toString()));
computeItem.setServerType(Integer.valueOf(object[6].toString()));
computeItem.setRemark(object[7].toString());
computeItem.setInnerIp(object[8] != null ? object[8].toString() : null);
computeItem.setOldIp(object[9] != null ? object[9].toString() : null);
computeItem.setHostName(object[10] != null ? object[10].toString() : null);
computeItem.setServerAlias(object[11] != null ? object[11].toString() : null);
computeItem.setHostServerAlias(object[12] != null ? object[12].toString() : null);
computeItem.setOsStorageAlias(object[13] != null ? object[13].toString() : null);
return computeItem;
}
@SuppressWarnings("rawtypes")
@Override
public List<StorageItem> getStorageItemListByResources(Integer userId) {
List<StorageItem> storageItems = new ArrayList<StorageItem>();
List list = basicUnitDao.getStorageItemListByResources(userId);
for (int i = 0; i < list.size(); i++) {
Object[] object = (Object[]) list.get(i);
storageItems.add(this.wrapStorageItem(object));
}
return storageItems;
}
/**
* 封装成StorageItem
*
* @param object
* @return
*/
private StorageItem wrapStorageItem(Object[] object) {
StorageItem storageItem = new StorageItem();
storageItem.setId(Integer.valueOf(object[0].toString()));
storageItem.setApply(comm.applyService.getApply(Integer.valueOf(object[1].toString())));
storageItem.setIdentifier(object[2].toString());
storageItem.setSpace(Integer.valueOf(object[3].toString()));
storageItem.setStorageType(Integer.valueOf(object[4].toString()));
storageItem.setControllerAlias(object[5] != null ? object[5].toString() : null);
storageItem.setVolume(object[6] != null ? object[6].toString() : null);
storageItem.setMountPoint(object[7] != null ? object[7].toString() : null);
return storageItem;
}
@SuppressWarnings("rawtypes")
@Override
public List<NetworkElbItem> getNetworkElbItemListByResources(Integer userId) {
List<NetworkElbItem> networkElbItems = new ArrayList<NetworkElbItem>();
List list = basicUnitDao.getNetworkElbItemListByResources(userId);
for (int i = 0; i < list.size(); i++) {
Object[] object = (Object[]) list.get(i);
networkElbItems.add(this.wrapNetworkElbItem(object));
}
return networkElbItems;
}
/**
* 封装成NetworkElbItem
*
* @param object
* @return
*/
private NetworkElbItem wrapNetworkElbItem(Object[] object) {
NetworkElbItem networkElbItem = new NetworkElbItem();
Integer elbId = Integer.valueOf(object[0].toString());
networkElbItem.setId(elbId);
networkElbItem.setApply(comm.applyService.getApply(Integer.valueOf(object[1].toString())));
networkElbItem.setIdentifier(object[2].toString());
networkElbItem.setVirtualIp(object[3] != null ? object[3].toString() : null);
networkElbItem.setOldIp(object[4] != null ? object[4].toString() : null);
Boolean keepSession = NetworkConstant.KeepSession.保持.toString().equals(object[5].toString()) ? true : false;
networkElbItem.setKeepSession(keepSession);
networkElbItem.setComputeItemList(this.getComputeListByElb(elbId));
return networkElbItem;
}
@SuppressWarnings("rawtypes")
@Override
public List<NetworkEipItem> getNetworkEipItemListByResources(Integer userId) {
List<NetworkEipItem> networkEipItems = new ArrayList<NetworkEipItem>();
List list = basicUnitDao.getNetworkEipItemListByResources(userId);
for (int i = 0; i < list.size(); i++) {
Object[] object = (Object[]) list.get(i);
networkEipItems.add(this.wrapNetworkEipItem(object));
}
return networkEipItems;
}
/**
* 封装成NetworkEipItem
*
* @param object
* @return
*/
private NetworkEipItem wrapNetworkEipItem(Object[] object) {
NetworkEipItem networkEipItem = new NetworkEipItem();
networkEipItem.setId(Integer.valueOf(object[0].toString()));
networkEipItem.setApply(comm.applyService.getApply(Integer.valueOf(object[1].toString())));
networkEipItem.setIdentifier(object[2].toString());
networkEipItem.setIspType(Integer.valueOf(object[3].toString()));
networkEipItem.setIpAddress(object[4] != null ? object[4].toString() : null);
networkEipItem.setOldIp(object[5] != null ? object[5].toString() : null);
networkEipItem.setNetworkElbItem(object[6] != null ? comm.elbService.getNetworkElbItem(Integer
.valueOf(object[6].toString())) : null);
networkEipItem.setComputeItem(object[7] != null ? comm.computeService.getComputeItem(Integer.valueOf(object[7]
.toString())) : null);
return networkEipItem;
}
@SuppressWarnings("rawtypes")
@Override
public List<NetworkDnsItem> getNetworkDnsItemListByResources(Integer userId) {
List<NetworkDnsItem> networkDnsItems = new ArrayList<NetworkDnsItem>();
List list = basicUnitDao.getNetworkDnsItemListByResources(userId);
for (int i = 0; i < list.size(); i++) {
Object[] object = (Object[]) list.get(i);
networkDnsItems.add(this.wrapNetworkDnsItem(object));
}
return networkDnsItems;
}
/**
* 封装成NetworkDnsItem
*
* @param object
* @return
*/
private NetworkDnsItem wrapNetworkDnsItem(Object[] object) {
NetworkDnsItem networkDnsItem = new NetworkDnsItem();
networkDnsItem.setId(Integer.valueOf(object[0].toString()));
networkDnsItem.setApply(comm.applyService.getApply(Integer.valueOf(object[1].toString())));
networkDnsItem.setIdentifier(object[2].toString());
networkDnsItem.setDomainName(object[3].toString());
networkDnsItem.setDomainType(Integer.valueOf(object[4].toString()));
networkDnsItem.setCnameDomain(object[5] != null ? object[5].toString() : null);
return networkDnsItem;
}
@SuppressWarnings("rawtypes")
@Override
public List<MonitorCompute> getMonitorComputeListByResources(Integer userId) {
List<MonitorCompute> monitorComputes = new ArrayList<MonitorCompute>();
List list = basicUnitDao.getMonitorComputeListByResources(userId);
for (int i = 0; i < list.size(); i++) {
Object[] object = (Object[]) list.get(i);
monitorComputes.add(this.wrapMonitorCompute(object));
}
return monitorComputes;
}
/**
* 封装成MonitorCompute
*
* @param object
* @return
*/
private MonitorCompute wrapMonitorCompute(Object[] object) {
MonitorCompute monitorCompute = new MonitorCompute();
monitorCompute.setId(Integer.valueOf(object[0].toString()));
monitorCompute.setApply(comm.applyService.getApply(Integer.valueOf(object[1].toString())));
monitorCompute.setIdentifier(object[2].toString());
monitorCompute.setIpAddress(object[3] != null ? object[3].toString() : null);
monitorCompute.setCpuWarn(object[4] != null ? object[4].toString() : null);
monitorCompute.setCpuCritical(object[5] != null ? object[5].toString() : null);
monitorCompute.setMemoryWarn(object[6] != null ? object[6].toString() : null);
monitorCompute.setMemoryCritical(object[7] != null ? object[7].toString() : null);
monitorCompute.setDiskWarn(object[8] != null ? object[8].toString() : null);
monitorCompute.setDiskCritical(object[9] != null ? object[9].toString() : null);
monitorCompute.setPingLossWarn(object[10] != null ? object[10].toString() : null);
monitorCompute.setPingLossCritical(object[11] != null ? object[11].toString() : null);
monitorCompute.setPingDelayWarn(object[12] != null ? object[12].toString() : null);
monitorCompute.setPingDelayCritical(object[13] != null ? object[13].toString() : null);
monitorCompute.setMaxProcessWarn(object[14] != null ? object[14].toString() : null);
monitorCompute.setMaxProcessCritical(object[15] != null ? object[15].toString() : null);
monitorCompute.setPort(object[16] != null ? object[16].toString() : null);
monitorCompute.setProcess(object[17] != null ? object[17].toString() : null);
monitorCompute.setMountPoint(object[18] != null ? object[18].toString() : null);
return monitorCompute;
}
@SuppressWarnings("rawtypes")
@Override
public List<MonitorElb> getMonitorElbListByResources(Integer userId) {
List<MonitorElb> monitorElbs = new ArrayList<MonitorElb>();
List list = basicUnitDao.getMonitorElbListByResources(userId);
for (int i = 0; i < list.size(); i++) {
Object[] object = (Object[]) list.get(i);
monitorElbs.add(this.wrapMonitorElb(object));
}
return monitorElbs;
}
/**
* 封装成MonitorElb
*
* @param object
* @return
*/
private MonitorElb wrapMonitorElb(Object[] object) {
MonitorElb monitorElb = new MonitorElb();
monitorElb.setId(Integer.valueOf(object[0].toString()));
monitorElb.setApply(comm.applyService.getApply(Integer.valueOf(object[1].toString())));
monitorElb.setNetworkElbItem(object[2] != null ? comm.elbService.getNetworkElbItem(Integer.valueOf(object[2]
.toString())) : null);
monitorElb.setIdentifier(object[3].toString());
return monitorElb;
}
}