Ejemplo n.º 1
0
TransferRequest::~TransferRequest()
{
	if ( m_CheckRequest_tid != TIMER_UNSET ) {
		daemonCore->Cancel_Timer( m_CheckRequest_tid );
	}
	if ( m_proxy ) {
		ReleaseProxy( m_proxy, (TimerHandlercpp)&TransferRequest::CheckRequest, this );
	}
	delete m_gahp;
}
Ejemplo n.º 2
0
void CreamResource::UnregisterJob( BaseJob *base_job )
{
	CreamJob *job = dynamic_cast<CreamJob*>( base_job );
	ASSERT( job );

	if ( job->delegatedCredentialURI != NULL ) {
		bool delete_deleg = true;
		CreamJob *next_job;
		registeredJobs.Rewind();
		while ( (next_job = (CreamJob*)registeredJobs.Next()) != NULL ) {
			if ( next_job->delegatedCredentialURI != NULL &&
				 strcmp( job->delegatedCredentialURI,
						 next_job->delegatedCredentialURI ) == 0 ) {
				delete_deleg = false;
				break;
			}
		}
		if ( delete_deleg ) {
dprintf(D_FULLDEBUG,"*** deleting delegation %s\n",job->delegatedCredentialURI);
			CreamProxyDelegation *next_deleg;
			delegatedProxies.Rewind();
			while ( (next_deleg = delegatedProxies.Next()) != NULL ) {
				if ( next_deleg->deleg_uri != NULL &&
					 strcmp( job->delegatedCredentialURI,
							 next_deleg->deleg_uri ) == 0 ) {
					delegatedProxies.DeleteCurrent();
					if ( activeDelegationCmd == next_deleg ) {
						deleg_gahp->purgePendingRequests();
						activeDelegationCmd = NULL;
					}
					free( next_deleg->deleg_uri );
					ReleaseProxy( next_deleg->proxy,
								  (TimerHandlercpp)&CreamResource::ProxyCallback,
								  this );
					delete next_deleg;
				}
			}
		}
	}

	BaseResource::UnregisterJob( job );

		// We have trouble maintaining the shared lease with the cream
		// server while we have no jobs for this resource object.
		// This can lead to trouble if a new job shows up before we're
		// deleted. So delete immediately until we can overhaul the
		// lease-update code.
	if ( IsEmpty() ) {
		daemonCore->Reset_Timer( deleteMeTid, 0 );
	}
}
Ejemplo n.º 3
0
CreamResource::~CreamResource()
{
dprintf(D_FULLDEBUG,"*** ~CreamResource\n");
	CreamProxyDelegation *next_deleg;
	delegatedProxies.Rewind();
	while ( (next_deleg = delegatedProxies.Next()) != NULL ) {
dprintf(D_FULLDEBUG,"    deleting %s\n",next_deleg->deleg_uri?next_deleg->deleg_uri:"(undelegated)");
		delegatedProxies.DeleteCurrent();
		free( next_deleg->deleg_uri );
		ReleaseProxy( next_deleg->proxy,
					  (TimerHandlercpp)&CreamResource::ProxyCallback, this );
		delete next_deleg;
	}
	if ( delegationServiceUri != NULL ) {
		free( delegationServiceUri );
	}

	if ( serviceUri != NULL ) {
		free( serviceUri );
	}

	ResourcesByName.remove( HashKey( HashName( resourceName, proxySubject, proxyFirstFQAN ) ) );

	daemonCore->Cancel_Timer( delegationTimerId );
	if ( gahp != NULL ) {
		delete gahp;
	}
	if ( deleg_gahp != NULL ) {
		delete deleg_gahp;
	}
	delete status_gahp;
	delete m_leaseGahp;
	if ( proxySubject ) {
		free( proxySubject );
	}
	free( proxyFQAN );
	free( proxyFirstFQAN );
}
Ejemplo n.º 4
0
NordugridJob::~NordugridJob()
{
	if ( jobProxy != NULL ) {
		ReleaseProxy( jobProxy, (TimerHandlercpp)&BaseJob::SetEvaluateState, this );
	}
	if ( myResource ) {
		myResource->UnregisterJob( this );
	}
	if ( remoteJobId ) {
		free( remoteJobId );
	}
	if ( gahp != NULL ) {
		delete gahp;
	}
	if ( RSL ) {
		delete RSL;
	}
	if ( stageList ) {
		delete stageList;
	}
	if ( stageLocalList ) {
		delete stageLocalList;
	}
}