Bug 1367986 - Tweak balrog submitter for devedition r=bhearsum draft
authorRail Aliiev <rail@mozilla.com>
Fri, 26 May 2017 03:49:29 -0400
changeset 7776 4a588e36a397a86d1e5131f791aacdb020dd9548
parent 7775 7503119df23d052fd050dbc66dc1b5b9461b1389
push id222
push userbmo:rail@mozilla.com
push dateFri, 26 May 2017 07:49:41 +0000
reviewersbhearsum
bugs1367986
Bug 1367986 - Tweak balrog submitter for devedition r=bhearsum MozReview-Commit-ID: 1L6KRz6owNf
lib/python/balrog/submitter/cli.py
--- a/lib/python/balrog/submitter/cli.py
+++ b/lib/python/balrog/submitter/cli.py
@@ -38,18 +38,22 @@ class ReleaseCreatorBase(object):
         self.auth = auth
         self.dummy = dummy
 
     def generate_data(self, appVersion, productName, version, buildNumber,
                       updateChannels, ftpServer, bouncerServer,
                       enUSPlatforms, schemaVersion, openURL=None,
                       **updateKwargs):
         assert schemaVersion in (3, 4), 'Unhandled schema version %s' % schemaVersion
+        details_product = productName.lower()
+        if details_product == "devedition":
+            details_product = "firefox"
+
         data = {
-            'detailsUrl': getProductDetails(productName.lower(), appVersion),
+            'detailsUrl': getProductDetails(details_product, appVersion),
             'platforms': {},
             'fileUrls': {},
             'appVersion': appVersion,
             'platformVersion': appVersion,
             'displayVersion': getPrettyVersion(version)
         }
 
         actions = []
@@ -128,37 +132,41 @@ class ReleaseCreatorV3(ReleaseCreatorBas
                 data["fileUrls"][channel] = '%supdate/%%OS_FTP%%/%%LOCALE%%/%%FILENAME%%' % dir_
             else:
                 url = 'http://%s/?product=%%PRODUCT%%&os=%%OS_BOUNCER%%&lang=%%LOCALE%%' % bouncerServer
                 data["fileUrls"][channel] = url
 
         return data
 
     def _get_update_data(self, productName, version, partialUpdates):
+        file_prefix = productName.lower()
+        if file_prefix == "devedition":
+            file_prefix = "firefox"
+
         data = {
             "ftpFilenames": {
                 "completes": {
-                    "*": "%s-%s.complete.mar" % (productName.lower(), version),
+                    "*": "%s-%s.complete.mar" % (file_prefix, version),
                 }
             },
             "bouncerProducts": {
                 "completes": {
-                    "*": "%s-%s-complete" % (productName.lower(), version),
+                    "*": "%s-%s-complete" % (file_prefix, version),
                 }
             }
         }
 
         if partialUpdates:
             data["ftpFilenames"]["partials"] = {}
             data["bouncerProducts"]["partials"] = {}
             for previousVersion, previousInfo in partialUpdates.iteritems():
                 from_ = get_release_blob_name(productName, previousVersion,
                                               previousInfo["buildNumber"],
                                               self.dummy)
-                filename = "%s-%s-%s.partial.mar" % (productName.lower(), previousVersion, version)
+                filename = "%s-%s-%s.partial.mar" % (file_prefix, previousVersion, version)
                 bouncerProduct = "%s-%s-partial-%s" % (productName.lower(), version, previousVersion)
                 data["ftpFilenames"]["partials"][from_] = filename
                 data["bouncerProducts"]["partials"][from_] = bouncerProduct
 
         return data
 
 
 class ReleaseCreatorV4(ReleaseCreatorBase):
@@ -168,16 +176,20 @@ class ReleaseCreatorV4(ReleaseCreatorBas
     # Replaced by _get_fileUrls
     def _get_update_data(self, *args, **kwargs):
         return None
 
     def _getFileUrls(self, productName, version, buildNumber, updateChannels,
                      ftpServer, bouncerServer, partialUpdates,
                      requiresMirrors=True):
         data = {"fileUrls": {}}
+        file_prefix = productName.lower()
+        if file_prefix == "devedition":
+            file_prefix = "firefox"
+
 
         # "*" is for the default set of fileUrls, which generally points at
         # bouncer. It's helpful to have this to reduce duplication between
         # the live channel and the cdntest channel (which eliminates the
         # possibility that those two channels serve different contents).
         uniqueChannels = ["*"]
         for c in updateChannels:
             # localtest channels are different than the default because they
@@ -195,17 +207,17 @@ class ReleaseCreatorV4(ReleaseCreatorBas
         for channel in uniqueChannels:
             data["fileUrls"][channel] = {
                 "completes": {}
             }
             if "localtest" in channel:
                 dir_ = makeCandidatesDir(productName.lower(), version,
                                          buildNumber, server=ftpServer,
                                          protocol='http')
-                filename = "%s-%s.complete.mar" % (productName.lower(), version)
+                filename = "%s-%s.complete.mar" % (file_prefix, version)
                 data["fileUrls"][channel]["completes"]["*"] = "%supdate/%%OS_FTP%%/%%LOCALE%%/%s" % (dir_, filename)
             else:
                 # See comment above about these channels for explanation.
                 if not requiresMirrors and channel in ("beta", "beta-cdntest", "beta-dev", "beta-dev-cdntest"):
                     bouncerProduct = "%s-%sbuild%s-complete" % (productName.lower(), version, buildNumber)
                 else:
                     if productName.lower() == "fennec":
                         bouncerProduct = "%s-%s" % (productName.lower(), version)
@@ -222,17 +234,17 @@ class ReleaseCreatorV4(ReleaseCreatorBas
             for previousVersion, previousInfo in partialUpdates.iteritems():
                 from_ = get_release_blob_name(productName, previousVersion,
                                                 previousInfo["buildNumber"],
                                                 self.dummy)
                 if "localtest" in channel:
                     dir_ = makeCandidatesDir(productName.lower(), version,
                                             buildNumber, server=ftpServer,
                                             protocol='http')
-                    filename = "%s-%s-%s.partial.mar" % (productName.lower(), previousVersion, version)
+                    filename = "%s-%s-%s.partial.mar" % (file_prefix, previousVersion, version)
                     data["fileUrls"][channel]["partials"][from_] = "%supdate/%%OS_FTP%%/%%LOCALE%%/%s" % (dir_, filename)
                 else:
                     # See comment above about these channels for explanation.
                     if not requiresMirrors and channel in ("beta", "beta-cdntest", "beta-dev", "beta-dev-cdntest"):
                         bouncerProduct = "%s-%sbuild%s-partial-%sbuild%s" % (productName.lower(), version, buildNumber, previousVersion, previousInfo["buildNumber"])
                     else:
                         bouncerProduct = "%s-%s-partial-%s" % (productName.lower(), version, previousVersion)
                     url = 'http://%s/?product=%s&os=%%OS_BOUNCER%%&lang=%%LOCALE%%' % (bouncerServer, bouncerProduct)
@@ -520,9 +532,8 @@ class BlobTweaker(object):
         api = Release(name=name, auth=self.auth, api_root=self.api_root)
         current_data, data_version = api.get_data()
         data = recursive_update(current_data, data)
         api.update_release(
             product=name.split('-')[0],
             hashFunction=data['hashFunction'], releaseData=json.dumps(data),
             data_version=data_version,
             schemaVersion=current_data['schema_version'])
-