int main( int argc, char** argv ){ boost::program_options::options_description desc("options"); boost::program_options::options_description visible("Usage: cmscond_list_iov [options] \n"); visible.add_options() ("connect,c",boost::program_options::value<std::string>(),"connection string(required)") ("user,u",boost::program_options::value<std::string>(),"user name (default \"\")") ("pass,p",boost::program_options::value<std::string>(),"password (default \"\")") ("authPath,P",boost::program_options::value<std::string>(),"path to authentication.xml") ("debug,d","switch on debug mode") ("help,h", "help message") ; desc.add(visible); boost::program_options::variables_map vm; try{ boost::program_options::store(boost::program_options::command_line_parser(argc, argv).options(desc).run(), vm); boost::program_options::notify(vm); }catch(const boost::program_options::error& er) { std::cerr << er.what()<<std::endl; return 1; } if (vm.count("help")) { std::cout << visible <<std::endl;; return 0; } std::string connect; std::string authPath(""); std::string user(""); std::string pass(""); bool debug=false; if(!vm.count("connect")){ std::cerr <<"[Error] no connect[c] option given \n"; std::cerr<<" please do "<<argv[0]<<" --help \n"; return 1; }else{ connect=vm["connect"].as<std::string>(); } if(vm.count("user")){ user=vm["user"].as<std::string>(); } if(vm.count("pass")){ pass=vm["pass"].as<std::string>(); } if( vm.count("authPath") ){ authPath=vm["authPath"].as<std::string>(); } if(vm.count("debug")){ debug=true; } cond::DbConnection connection; if( !authPath.empty() ){ connection.configuration().setAuthenticationPath( authPath ); }else{ std::string userenv(std::string("CORAL_AUTH_USER="******"CORAL_AUTH_PASSWORD=")+pass); ::putenv(const_cast<char*>(userenv.c_str())); ::putenv(const_cast<char*>(passenv.c_str())); } if(debug){ connection.configuration().setMessageLevel( coral::Debug ); }else{ connection.configuration().setMessageLevel( coral::Error ); } connection.configure(); cond::DbSession session = connection.createSession(); session.open( connect ); try{ cond::Logger mylogger(session); mylogger.getWriteLock(); mylogger.createLogDBIfNonExist(); mylogger.releaseWriteLock(); }catch(std::exception& er){ std::cout<<er.what()<<std::endl; } return 0; }
int main(){ cond::TokenBuilder tk; tk.set("CondFormatsCalibration", "Pedestals", "Pedestals", 0); std::string const tok1 = tk.tokenAsString(); tk.set("CondFormatsCalibration", "Pedestals", "Pedestals", 1); std::string const tok2 = tk.tokenAsString(); std::string constr("sqlite_file:unittest_DBLogger.db"); //std::string constr("oracle://devdb10/cms_xiezhen_dev"); edmplugin::PluginManager::Config config; edmplugin::PluginManager::configure(edmplugin::standard::config()); cond::DbConnection connection; connection.configuration().setMessageLevel( coral::Error ); connection.configure(); cond::DbSession session = connection.createSession(); session.open( constr ); cond::Logger mylogger( session ); cond::UserLogInfo a; a.provenance="me"; mylogger.createLogDBIfNonExist(); mylogger.logOperationNow(a,constr,std::string("Pedestals"),tok1,"mytag1","runnumber",0,1); std::cout<<"1. waiting"<<std::endl; sleep(1); std::cout<<"1. stop waiting"<<std::endl; std::cout<<"1. waiting"<<std::endl; sleep(1); std::cout<<"1. stop waiting"<<std::endl; mylogger.logFailedOperationNow(a,constr,std::string("Pedestals"),tok1,"mytag1","runnumber",1,1,"EOOROR"); std::cout<<"1. waiting"<<std::endl; sleep(1); std::cout<<"1. stop waiting"<<std::endl; std::cout<<"1. waiting"<<std::endl; sleep(1); std::cout<<"1. stop waiting"<<std::endl; mylogger.logOperationNow(a,constr,std::string("Pedestals"),tok2,"mytag","runnumber",1,2); std::cout<<"1. waiting"<<std::endl; sleep(1); std::cout<<"1. stop waiting"<<std::endl; /*std::cout<<"about to lookup last entry"<<std::endl; cond::LogDBEntry result; mylogger.LookupLastEntryByProvenance("me",result); std::cout<<"result \n"; std::cout<<"logId "<<result.logId<<"\n"; std::cout<<"destinationDB "<<result.destinationDB<<"\n"; std::cout<<"provenance "<<result.provenance<<"\n"; std::cout<<"usertext "<<result.usertext<<"\n"; std::cout<<"iovtag "<<result.iovtag<<"\n"; std::cout<<"iovtimetype "<<result.iovtimetype<<"\n"; std::cout<<"payloadIdx "<<result.payloadIdx<<"\n"; std::cout<<"payloadName "<<result.payloadName<<"\n"; std::cout<<"payloadToken "<<result.payloadToken<<"\n"; std::cout<<"payloadContainer "<<result.payloadContainer<<"\n"; std::cout<<"exectime "<<result.exectime<<"\n"; std::cout<<"execmessage "<<result.execmessage<<std::endl; cond::LogDBEntry result2; mylogger.LookupLastEntryByTag("mytag1",result2); std::cout<<"result2 \n"; std::cout<<"logId "<<result2.logId<<"\n"; std::cout<<"destinationDB "<<result2.destinationDB<<"\n"; std::cout<<"provenance "<<result2.provenance<<"\n"; std::cout<<"usertext "<<result2.usertext<<"\n"; std::cout<<"iovtag "<<result2.iovtag<<"\n"; std::cout<<"iovtimetype "<<result2.iovtimetype<<"\n"; std::cout<<"payloadIdx "<<result2.payloadIdx<<"\n"; std::cout<<"payloadName "<<result2.payloadName<<"\n"; std::cout<<"payloadToken "<<result2.payloadToken<<"\n"; std::cout<<"payloadContainer "<<result2.payloadContainer<<"\n"; std::cout<<"exectime "<<result2.exectime<<"\n"; std::cout<<"execmessage "<<result2.execmessage<<std::endl; */ //coralTransaction.commit(); }