def pushCompleteData(target_dir, dbSession, logger): logger.info('Start creating service and parent metadata file ...') serviceMetadataFile = createServiceDescription(TEMPLATE_FILES['service'], target_dir, dbSession, logger) parentMetadataFile = os.path.join( target_dir, str(uuid.uuid4()) + '.xml') shutil.copyfile(TEMPLATE_FILES['parent'], parentMetadataFile) logger.info('Insert service and parent metdata file ...') gn_transaction_insert(serviceMetadataFile, GN_SETTINGS['gn_username'], GN_SETTINGS['gn_password'], logger) gn_transaction_insert(parentMetadataFile, GN_SETTINGS['gn_username'], GN_SETTINGS['gn_password'], logger) logger.info('Start pushing single metadata records to the geonetwork instance ...') messtischblaetter = Messtischblatt.all(dbSession) logger.debug('Start appending new messtischblatt resources') for messtischblatt in messtischblaetter: if messtischblatt.isttransformiert: logger.debug('Push metadata record for messtischblatt %s to cataloge service ...'%messtischblatt.id) insertMetadata(id=messtischblatt.id,db=dbSession,logger=logger)
def pushCompleteData(target_dir, dbSession, logger): logger.info('Start creating service and parent metadata file ...') serviceMetadataFile = createServiceDescription(TEMPLATE_FILES['service'], target_dir, dbSession, logger) parentMetadataFile = os.path.join(target_dir, str(uuid.uuid4()) + '.xml') shutil.copyfile(TEMPLATE_FILES['parent'], parentMetadataFile) logger.info('Insert service and parent metdata file ...') gn_transaction_insert(serviceMetadataFile, GN_SETTINGS['gn_username'], GN_SETTINGS['gn_password'], logger) gn_transaction_insert(parentMetadataFile, GN_SETTINGS['gn_username'], GN_SETTINGS['gn_password'], logger) logger.info( 'Start pushing single metadata records to the geonetwork instance ...') messtischblaetter = Messtischblatt.all(dbSession) logger.debug('Start appending new messtischblatt resources') for messtischblatt in messtischblaetter: if messtischblatt.isttransformiert: logger.debug( 'Push metadata record for messtischblatt %s to cataloge service ...' % messtischblatt.id) insertMetadata(id=messtischblatt.id, db=dbSession, logger=logger)
def insertMetadata(id, db, logger): logger.debug('Start inserting metadata') try: tmpDirectory = tempfile.mkdtemp('', 'tmp_', TEMPLATE_FILES['tmp_dir']) mdFile = createTemporaryCopy(TEMPLATE_FILES['child'], tmpDirectory) metadata = getMetadataForMesstischblatt(id, db, logger) updateMetadata(mdFile, metadata, logger) response = gn_transaction_insert(mdFile,GN_SETTINGS['gn_username'], GN_SETTINGS['gn_password'], logger) if '<csw:totalInserted>1</csw:totalInserted>' in response: return response else: logger.error('Problems while inserting metadata for messtischblatt id %s'%id) print "RESPONSE" print "========" print response return False except: raise finally: shutil.rmtree(tmpDirectory)