Java tutorial
/* * Copyright 2014 by SCSK Corporation. * * This file is part of PrimeCloud Controller(TM). * * PrimeCloud Controller(TM) is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * PrimeCloud Controller(TM) is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with PrimeCloud Controller(TM). If not, see <http://www.gnu.org/licenses/>. */ package jp.primecloud.auto.process; import java.util.ArrayList; import java.util.List; import jp.primecloud.auto.common.status.InstanceCoodinateStatus; import jp.primecloud.auto.common.status.InstanceStatus; import jp.primecloud.auto.entity.crud.Farm; import jp.primecloud.auto.entity.crud.Instance; import jp.primecloud.auto.log.EventLogger; import jp.primecloud.auto.service.ServiceSupport; import jp.primecloud.auto.util.MessageUtils; import org.apache.commons.lang.BooleanUtils; import jp.primecloud.auto.process.puppet.PuppetNodesProcess; /** * <p> * TODO: * </p> * */ public class InstancesProcess extends ServiceSupport { protected PuppetNodesProcess puppetNodesProcess; protected ProcessLogger processLogger; protected EventLogger eventLogger; public void start(Long farmNo) { Farm farm = farmDao.read(farmNo); if (BooleanUtils.isTrue(farm.getComponentProcessing())) { // ?????????? if (log.isDebugEnabled()) { String message = MessageUtils.format("Component is being configured.(farmNo={0})", farmNo); log.debug(message); } return; } if (log.isInfoEnabled()) { log.info(MessageUtils.getMessage("IPROCESS-100021", farmNo)); } // farm.setComponentProcessing(true); farmDao.update(farm); // processLogger.writeLogSupport(ProcessLogger.LOG_DEBUG, null, null, "InstanceCoordinate", null); try { // ???? List<Long> startInstanceNos = new ArrayList<Long>(); List<Instance> allInstances = instanceDao.readByFarmNo(farmNo); for (Instance instance : allInstances) { // ???????????????????? if (InstanceStatus.fromStatus(instance.getStatus()) == InstanceStatus.RUNNING) { if (BooleanUtils.isTrue(instance.getEnabled()) || InstanceCoodinateStatus .fromStatus(instance.getCoodinateStatus()) == InstanceCoodinateStatus.COODINATED) { startInstanceNos.add(instance.getInstanceNo()); } } } InstancesProcessContext context = new InstancesProcessContext(); context.setFarmNo(farmNo); context.setStartInstanceNos(startInstanceNos); // ?? puppetNodesProcess.configureNodes(context); } finally { // farm = farmDao.read(farmNo); farm.setComponentProcessing(false); farmDao.update(farm); } // processLogger.writeLogSupport(ProcessLogger.LOG_DEBUG, null, null, "InstanceCoordinateFinish", null); if (log.isInfoEnabled()) { log.info(MessageUtils.getMessage("IPROCESS-100022", farmNo)); } } public void stop(Long farmNo) { Farm farm = farmDao.read(farmNo); if (BooleanUtils.isTrue(farm.getComponentProcessing())) { // ?????????? if (log.isDebugEnabled()) { String message = MessageUtils.format("Component is being configured.(farmNo={0})", farmNo); log.debug(message); } return; } if (log.isInfoEnabled()) { log.info(MessageUtils.getMessage("IPROCESS-100021", farmNo)); } // farm.setComponentProcessing(true); farmDao.update(farm); // processLogger.writeLogSupport(ProcessLogger.LOG_DEBUG, null, null, "InstanceCoordinate", null); try { // ???? List<Long> startInstanceNos = new ArrayList<Long>(); List<Long> stopInstanceNos = new ArrayList<Long>(); List<Instance> allInstances = instanceDao.readByFarmNo(farmNo); for (Instance instance : allInstances) { // ??????????????????? if (InstanceStatus.fromStatus(instance.getStatus()) == InstanceStatus.RUNNING) { if (BooleanUtils.isTrue(instance.getEnabled())) { startInstanceNos.add(instance.getInstanceNo()); } else if (InstanceCoodinateStatus .fromStatus(instance.getCoodinateStatus()) == InstanceCoodinateStatus.COODINATED) { stopInstanceNos.add(instance.getInstanceNo()); } } } InstancesProcessContext context = new InstancesProcessContext(); context.setFarmNo(farmNo); context.setStartInstanceNos(startInstanceNos); context.setStopInstanceNos(stopInstanceNos); // ?? puppetNodesProcess.configureNodes(context); } finally { // farm = farmDao.read(farmNo); farm.setComponentProcessing(false); farmDao.update(farm); } // processLogger.writeLogSupport(ProcessLogger.LOG_DEBUG, null, null, "InstanceCoordinateFinish", null); if (log.isInfoEnabled()) { log.info(MessageUtils.getMessage("IPROCESS-100022", farmNo)); } } /** * puppetNodesProcess??? * * @param puppetNodesProcess puppetNodesProcess */ public void setPuppetNodesProcess(PuppetNodesProcess puppetNodesProcess) { this.puppetNodesProcess = puppetNodesProcess; } /** * processLogger??? * * @param processLogger processLogger */ public void setProcessLogger(ProcessLogger processLogger) { this.processLogger = processLogger; } /** * eventLogger??? * * @param eventLogger eventLogger */ public void setEventLogger(EventLogger eventLogger) { this.eventLogger = eventLogger; } }