From: Tomek Mrugalski Date: Fri, 22 Oct 2021 10:57:00 +0000 (+0200) Subject: [#1848] Skeleton methods for client classes in v6 X-Git-Tag: Kea-2.1.1~53 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=90e75cd12c7d7236846dd20ae8b08b2bbbd5957e;p=thirdparty%2Fkea.git [#1848] Skeleton methods for client classes in v6 --- diff --git a/src/hooks/dhcp/pgsql_cb/pgsql_cb_dhcp6.cc b/src/hooks/dhcp/pgsql_cb/pgsql_cb_dhcp6.cc index bcdd82d4e8..4028b98213 100644 --- a/src/hooks/dhcp/pgsql_cb/pgsql_cb_dhcp6.cc +++ b/src/hooks/dhcp/pgsql_cb/pgsql_cb_dhcp6.cc @@ -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 diff --git a/src/hooks/dhcp/pgsql_cb/pgsql_cb_dhcp6.h b/src/hooks/dhcp/pgsql_cb/pgsql_cb_dhcp6.h index acda2c0c02..8779e222b9 100644 --- a/src/hooks/dhcp/pgsql_cb/pgsql_cb_dhcp6.h +++ b/src/hooks/dhcp/pgsql_cb/pgsql_cb_dhcp6.h @@ -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.