Bug 1255236 - Balrog ReleaseSubmitter should merge partials r=bhearsum
MozReview-Commit-ID: 58wZ3C8o1JD
--- a/lib/python/balrog/submitter/cli.py
+++ b/lib/python/balrog/submitter/cli.py
@@ -405,23 +405,25 @@ class ReleaseSubmitterBase(object):
'appVersion': appVersion,
'platformVersion': extVersion,
'displayVersion': getPrettyVersion(version)
}
data.update(self._get_update_data(productName, version, build_number,
**updateKwargs))
- data = json.dumps(data)
api = SingleLocale(name=name, build_target=build_target, locale=locale,
auth=self.auth, api_root=self.api_root)
schemaVersion = json.dumps(schemaVersion)
+ current_data, data_version = api.get_data()
api.update_build(
+ data_version=data_version,
product=productName, hashFunction=hashFunction,
- buildData=data, schemaVersion=schemaVersion)
+ buildData=json.dumps(merge_partial_updates(current_data, data)),
+ schemaVersion=schemaVersion)
class MultipleUpdatesReleaseMixin(object):
def _get_update_data(self, productName, version, build_number,
completeInfo=None, partialInfo=None):
data = {}
if completeInfo:
--- a/lib/python/balrog/submitter/updates.py
+++ b/lib/python/balrog/submitter/updates.py
@@ -4,17 +4,17 @@ import os
site.addsitedir(os.path.join(os.path.dirname(__file__), "..", ".."))
import jsonmerge
def merge_partial_updates(base_obj, new_obj):
"""Merges 2 update objects, merging partials and replacing completes"""
schema = {
"properties": {
- # Merge partials using fileUrl as an identifier field
+ # Merge partials using "from" as an identifier field
"partials": {
"mergeStrategy": "arrayMergeById",
"mergeOptions": {
"idRef": "from"
}
},
# Replace completes - we don't usually have more than one
"completes": {