Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-03-23 15:57:26

0001 #include "CondCore/CondDB/interface/ConnectionPool.h"
0002 
0003 #include "CondCore/Utilities/interface/Utilities.h"
0004 #include "CondCore/Utilities/interface/CondDBImport.h"
0005 #include <iostream>
0006 
0007 #include <sstream>
0008 
0009 namespace cond {
0010 
0011   class TestIovUtilities : public cond::Utilities {
0012   public:
0013     TestIovUtilities();
0014     ~TestIovUtilities() override;
0015     int execute() override;
0016   };
0017 }  // namespace cond
0018 
0019 cond::TestIovUtilities::TestIovUtilities() : Utilities("conddb_copy_iov") {
0020   addConnectOption("connect", "c", "target connection string (required)");
0021   addAuthenticationOptions();
0022   addOption<bool>("read", "r", "de-serialize the specified payload");
0023   addOption<std::string>("hash", "x", "hash of the payload");
0024 }
0025 
0026 cond::TestIovUtilities::~TestIovUtilities() {}
0027 
0028 int cond::TestIovUtilities::execute() {
0029   std::string connect = getOptionValue<std::string>("connect");
0030 
0031   std::string hash("");
0032   bool read = hasOptionValue("read");
0033   if (read) {
0034     hash = getOptionValue<std::string>("hash");
0035   }
0036 
0037   persistency::ConnectionPool connPool;
0038   if (hasOptionValue("authPath")) {
0039     connPool.setAuthenticationPath(getOptionValue<std::string>("authPath"));
0040   }
0041   connPool.configure();
0042 
0043   std::cout << "# Connecting to source database on " << connect << std::endl;
0044   persistency::Session session = connPool.createSession(connect);
0045 
0046   session.transaction().start(true);
0047   try {
0048     persistency::fetch(hash, session);
0049     std::cout << "De-serialization of payload " << hash << " performed correctly." << std::endl;
0050   } catch (const persistency::Exception& e) {
0051     std::cout << "De-serialization of payload " << hash << " failed: " << e.what() << std::endl;
0052   }
0053   session.transaction().commit();
0054   return 0;
0055 }
0056 
0057 int main(int argc, char** argv) {
0058   cond::TestIovUtilities utilities;
0059   return utilities.run(argc, argv);
0060 }