diff --git a/ReleaseNotes.md b/ReleaseNotes.md index f7fac8bb0c47bc6ddb2b6b0e03d7aba9fd538112..0ffc27094e360b62883bb8a2cdabc367871b7156 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -5,6 +5,7 @@ ### Features - cta/CTA#1238 - All drive down reasons set by cta-taped should start with [cta-taped] - cta/CTA#1254 - Remove tape label option from cta-admin +- cta/CTA#1253 - add disk instance to cta-admin vo ls output and fix handling of case sensitive names in cta-admin vo add ### Bug fixes ### Building and Packaging ### Catalogue Schema diff --git a/catalogue/CatalogueTest.cpp b/catalogue/CatalogueTest.cpp index dfcacc7f3f1e06645044e28023f37c3266d8789a..482c8803436cc8e3a8db8a4ccbfb8d727c059fc1 100644 --- a/catalogue/CatalogueTest.cpp +++ b/catalogue/CatalogueTest.cpp @@ -16694,6 +16694,17 @@ TEST_P(cta_catalogue_CatalogueTest, createVirtualOrganizationAlreadyExists) { ASSERT_THROW(m_catalogue->createVirtualOrganization(m_admin,vo),cta::exception::UserError); } +TEST_P(cta_catalogue_CatalogueTest, createVirtualOrganizationAlreadyExistsCaseSensitive) { + using namespace cta; + + common::dataStructures::VirtualOrganization vo = getVo(); + + m_catalogue->createDiskInstance(m_admin, m_diskInstance.name, m_diskInstance.comment); + ASSERT_NO_THROW(m_catalogue->createVirtualOrganization(m_admin,vo)); + utils::toUpper(vo.name); + ASSERT_THROW(m_catalogue->createVirtualOrganization(m_admin,vo),cta::exception::UserError); +} + TEST_P(cta_catalogue_CatalogueTest, createVirtualOrganizationEmptyComment) { using namespace cta; diff --git a/catalogue/RdbmsCatalogue.cpp b/catalogue/RdbmsCatalogue.cpp index d14cfd301c7716b944a62b858cf66b8c9e9597d5..ae4a5f8514035eab7aa2e2534f64873859cd4802 100644 --- a/catalogue/RdbmsCatalogue.cpp +++ b/catalogue/RdbmsCatalogue.cpp @@ -181,7 +181,7 @@ bool RdbmsCatalogue::virtualOrganizationExists(rdbms::Conn &conn, const std::str "FROM " "VIRTUAL_ORGANIZATION " "WHERE " - "VIRTUAL_ORGANIZATION_NAME = :VIRTUAL_ORGANIZATION_NAME"; + "UPPER(VIRTUAL_ORGANIZATION_NAME) = UPPER(:VIRTUAL_ORGANIZATION_NAME)"; auto stmt = conn.createStmt(sql); stmt.bindString(":VIRTUAL_ORGANIZATION_NAME", voName); auto rset = stmt.executeQuery(); diff --git a/cmdline/CtaAdminTextFormatter.cpp b/cmdline/CtaAdminTextFormatter.cpp index e36c3c5b9f74acce64cd9933277693440eae9720..eece9e530366e833f8819f6ebbebf785009953ae 100644 --- a/cmdline/CtaAdminTextFormatter.cpp +++ b/cmdline/CtaAdminTextFormatter.cpp @@ -1104,6 +1104,7 @@ void TextFormatter::printVirtualOrganizationLsHeader(){ "read max drives", "write max drives", "max file size", + "disk instance", "c.user", "c.host", "c.time", @@ -1120,6 +1121,7 @@ void TextFormatter::print(const VirtualOrganizationLsItem& vols_item){ vols_item.read_max_drives(), vols_item.write_max_drives(), dataSizeToStr(vols_item.max_file_size()), + vols_item.diskinstance(), vols_item.creation_log().username(), vols_item.creation_log().host(), timeToStr(vols_item.creation_log().time()),