diff --git a/storage-manager/CMakeLists.txt b/storage-manager/CMakeLists.txt index fa459e2f8..b89012804 100755 --- a/storage-manager/CMakeLists.txt +++ b/storage-manager/CMakeLists.txt @@ -93,7 +93,7 @@ columnstore_link(unit_tests storagemanager) columnstore_executable(testS3Connection src/testS3Connection.cpp) target_compile_definitions(testS3Connection PUBLIC BOOST_NO_CXX11_SCOPED_ENUMS) -columnstore_link(testS3Connection storagemanager) +columnstore_link(testS3Connection storagemanager boost_program_options) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${TMPDIR}) diff --git a/storage-manager/src/S3Storage.cpp b/storage-manager/src/S3Storage.cpp index 7e0b1957e..8c45336b3 100644 --- a/storage-manager/src/S3Storage.cpp +++ b/storage-manager/src/S3Storage.cpp @@ -112,7 +112,7 @@ S3Storage::ScopedConnection::~ScopedConnection() s3->returnConnection(conn); } -S3Storage::S3Storage(bool skipRetry) : skipRetryableErrors(skipRetry) +S3Storage::S3Storage(bool skipRetry, bool verbose) : skipRetryableErrors(skipRetry), verbose_enabled(verbose) { /* Check creds from envvars Get necessary vars from config @@ -225,7 +225,7 @@ S3Storage::S3Storage(bool skipRetry) : skipRetryableErrors(skipRetry) } ms3_library_init(); - if (libs3_debug == "enabled") + if (verbose_enabled || libs3_debug == "enabled") { ms3_debug(1); } diff --git a/storage-manager/src/S3Storage.h b/storage-manager/src/S3Storage.h index cda369a18..df63afc5b 100644 --- a/storage-manager/src/S3Storage.h +++ b/storage-manager/src/S3Storage.h @@ -32,7 +32,7 @@ namespace storagemanager class S3Storage : public CloudStorage { public: - explicit S3Storage(bool skipRetry = false); + explicit S3Storage(bool skipRetry = false, bool verbose = false); ~S3Storage() override; @@ -57,6 +57,7 @@ class S3Storage : public CloudStorage void returnConnection(std::shared_ptr conn); bool skipRetryableErrors; + bool verbose_enabled; std::string bucket; // might store this as a char *, since it's only used that way std::string prefix; diff --git a/storage-manager/src/testS3Connection.cpp b/storage-manager/src/testS3Connection.cpp index 99e344cd6..425f2a4e5 100644 --- a/storage-manager/src/testS3Connection.cpp +++ b/storage-manager/src/testS3Connection.cpp @@ -20,23 +20,26 @@ #include #include #include +#include using namespace storagemanager; using namespace std; +namespace po = boost::program_options; -void printUsage() +void printUsage(const po::options_description& desc) { cout << "MariaDB Columnstore Storage Manager Test Configuration Connectivity.\n" << endl; cout << "Usage: testS3Connection \n" << endl; + cout<< desc <()->default_value(false), "Enable verbose output"); + + // Parse command line + po::variables_map vm; + po::store(po::parse_command_line(argc, argv, desc), vm); + po::notify(vm); + + if(vm.count("help")) { - case 'h': - default: - printUsage(); - return 0; - break; + printUsage (desc); + return 0; } + // Run the test with verbose flag + return s3TestConnection(vm["verbose"].as()); } - return s3TestConnection(); + catch(const std::exception& e) + { + std::cerr << e.what() << '\n'; + } + } diff --git a/utils/libmarias3/libmarias3 b/utils/libmarias3/libmarias3 index f74150b05..d9cb536a5 160000 --- a/utils/libmarias3/libmarias3 +++ b/utils/libmarias3/libmarias3 @@ -1 +1 @@ -Subproject commit f74150b05693440d35f93c43e2d2411cc66fee19 +Subproject commit d9cb536a532ef6e71df66d99e95562e1169ec93f