diff --git a/catalogue/CMakeLists.txt b/catalogue/CMakeLists.txt index 0d6f49eaa6c4ab7a3853bd5039e3e887f5d1f863..76cd7787efd8214b748b4a7ec611dcb2685d1891 100644 --- a/catalogue/CMakeLists.txt +++ b/catalogue/CMakeLists.txt @@ -158,5 +158,34 @@ add_executable(cta-catalogue-schema-create target_link_libraries (cta-catalogue-schema-create ctacatalogue) +add_custom_command(OUTPUT drop_oracle_catalogue_schema.cpp + COMMAND sed 's/^/\ \ \"/' ${CMAKE_CURRENT_SOURCE_DIR}/drop_oracle_catalogue_schema.sql | sed 's/$$/\"/' > drop_oracle_catalogue_schema.cpp + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/drop_oracle_catalogue_schema.sql) + +add_custom_command(OUTPUT DropOracleCatalogueSchema.cpp + COMMAND sed '/DROP_CTA_SQL_SCHEMA/r drop_oracle_catalogue_schema.cpp' ${CMAKE_CURRENT_SOURCE_DIR}/DropOracleCatalogueSchema.before_SQL.cpp > DropOracleCatalogueSchema.cpp + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/DropOracleCatalogueSchema.before_SQL.cpp drop_oracle_catalogue_schema.cpp) + +add_custom_command(OUTPUT drop_sqlite_catalogue_schema.cpp + COMMAND sed 's/^/\ \ \"/' ${CMAKE_CURRENT_SOURCE_DIR}/drop_sqlite_catalogue_schema.sql | sed 's/$$/\"/' > drop_sqlite_catalogue_schema.cpp + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/drop_sqlite_catalogue_schema.sql) + +add_custom_command(OUTPUT DropSqliteCatalogueSchema.cpp + COMMAND sed '/DROP_CTA_SQL_SCHEMA/r drop_sqlite_catalogue_schema.cpp' ${CMAKE_CURRENT_SOURCE_DIR}/DropSqliteCatalogueSchema.before_SQL.cpp > DropSqliteCatalogueSchema.cpp + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/DropSqliteCatalogueSchema.before_SQL.cpp drop_sqlite_catalogue_schema.cpp) + install (TARGETS cta-catalogue-schema-create DESTINATION /usr/bin) install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/cta-catalogue-schema-create.1cta DESTINATION /usr/share/man/man1) + +add_executable(cta-catalogue-schema-drop + DropOracleCatalogueSchema.cpp + DropSchemaCmd.cpp + DropSchemaCmdLineArgs.cpp + DropSchemaCmdMain.cpp + DropSqliteCatalogueSchema.cpp) + +target_link_libraries (cta-catalogue-schema-drop + ctacatalogue) + +install (TARGETS cta-catalogue-schema-drop DESTINATION /usr/bin) +install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/cta-catalogue-schema-drop.1cta DESTINATION /usr/share/man/man1) diff --git a/catalogue/DropOracleCatalogueSchema.before_SQL.cpp b/catalogue/DropOracleCatalogueSchema.before_SQL.cpp new file mode 100644 index 0000000000000000000000000000000000000000..64a572ec8666ee9b234e95e71a1aea76e64582b4 --- /dev/null +++ b/catalogue/DropOracleCatalogueSchema.before_SQL.cpp @@ -0,0 +1,33 @@ +/* + * The CERN Tape Archive (CTA) project + * Copyright (C) 2015 CERN + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "catalogue/DropOracleCatalogueSchema.hpp" + +namespace cta { +namespace catalogue { + +//------------------------------------------------------------------------------ +// constructor +//------------------------------------------------------------------------------ +DropOracleCatalogueSchema::DropOracleCatalogueSchema(): sql( + // DROP_CTA_SQL_SCHEMA - The contents of drop_oracle_catalogue_schema.cpp go here + ) { +} + +} // namespace catalogue +} // namespace cta diff --git a/catalogue/DropOracleCatalogueSchema.hpp b/catalogue/DropOracleCatalogueSchema.hpp new file mode 100644 index 0000000000000000000000000000000000000000..0145db3571dc2c59328882d9c578e54663215677 --- /dev/null +++ b/catalogue/DropOracleCatalogueSchema.hpp @@ -0,0 +1,52 @@ +/* + * The CERN Tape Archive (CTA) project + * Copyright (C) 2015 CERN + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include <string> + +namespace cta { +namespace catalogue { + +/** + * Structure containing the SQL to drop the schema of the CTA catalogue database + * from an Oracle database. + * + * The CMakeLists.txt file of this directory instructs cmake to generate + * DropOracleCatalogueSchema.cpp from: + * - DropOracleCatalogueSchema.before_SQL.cpp + * - drop_oracle_catalogue_schema.sql + * + * The DropOracleCatalogueSchema.before_SQL.cpp file is not compilable and is + * therefore difficult for Integrated Developent Environments (IDEs) to handle. + * + * The purpose of this class is to help IDEs by isolating the "non-compilable" + * issues into a small cpp file. + */ +struct DropOracleCatalogueSchema { + /** + * Constructor. + */ + DropOracleCatalogueSchema(); + + /** + * The schema. + */ + const std::string sql; +}; + +} // namespace catalogue +} // namespace cta diff --git a/catalogue/DropSchemaCmd.cpp b/catalogue/DropSchemaCmd.cpp new file mode 100644 index 0000000000000000000000000000000000000000..ba53be48197368a9dda79f4acefff57bf09ef20c --- /dev/null +++ b/catalogue/DropSchemaCmd.cpp @@ -0,0 +1,121 @@ +/* + * The CERN Tape Archive (CTA) project + * Copyright (C) 2015 CERN + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "catalogue/CatalogueFactory.hpp" +#include "catalogue/DropOracleCatalogueSchema.hpp" +#include "catalogue/DropSchemaCmd.hpp" +#include "catalogue/DropSchemaCmdLineArgs.hpp" +#include "catalogue/DropSqliteCatalogueSchema.hpp" +#include "common/exception/Exception.hpp" +#include "rdbms/ConnFactoryFactory.hpp" + +namespace cta { +namespace catalogue { + +//------------------------------------------------------------------------------ +// constructor +//------------------------------------------------------------------------------ +DropSchemaCmd::DropSchemaCmd( + std::istream &inStream, + std::ostream &outStream, + std::ostream &errStream): + CmdLineTool(inStream, outStream, errStream) { +} + +//------------------------------------------------------------------------------ +// destructor +//------------------------------------------------------------------------------ +DropSchemaCmd::~DropSchemaCmd() noexcept { +} + +//------------------------------------------------------------------------------ +// exceptionThrowingMain +//------------------------------------------------------------------------------ +int DropSchemaCmd::exceptionThrowingMain(const int argc, char *const *const argv) { + const DropSchemaCmdLineArgs cmdLineArgs(argc, argv); + const rdbms::Login dbLogin = rdbms::Login::parseFile(cmdLineArgs.dbConfigPath); + + // Abort if the schema is already dropped + { + auto factory = rdbms::ConnFactoryFactory::create(dbLogin); + auto conn = factory->create(); + + if(conn->getTableNames().empty()) { + m_out << "Database contains no tables. Assuming the schema has already been dropped." << std::endl; + return 0; + } + } + + // Abort if the schema is not locked + { + const uint64_t nbDbConns = 1; + auto catalogue = CatalogueFactory::create(dbLogin, nbDbConns); + if(catalogue->schemaIsLocked()) { + m_err << + "Cannot drop the schema of the catalogue database because the schema is locked.\n" + "\n" + "Please see the following command-line tools:\n" + " cta-catalogue-schema-lock\n" + " cta-catalogue-schema-status\n" + " cta-catalogue-schema-unlock" << std::endl; + return 1; + } + } + + dropCatalogueSchema(dbLogin); + + return 0; +} + +//------------------------------------------------------------------------------ +// dropCatalogueSchema +//------------------------------------------------------------------------------ +void DropSchemaCmd::dropCatalogueSchema(const rdbms::Login &dbLogin) { + auto factory = rdbms::ConnFactoryFactory::create(dbLogin); + auto conn = factory->create(); + try { + switch(dbLogin.dbType) { + case rdbms::Login::DBTYPE_IN_MEMORY: + case rdbms::Login::DBTYPE_SQLITE: + { + DropSqliteCatalogueSchema dropSchema; + conn->executeNonQueries(dropSchema.sql); + } + break; + case rdbms::Login::DBTYPE_ORACLE: + { + DropOracleCatalogueSchema dropSchema; + conn->executeNonQueries(dropSchema.sql); + } + break; + case rdbms::Login::DBTYPE_NONE: + throw exception::Exception("Cannot delete the schema of catalogue database without a database type"); + default: + { + exception::Exception ex; + ex.getMessage() << "Unknown database type: value=" << dbLogin.dbType; + throw ex; + } + } + } catch(exception::Exception &ex) { + throw exception::Exception(std::string(__FUNCTION__) + " failed: " + ex.getMessage().str()); + } +} + +} // namespace catalogue +} // namespace cta diff --git a/catalogue/DropSchemaCmd.hpp b/catalogue/DropSchemaCmd.hpp new file mode 100644 index 0000000000000000000000000000000000000000..64185d8d977cdf6fdba0cc3d9d555d0c7cbf22c2 --- /dev/null +++ b/catalogue/DropSchemaCmd.hpp @@ -0,0 +1,72 @@ +/* + * The CERN Tape Archive (CTA) project + * Copyright (C) 2015 CERN + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#include "catalogue/Catalogue.hpp" +#include "catalogue/CmdLineTool.hpp" +#include "rdbms/Conn.hpp" +#include "rdbms/Login.hpp" + +namespace cta { +namespace catalogue { + +/** + * Command-line tool that deletes all the rows of all the tables in the + * catalogue database except for the CTA_CATALOGUE table. + */ +class DropSchemaCmd: public CmdLineTool { +public: + + /** + * Constructor. + * + * @param inStream Standard input stream. + * @param outStream Standard output stream. + * @param errStream Standard error stream. + */ + DropSchemaCmd(std::istream &inStream, std::ostream &outStream, std::ostream &errStream); + + /** + * Destructor. + */ + ~DropSchemaCmd() noexcept; + + /** + * An exception throwing version of main(). + * + * @param argc The number of command-line arguments including the program name. + * @param argv The command-line arguments. + * @return The exit value of the program. + */ + int exceptionThrowingMain(const int argc, char *const *const argv); + +private: + + /** + * Unconditionally drops the schema of the catalogue database associated with + * the specified database login. + * + * @param dbLogin The database login. + */ + void dropCatalogueSchema(const rdbms::Login &dbLogin); + +}; // class DropSchemaCmd + +} // namespace catalogue +} // namespace cta diff --git a/catalogue/DropSchemaCmdLineArgs.cpp b/catalogue/DropSchemaCmdLineArgs.cpp new file mode 100644 index 0000000000000000000000000000000000000000..caa0da1d3448f66f3123f7df36ede484e142e606 --- /dev/null +++ b/catalogue/DropSchemaCmdLineArgs.cpp @@ -0,0 +1,55 @@ +/* + * The CERN Tape Archive (CTA) project + * Copyright (C) 2015 CERN + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "catalogue/DropSchemaCmdLineArgs.hpp" +#include "common/exception/Exception.hpp" + +#include <ostream> + +namespace cta { +namespace catalogue { + +//------------------------------------------------------------------------------ +// constructor +//------------------------------------------------------------------------------ +DropSchemaCmdLineArgs::DropSchemaCmdLineArgs(const int argc, const char *const *const argv) { + if(argc != 2) { + exception::Exception ex; + ex.getMessage() << "Wrong number of command-line arguments: excepted=1 actual=" << (argc - 1) << std::endl << + std::endl; + printUsage(ex.getMessage()); + throw ex; + } + dbConfigPath = argv[1]; +} + +//------------------------------------------------------------------------------ +// printUsage +//------------------------------------------------------------------------------ +void DropSchemaCmdLineArgs::printUsage(std::ostream &os) { + os << + "Usage:" << std::endl << + " cta-catalogue-schema-drop databaseConnectionFile" << std::endl << + "Where:" << std::endl << + " databaseConnectionFile" << std::endl << + " The path to the file containing the connection details of the CTA" << std::endl << + " catalogue database" << std::endl; +} + +} // namespace catalogue +} // namespace cta diff --git a/catalogue/DropSchemaCmdLineArgs.hpp b/catalogue/DropSchemaCmdLineArgs.hpp new file mode 100644 index 0000000000000000000000000000000000000000..9f30f9a82efb2f04c5b0021715f337aacff44554 --- /dev/null +++ b/catalogue/DropSchemaCmdLineArgs.hpp @@ -0,0 +1,53 @@ +/* + * The CERN Tape Archive (CTA) project + * Copyright (C) 2015 CERN + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include <string> + +namespace cta { +namespace catalogue { + +/** + * Structure to store the command-line arguments of the command-line tool + * named cta-catalogue-schema-drop + */ +struct DropSchemaCmdLineArgs { + /** + * Path to the file containing the connection details of the catalogue + * database. + */ + std::string dbConfigPath; + + /** + * Constructor that parses the specified command-line arguments. + * + * @param argc The number of command-line arguments including the name of the + * executable. + * @param argv The vector of command-line arguments. + */ + DropSchemaCmdLineArgs(const int argc, const char *const *const argv); + + /** + * Prints the usage message of the command-line tool. + * + * @param os The output stream to which the usage message is to be printed. + */ + static void printUsage(std::ostream &os); +}; + +} // namespace catalogue +} // namespace cta diff --git a/catalogue/DropSchemaCmdMain.cpp b/catalogue/DropSchemaCmdMain.cpp new file mode 100644 index 0000000000000000000000000000000000000000..390c9cec55794efd0d158307b2860f5d3ddd5daa --- /dev/null +++ b/catalogue/DropSchemaCmdMain.cpp @@ -0,0 +1,67 @@ +/* + * The CERN Tape Archive (CTA) project + * Copyright (C) 2015 CERN + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "catalogue/DropSchemaCmd.hpp" +#include "common/exception/Exception.hpp" + +#include <iostream> + +/** + * An exception throwing version of main(). + * + * @param argc The number of command-line arguments including the program name. + * @param argv The command-line arguments. + * @return The exit value of the program. + */ +static int exceptionThrowingMain(const int argc, char *const *const argv); + +//------------------------------------------------------------------------------ +// main +//------------------------------------------------------------------------------ +int main(const int argc, char *const *const argv) { + using namespace cta; + + std::string errorMessage; + + try { + return exceptionThrowingMain(argc, argv); + } catch(exception::Exception &ex) { + errorMessage = ex.getMessage().str(); + } catch(std::exception &se) { + errorMessage = se.what(); + } catch(...) { + errorMessage = "An unknown exception was thrown"; + } + + // Reaching this point means the command has failed, an exception was throw + // and errorMessage has been set accordingly + + std::cerr << "Aborting: " << errorMessage << std::endl; + return 1; +} + +//------------------------------------------------------------------------------ +// exceptionThrowingMain +//------------------------------------------------------------------------------ +static int exceptionThrowingMain(const int argc, char *const *const argv) { + using namespace cta; + + catalogue::DropSchemaCmd cmd(std::cin, std::cout, std::cerr); + + return cmd.exceptionThrowingMain(argc, argv); +} diff --git a/catalogue/DropSqliteCatalogueSchema.before_SQL.cpp b/catalogue/DropSqliteCatalogueSchema.before_SQL.cpp new file mode 100644 index 0000000000000000000000000000000000000000..df59da1259118483e28f83010da217b5d6657882 --- /dev/null +++ b/catalogue/DropSqliteCatalogueSchema.before_SQL.cpp @@ -0,0 +1,33 @@ +/* + * The CERN Tape Archive (CTA) project + * Copyright (C) 2015 CERN + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "catalogue/DropSqliteCatalogueSchema.hpp" + +namespace cta { +namespace catalogue { + +//------------------------------------------------------------------------------ +// constructor +//------------------------------------------------------------------------------ +DropSqliteCatalogueSchema::DropSqliteCatalogueSchema(): sql( + // DROP_CTA_SQL_SCHEMA - The contents of drop_sqlite_catalogue_schema.cpp go here + ) { +} + +} // namespace catalogue +} // namespace cta diff --git a/catalogue/DropSqliteCatalogueSchema.hpp b/catalogue/DropSqliteCatalogueSchema.hpp new file mode 100644 index 0000000000000000000000000000000000000000..415be63fcbb578eaa05899f03c395d906de3e0ba --- /dev/null +++ b/catalogue/DropSqliteCatalogueSchema.hpp @@ -0,0 +1,52 @@ +/* + * The CERN Tape Archive (CTA) project + * Copyright (C) 2015 CERN + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include <string> + +namespace cta { +namespace catalogue { + +/** + * Structure containing the SQL to drop the schema of the CTA catalogue database + * from an SQLite database. + * + * The CMakeLists.txt file of this directory instructs cmake to generate + * DropSqliteCatalogueSchema.cpp from: + * - DropSqliteCatalogueSchema.before_SQL.cpp + * - drop_sqlite_catalogue_schema.sql + * + * The DropSqliteCatalogueSchema.before_SQL.cpp file is not compilable and is + * therefore difficult for Integrated Developent Environments (IDEs) to handle. + * + * The purpose of this class is to help IDEs by isolating the "non-compilable" + * issues into a small cpp file. + */ +struct DropSqliteCatalogueSchema { + /** + * Constructor. + */ + DropSqliteCatalogueSchema(); + + /** + * The schema. + */ + const std::string sql; +}; + +} // namespace catalogue +} // namespace cta diff --git a/catalogue/cta-catalogue-schema-drop.1cta b/catalogue/cta-catalogue-schema-drop.1cta new file mode 100644 index 0000000000000000000000000000000000000000..6bca5fc9e2041bd075dbdf74f719293efe3b67ce --- /dev/null +++ b/catalogue/cta-catalogue-schema-drop.1cta @@ -0,0 +1,39 @@ +.\" The CERN Tape Archive (CTA) project +.\" Copyright (C) 2015 CERN +.\" +.\" This program is free software: you can redistribute it and/or modify +.\" it under the terms of the GNU General Public License as published by +.\" the Free Software Foundation, either version 3 of the License, or +.\" (at your option) any later version. +.\" +.\" This program is distributed in the hope that it will be useful, +.\" but WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public License +.\" along with this program. If not, see <http://www.gnu.org/licenses/>. +.TH CTA-CATALOGUE-SCHEMA-DROP 1CTA "December 2016" CTA CTA +.SH NAME +cta-catalogue-schema-drop \- Drop the schema of the CTA catalogue database +.SH SYNOPSIS +.BI "cta-catalogue-schema-drop databaseConnectionFile" + +.SH DESCRIPTION +\fBcta-catalogue-schema-drop\fP is a command-line tool that drops the schema of +the CTA catalogue database. +.P +This command-line tool will abort if it sees the value LOCKED in the +SCHEMA_STATUS column of the CTA_CATALOGUE database table. +.SH ARGUMENTS +.TP +\fBdatabaseConnectionFile +The path to the configuration file containing the connection details of the +CTA catalogue database. +.SH RETURN VALUE +Zero on success and non-zero on failure. +.SH EXAMPLES +cta-catalogue-schema-drop /etc/cta/cta_catalogue_db.conf + +.SH AUTHOR +\fBCTA\fP Team diff --git a/cta.spec.in b/cta.spec.in index 549ec86555c218b9f8eb01961aa5975e827b5d9b..c268a9224d960a73098927a515bd3a3585cb2944 100644 --- a/cta.spec.in +++ b/cta.spec.in @@ -234,11 +234,13 @@ Scripts and utilities to faciliate working with the CTA catalogue %files -n cta-catalogueutils %attr(0755,root,root) %{_bindir}/cta-catalogue-delete-all-data %attr(0755,root,root) %{_bindir}/cta-catalogue-schema-create +%attr(0755,root,root) %{_bindir}/cta-catalogue-schema-drop %attr(0755,root,root) %{_bindir}/cta-catalogue-schema-lock %attr(0755,root,root) %{_bindir}/cta-catalogue-schema-status %attr(0755,root,root) %{_bindir}/cta-catalogue-schema-unlock %attr(0644,root,bin) %doc /usr/share/man/man1/cta-catalogue-delete-all-data.1cta.gz %attr(0644,root,bin) %doc /usr/share/man/man1/cta-catalogue-schema-create.1cta.gz +%attr(0644,root,bin) %doc /usr/share/man/man1/cta-catalogue-schema-drop.1cta.gz %attr(0644,root,bin) %doc /usr/share/man/man1/cta-catalogue-schema-lock.1cta.gz %attr(0644,root,bin) %doc /usr/share/man/man1/cta-catalogue-schema-status.1cta.gz %attr(0644,root,bin) %doc /usr/share/man/man1/cta-catalogue-schema-unlock.1cta.gz