From 755241f5ebc396455fd6398cc9ea9f4f10220727 Mon Sep 17 00:00:00 2001 From: John Eskew Date: Tue, 9 Dec 2014 10:43:19 -0500 Subject: [PATCH] Upon fail-over check, change asset metadata document to new format. --- common/lib/xmodule/xmodule/modulestore/mongo/base.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/common/lib/xmodule/xmodule/modulestore/mongo/base.py b/common/lib/xmodule/xmodule/modulestore/mongo/base.py index df09ae3a96..290bf8c461 100644 --- a/common/lib/xmodule/xmodule/modulestore/mongo/base.py +++ b/common/lib/xmodule/xmodule/modulestore/mongo/base.py @@ -1483,6 +1483,16 @@ class MongoModuleStore(ModuleStoreDraftAndPublished, ModuleStoreWriteBase, Mongo # Not found, so create. course_assets = {'course_id': unicode(course_key), 'assets': {}} course_assets['assets']['_id'] = self.asset_collection.insert(course_assets) + elif isinstance(course_assets['assets'], list): + # This record is in the old course assets format. + # Ensure that no data exists before updating the format. + assert(len(course_assets['assets']), 0) + # Update the format to a dict. + self.asset_collection.update( + {'_id': course_assets['_id']}, + {'$set': {'assets': {}}} + ) + course_assets['assets'] = {'_id': course_assets['_id']} else: course_assets['assets']['_id'] = course_assets['_id']