]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#1848] Skeleton methods for client classes in v6
authorTomek Mrugalski <tomek@isc.org>
Fri, 22 Oct 2021 10:57:00 +0000 (12:57 +0200)
committerTomek Mrugalski <tomek@isc.org>
Wed, 17 Nov 2021 14:35:18 +0000 (15:35 +0100)
src/hooks/dhcp/pgsql_cb/pgsql_cb_dhcp6.cc
src/hooks/dhcp/pgsql_cb/pgsql_cb_dhcp6.h

index bcdd82d4e8b4561f3f1e3d4e91f5436351f213cb..4028b98213a59287193528717fbf05ebb737a0d7 100644 (file)
@@ -2047,5 +2047,41 @@ PgSqlConfigBackendDHCPv6::unregisterBackendType() {
     dhcp::ConfigBackendDHCPv6Mgr::instance().unregisterBackendFactory("pgsql");
 }
 
+void
+PgSqlConfigBackendDHCPv6::createUpdateClientClass6(const db::ServerSelector& server_selector,
+                          const ClientClassDefPtr& client_class,
+                          const std::string& follow_class_name) {
+    isc_throw(NotImplemented, "Not implemented yet.");
+}
+
+ClientClassDefPtr
+PgSqlConfigBackendDHCPv6::getClientClass6(const db::ServerSelector& selector,
+                                          const std::string& name) const {
+    isc_throw(NotImplemented, "Not implemented yet.");
+}
+
+ClientClassDictionary
+PgSqlConfigBackendDHCPv6::getAllClientClasses6(const db::ServerSelector& selector) const {
+    isc_throw(NotImplemented, "Not implemented yet.");
+}
+
+ClientClassDictionary
+PgSqlConfigBackendDHCPv6::getModifiedClientClasses6(const db::ServerSelector& selector,
+                          const boost::posix_time::ptime& modification_time) const {
+    isc_throw(NotImplemented, "Not implemented yet.");
+}
+
+uint64_t
+PgSqlConfigBackendDHCPv6::deleteClientClass6(const db::ServerSelector& server_selector,
+                    const std::string& name) {
+    isc_throw(NotImplemented, "Not implemented yet.");
+}
+
+uint64_t
+PgSqlConfigBackendDHCPv6::deleteAllClientClasses6(const db::ServerSelector& server_selector) {
+    isc_throw(NotImplemented, "Not implemented yet.");
+}
+
+
 } // end of namespace isc::dhcp
 } // end of namespace isc
index acda2c0c02676a3defa302e78d973f244de31c42..8779e222b9c9d00b535864582f26058b689b64ef 100644 (file)
@@ -225,6 +225,30 @@ public:
     getModifiedGlobalParameters6(const db::ServerSelector& server_selector,
                                  const boost::posix_time::ptime& modification_time) const;
 
+    /// @brief Retrieves a client class by name.
+    ///
+    /// @param selector Server selector.
+    /// @param name Client class name.
+    /// @return Pointer to the retrieved client class.
+    virtual ClientClassDefPtr
+    getClientClass6(const db::ServerSelector& selector, const std::string& name) const;
+
+    /// @brief Retrieves all client classes.
+    ///
+    /// @param selector Server selector.
+    /// @return Collection of client classes.
+    virtual ClientClassDictionary
+    getAllClientClasses6(const db::ServerSelector& selector) const;
+
+    /// @brief Retrieves client classes modified after specified time.
+    ///
+    /// @param selector Server selector.
+    /// @param modification_time Modification time.
+    /// @return Collection of client classes.
+    virtual ClientClassDictionary
+    getModifiedClientClasses6(const db::ServerSelector& selector,
+                              const boost::posix_time::ptime& modification_time) const;
+
     /// @brief Retrieves the most recent audit entries.
     ///
     /// @param selector Server selector.
@@ -355,6 +379,19 @@ public:
     createUpdateGlobalParameter6(const db::ServerSelector& server_selector,
                                  const data::StampedValuePtr& value);
 
+    /// @brief Creates or updates a client class.
+    ///
+    /// @param server_selector Server selector.
+    /// @param client_class Client class to be added or updated.
+    /// @param follow_class_name name of the class after which the
+    /// new or updated class should be positioned. An empty value
+    /// causes the class to be appended at the end of the class
+    /// hierarchy.
+    virtual void
+    createUpdateClientClass6(const db::ServerSelector& server_selector,
+                             const ClientClassDefPtr& client_class,
+                             const std::string& follow_class_name);
+
     /// @brief Creates or updates a server.
     ///
     /// @param server Instance of the server to be stored.
@@ -528,6 +565,22 @@ public:
     virtual uint64_t
     deleteAllGlobalParameters6(const db::ServerSelector& server_selector);
 
+    /// @brief Deletes a client class.
+    ///
+    /// @param server_selector Server selector.
+    /// @param name Name of the class to be deleted.
+    /// @return Number of deleted client classes.
+    virtual uint64_t
+    deleteClientClass6(const db::ServerSelector& server_selector,
+                       const std::string& name);
+
+    /// @brief Deletes all client classes.
+    ///
+    /// @param server_selector Server selector.
+    /// @return Number of deleted client classes.
+    virtual uint64_t
+    deleteAllClientClasses6(const db::ServerSelector& server_selector);
+
     /// @brief Deletes a server from the backend.
     ///
     /// @param server_tag Tag of the server to be deleted.