--- a/configs/releases/bouncer_firefox_beta.py
+++ b/configs/releases/bouncer_firefox_beta.py
@@ -79,31 +79,33 @@ config = {
"win32": {
"path": "/firefox/releases/%(version)s/update/win32/:lang/firefox-%(version)s.complete.mar",
"bouncer-platform": "win",
},
},
},
},
"partials": {
- "product-name": "Firefox-%(version)s-Partial-%(prev_version)s",
- "ssl-only": False,
- "add-locales": True,
- "paths": {
- "linux": {
- "path": "/firefox/releases/%(version)s/update/linux-i686/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
- "bouncer-platform": "linux",
- },
- "linux64": {
- "path": "/firefox/releases/%(version)s/update/linux-x86_64/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
- "bouncer-platform": "linux64",
- },
- "macosx64": {
- "path": "/firefox/releases/%(version)s/update/mac/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
- "bouncer-platform": "osx",
- },
- "win32": {
- "path": "/firefox/releases/%(version)s/update/win32/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
- "bouncer-platform": "win",
+ "releases-dir": {
+ "product-name": "Firefox-%(version)s-Partial-%(prev_version)s",
+ "ssl-only": False,
+ "add-locales": True,
+ "paths": {
+ "linux": {
+ "path": "/firefox/releases/%(version)s/update/linux-i686/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "linux",
+ },
+ "linux64": {
+ "path": "/firefox/releases/%(version)s/update/linux-x86_64/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "linux64",
+ },
+ "macosx64": {
+ "path": "/firefox/releases/%(version)s/update/mac/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "osx",
+ },
+ "win32": {
+ "path": "/firefox/releases/%(version)s/update/win32/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "win",
+ },
},
},
},
}
--- a/configs/releases/bouncer_firefox_esr.py
+++ b/configs/releases/bouncer_firefox_esr.py
@@ -127,47 +127,49 @@ config = {
"solaris-sparc": {
"path": "/firefox/releases/%(version)s/contrib/solaris_tarball/firefox-%(version)s.en-US.solaris-sparc.complete.mar",
"bouncer-platform": "solaris-sparc",
},
},
},
},
"partials": {
- "product-name": "Firefox-%(version)s-Partial-%(prev_version)s",
- "ssl-only": False,
- "add-locales": True,
- "paths": {
- "linux": {
- "path": "/firefox/releases/%(version)s/update/linux-i686/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
- "bouncer-platform": "linux",
- },
- "linux64": {
- "path": "/firefox/releases/%(version)s/update/linux-x86_64/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
- "bouncer-platform": "linux64",
- },
- "macosx64": {
- "path": "/firefox/releases/%(version)s/update/mac/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
- "bouncer-platform": "osx",
- },
- "win32": {
- "path": "/firefox/releases/%(version)s/update/win32/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
- "bouncer-platform": "win",
- },
- "opensolaris-i386": {
- "path": "/firefox/releases/%(version)s/contrib/solaris_tarball/firefox-%(prev_version)s-%(version)s.en-US.opensolaris-i386.partial.mar",
- "bouncer-platform": "opensolaris-i386",
- },
- "opensolaris-sparc": {
- "path": "/firefox/releases/%(version)s/contrib/solaris_tarball/firefox-%(prev_version)s-%(version)s.en-US.opensolaris-sparc.partial.mar",
- "bouncer-platform": "opensolaris-sparc",
- },
- "solaris-i386": {
- "path": "/firefox/releases/%(version)s/contrib/solaris_tarball/firefox-%(prev_version)s-%(version)s.en-US.solaris-i386.partial.mar",
- "bouncer-platform": "solaris-i386",
- },
- "solaris-sparc": {
- "path": "/firefox/releases/%(version)s/contrib/solaris_tarball/firefox-%(prev_version)s-%(version)s.en-US.solaris-sparc.partial.mar",
- "bouncer-platform": "solaris-sparc",
+ "releases-dir": {
+ "product-name": "Firefox-%(version)s-Partial-%(prev_version)s",
+ "ssl-only": False,
+ "add-locales": True,
+ "paths": {
+ "linux": {
+ "path": "/firefox/releases/%(version)s/update/linux-i686/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "linux",
+ },
+ "linux64": {
+ "path": "/firefox/releases/%(version)s/update/linux-x86_64/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "linux64",
+ },
+ "macosx64": {
+ "path": "/firefox/releases/%(version)s/update/mac/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "osx",
+ },
+ "win32": {
+ "path": "/firefox/releases/%(version)s/update/win32/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "win",
+ },
+ "opensolaris-i386": {
+ "path": "/firefox/releases/%(version)s/contrib/solaris_tarball/firefox-%(prev_version)s-%(version)s.en-US.opensolaris-i386.partial.mar",
+ "bouncer-platform": "opensolaris-i386",
+ },
+ "opensolaris-sparc": {
+ "path": "/firefox/releases/%(version)s/contrib/solaris_tarball/firefox-%(prev_version)s-%(version)s.en-US.opensolaris-sparc.partial.mar",
+ "bouncer-platform": "opensolaris-sparc",
+ },
+ "solaris-i386": {
+ "path": "/firefox/releases/%(version)s/contrib/solaris_tarball/firefox-%(prev_version)s-%(version)s.en-US.solaris-i386.partial.mar",
+ "bouncer-platform": "solaris-i386",
+ },
+ "solaris-sparc": {
+ "path": "/firefox/releases/%(version)s/contrib/solaris_tarball/firefox-%(prev_version)s-%(version)s.en-US.solaris-sparc.partial.mar",
+ "bouncer-platform": "solaris-sparc",
+ },
},
},
},
}
--- a/configs/releases/bouncer_firefox_release.py
+++ b/configs/releases/bouncer_firefox_release.py
@@ -125,60 +125,108 @@ config = {
"bouncer-platform": "solaris-i386",
},
"solaris-sparc": {
"path": "/firefox/releases/%(version)s/contrib/solaris_tarball/firefox-%(version)s.en-US.solaris-sparc.complete.mar",
"bouncer-platform": "solaris-sparc",
},
},
},
+ "complete-mar-candidates": {
+ "product-name": "Firefox-%(version)sbuild%(build_number)s-Complete",
+ "ssl-only": False,
+ "add-locales": True,
+ "paths": {
+ "linux": {
+ "path": "/firefox/candidates/%(version)s-candidates/build%(build_number)s/update/linux-i686/:lang/firefox-%(version)s.complete.mar",
+ "bouncer-platform": "linux",
+ },
+ "linux64": {
+ "path": "/firefox/candidates/%(version)s-candidates/build%(build_number)s/update/linux-x86_64/:lang/firefox-%(version)s.complete.mar",
+ "bouncer-platform": "linux64",
+ },
+ "macosx64": {
+ "path": "/firefox/candidates/%(version)s-candidates/build%(build_number)s/update/mac/:lang/firefox-%(version)s.complete.mar",
+ "bouncer-platform": "osx",
+ },
+ "win32": {
+ "path": "/firefox/candidates/%(version)s-candidates/build%(build_number)s/update/win32/:lang/firefox-%(version)s.complete.mar",
+ "bouncer-platform": "win",
+ },
+ },
+ },
"EUballot-installer": {
"product-name": "Firefox-%(version)s-EUballot",
"add-locales": False,
"ssl-only": False,
"paths": {
"win32": {
"path": "/firefox/releases/%(version)s/win32-EUballot/:lang/Firefox%%20Setup%%20%(version)s.exe",
"bouncer-platform": "win",
},
},
},
},
"partials": {
- "product-name": "Firefox-%(version)s-Partial-%(prev_version)s",
- "ssl-only": False,
- "add-locales": True,
- "paths": {
- "linux": {
- "path": "/firefox/releases/%(version)s/update/linux-i686/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
- "bouncer-platform": "linux",
- },
- "linux64": {
- "path": "/firefox/releases/%(version)s/update/linux-x86_64/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
- "bouncer-platform": "linux64",
- },
- "macosx64": {
- "path": "/firefox/releases/%(version)s/update/mac/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
- "bouncer-platform": "osx",
+ "releases-dir": {
+ "product-name": "Firefox-%(version)s-Partial-%(prev_version)s",
+ "ssl-only": False,
+ "add-locales": True,
+ "paths": {
+ "linux": {
+ "path": "/firefox/releases/%(version)s/update/linux-i686/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "linux",
+ },
+ "linux64": {
+ "path": "/firefox/releases/%(version)s/update/linux-x86_64/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "linux64",
+ },
+ "macosx64": {
+ "path": "/firefox/releases/%(version)s/update/mac/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "osx",
+ },
+ "win32": {
+ "path": "/firefox/releases/%(version)s/update/win32/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "win",
+ },
+ "opensolaris-i386": {
+ "path": "/firefox/releases/%(version)s/contrib/solaris_tarball/firefox-%(prev_version)s-%(version)s.en-US.opensolaris-i386.partial.mar",
+ "bouncer-platform": "opensolaris-i386",
+ },
+ "opensolaris-sparc": {
+ "path": "/firefox/releases/%(version)s/contrib/solaris_tarball/firefox-%(prev_version)s-%(version)s.en-US.opensolaris-sparc.partial.mar",
+ "bouncer-platform": "opensolaris-sparc",
+ },
+ "solaris-i386": {
+ "path": "/firefox/releases/%(version)s/contrib/solaris_tarball/firefox-%(prev_version)s-%(version)s.en-US.solaris-i386.partial.mar",
+ "bouncer-platform": "solaris-i386",
+ },
+ "solaris-sparc": {
+ "path": "/firefox/releases/%(version)s/contrib/solaris_tarball/firefox-%(prev_version)s-%(version)s.en-US.solaris-sparc.partial.mar",
+ "bouncer-platform": "solaris-sparc",
+ },
},
- "win32": {
- "path": "/firefox/releases/%(version)s/update/win32/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
- "bouncer-platform": "win",
- },
- "opensolaris-i386": {
- "path": "/firefox/releases/%(version)s/contrib/solaris_tarball/firefox-%(prev_version)s-%(version)s.en-US.opensolaris-i386.partial.mar",
- "bouncer-platform": "opensolaris-i386",
- },
- "opensolaris-sparc": {
- "path": "/firefox/releases/%(version)s/contrib/solaris_tarball/firefox-%(prev_version)s-%(version)s.en-US.opensolaris-sparc.partial.mar",
- "bouncer-platform": "opensolaris-sparc",
- },
- "solaris-i386": {
- "path": "/firefox/releases/%(version)s/contrib/solaris_tarball/firefox-%(prev_version)s-%(version)s.en-US.solaris-i386.partial.mar",
- "bouncer-platform": "solaris-i386",
- },
- "solaris-sparc": {
- "path": "/firefox/releases/%(version)s/contrib/solaris_tarball/firefox-%(prev_version)s-%(version)s.en-US.solaris-sparc.partial.mar",
- "bouncer-platform": "solaris-sparc",
+ },
+ "candidates-dir": {
+ "product-name": "Firefox-%(version)sbuild%(build_number)s-Partial-%(prev_version)s",
+ "ssl-only": False,
+ "add-locales": True,
+ "paths": {
+ "linux": {
+ "path": "/firefox/candidates/%(version)s-candidates/build%(build_number)s/update/linux-i686/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "linux",
+ },
+ "linux64": {
+ "path": "/firefox/candidates/%(version)s-candidates/build%(build_number)s/update/linux-x86_64/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "linux64",
+ },
+ "macosx64": {
+ "path": "/firefox/candidates/%(version)s-candidates/build%(build_number)s/update/mac/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "osx",
+ },
+ "win32": {
+ "path": "/firefox/candidates/%(version)s-candidates/build%(build_number)s/update/win32/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "win",
+ },
},
},
},
}
--- a/configs/releases/bouncer_thunderbird.py
+++ b/configs/releases/bouncer_thunderbird.py
@@ -116,47 +116,49 @@ config = {
"solaris-sparc": {
"path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(version)s.en-US.solaris-sparc.complete.mar",
"bouncer-platform": "solaris-sparc",
},
},
},
},
"partials": {
- "product-name": "Thunderbird-%(version)s-Partial-%(prev_version)s",
- "ssl-only": False,
- "add-locales": True,
- "paths": {
- "linux": {
- "path": "/thunderbird/releases/%(version)s/update/linux-i686/:lang/thunderbird-%(prev_version)s-%(version)s.partial.mar",
- "bouncer-platform": "linux",
- },
- "linux64": {
- "path": "/thunderbird/releases/%(version)s/update/linux-x86_64/:lang/thunderbird-%(prev_version)s-%(version)s.partial.mar",
- "bouncer-platform": "linux64",
- },
- "macosx64": {
- "path": "/thunderbird/releases/%(version)s/update/mac/:lang/thunderbird-%(prev_version)s-%(version)s.partial.mar",
- "bouncer-platform": "osx",
- },
- "win32": {
- "path": "/thunderbird/releases/%(version)s/update/win32/:lang/thunderbird-%(prev_version)s-%(version)s.partial.mar",
- "bouncer-platform": "win",
- },
- "opensolaris-i386": {
- "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(prev_version)s-%(version)s.en-US.opensolaris-i386.partial.mar",
- "bouncer-platform": "opensolaris-i386",
- },
- "opensolaris-sparc": {
- "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(prev_version)s-%(version)s.en-US.opensolaris-sparc.partial.mar",
- "bouncer-platform": "opensolaris-sparc",
- },
- "solaris-i386": {
- "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(prev_version)s-%(version)s.en-US.solaris-i386.partial.mar",
- "bouncer-platform": "solaris-i386",
- },
- "solaris-sparc": {
- "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(prev_version)s-%(version)s.en-US.solaris-sparc.partial.mar",
- "bouncer-platform": "solaris-sparc",
+ "releases-dir": {
+ "product-name": "Thunderbird-%(version)s-Partial-%(prev_version)s",
+ "ssl-only": False,
+ "add-locales": True,
+ "paths": {
+ "linux": {
+ "path": "/thunderbird/releases/%(version)s/update/linux-i686/:lang/thunderbird-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "linux",
+ },
+ "linux64": {
+ "path": "/thunderbird/releases/%(version)s/update/linux-x86_64/:lang/thunderbird-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "linux64",
+ },
+ "macosx64": {
+ "path": "/thunderbird/releases/%(version)s/update/mac/:lang/thunderbird-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "osx",
+ },
+ "win32": {
+ "path": "/thunderbird/releases/%(version)s/update/win32/:lang/thunderbird-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "win",
+ },
+ "opensolaris-i386": {
+ "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(prev_version)s-%(version)s.en-US.opensolaris-i386.partial.mar",
+ "bouncer-platform": "opensolaris-i386",
+ },
+ "opensolaris-sparc": {
+ "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(prev_version)s-%(version)s.en-US.opensolaris-sparc.partial.mar",
+ "bouncer-platform": "opensolaris-sparc",
+ },
+ "solaris-i386": {
+ "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(prev_version)s-%(version)s.en-US.solaris-i386.partial.mar",
+ "bouncer-platform": "solaris-i386",
+ },
+ "solaris-sparc": {
+ "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(prev_version)s-%(version)s.en-US.solaris-sparc.partial.mar",
+ "bouncer-platform": "solaris-sparc",
+ },
},
},
},
}
--- a/scripts/bouncer_submitter.py
+++ b/scripts/bouncer_submitter.py
@@ -27,16 +27,20 @@ class BouncerSubmitter(BaseScript, Purge
"dest": "version",
"help": "Current version",
}],
[["--previous-version"], {
"dest": "prev_versions",
"action": "extend",
"help": "Previous version(s)",
}],
+ [["--build-number"], {
+ "dest": "build_number",
+ "help": "Build number of version",
+ }],
[["--bouncer-api-prefix"], {
"dest": "bouncer-api-prefix",
"help": "Bouncer admin API URL prefix",
}],
[["--credentials-file"], {
"dest": "credentials_file",
"help": "File containing Bouncer credentials",
}],
@@ -104,51 +108,59 @@ class BouncerSubmitter(BaseScript, Purge
for line in content.splitlines():
locale = line.split()[0]
if locale:
locales.append(locale)
self.locales = locales
return self.locales
def submit(self):
- version = self.config["version"]
+ subs = {
+ "version": self.config["version"]
+ }
+ if self.config.get("build_number"):
+ subs["build_number"] = self.config["build_number"]
+
for product, pr_config in sorted(self.config["products"].items()):
self.info("Adding %s..." % product)
- product_name = pr_config["product-name"] % dict(version=version)
+ product_name = pr_config["product-name"] % subs
self.api_add_product(
product_name=product_name,
add_locales=pr_config.get("add-locales"),
ssl_only=pr_config.get("ssl-only"))
self.info("Adding paths...")
for platform, pl_config in sorted(pr_config["paths"].items()):
bouncer_platform = pl_config["bouncer-platform"]
- path = pl_config["path"] % dict(version=version)
+ path = pl_config["path"] % subs
self.info("%s (%s): %s" % (platform, bouncer_platform, path))
self.api_add_location(product_name, bouncer_platform, path)
# Add partial updates
if "partials" in self.config and self.config.get("prev_versions"):
self.submit_partials()
def submit_partials(self):
- part_config = self.config["partials"]
- product_name_tmpl = part_config["product-name"]
- version = self.config["version"]
+ subs = {
+ "version": self.config["version"]
+ }
+ if self.config.get("build_number"):
+ subs["build_number"] = self.config["build_number"]
prev_versions = self.config.get("prev_versions")
- for prev_version in prev_versions:
- product_name = product_name_tmpl % dict(version=version,
- prev_version=prev_version)
- self.info("Adding partial updates for %s" % product_name)
- self.api_add_product(
- product_name=product_name,
- add_locales=part_config.get("add-locales"),
- ssl_only=part_config.get("ssl-only"))
- for platform, pl_config in sorted(part_config["paths"].items()):
- bouncer_platform = pl_config["bouncer-platform"]
- path = pl_config["path"] % dict(version=version,
- prev_version=prev_version)
- self.info("%s (%s): %s" % (platform, bouncer_platform, path))
- self.api_add_location(product_name, bouncer_platform, path)
+ for product, part_config in sorted(self.config["partials"].items()):
+ product_name_tmpl = part_config["product-name"]
+ for prev_version in prev_versions:
+ subs["prev_version"] = prev_version
+ product_name = product_name_tmpl % subs
+ self.info("Adding partial updates for %s" % product_name)
+ self.api_add_product(
+ product_name=product_name,
+ add_locales=part_config.get("add-locales"),
+ ssl_only=part_config.get("ssl-only"))
+ for platform, pl_config in sorted(part_config["paths"].items()):
+ bouncer_platform = pl_config["bouncer-platform"]
+ path = pl_config["path"] % subs
+ self.info("%s (%s): %s" % (platform, bouncer_platform, path))
+ self.api_add_location(product_name, bouncer_platform, path)
if __name__ == '__main__':
myScript = BouncerSubmitter()
myScript.run_and_exit()