#!/usr/bin/env python from dm.common.utility.loggingManager import LoggingManager from dm.common.exceptions.invalidArgument import InvalidArgument from dm.common.exceptions.objectAlreadyExists import ObjectAlreadyExists from dm.common.exceptions.objectNotFound import ObjectNotFound from dm.common.exceptions.dbError import DbError from dmMongoCollection import DmMongoCollection class FileCollection(DmMongoCollection): """Class responsible for updating file collection in mongo db.""" UNIQUE_KEYS_LIST = [ 'experimentFilePath', 'experimentName' ] NAME_KEY = 'experimentFilePath' ITEM_TYPE = 'file' def __init__(self, dbClient, experimentName=None): collectionName = 'files' if experimentName: collectionName = '%s-files' % experimentName DmMongoCollection.__init__(self, collectionName, dbClient) ####################################################################### # Testing if __name__ == '__main__': from dmMongoClient import DmMongoClient mongo = DmMongoClient('dm') fileCollection = FileCollection(mongo, 'exp01') fileInfo = {'fileName' : 'xyz-001', 'experimentName' : 'exp01', 'update' : 'sv2', 'locationList' : '[/opt/xyz, /data/xyz]', 'experimentFilePath' : 'd1/xyz-001'} print fileCollection.addByUniqueKeys(fileInfo) #print type(fileCollection.findByName('xyz-001')) print fileCollection.findByQueryDict({'experimentName' : 'exp01'}, {'locationList' : 1}) fileInfo['owner'] = 'ddm1' print fileCollection.updateByUniqueKeys(fileInfo)