diff -r b61c19d4168d -r 22ecbfc20eb4 buildframework/helium/tools/relnotes/relnotes.ant.xml --- a/buildframework/helium/tools/relnotes/relnotes.ant.xml Wed Feb 17 16:10:19 2010 +0000 +++ b/buildframework/helium/tools/relnotes/relnotes.ant.xml Fri Mar 05 14:30:49 2010 +0000 @@ -20,6 +20,7 @@ ============================================================================ --> + Generates a release note by modifying a template (that you can edit yourself) with @@ -29,23 +30,83 @@ * Adds table of errors and warnings * Generates list of baselines, projects and tasks used + + + + + + + + + + + + + + + + - - - + + - - -import nokia.nokiaccm + if session: + session.close() + + import traceback import ant import logging +import ccmutil logging.disable(logging.INFO) session = None try: @@ -149,151 +221,110 @@ password = ant.get_property(r'${ccm.user.password}') engine = ant.get_property(r'${ccm.engine.host}') dbpath = ant.get_property(r'${ccm.database.path}') - if database != None: - session = nokia.nokiaccm.open_session(username, password, database=database) - else: - session = nokia.nokiaccm.open_session(username, password, engine, dbpath) - + session = ccmutil.get_session(database, username, password, engine, dbpath) cmproject = session.create(ant.get_property(r'${ccm.toplevel.project}')) print cmproject.baseline session.close() except Exception, ex: print 'Caught exception: ' + str(ex) traceback.print_exc() - + if session: + session.close() + + + - - - + + + + + + + import amara import ant -bomfile = open(r"${build.log.dir}/${build.id}_BOM.xml") +bomfile = open(r"${build.log.dir}/${build.id}_bom.xml") bom = amara.parse(bomfile) for p in bom.bom.content.project: - if (str(p.name).startswith(ant.get_property(r'${project.startswith}'))): + if (str(p.name).startswith(ant.get_property(r'@{startsWith}'))): print str(p.name) bomfile.close() - - - + + + + + + + + + + + + + + + +import amara +import ant +import bomtofile +import ccmutil + +bomfile = open(r"${build.log.dir}/${build.id}_bom.xml") +bom = amara.parse(bomfile) +password = ant.get_property(r'${ccm.user.password}') +session = ccmutil.get_session(ant.get_property(r'${ccm.database}'), ant.get_property(r'${ccm.user.login}'), password, ant.get_property(r'${ccm.engine.host}'), ant.get_property(r'${ccm.database.path}')) +for p in bom.bom.content.project: + if p.name == ant.get_property(r'${ccm.toplevel.project}'): + bomwriter = bomtofile.BOMWriter(session, 'MC', p, ant.get_property(r'${releasenotes.output.dir}')) + bomwriter.writeprojects() + bomwriter.writebaselines() + bomwriter.writetasks() + + if (str(p.name).startswith('IBUSAL')): + bomwriter = bomtofile.BOMWriter(session, 'IBUSAL', p, ant.get_property(r'${releasenotes.output.dir}')) + bomwriter.writeprojects() + bomwriter.writetasks() +session.close() +bomfile.close() + + + - - - - -import amara -import nokia.nokiaccm -import ant - -class BOMToFile(object): - """ - Read BOM and output in text - """ - def __init__(self, session, project_name, project, output_dir): - self.project_name = project_name - self.project = project - self.output_dir = output_dir - self.session = session - - def writeprojects(self): - fileout = file(self.output_dir + '/' + self.project_name + '_projects.txt', 'w') - - i = 1 - for project in self.project.baseline: - fileout.write(str(i) + ") " + str(project) + "\n") - - i += 1 - fileout.close() - - def writebaselines(self): - fileout = file(self.output_dir + '/' + self.project_name + '_baselines.txt', 'w') - - i = 1 - for project in self.project.baseline: - fileout.write(str(i) + ") " + str(project) + "\n") - - cmproject = self.session.create(str(project)) - - try: - baseline = str(cmproject.baseline).strip() - if baseline == "None": - fileout.write(str(i) + ") " + str(project) + "\n") - else: - fileout.write(str(i) + ") " + baseline + "\n") - i += 1 - except Exception, ex: - print ex - fileout.close() - - def writetasks(self): - if self.project.xml_properties.has_key("task"): - fileout = file(self.output_dir + '/' + self.project_name + '_tasks.txt', 'w') - - i = 1 - for task in self.project.task: - fileout.write(str(i) + ") Task " + str(task) + "\n") - i += 1 - fileout.close() - -bomfile = open(r"${build.log.dir}/${build.id}_BOM.xml") -bom = amara.parse(bomfile) -database = ant.get_property(r'${ccm.database}') -username = ant.get_property(r'${ccm.user.login}') -password = ant.get_property(r'${ccm.user.password}') -engine = ant.get_property(r'${ccm.engine.host}') -dbpath = ant.get_property(r'${ccm.database.path}') -if database != None: - session = nokia.nokiaccm.open_session(username, password, database=database) -else: - session = nokia.nokiaccm.open_session(username, password, engine, dbpath) - -for p in bom.bom.content.project: - if p.name == ant.get_property(r'${ccm.toplevel.project}'): - btof = BOMToFile(session, 'MC', p, ant.get_property(r'${releasenotes.output.dir}')) - - btof.writeprojects() - btof.writebaselines() - - btof.writetasks() - - if (str(p.name).startswith('IBUSAL')): - btof = BOMToFile(session, 'IBUSAL', p, ant.get_property(r'${releasenotes.output.dir}')) - - btof.writeprojects() - - btof.writetasks() - -session.close() -bomfile.close() - - - - - + - - - + + + - + - + + + + import ccm #check for ccm session leaks assert (len(ccm.running_sessions()) == 0) - + + +