]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[642-update-mysql-cb-with-calls-to-set-delete-and-retrieve-servers] Changed new schem...
authorFrancis Dupont <fdupont@isc.org>
Tue, 25 Jun 2019 14:20:54 +0000 (16:20 +0200)
committerMarcin Siodelski <marcin@isc.org>
Thu, 27 Jun 2019 18:51:31 +0000 (14:51 -0400)
src/hooks/dhcp/mysql_cb/mysql_cb_impl.cc
src/hooks/dhcp/mysql_cb/mysql_cb_impl.h
src/hooks/dhcp/mysql_cb/mysql_cb_messages.cc
src/hooks/dhcp/mysql_cb/mysql_cb_messages.h
src/hooks/dhcp/mysql_cb/mysql_cb_messages.mes
src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp4_unittest.cc
src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp6_unittest.cc
src/share/database/scripts/mysql/upgrade_8.0_to_8.1.sh.in
src/share/database/scripts/mysql/upgrade_8.0_to_9.0.sh.in [deleted file]

index e5a9787f76204db0c2f4a20c17654dd503658907..b5a9e5d86333b55d98fb1e41753446d9c5a92326 100644 (file)
@@ -267,7 +267,7 @@ MySqlConfigBackendImpl::getGlobalParameters(const int index,
             std::string name = out_bindings[1]->getString();
 
             if (!name.empty()) {
-                last_param = StampedValue::create(out_bindings[1]->getString(),
+                last_param = StampedValue::create(name,
                                                   out_bindings[2]->getString(),
                                                   static_cast<Element::types>
                                                   (out_bindings[3]->getInteger<uint8_t>()));
@@ -287,7 +287,7 @@ MySqlConfigBackendImpl::getGlobalParameters(const int index,
                 // parameter already exists and belongs to 'all'.
                 auto& index = local_parameters.get<StampedValueNameIndexTag>();
                 auto existing = index.find(name);
-                if (existing != local_parameters.end()) {
+                if (existing != index.end()) {
                     // This parameter was already fetched. Let's check if we should
                     // replace it or not.
                     if (!last_param_server_tag.amAll() && (*existing)->hasAllServerTag()) {
@@ -302,7 +302,7 @@ MySqlConfigBackendImpl::getGlobalParameters(const int index,
                 // If there is no such parameter yet or the existing parameter
                 // belongs to a different server and the inserted parameter is
                 // not for all servers.
-                if ((existing == local_parameters.end()) ||
+                if ((existing == index.end()) ||
                     (!(*existing)->hasServerTag(last_param_server_tag) &&
                      !last_param_server_tag.amAll())) {
                     local_parameters.insert(last_param);
@@ -930,14 +930,14 @@ MySqlConfigBackendImpl::getServers(const int index,
 }
 
 void
-MySqlConfigBackendImpl::createUpdateServer(const int create_audit_revision_index,
-                                           const int create_index,
-                                           const int update_index,
+MySqlConfigBackendImpl::createUpdateServer(const int& create_audit_revision,
+                                           const int& create_index,
+                                           const int& update_index,
                                            const ServerPtr& server) {
     // Create scoped audit revision. As long as this instance exists
     // no new audit revisions are created in any subsequent calls.
     ScopedAuditRevision audit_revision(this,
-                                       create_audit_revision_index,
+                                       create_audit_revision,
                                        ServerSelector::ALL(),
                                        "server set",
                                        true);
@@ -962,8 +962,8 @@ MySqlConfigBackendImpl::createUpdateServer(const int create_audit_revision_index
 }
 
 uint64_t
-MySqlConfigBackendImpl::deleteServer(const int create_audit_revision_index,
-                                     const int delete_index,
+MySqlConfigBackendImpl::deleteServer(const int& create_audit_revision,
+                                     const int& delete_index,
                                      const std::string& server_tag) {
 
     MySqlTransaction transaction(conn_);
@@ -971,7 +971,7 @@ MySqlConfigBackendImpl::deleteServer(const int create_audit_revision_index,
     // Create scoped audit revision. As long as this instance exists
     // no new audit revisions are created in any subsequent calls.
     ScopedAuditRevision
-        audit_revision(this, create_audit_revision_index,
+        audit_revision(this, create_audit_revision,
                        ServerSelector::ALL(), "deleting a server", false);
 
     // Specify which server should be deleted.
@@ -987,16 +987,16 @@ MySqlConfigBackendImpl::deleteServer(const int create_audit_revision_index,
 }
 
 uint64_t
-MySqlConfigBackendImpl::deleteAllServers(const int create_audit_revision_index,
-                                         const int delete_index) {
+MySqlConfigBackendImpl::deleteAllServers(const int& create_audit_revision,
+                                         const int& delete_index) {
 
     MySqlTransaction transaction(conn_);
 
     // Create scoped audit revision. As long as this instance exists
     // no new audit revisions are created in any subsequent calls.
     ScopedAuditRevision
-        audit_revision(this, create_audit_revision_index,
-                       ServerSelector::ALL(), "deleting a server", false);
+        audit_revision(this, create_audit_revision,
+                       ServerSelector::ALL(), "deleting all servers", false);
 
     MySqlBindingCollection in_bindings;
 
index ad45bb33af9013555a8a6fefa3cc86bbf7762351..4bbf2cb383cface202bd2a1cf7dff1c6f2481911 100644 (file)
@@ -643,9 +643,9 @@ public:
     /// @param create_index Index of the INSERT query to be used.
     /// @param update_index Index of the UPDATE query to be used.
     /// @param server Pointer to the server to be inserted or updated.
-    void createUpdateServer(const int create_audit_revision_index,
-                            const int create_index,
-                            const int update_index,
+    void createUpdateServer(const int& create_audit_revision,
+                            const int& create_index,
+                            const int& update_index,
                             const db::ServerPtr& server);
 
     /// @brief Attempts to delete a server having a given tag.
@@ -655,7 +655,7 @@ public:
     /// @param create_index Index of the DELETE query to be executed.
     /// @param server_tag Tag of the server to be deleted.
     /// @return Number of deleted servers.
-    uint64_t deleteServer(const int create_audit_revision_index, const int index,
+    uint64_t deleteServer(const int& create_audit_revision, const int& index,
                           const std::string& server_tag);
 
     /// @brief Attempts to delete all servers.
@@ -667,8 +667,8 @@ public:
     /// revision.
     /// @param server_tag Tag of the server to be deleted.
     /// @return Number of deleted servers.
-    uint64_t deleteAllServers(const int create_audit_revision_index,
-                              const int index);
+    uint64_t deleteAllServers(const int& create_audit_revision,
+                              const int& index);
 
     /// @brief Returns backend type in the textual format.
     ///
index 3309b440bb5515eba24b782a71ed8ade1e94691b..6b3b9e280aeec84f7e9802968d71f816a87f8f34 100644 (file)
@@ -1,4 +1,4 @@
-// File created from ../../../../src/hooks/dhcp/mysql_cb/mysql_cb_messages.mes on Mon Jun 17 2019 14:28
+// File created from ../../../../src/hooks/dhcp/mysql_cb/mysql_cb_messages.mes on Tue Jun 25 2019 16:12
 
 #include <cstddef>
 #include <log/message_types.h>
@@ -196,7 +196,7 @@ const char* values[] = {
     "MYSQL_CB_CREATE_UPDATE_SHARED_NETWORK_OPTION6", "create or update shared network: %1 option",
     "MYSQL_CB_CREATE_UPDATE_SUBNET4", "create or update subnet: %1",
     "MYSQL_CB_CREATE_UPDATE_SUBNET6", "create or update subnet: %1",
-    "MYSQL_CB_DEINIT_OK", "unloading MYSQAL CB hooks library successful",
+    "MYSQL_CB_DEINIT_OK", "unloading MYSQL CB hooks library successful",
     "MYSQL_CB_DELETE_ALL_GLOBAL_PARAMETERS4", "delete all global parameters",
     "MYSQL_CB_DELETE_ALL_GLOBAL_PARAMETERS4_RESULT", "deleted: %1 entries",
     "MYSQL_CB_DELETE_ALL_GLOBAL_PARAMETERS6", "delete all global parameters",
index 679216d5c293ccbf80c3b6bf32a338d37a781cab..f8a143f66e42f300e2ac2b1def4ece99b9903472 100644 (file)
@@ -1,4 +1,4 @@
-// File created from ../../../../src/hooks/dhcp/mysql_cb/mysql_cb_messages.mes on Mon Jun 17 2019 14:28
+// File created from ../../../../src/hooks/dhcp/mysql_cb/mysql_cb_messages.mes on Tue Jun 25 2019 16:12
 
 #ifndef MYSQL_CB_MESSAGES_H
 #define MYSQL_CB_MESSAGES_H
index 1ecaba3959294edd84cb5b2b2eafe4e22ad20b1f..e76df2864a7ddadd76524671cf7f663d2355965c 100644 (file)
@@ -35,6 +35,14 @@ Debug message issued when triggered an action to create or update option definit
 % MYSQL_CB_CREATE_UPDATE_OPTION_DEF6 create or update option definition: %1 code: %2
 Debug message issued when triggered an action to create or update option definition
 
+% MYSQL_CB_CREATE_UPDATE_SERVER4 create or update server: %1
+Debug message issued when triggered an action to create or update a DHCPv4
+server information.
+
+% MYSQL_CB_CREATE_UPDATE_SERVER6 create or update server: %1
+Debug message issued when triggered an action to create or update a DHCPv6
+server information.
+
 % MYSQL_CB_CREATE_UPDATE_SHARED_NETWORK4 create or update shared network: %1
 Debug message issued when triggered an action to create or update shared network
 
@@ -53,15 +61,7 @@ Debug message issued when triggered an action to create or update subnet
 % MYSQL_CB_CREATE_UPDATE_SUBNET6 create or update subnet: %1
 Debug message issued when triggered an action to create or update subnet
 
-% MYSQL_CB_CREATE_UPDATE_SERVER4 create or update server: %1
-Debug message issued when triggered an action to create or update a DHCPv4
-server information.
-
-% MYSQL_CB_CREATE_UPDATE_SERVER6 create or update server: %1
-Debug message issued when triggered an action to create or update a DHCPv6
-server information.
-
-% MYSQL_CB_DEINIT_OK unloading MYSQAL CB hooks library successful
+% MYSQL_CB_DEINIT_OK unloading MYSQL CB hooks library successful
 This informational message indicates that the MySQL Configuration Backend hooks
 library has been unloaded successfully.
 
@@ -89,18 +89,6 @@ Debug message issued when triggered an action to delete all option definitions
 % MYSQL_CB_DELETE_ALL_OPTION_DEFS6_RESULT deleted: %1 entries
 Debug message indicating the result of an action to delete all option definitions
 
-% MYSQL_CB_DELETE_ALL_SHARED_NETWORKS4 delete all shared networks
-Debug message issued when triggered an action to delete all shared networks
-
-% MYSQL_CB_DELETE_ALL_SHARED_NETWORKS4_RESULT deleted: %1 entries
-Debug message indicating the result of an action to delete all shared networks
-
-% MYSQL_CB_DELETE_ALL_SHARED_NETWORKS6 delete all shared networks
-Debug message issued when triggered an action to delete all shared networks
-
-% MYSQL_CB_DELETE_ALL_SHARED_NETWORKS6_RESULT deleted: %1 entries
-Debug message indicating the result of an action to delete all shared networks
-
 % MYSQL_CB_DELETE_ALL_SERVERS4 delete all DHCPv4 servers
 Debug message issued when triggered an action to delete all servers.
 
@@ -113,6 +101,18 @@ Debug message issued when triggered an action to delete all servers.
 % MYSQL_CB_DELETE_ALL_SERVERS6_RESULT deleted: %1 entries
 Debug message indicating the result of an action to delete all servers.
 
+% MYSQL_CB_DELETE_ALL_SHARED_NETWORKS4 delete all shared networks
+Debug message issued when triggered an action to delete all shared networks
+
+% MYSQL_CB_DELETE_ALL_SHARED_NETWORKS4_RESULT deleted: %1 entries
+Debug message indicating the result of an action to delete all shared networks
+
+% MYSQL_CB_DELETE_ALL_SHARED_NETWORKS6 delete all shared networks
+Debug message issued when triggered an action to delete all shared networks
+
+% MYSQL_CB_DELETE_ALL_SHARED_NETWORKS6_RESULT deleted: %1 entries
+Debug message indicating the result of an action to delete all shared networks
+
 % MYSQL_CB_DELETE_ALL_SUBNETS4 delete all subnets
 Debug message issued when triggered an action to delete all subnets
 
index 1c5c554b4ac8bf59e352bb28f4e24ac2a06a0a34..a4ce59f41b55bdf2f6d08f8b6fd15e929240712c 100644 (file)
@@ -492,7 +492,7 @@ TEST_F(MySqlConfigBackendDHCPv4Test, createUpdateDeleteServer) {
                           "server set");
     }
 
-    // Verify that the server has been updated. 
+    // Verify that the server has been updated.
     EXPECT_NO_THROW(returned_server = cbptr_->getServer4(ServerTag("server1")));
     ASSERT_TRUE(returned_server);
     EXPECT_EQ("server1", returned_server->getServerTag().get());
index 37ec7bb27c9ee78977e3ac8f6fb9745af6a554af..2003190e806c13bfc72e82d325c2daebea714f68 100644 (file)
@@ -533,7 +533,7 @@ TEST_F(MySqlConfigBackendDHCPv6Test, createUpdateDeleteServer) {
                           "server set");
     }
 
-    // Verify that the server has been updated. 
+    // Verify that the server has been updated.
     EXPECT_NO_THROW(returned_server = cbptr_->getServer6(ServerTag("server1")));
     ASSERT_TRUE(returned_server);
     EXPECT_EQ("server1", returned_server->getServerTag().get());
index ba696c944e0bdfefa41e6cda3ddd7e208e426c38..b46fed88817fe4b3765b8b78fc1a421392ebec94 100644 (file)
@@ -38,6 +38,60 @@ ALTER TABLE dhcp6_subnet
     ADD COLUMN min_valid_lifetime INT(10) DEFAULT NULL,
     ADD COLUMN max_valid_lifetime INT(10) DEFAULT NULL;
 
+# Create dhcp4_server insert trigger
+DELIMITER $$
+CREATE TRIGGER dhcp4_server_AINS AFTER INSERT ON dhcp4_server
+    FOR EACH ROW
+    BEGIN
+        CALL createAuditEntryDHCP4('dhcp4_server', NEW.id, "create");
+    END $$
+DELIMITER ;
+
+# Create dhcp4_server update trigger
+DELIMITER $$
+CREATE TRIGGER dhcp4_server_AUPD AFTER UPDATE ON dhcp4_server
+    FOR EACH ROW
+    BEGIN
+        CALL createAuditEntryDHCP4('dhcp4_server', NEW.id, "update");
+    END $$
+DELIMITER ;
+
+# Create dhcp4_server delete trigger
+DELIMITER $$
+CREATE TRIGGER dhcp4_server_ADEL AFTER DELETE ON dhcp4_server
+    FOR EACH ROW
+    BEGIN
+        CALL createAuditEntryDHCP4('dhcp4_server', OLD.id, "delete");
+    END $$
+DELIMITER ;
+
+# Create dhcp6_server insert trigger
+DELIMITER $$
+CREATE TRIGGER dhcp6_server_AINS AFTER INSERT ON dhcp6_server
+    FOR EACH ROW
+    BEGIN
+        CALL createAuditEntryDHCP6('dhcp6_server', NEW.id, "create");
+    END $$
+DELIMITER ;
+
+# Create dhcp6_server update trigger
+DELIMITER $$
+CREATE TRIGGER dhcp6_server_AUPD AFTER UPDATE ON dhcp6_server
+    FOR EACH ROW
+    BEGIN
+        CALL createAuditEntryDHCP6('dhcp6_server', NEW.id, "update");
+    END $$
+DELIMITER ;
+
+# Create dhcp6_server delete trigger
+DELIMITER $$
+CREATE TRIGGER dhcp6_server_ADEL AFTER DELETE ON dhcp6_server
+    FOR EACH ROW
+    BEGIN
+        CALL createAuditEntryDHCP6('dhcp6_server', OLD.id, "delete");
+    END $$
+DELIMITER ;
+
 # Update the schema version number
 UPDATE schema_version
 SET version = '8', minor = '1';
diff --git a/src/share/database/scripts/mysql/upgrade_8.0_to_9.0.sh.in b/src/share/database/scripts/mysql/upgrade_8.0_to_9.0.sh.in
deleted file mode 100644 (file)
index 981ad2a..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/bin/sh
-
-# Include utilities. Use installed version if available and
-# use build version if it isn't.
-if [ -e @datarootdir@/@PACKAGE_NAME@/scripts/admin-utils.sh ]; then
-    . @datarootdir@/@PACKAGE_NAME@/scripts/admin-utils.sh
-else
-    . @abs_top_builddir@/src/bin/admin/admin-utils.sh
-fi
-
-VERSION=`mysql_version "$@"`
-
-if [ "$VERSION" != "8.0" ]; then
-    printf "This script upgrades 8.0 to 9.0. Reported version is $VERSION. Skipping upgrade.\n"
-    exit 0
-fi
-
-mysql "$@" <<EOF
-
-# Create dhcp4_server insert trigger
-DELIMITER $$
-CREATE TRIGGER dhcp4_server_AINS AFTER INSERT ON dhcp4_server
-    FOR EACH ROW
-    BEGIN
-        CALL createAuditEntryDHCP4('dhcp4_server', NEW.id, "create");
-    END $$
-DELIMITER ;
-
-# Create dhcp4_server update trigger
-DELIMITER $$
-CREATE TRIGGER dhcp4_server_AUPD AFTER UPDATE ON dhcp4_server
-    FOR EACH ROW
-    BEGIN
-        CALL createAuditEntryDHCP4('dhcp4_server', NEW.id, "update");
-    END $$
-DELIMITER ;
-
-# Create dhcp4_server delete trigger
-DELIMITER $$
-CREATE TRIGGER dhcp4_server_ADEL AFTER DELETE ON dhcp4_server
-    FOR EACH ROW
-    BEGIN
-        CALL createAuditEntryDHCP4('dhcp4_server', OLD.id, "delete");
-    END $$
-DELIMITER ;
-
-# Create dhcp6_server insert trigger
-DELIMITER $$
-CREATE TRIGGER dhcp6_server_AINS AFTER INSERT ON dhcp6_server
-    FOR EACH ROW
-    BEGIN
-        CALL createAuditEntryDHCP6('dhcp6_server', NEW.id, "create");
-    END $$
-DELIMITER ;
-
-# Create dhcp6_server update trigger
-DELIMITER $$
-CREATE TRIGGER dhcp6_server_AUPD AFTER UPDATE ON dhcp6_server
-    FOR EACH ROW
-    BEGIN
-        CALL createAuditEntryDHCP6('dhcp6_server', NEW.id, "update");
-    END $$
-DELIMITER ;
-
-# Create dhcp6_server delete trigger
-DELIMITER $$
-CREATE TRIGGER dhcp6_server_ADEL AFTER DELETE ON dhcp6_server
-    FOR EACH ROW
-    BEGIN
-        CALL createAuditEntryDHCP6('dhcp6_server', OLD.id, "delete");
-    END $$
-DELIMITER ;
-
-# Update the schema version number
-UPDATE schema_version
-SET version = '9', minor = '0';
-
-# This line concludes database upgrade to version 9.0.
-
-EOF
-
-RESULT=$?
-
-exit $?