void NordugridResource::DoPing( time_t& ping_delay, bool& ping_complete, bool& ping_succeeded ) { int rc; if ( gahp->isInitialized() == false ) { dprintf( D_ALWAYS,"gahp server not up yet, delaying ping\n" ); ping_delay = 5; return; } gahp->setNormalProxy( gahp->getMasterProxy() ); if ( PROXY_IS_EXPIRED( gahp->getMasterProxy() ) ) { dprintf( D_ALWAYS,"proxy near expiration or invalid, delaying ping\n" ); ping_delay = TIMER_NEVER; return; } ping_delay = 0; rc = gahp->nordugrid_ping( resourceName ); if ( rc == GAHPCLIENT_COMMAND_PENDING ) { ping_complete = false; } else if ( rc != 0 ) { ping_complete = true; ping_succeeded = false; } else { ping_complete = true; ping_succeeded = true; } }
void GlobusResource::DoPing( unsigned& ping_delay, bool& ping_complete, bool& ping_succeeded ) { int rc; if ( gahp->isInitialized() == false ) { dprintf( D_ALWAYS,"gahp server not up yet, delaying ping\n" ); ping_delay = 5; return; } gahp->setNormalProxy( gahp->getMasterProxy() ); if ( PROXY_IS_EXPIRED( gahp->getMasterProxy() ) ) { dprintf( D_ALWAYS,"proxy near expiration or invalid, delaying ping\n" ); ping_delay = TIMER_NEVER; return; } ping_delay = 0; if ( m_versionKnown ) { rc = gahp->globus_gram_client_ping( resourceName ); } else { rc = gahp->globus_gram_client_get_jobmanager_version( resourceName ); } if ( rc == GAHPCLIENT_COMMAND_PENDING ) { ping_complete = false; } else if ( rc == GLOBUS_GRAM_PROTOCOL_ERROR_CONTACTING_JOB_MANAGER || rc == GLOBUS_GRAM_PROTOCOL_ERROR_CONNECTION_FAILED ) { ping_complete = true; ping_succeeded = false; } else { if ( !m_versionKnown ) { if ( rc == GLOBUS_GRAM_PROTOCOL_ERROR_HTTP_UNPACK_FAILED ) { m_isGt5 = false; m_versionKnown = true; } else if ( rc == GLOBUS_SUCCESS ) { m_isGt5 = true; m_versionKnown = true; // Any jobs queued up under gt2 throttles need to signaled. GlobusJob *job; submitJMsWanted.Rewind(); while ( submitJMsWanted.Next( job ) ) { job->SetEvaluateState(); } restartJMsWanted.Rewind(); while ( restartJMsWanted.Next( job ) ) { job->SetEvaluateState(); } } } ping_complete = true; ping_succeeded = true; } }