I haven't actually tried to see if it will work, but it seems like the retrieval of all this update data might be a good fit to go in the Blob classes (including the locale-specific retrievals down below). The interface could be something like 'def getUpdateData(self, platform, locale)'. If that worked, you'd be able to get rid of some of the intermediary variables here, like relDataPlatLoc. This would probably require moving SCHEMA_2_OPTIONAL_ATTRIBUTES into that blob, too.

That also might be better off investigating as part of https://bugzilla.mozilla.org/show_bug.cgi?id=673036. Definitely not a blocker for this bug.