diff --git a/ReleaseNotes.md b/ReleaseNotes.md index f6366bef8aabd9b7f2a4dc83d6e92d8c8caa4446..8b4b237b2008809525788431eb8c505f7b92ec96 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -2,10 +2,8 @@ ## Summary ### Features -- cta/CTA#146 - Refactoring of operation tools cmd line parsing -### Building and Packaging -- cta/CTA#107 - Check latest version of gtest suite -### Bug fixes +- cta/CTA#153 - Allow verification status to be cleared with cta-admin +### Bug fixes - cta/CTA#161 - Fix bug when using temporary tables with PostgreSQL # v4.7.12-1 diff --git a/catalogue/CatalogueTest.cpp b/catalogue/CatalogueTest.cpp index 77ff7875ce814678fc3ba684de396876622a2f6c..d38b93b715ef64cd62e484d9ca3813e28c65f572 100644 --- a/catalogue/CatalogueTest.cpp +++ b/catalogue/CatalogueTest.cpp @@ -6352,7 +6352,18 @@ TEST_P(cta_catalogue_CatalogueTest, modifyTapeVerificationStatus) { ASSERT_EQ(m_admin.username, creationLog.username); ASSERT_EQ(m_admin.host, creationLog.host); ASSERT_EQ(tape.verificationStatus.value(), modifiedVerificationStatus); + } + + // Clear verification status + m_catalogue->modifyTapeVerificationStatus(m_admin, m_tape1.vid, ""); + { + const std::list<common::dataStructures::Tape> tapes = m_catalogue->getTapes(); + ASSERT_EQ(1, tapes.size()); + + const common::dataStructures::Tape tape = tapes.front(); + ASSERT_EQ(m_tape1.vid, tape.vid); + ASSERT_EQ(tape.verificationStatus.has_value(), false); } } diff --git a/catalogue/RdbmsCatalogue.cpp b/catalogue/RdbmsCatalogue.cpp index f134c9fd15b70b5a4dc5613dc973b89cec5dbfd7..677d715bd8563bfa4acf0c7e990bd25fd5975ebc 100644 --- a/catalogue/RdbmsCatalogue.cpp +++ b/catalogue/RdbmsCatalogue.cpp @@ -5107,7 +5107,11 @@ void RdbmsCatalogue::modifyTapeVerificationStatus(const common::dataStructures:: "VID = :VID"; auto conn = m_connPool.getConn(); auto stmt = conn.createStmt(sql); - stmt.bindString(":VERIFICATION_STATUS", verificationStatus); + if (verificationStatus.empty()) { + stmt.bindString(":VERIFICATION_STATUS", std::nullopt); + } else { + stmt.bindString(":VERIFICATION_STATUS", verificationStatus); + } stmt.bindString(":LAST_UPDATE_USER_NAME", admin.username); stmt.bindString(":LAST_UPDATE_HOST_NAME", admin.host); stmt.bindUint64(":LAST_UPDATE_TIME", now);