Package org.apache.cloudstack.framework.jobs.impl

Examples of org.apache.cloudstack.framework.jobs.impl.AsyncJobJoinMapVO


                // if we fail wakeup-execution for any reason, avoid release sync-source if there is any
                job.setSyncSource(null);
                return;
            }

            AsyncJobJoinMapVO joinRecord = joinRecords.get(0);
            VmWorkJobVO joinedJob = _workjobDao.findById(joinRecord.getJoinJobId());

            Class<?> workClz = null;
            try {
                workClz = Class.forName(job.getCmd());
            } catch (ClassNotFoundException e) {
                s_logger.error("VM work class " + job.getCmd() + " is not found", e);
                return;
            }

            // get original work context information from joined job
            VmWork work = VmWorkSerializer.deserialize(workClz, joinedJob.getCmdInfo());
            assert (work != null);

            AccountVO account = _accountDao.findById(work.getAccountId());
            assert (account != null);

            VMInstanceVO vm = _instanceDao.findById(work.getVmId());
            assert (vm != null);

            CallContext.register(work.getUserId(), work.getAccountId(), job.getRelated());
            try {
                Method handler = getHandler(joinRecord.getWakeupHandler());
                if (handler != null) {
                    handler.invoke(_vmMgr);
                } else {
                    assert (false);
                    s_logger.error("Unable to find wakeup handler " + joinRecord.getWakeupHandler() +
                            " when waking up job-" + job.getId());
                }
            } finally {
                CallContext.unregister();
            }
View Full Code Here


    @Override
    public Long joinJob(long jobId, long joinJobId, long joinMsid, long wakeupIntervalMs, long expirationMs, Long syncSourceId, String wakeupHandler,
        String wakeupDispatcher) {

        AsyncJobJoinMapVO record = new AsyncJobJoinMapVO();
        record.setJobId(jobId);
        record.setJoinJobId(joinJobId);
        record.setJoinMsid(joinMsid);
        record.setJoinStatus(JobInfo.Status.IN_PROGRESS);
        record.setSyncSourceId(syncSourceId);
        record.setWakeupInterval(wakeupIntervalMs / 1000);        // convert millisecond to second
        record.setWakeupHandler(wakeupHandler);
        record.setWakeupDispatcher(wakeupDispatcher);
        if (wakeupHandler != null) {
            record.setNextWakeupTime(new Date(DateUtil.currentGMTTime().getTime() + wakeupIntervalMs));
            record.setExpiration(new Date(DateUtil.currentGMTTime().getTime() + expirationMs));
        }

        persist(record);
        return record.getId();
    }
View Full Code Here

        return this.listBy(sc);
    }

    @Override
    public void completeJoin(long joinJobId, JobInfo.Status joinStatus, String joinResult, long completeMsid) {
        AsyncJobJoinMapVO record = createForUpdate();
        record.setJoinStatus(joinStatus);
        record.setJoinResult(joinResult);
        record.setCompleteMsid(completeMsid);
        record.setLastUpdated(DateUtil.currentGMTTime());

        UpdateBuilder ub = getUpdateBuilder(record);

        SearchCriteria<AsyncJobJoinMapVO> sc = CompleteJoinSearch.create();
        sc.setParameters("joinJobId", joinJobId);
View Full Code Here

    //
    public void disjoinJob(long joinedJobId) throws InsufficientCapacityException,
            ConcurrentOperationException, ResourceUnavailableException {
        assert (_job != null);

        AsyncJobJoinMapVO record = s_joinMapDao.getJoinRecord(_job.getId(), joinedJobId);
        s_jobMgr.disjoinJob(_job.getId(), joinedJobId);

        if (record.getJoinStatus() == JobInfo.Status.FAILED) {
            if (record.getJoinResult() != null) {
                Object exception = JobSerializerHelper.fromObjectSerializedString(record.getJoinResult());
                if (exception != null && exception instanceof Exception) {
                    if (exception instanceof InsufficientCapacityException) {
                        s_logger.error("Job " + joinedJobId + " failed with InsufficientCapacityException");
                        throw (InsufficientCapacityException)exception;
                    }
View Full Code Here

  //
    public void disjoinJob(long joinedJobId) throws InsufficientCapacityException,
    ConcurrentOperationException, ResourceUnavailableException {
      assert(_job != null);

      AsyncJobJoinMapVO record = _joinMapDao.getJoinRecord(_job.getId(), joinedJobId);
        _jobMgr.disjoinJob(_job.getId(), joinedJobId);

        if (record.getJoinStatus() == JobInfo.Status.FAILED) {
            if (record.getJoinResult() != null) {
                Object exception = JobSerializerHelper.fromObjectSerializedString(record.getJoinResult());
                if (exception != null && exception instanceof Exception) {
                    if (exception instanceof InsufficientCapacityException) {
                        s_logger.error("Job " + joinedJobId + " failed with InsufficientCapacityException");
                        throw (InsufficientCapacityException)exception;
                    }
View Full Code Here

  @Override
    public Long joinJob(long jobId, long joinJobId, long joinMsid,
    long wakeupIntervalMs, long expirationMs,
    Long syncSourceId, String wakeupHandler, String wakeupDispatcher) {
   
    AsyncJobJoinMapVO record = new AsyncJobJoinMapVO();
    record.setJobId(jobId);
    record.setJoinJobId(joinJobId);
    record.setJoinMsid(joinMsid);
    record.setJoinStatus(JobInfo.Status.IN_PROGRESS);
    record.setSyncSourceId(syncSourceId);
    record.setWakeupInterval(wakeupIntervalMs / 1000);    // convert millisecond to second
    record.setWakeupHandler(wakeupHandler);
    record.setWakeupDispatcher(wakeupDispatcher);
    if(wakeupHandler != null) {
      record.setNextWakeupTime(new Date(DateUtil.currentGMTTime().getTime() + wakeupIntervalMs));
      record.setExpiration(new Date(DateUtil.currentGMTTime().getTime() + expirationMs));
    }
   
    persist(record);
    return record.getId();
  }
View Full Code Here

    return this.listBy(sc);
  }
 
    @Override
    public void completeJoin(long joinJobId, JobInfo.Status joinStatus, String joinResult, long completeMsid) {
        AsyncJobJoinMapVO record = createForUpdate();
        record.setJoinStatus(joinStatus);
        record.setJoinResult(joinResult);
        record.setCompleteMsid(completeMsid);
        record.setLastUpdated(DateUtil.currentGMTTime());
       
        UpdateBuilder ub = getUpdateBuilder(record);
       
        SearchCriteria<AsyncJobJoinMapVO> sc = CompleteJoinSearch.create();
        sc.setParameters("joinJobId", joinJobId);
View Full Code Here

TOP

Related Classes of org.apache.cloudstack.framework.jobs.impl.AsyncJobJoinMapVO

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.