Forked from
DM / dm-docs
261 commits behind, 828 commits ahead of the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
fileCollection.py 1.51 KiB
#!/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)