Implemented helpers:
bool isRepositoryCorrupted();
    bool repairCorruptedRepository();
    int sendCloneAndCheckoutSuccess();
    int sendCloneAndCheckoutFailure();
    int sendIsmasTriggerFailure();
			
			
This commit is contained in:
		
							
								
								
									
										77
									
								
								worker.cpp
									
									
									
									
									
								
							
							
						
						
									
										77
									
								
								worker.cpp
									
									
									
									
									
								
							@@ -148,6 +148,83 @@ void Worker::update() {
 | 
			
		||||
    std::call_once(once, &Worker::privateUpdate, this);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool Worker::isRepositoryCorrupted() {
 | 
			
		||||
    QDir customerRepository(m_customerRepository);
 | 
			
		||||
    if (customerRepository.exists()) {
 | 
			
		||||
        QDir customerRepositoryEtc(QDir::cleanPath(m_customerRepository + QDir::separator() + "etc/"));
 | 
			
		||||
        QDir customerRepositoryOpt(QDir::cleanPath(m_customerRepository + QDir::separator() + "opt/"));
 | 
			
		||||
        QDir customerRepositoryGit(QDir::cleanPath(m_customerRepository + QDir::separator() + ".git/"));
 | 
			
		||||
        // etc-directory inside git-repository does not exist, which means the
 | 
			
		||||
        // git-repository is corrupted -> remove it and start from scratch
 | 
			
		||||
        if (!customerRepositoryEtc.exists()
 | 
			
		||||
         || !customerRepositoryGit.exists()
 | 
			
		||||
         || !customerRepositoryOpt.exists()) {
 | 
			
		||||
            // should never happen
 | 
			
		||||
            Utils::printCriticalErrorMsg("CORRUPTED CUSTOMER REPOSITORY");
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool Worker::repairCorruptedRepository() {
 | 
			
		||||
    QDir customerRepository(m_customerRepository);
 | 
			
		||||
    if (!customerRepository.removeRecursively()) {
 | 
			
		||||
        Utils::printCriticalErrorMsg("ERROR REMOVING CORR. CUST-REPOSITORY");
 | 
			
		||||
        m_updateStatus = UpdateStatus(UPDATE_STATUS::REMOVE_GIT_REPOSITORY_FAILED,
 | 
			
		||||
                            QString("REMOVAL OF GIT-REPOSITORY %1 FAILED").arg(m_customerRepository));
 | 
			
		||||
        IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
 | 
			
		||||
            QString("#M=APISM#C=CMD_EVENT#J=") +
 | 
			
		||||
                m_ismasClient.sanityCheckFailed(IsmasClient::RESULT_CODE::INSTALL_ERROR,
 | 
			
		||||
                                                m_updateStatus.m_statusDescription));
 | 
			
		||||
        emit showErrorMessage("apism sanity check", m_updateStatus.m_statusDescription);
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int Worker::sendCloneAndCheckoutFailure() {
 | 
			
		||||
    stopProgressLoop();
 | 
			
		||||
    setProgress(0);
 | 
			
		||||
    m_updateStatus = UpdateStatus(UPDATE_STATUS::GIT_CLONE_AND_CHECKOUT_FAILURE,
 | 
			
		||||
                          QString("CLONE OR CHECKOUT FAILED: ") + m_customerRepository);
 | 
			
		||||
    IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
 | 
			
		||||
        QString("#M=APISM#C=CMD_EVENT#J=") +
 | 
			
		||||
            m_ismasClient.errorGitClone(100, m_updateStatus.m_statusDescription));
 | 
			
		||||
 | 
			
		||||
    return CLONE_AND_CHECKOUT_FAILURE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int Worker::sendCloneAndCheckoutSuccess() {
 | 
			
		||||
    m_updateStatus = UpdateStatus(UPDATE_STATUS::GIT_CLONE_AND_CHECKOUT_SUCCESS,
 | 
			
		||||
                          QString("CLONED REPOSITORY %1 AND CHECKED OUT BRANCH %2")
 | 
			
		||||
                            .arg(m_customerRepository)
 | 
			
		||||
                            .arg(m_gc.branchName()));
 | 
			
		||||
 | 
			
		||||
    IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
 | 
			
		||||
            QString("#M=APISM#C=CMD_EVENT#J=") +
 | 
			
		||||
                m_ismasClient.cloneAndCheckoutCustomerRepository(
 | 
			
		||||
                    m_updateStatus.m_statusDescription));
 | 
			
		||||
 | 
			
		||||
    return CLONE_AND_CHECKOUT_SUCCESS;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int Worker::sendIsmasTriggerFailure() {
 | 
			
		||||
    stopProgressLoop();
 | 
			
		||||
    setProgress(0);
 | 
			
		||||
    m_updateStatus = UpdateStatus(UPDATE_STATUS::ISMAS_UPDATE_TRIGGER_SET_FAILURE,
 | 
			
		||||
                        QString("ISMAS update trigger wrong"));
 | 
			
		||||
    IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
 | 
			
		||||
        QString("#M=APISM#C=CMD_EVENT#J=") +
 | 
			
		||||
            m_ismasClient.updateOfPSAFailed(IsmasClient::RESULT_CODE::INSTALL_ERROR,
 | 
			
		||||
                                            "CHECK-UPDATE-TRIGGER",
 | 
			
		||||
                                            m_updateStatus.m_statusDescription));
 | 
			
		||||
    return ISMAS_TRIGGER_FAILURE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void Worker::privateUpdate() {
 | 
			
		||||
    if (!m_mainWindow) {
 | 
			
		||||
        Utils::printCriticalErrorMsg("m_mainWindow NOT SET");
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user