public static SlaveServerJobStatus fromXML( String xml ) throws KettleException { Document document = XMLHandler.loadXMLString( xml ); SlaveServerJobStatus status = new SlaveServerJobStatus( XMLHandler.getSubNode( document, XML_TAG ) ); return status; }
public SlaveServerJobStatus getJobStatus( String jobName, String carteObjectId, int startLogLineNr ) throws Exception { String xml = execService( GetJobStatusServlet.CONTEXT_PATH + "/?name=" + URLEncoder.encode( jobName, "UTF-8" ) + "&id=" + Const.NVL( carteObjectId, "" ) + "&xml=Y&from=" + startLogLineNr, true ); return SlaveServerJobStatus.fromXML( xml ); }
public SlaveServerJobStatus findJobStatus( String jobName, String id ) { for ( int i = 0; i < jobStatusList.size(); i++ ) { SlaveServerJobStatus jobStatus = jobStatusList.get( i ); if ( jobStatus.getJobName().equalsIgnoreCase( jobName ) && ( Utils.isEmpty( id ) || jobStatus.getId().equals( id ) ) ) { return jobStatus; } } return null; }
response.setCharacterEncoding( Const.XML_ENCODING ); SlaveServerJobStatus jobStatus = new SlaveServerJobStatus( jobName, id, job.getStatus() ); jobStatus.setFirstLoggingLineNr( startLineNr ); jobStatus.setLastLoggingLineNr( lastLineNr ); jobStatus.setLogDate( job.getLogDate() ); jobStatus.setLoggingString( loggingString ); jobStatus.setResult( job.getResult() ); // might be null String xml = jobStatus.getXML(); data = xml.getBytes( Charset.forName( Const.XML_ENCODING ) ); out = response.getOutputStream(); out.write( data ); out.flush(); if ( finishedOrStopped && ( jobStatus.isFinished() || jobStatus.isStopped() ) && logId != null ) { cache.put( logId, xml, startLineNr );
try { if ( log.isDetailed() ) { log.logDetailed( "Getting job status for [{0}] on server [{1}]", jobStatus.getJobName(), slaveServer ); SlaveServerJobStatus ts = slaveServer.getJobStatus( jobStatus.getJobName(), jobStatus.getId(), 0 ); "Finished receiving job status for [{0}] from server [{1}]", jobStatus.getJobName(), slaveServer ); String logging = ts.getLoggingString(); Result result = ts.getResult(); if ( result != null ) { item.setText( 2, "" + result.getNrLinesRead() ); jobStatus.setErrorDescription( "Unable to access transformation details : " + Const.CR + Const.getStackTracker( e ) );
@Test public void testWithDate() throws KettleException { String jobName = "testWithDate"; String id = UUID.randomUUID().toString(); String status = Trans.STRING_FINISHED; Date logDate = new Date(); SlaveServerJobStatus js = new SlaveServerJobStatus( jobName, id, status ); js.setLogDate( logDate ); String resultXML = js.getXML(); Node newJobStatus = XMLHandler.getSubNode( XMLHandler.loadXMLString( resultXML ), SlaveServerJobStatus.XML_TAG ); assertEquals( "The XML document should match after rebuilding from XML", resultXML, SlaveServerJobStatus.fromXML( resultXML ).getXML() ); assertEquals( "There should be one \"log_date\" node in the XML", 1, XMLHandler.countNodes( newJobStatus, "log_date" ) ); assertEquals( "The \"log_date\" node should match the original value", XMLHandler.date2string( logDate ), XMLHandler.getTagValue( newJobStatus, "log_date" ) ); }
SlaveServerJobStatus jobStatus = slaveServerStatus.getJobStatusList().get( i ); TreeItem jobItem = new TreeItem( jobParentItem, SWT.NONE ); jobItem.setText( 0, jobStatus.getJobName() ); jobItem.setText( 9, jobStatus.getStatusDescription() ); jobItem.setText( 13, Const.NVL( jobStatus.getId(), "" ) ); jobItem.setText( 14, Const.NVL( XMLHandler.date2string( jobStatus.getLogDate() ), "" ) ); jobItem.setImage( GUIResource.getInstance().getImageJobGraph() ); jobItem.setData( "jobStatus", jobStatus );
@Test public void testNoDate() throws KettleException { String jobName = "testNullDate"; String id = UUID.randomUUID().toString(); String status = Trans.STRING_FINISHED; SlaveServerJobStatus js = new SlaveServerJobStatus( jobName, id, status ); String resultXML = js.getXML(); Node newJobStatus = XMLHandler.getSubNode( XMLHandler.loadXMLString( resultXML ), SlaveServerJobStatus.XML_TAG ); assertEquals( "The XML document should match after rebuilding from XML", resultXML, SlaveServerJobStatus.fromXML( resultXML ).getXML() ); assertEquals( "There should be one \"log_date\" node in the XML", 1, XMLHandler.countNodes( newJobStatus, "log_date" ) ); assertTrue( "The \"log_date\" node should have a null value", Utils.isEmpty( XMLHandler.getTagValue( newJobStatus, "log_date" ) ) ); }
try { jobStatus = remoteSlaveServer.getJobStatus( jobMeta.getName(), carteObjectId, 0 ); if ( jobStatus.getResult() != null ) { oneResult = jobStatus.getResult(); break; String logFromCarte = jobStatus.getLoggingString(); if ( !Utils.isEmpty( logFromCarte ) ) { FileObject logfile = logChannelFileWriter.getLogFile(); if ( jobStatus == null || jobStatus.isRunning() ) {
protected void testXmlRoundTrip() throws KettleException { SlaveServerJobStatus metaToSave = createMeta(); Map<String, FieldLoadSaveValidator<?>> validatorMap = createValidatorMapAndInvokeSetters( xmlAttributes, metaToSave ); String xml = metaToSave.getXML(); SlaveServerJobStatus metaLoaded = SlaveServerJobStatus.fromXML( xml ); validateLoadedMeta( xmlAttributes, validatorMap, metaToSave, metaLoaded ); } }
Job job = getJobMap().getJob( entry ); String status = job.getStatus(); SlaveServerJobStatus jobStatus = new SlaveServerJobStatus( entry.getName(), entry.getId(), status ); jobStatus.setLogDate( job.getLogDate() ); serverStatus.getJobStatusList().add( jobStatus );
public boolean isRunning() { return getStatusDescription().equalsIgnoreCase( Trans.STRING_RUNNING ) || getStatusDescription().equalsIgnoreCase( Trans.STRING_INITIALIZING ); }
public String getXML() throws KettleException { StringBuilder xml = new StringBuilder(); xml.append( "<" + XML_TAG + ">" ).append( Const.CR ); xml.append( XMLHandler.addTagValue( "statusdesc", statusDescription ) ); xml.append( XMLHandler.addTagValue( "memory_free", memoryFree ) ); xml.append( XMLHandler.addTagValue( "memory_total", memoryTotal ) ); xml.append( XMLHandler.addTagValue( "cpu_cores", cpuCores ) ); xml.append( XMLHandler.addTagValue( "cpu_process_time", cpuProcessTime ) ); xml.append( XMLHandler.addTagValue( "uptime", uptime ) ); xml.append( XMLHandler.addTagValue( "thread_count", threadCount ) ); xml.append( XMLHandler.addTagValue( "load_avg", loadAvg ) ); xml.append( XMLHandler.addTagValue( "os_name", osName ) ); xml.append( XMLHandler.addTagValue( "os_version", osVersion ) ); xml.append( XMLHandler.addTagValue( "os_arch", osArchitecture ) ); xml.append( " <transstatuslist>" ).append( Const.CR ); for ( int i = 0; i < transStatusList.size(); i++ ) { SlaveServerTransStatus transStatus = transStatusList.get( i ); xml.append( " " ).append( transStatus.getXML() ).append( Const.CR ); } xml.append( " </transstatuslist>" ).append( Const.CR ); xml.append( " <jobstatuslist>" ).append( Const.CR ); for ( int i = 0; i < jobStatusList.size(); i++ ) { SlaveServerJobStatus jobStatus = jobStatusList.get( i ); xml.append( " " ).append( jobStatus.getXML() ).append( Const.CR ); } xml.append( " </jobstatuslist>" ).append( Const.CR ); xml.append( "</" + XML_TAG + ">" ).append( Const.CR ); return xml.toString(); }
public boolean isFinished() { return getStatusDescription().equalsIgnoreCase( Trans.STRING_FINISHED ) || getStatusDescription().equalsIgnoreCase( Trans.STRING_FINISHED_WITH_ERRORS ); }
public boolean isWaiting() { return getStatusDescription().equalsIgnoreCase( Trans.STRING_WAITING ); }
public SlaveServerStatus( Node statusNode ) throws KettleException { this(); statusDescription = XMLHandler.getTagValue( statusNode, "statusdesc" ); memoryFree = Const.toLong( XMLHandler.getTagValue( statusNode, "memory_free" ), -1L ); memoryTotal = Const.toLong( XMLHandler.getTagValue( statusNode, "memory_total" ), -1L ); String cpuCoresStr = XMLHandler.getTagValue( statusNode, "cpu_cores" ); cpuCores = Const.toInt( cpuCoresStr, -1 ); String cpuProcessTimeStr = XMLHandler.getTagValue( statusNode, "cpu_process_time" ); cpuProcessTime = Utils.isEmpty( cpuProcessTimeStr ) ? 0L : Long.valueOf( cpuProcessTimeStr ); uptime = Const.toLong( XMLHandler.getTagValue( statusNode, "uptime" ), -1 ); threadCount = Const.toInt( XMLHandler.getTagValue( statusNode, "thread_count" ), -1 ); loadAvg = Const.toDouble( XMLHandler.getTagValue( statusNode, "load_avg" ), -1.0 ); osName = XMLHandler.getTagValue( statusNode, "os_name" ); osVersion = XMLHandler.getTagValue( statusNode, "os_version" ); osArchitecture = XMLHandler.getTagValue( statusNode, "os_arch" ); Node listTransNode = XMLHandler.getSubNode( statusNode, "transstatuslist" ); Node listJobsNode = XMLHandler.getSubNode( statusNode, "jobstatuslist" ); int nrTrans = XMLHandler.countNodes( listTransNode, SlaveServerTransStatus.XML_TAG ); int nrJobs = XMLHandler.countNodes( listJobsNode, SlaveServerJobStatus.XML_TAG ); for ( int i = 0; i < nrTrans; i++ ) { Node transStatusNode = XMLHandler.getSubNodeByNr( listTransNode, SlaveServerTransStatus.XML_TAG, i ); transStatusList.add( new SlaveServerTransStatus( transStatusNode ) ); } for ( int i = 0; i < nrJobs; i++ ) { Node jobStatusNode = XMLHandler.getSubNodeByNr( listJobsNode, SlaveServerJobStatus.XML_TAG, i ); jobStatusList.add( new SlaveServerJobStatus( jobStatusNode ) ); } }
public boolean isStopped() { return getStatusDescription().equalsIgnoreCase( Trans.STRING_STOPPED ) || getStatusDescription().equalsIgnoreCase( Trans.STRING_STOPPED_WITH_ERRORS ); }