Loading src/DMDBImporter.cpp +68 −64 Original line number Diff line number Diff line Loading @@ -207,7 +207,7 @@ Destination::SP DMDBImporter::getDestination(int destinationId) soci::rowset< DestinationTuple > rows = (m_session_sp->prepare << "SELECT id, host, port, user, password, schema_name, table_name, " "storage_path FROM " << m_destinationTable << " WHERE id=:id", "storage_path, dir_name FROM " << m_destinationTable << " WHERE id=:id", soci::use(destinationId,"id")); DestinationTupleVector destinationTuple_vector; Loading Loading @@ -249,17 +249,21 @@ Destination::SP DMDBImporter::getDestination(int destinationId) throw soci::soci_error("Storage not found for id " + destinationId); std::string storage = destinationTuple.get<7>().get(); if(!destinationTuple.get<8>()) throw soci::soci_error("Directory not found for id " + destinationId); std::string directory = destinationTuple.get<8>().get(); #ifdef VERBOSE_DEBUG INFO_STREAM << "DESTINATION: " << destinationId << " " << host << " " << port << " " << user << " " << password << " " << schema << " " << table << " " << storage << endl; << " " << storage << " " << directory << endl; INFO_STREAM << "-------------------------------------------------" << endl; #endif Mapping::SPVector mapping_spvector = getMapping(destinationId); Destination::SP destination_sp( Destination::create(host, port, user, password, schema, table, storage, mapping_spvector) ); schema, table, storage, directory, mapping_spvector) ); return destination_sp; } Loading src/DMDBImporter.h +32 −31 Original line number Diff line number Diff line Loading @@ -91,7 +91,8 @@ protected: typedef boost::tuple< boost::optional<int>, boost::optional<std::string>, boost::optional<int>, boost::optional<std::string>, boost::optional<std::string>, boost::optional<std::string>, boost::optional<std::string>, boost::optional<std::string> > DestinationTuple; boost::optional<std::string>, boost::optional<std::string>, boost::optional<std::string> > DestinationTuple; typedef std::vector< DestinationTuple > DestinationTupleVector; Loading src/DMDBVerifier.cpp +37 −36 Original line number Diff line number Diff line Loading @@ -91,7 +91,8 @@ void DMDBVerifier::testInstrumentMapping(Instrument::SP instrument_sp) { //Check nadir mandatory columns in table definition testColumnDefinition(columnTuple_vector, "id", "mediumint", true); testColumnDefinition(columnTuple_vector,"file_path","varchar", true); testColumnDefinition(columnTuple_vector,"storage_path","varchar", false); testColumnDefinition(columnTuple_vector,"file_path","varchar", false); testColumnDefinition(columnTuple_vector,"file_version","smallint", true); testColumnDefinition(columnTuple_vector,"file_name","varchar", true); testColumnDefinition(columnTuple_vector,"update_time","timestamp", true); Loading src/Destination.h +15 −10 Original line number Diff line number Diff line Loading @@ -22,12 +22,13 @@ private: //------------------------------------------------------------------------------ // [Private] Constructor destructor deleter //------------------------------------------------------------------------------ Destination(std::string host, int port, std::string user, std::string password, std::string schema, std::string table, std::string storagePath, Destination(std::string host, int port, std::string user, std::string password, std::string schema, std::string table, std::string storagePath, std::string dirName, std::vector< boost::shared_ptr<Mapping> >& mapping_spvector) : m_host(host), m_port(port), m_user(user), m_password(password), m_schema(schema), m_table(table), m_storagePath(storagePath), m_mapping_spvector(mapping_spvector) {} m_dirName(dirName), m_mapping_spvector(mapping_spvector) {} ~Destination() {} class Deleter; Loading @@ -44,11 +45,11 @@ public: //------------------------------------------------------------------------------ static Destination::SP create(std::string host, int port, std::string user, std::string password, std::string schema, std::string table, std::string storagePath, std::string table, std::string storagePath, std::string dirName, Mapping::SPVector& mapping_spvector) { Destination::SP d_sp( new Destination(host, port, user, password, schema, table, storagePath, mapping_spvector), schema, table, storagePath, dirName, mapping_spvector), Destination::Deleter() ); return d_sp; } Loading @@ -60,6 +61,7 @@ public: std::string getSchema() const { return m_schema; } std::string getTable() const { return m_table; } std::string getStoragePath() const { return m_storagePath; } std::string getDirName() const { return m_dirName; } Mapping::SPVector getMappingSPVector() const { return m_mapping_spvector; } private: Loading Loading @@ -87,6 +89,9 @@ private: //Meta data file storage path const std::string m_storagePath; //Meta data file directory name const std::string m_dirName; //Mapping vector const Mapping::SPVector m_mapping_spvector; }; Loading src/WorkerThread.cpp +12 −5 Original line number Diff line number Diff line Loading @@ -330,10 +330,15 @@ void WorkerThread::execQuery(ConnectionManager::SessionSP session_sp, std::stringstream valuesQuery; valuesQuery << "VALUES("; //Append storage path column to query insertQuery << "storage_path"; valuesQuery << "\'" << destination_sp->getStoragePath() << "/" << destination_sp->getDirName() << "\'"; //Append file path column to query insertQuery << "file_path"; insertQuery << ",file_path"; int month = date.month(); valuesQuery << "\'/" << date.year() << "/" << month << "/" << date.day() << "\'"; valuesQuery << ",\'/" << date.year() << "/" << month << "/" << date.day() << "\'"; //Append file version column to query insertQuery << ",file_version"; Loading Loading @@ -552,13 +557,15 @@ void WorkerThread::moveFile(boost::filesystem::path& origPath, throw std::runtime_error( "Origin path \"" + origPath.string() + "\" is not a regular file"); //Destination path = storage path + date path + duplicate max + file name //Destination path = storage path + directory name // + date path + duplicate max + file name boost::filesystem::path destPath(destination_sp->getStoragePath()); //Create date and version part of destination path //Create directory path, date and version part of destination path std::stringstream relPathStream; int month = date.month(); relPathStream << "/" << date.year() << "/" << month relPathStream << "/" << destination_sp->getDirName() << "/" << date.year() << "/" << month << "/" << date.day() << "/" << duplicateMax; boost::filesystem::path relPath( relPathStream.str() ); Loading Loading
src/DMDBImporter.cpp +68 −64 Original line number Diff line number Diff line Loading @@ -207,7 +207,7 @@ Destination::SP DMDBImporter::getDestination(int destinationId) soci::rowset< DestinationTuple > rows = (m_session_sp->prepare << "SELECT id, host, port, user, password, schema_name, table_name, " "storage_path FROM " << m_destinationTable << " WHERE id=:id", "storage_path, dir_name FROM " << m_destinationTable << " WHERE id=:id", soci::use(destinationId,"id")); DestinationTupleVector destinationTuple_vector; Loading Loading @@ -249,17 +249,21 @@ Destination::SP DMDBImporter::getDestination(int destinationId) throw soci::soci_error("Storage not found for id " + destinationId); std::string storage = destinationTuple.get<7>().get(); if(!destinationTuple.get<8>()) throw soci::soci_error("Directory not found for id " + destinationId); std::string directory = destinationTuple.get<8>().get(); #ifdef VERBOSE_DEBUG INFO_STREAM << "DESTINATION: " << destinationId << " " << host << " " << port << " " << user << " " << password << " " << schema << " " << table << " " << storage << endl; << " " << storage << " " << directory << endl; INFO_STREAM << "-------------------------------------------------" << endl; #endif Mapping::SPVector mapping_spvector = getMapping(destinationId); Destination::SP destination_sp( Destination::create(host, port, user, password, schema, table, storage, mapping_spvector) ); schema, table, storage, directory, mapping_spvector) ); return destination_sp; } Loading
src/DMDBImporter.h +32 −31 Original line number Diff line number Diff line Loading @@ -91,7 +91,8 @@ protected: typedef boost::tuple< boost::optional<int>, boost::optional<std::string>, boost::optional<int>, boost::optional<std::string>, boost::optional<std::string>, boost::optional<std::string>, boost::optional<std::string>, boost::optional<std::string> > DestinationTuple; boost::optional<std::string>, boost::optional<std::string>, boost::optional<std::string> > DestinationTuple; typedef std::vector< DestinationTuple > DestinationTupleVector; Loading
src/DMDBVerifier.cpp +37 −36 Original line number Diff line number Diff line Loading @@ -91,7 +91,8 @@ void DMDBVerifier::testInstrumentMapping(Instrument::SP instrument_sp) { //Check nadir mandatory columns in table definition testColumnDefinition(columnTuple_vector, "id", "mediumint", true); testColumnDefinition(columnTuple_vector,"file_path","varchar", true); testColumnDefinition(columnTuple_vector,"storage_path","varchar", false); testColumnDefinition(columnTuple_vector,"file_path","varchar", false); testColumnDefinition(columnTuple_vector,"file_version","smallint", true); testColumnDefinition(columnTuple_vector,"file_name","varchar", true); testColumnDefinition(columnTuple_vector,"update_time","timestamp", true); Loading
src/Destination.h +15 −10 Original line number Diff line number Diff line Loading @@ -22,12 +22,13 @@ private: //------------------------------------------------------------------------------ // [Private] Constructor destructor deleter //------------------------------------------------------------------------------ Destination(std::string host, int port, std::string user, std::string password, std::string schema, std::string table, std::string storagePath, Destination(std::string host, int port, std::string user, std::string password, std::string schema, std::string table, std::string storagePath, std::string dirName, std::vector< boost::shared_ptr<Mapping> >& mapping_spvector) : m_host(host), m_port(port), m_user(user), m_password(password), m_schema(schema), m_table(table), m_storagePath(storagePath), m_mapping_spvector(mapping_spvector) {} m_dirName(dirName), m_mapping_spvector(mapping_spvector) {} ~Destination() {} class Deleter; Loading @@ -44,11 +45,11 @@ public: //------------------------------------------------------------------------------ static Destination::SP create(std::string host, int port, std::string user, std::string password, std::string schema, std::string table, std::string storagePath, std::string table, std::string storagePath, std::string dirName, Mapping::SPVector& mapping_spvector) { Destination::SP d_sp( new Destination(host, port, user, password, schema, table, storagePath, mapping_spvector), schema, table, storagePath, dirName, mapping_spvector), Destination::Deleter() ); return d_sp; } Loading @@ -60,6 +61,7 @@ public: std::string getSchema() const { return m_schema; } std::string getTable() const { return m_table; } std::string getStoragePath() const { return m_storagePath; } std::string getDirName() const { return m_dirName; } Mapping::SPVector getMappingSPVector() const { return m_mapping_spvector; } private: Loading Loading @@ -87,6 +89,9 @@ private: //Meta data file storage path const std::string m_storagePath; //Meta data file directory name const std::string m_dirName; //Mapping vector const Mapping::SPVector m_mapping_spvector; }; Loading
src/WorkerThread.cpp +12 −5 Original line number Diff line number Diff line Loading @@ -330,10 +330,15 @@ void WorkerThread::execQuery(ConnectionManager::SessionSP session_sp, std::stringstream valuesQuery; valuesQuery << "VALUES("; //Append storage path column to query insertQuery << "storage_path"; valuesQuery << "\'" << destination_sp->getStoragePath() << "/" << destination_sp->getDirName() << "\'"; //Append file path column to query insertQuery << "file_path"; insertQuery << ",file_path"; int month = date.month(); valuesQuery << "\'/" << date.year() << "/" << month << "/" << date.day() << "\'"; valuesQuery << ",\'/" << date.year() << "/" << month << "/" << date.day() << "\'"; //Append file version column to query insertQuery << ",file_version"; Loading Loading @@ -552,13 +557,15 @@ void WorkerThread::moveFile(boost::filesystem::path& origPath, throw std::runtime_error( "Origin path \"" + origPath.string() + "\" is not a regular file"); //Destination path = storage path + date path + duplicate max + file name //Destination path = storage path + directory name // + date path + duplicate max + file name boost::filesystem::path destPath(destination_sp->getStoragePath()); //Create date and version part of destination path //Create directory path, date and version part of destination path std::stringstream relPathStream; int month = date.month(); relPathStream << "/" << date.year() << "/" << month relPathStream << "/" << destination_sp->getDirName() << "/" << date.year() << "/" << month << "/" << date.day() << "/" << duplicateMax; boost::filesystem::path relPath( relPathStream.str() ); Loading