def add(self): """ Add build data record into database. """ oDb = TMDatabaseConnection() # Assemble the build data. oBuildData = BuildDataEx() oBuildData.idBuildCategory = None oBuildData.iRevision = self.oConfig.iRevision oBuildData.sVersion = self.oConfig.sProductVersion oBuildData.sLogUrl = self.oConfig.sBuildLogPath oBuildData.sBinaries = ','.join(self.oConfig.asFiles) oBuildData.oCat = BuildCategoryData().initFromValues( sProduct=self.oConfig.sProductName, sRepository=self.oConfig.sRepository, sBranch=self.oConfig.sBranch, sType=self.oConfig.sBuildType, asOsArches=self.oConfig.asTargetOsArches) # Add record to database try: BuildLogic(oDb).addEntry(oBuildData, fCommit=True) except: if self.oConfig.fQuiet: sys.exit(1) raise oDb.close() return 0
def markBuildsDeleted(): """ Marks the builds using the specified binaries as deleted. """ oParser = OptionParser() oParser.add_option('-q', '--quiet', dest='fQuiet', action='store_true', help='Quiet execution'); (oConfig, asArgs) = oParser.parse_args() if not asArgs: if not oConfig.fQuiet: sys.stderr.write('syntax error: No builds binaries specified\n'); return 1; oDb = TMDatabaseConnection() oLogic = BuildLogic(oDb) for sBuildBin in asArgs: try: cBuilds = oLogic.markDeletedByBinaries(sBuildBin, fCommit = True) except: if oConfig.fQuiet: sys.exit(1); raise; else: if not oConfig.fQuiet: print("del_build.py: Marked %u builds associated with '%s' as deleted." % (cBuilds, sBuildBin,)); oDb.close() return 0;
def __init__(self, aoEntries, iPage, cItemsPerPage, tsEffective, fnDPrint, oDisp, cDaysBack, aiSelectedSortColumns=None): WuiListContentBase.__init__( self, aoEntries, iPage, cItemsPerPage, tsEffective, 'System Changelog', fnDPrint=fnDPrint, oDisp=oDisp, aiSelectedSortColumns=aiSelectedSortColumns) self._asColumnHeaders = ['When', 'User', 'Event', 'Details'] self._asColumnAttribs = ['align="center"', 'align="center"', '', ''] self._oBuildBlacklistLogic = BuildBlacklistLogic(oDisp.getDb()) self._oBuildLogic = BuildLogic(oDisp.getDb()) self._oBuildSourceLogic = BuildSourceLogic(oDisp.getDb()) self._oFailureCategoryLogic = FailureCategoryLogic(oDisp.getDb()) self._oFailureReasonLogic = FailureReasonLogic(oDisp.getDb()) self._oGlobalResourceLogic = GlobalResourceLogic(oDisp.getDb()) self._oSchedGroupLogic = SchedGroupLogic(oDisp.getDb()) self._oTestBoxLogic = TestBoxLogic(oDisp.getDb()) self._oTestCaseLogic = TestCaseLogic(oDisp.getDb()) self._oTestGroupLogic = TestGroupLogic(oDisp.getDb()) self._oUserAccountLogic = UserAccountLogic(oDisp.getDb()) self._sPrevDate = '' _ = cDaysBack
def checkBuilds(self): """ Add build data record into database. """ oDb = TMDatabaseConnection() oBuildLogic = BuildLogic(oDb) tsNow = oDb.getCurrentTimestamp() cMaxRows = 1024 iStart = 0 while True: aoBuilds = oBuildLogic.fetchForListing(iStart, cMaxRows, tsNow) if not self.oConfig.fQuiet and aoBuilds: print('Processing builds #%s thru #%s' % (aoBuilds[0].idBuild, aoBuilds[-1].idBuild)) for oBuild in aoBuilds: if oBuild.fBinariesDeleted is False: rc = oBuild.areFilesStillThere() if rc is False: if not self.oConfig.fQuiet: print( 'missing files for build #%s / r%s / %s / %s / %s / %s / %s' % ( oBuild.idBuild, oBuild.iRevision, oBuild.sVersion, oBuild.oCat.sType, oBuild.oCat.sBranch, oBuild.oCat.sProduct, oBuild.oCat.asOsArches, )) print(' %s' % (oBuild.sBinaries, )) if self.oConfig.fRealRun is True: oBuild.fBinariesDeleted = True oBuildLogic.editEntry(oBuild, fCommit=True) elif rc is True and not self.oConfig.fQuiet: print('build #%s still have its files' % (oBuild.idBuild, )) elif rc is None and not self.oConfig.fQuiet: print('Unable to determine state of build #%s' % (oBuild.idBuild, )) # advance if len(aoBuilds) < cMaxRows: break iStart += len(aoBuilds) oDb.close() return 0