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 }
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 }