def update_source_manifest(self): dirs = self.query_abs_dirs() manifest_config = self.config.get("manifest", {}) sourcesfile = os.path.join(dirs["work_dir"], "sources.xml") sourcesfile_orig = sourcesfile + ".original" sources = self.read_from_file(sourcesfile_orig, verbose=False) dom = xml.dom.minidom.parseString(sources) # Add comments for which hg revisions we came from manifest = dom.firstChild manifest.appendChild(dom.createTextNode(" ")) manifest.appendChild(dom.createComment("Mozilla Info")) manifest.appendChild(dom.createTextNode("\n ")) manifest.appendChild( dom.createComment('Mercurial-Information: <remote fetch="https://hg.mozilla.org/" name="hgmozillaorg">') ) manifest.appendChild(dom.createTextNode("\n ")) manifest.appendChild( dom.createComment( 'Mercurial-Information: <project name="%s" path="gecko" remote="hgmozillaorg" revision="%s"/>' % (self.query_repo(), self.query_revision()) ) ) if self.query_do_translate_hg_to_git(): # Find the base url used for git.m.o so we can refer to it # properly in the project node below git_base_url = "https://git.mozilla.org/" for element in dom.getElementsByTagName("remote"): if element.getAttribute("name") == "mozillaorg": pieces = urlparse.urlparse(element.getAttribute("fetch")) if pieces: git_base_url = "https://git.mozilla.org%s" % pieces[2] if not git_base_url.endswith("/"): git_base_url += "/" self.info("Found git_base_url of %s in manifest." % git_base_url) break else: self.warning("Couldn't find git_base_url in manifest; using %s" % git_base_url) manifest.appendChild(dom.createTextNode("\n ")) url = manifest_config["translate_base_url"] # increase timeout from 15m to 60m until bug 1044515 is resolved (attempts = 120) gecko_git = self.query_mapper_git_revision( url, "gecko", self.query_revision(), require_answer=self.config.get("require_git_rev", True), attempts=120, ) project_name = "https://git.mozilla.org/releases/gecko.git".replace(git_base_url, "") # XXX This assumes that we have a mozillaorg remote add_project(dom, name=project_name, path="gecko", remote="mozillaorg", revision=gecko_git) manifest.appendChild(dom.createTextNode("\n")) self.write_to_file(sourcesfile, dom.toxml(), verbose=False) self.run_command(["diff", "-u", sourcesfile_orig, sourcesfile], success_codes=[1])
def update_source_manifest(self): dirs = self.query_abs_dirs() manifest_config = self.config.get('manifest', {}) sourcesfile = os.path.join(dirs['work_dir'], 'sources.xml') sourcesfile_orig = sourcesfile + '.original' sources = self.read_from_file(sourcesfile_orig, verbose=False) dom = xml.dom.minidom.parseString(sources) # Add comments for which hg revisions we came from manifest = dom.firstChild manifest.appendChild(dom.createTextNode(" ")) manifest.appendChild(dom.createComment("Mozilla Info")) manifest.appendChild(dom.createTextNode("\n ")) manifest.appendChild(dom.createComment('Mercurial-Information: <remote fetch="https://hg.mozilla.org/" name="hgmozillaorg">')) manifest.appendChild(dom.createTextNode("\n ")) manifest.appendChild(dom.createComment('Mercurial-Information: <project name="%s" path="gecko" remote="hgmozillaorg" revision="%s"/>' % (self.query_repo(), self.query_revision()))) if self.query_do_translate_hg_to_git(): # Find the base url used for git.m.o so we can refer to it # properly in the project node below git_base_url = "https://git.mozilla.org/" for element in dom.getElementsByTagName('remote'): if element.getAttribute('name') == 'mozillaorg': pieces = urlparse.urlparse(element.getAttribute('fetch')) if pieces: git_base_url = "https://git.mozilla.org%s" % pieces[2] if not git_base_url.endswith('/'): git_base_url += "/" self.info("Found git_base_url of %s in manifest." % git_base_url) break else: self.warning("Couldn't find git_base_url in manifest; using %s" % git_base_url) manifest.appendChild(dom.createTextNode("\n ")) url = manifest_config['translate_base_url'] # increase timeout from 15m to 60m until bug 1044515 is resolved (attempts = 120) gecko_git = self.query_mapper_git_revision(url, 'gecko', self.query_revision(), require_answer=self.config.get('require_git_rev', True), attempts=120) project_name = "https://git.mozilla.org/releases/gecko.git".replace(git_base_url, '') # XXX This assumes that we have a mozillaorg remote add_project(dom, name=project_name, path="gecko", remote="mozillaorg", revision=gecko_git) manifest.appendChild(dom.createTextNode("\n")) self.write_to_file(sourcesfile, dom.toxml(), verbose=False) self.run_command(["diff", "-u", sourcesfile_orig, sourcesfile], success_codes=[1])