def submitBigDataJobs( self, endpoint, numBigDataJobsAllowed, runningSiteName, NameNode, BigDataSoftware, BigDataSoftwareVersion, HLLName, HLLVersion, PublicIP, Port, jobIds , runningEndPointName, JobName, User, dataset, UsePilot, IsInteractive ): """ Big Data job submission with all the parameters of SITE and Job """ self.log.info( 'Director:submitBigDataJobs:JobSubmisionProcess' ) if ( numBigDataJobsAllowed <= 0 ): return S_ERROR( "Number of slots reached for %s in the NameNode " % runningSiteName, NameNode ) if NameNode not in self.runningEndPoints[endpoint]['NameNode']: return S_ERROR( 'Unknown NameNode: %s' % NameNode ) newJob = BigDataDB.insertBigDataJob( jobIds, JobName, Time.toString(), NameNode, runningSiteName, PublicIP, "", "", "", BigDataSoftware, BigDataSoftwareVersion, HLLName, HLLVersion, "Submitted" ) self.log.info( 'Director:submitBigDataJobs:SubmitJob' ) dictBDJobSubmitted = self._submitBigDataJobs( NameNode, Port, jobIds, PublicIP, runningEndPointName, User, JobName, dataset, UsePilot, IsInteractive ) if not dictBDJobSubmitted[ 'OK' ]: return dictBDJobSubmitted bdjobID = dictBDJobSubmitted['Value'] result = BigDataDB.setHadoopID( jobIds, bdjobID ) if not result[ 'OK' ]: S_ERROR( "BigData ID not updated" ) result = BigDataDB.setIntoJobDBStatus( jobIds, "Submitted", "", runningSiteName, bdjobID ) if not result[ 'OK' ]: S_ERROR( "JobDB of BigData Soft not updated" ) self.log.info( 'Director:submitBigDataJobs:JobSubmitted' ) return S_OK( "OK" )