package org.zstack.compute.vm; import org.springframework.beans.factory.annotation.Autowire; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Configurable; import org.zstack.core.cloudbus.CloudBusCallBack; import org.zstack.core.scheduler.AbstractSchedulerJob; import org.zstack.header.core.scheduler.APICreateSchedulerMessage; import org.zstack.header.message.MessageReply; import org.zstack.header.vm.RebootVmInstanceMsg; import org.zstack.header.vm.VmInstanceConstant; import org.zstack.identity.AccountManager; import org.zstack.utils.Utils; import org.zstack.utils.logging.CLogger; /** * Created by root on 8/16/16. */ @Configurable(preConstruction = true, autowire = Autowire.BY_TYPE) public class RebootVmInstanceJob extends AbstractSchedulerJob { private static final CLogger logger = Utils.getLogger(RebootVmInstanceJob.class); @Autowired private transient AccountManager acntMgr; private String vmUuid; public RebootVmInstanceJob(APICreateSchedulerMessage msg) { super(msg); } public RebootVmInstanceJob() { super(); } public void run() { logger.debug(String.format("run scheduler for job: RebootVmInstanceJob; vm uuid is %s", vmUuid)); RebootVmInstanceMsg rmsg = new RebootVmInstanceMsg(); rmsg.setVmInstanceUuid(vmUuid); bus.makeTargetServiceIdByResourceUuid(rmsg, VmInstanceConstant.SERVICE_ID, vmUuid); bus.send(rmsg, new CloudBusCallBack(null) { @Override public void run(MessageReply reply) { if (reply.isSuccess()) { logger.debug(String.format("RebootVmInstanceJob for vm %s success", vmUuid)); } else { logger.debug(String.format("RebootVmInstanceJob for vm %s failed", vmUuid)); } } }); } public String getVmUuid() { return vmUuid; } public void setVmUuid(String vmUuid) { this.vmUuid = vmUuid; } }