]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[176-update-to-sysrepo-0-7-6-release] Added sysrepo 0.7.6 support
authorFrancis Dupont <fdupont@isc.org>
Tue, 30 Oct 2018 17:30:32 +0000 (18:30 +0100)
committerFrancis Dupont <fdupont@isc.org>
Mon, 19 Nov 2018 12:16:10 +0000 (13:16 +0100)
49 files changed:
configure.ac
doc/guide/netconf.xml
src/bin/netconf/netconf.cc
src/bin/netconf/netconf.h
src/bin/netconf/tests/netconf_unittests.cc
src/lib/yang/pretests/sysrepo_setup_tests.cc
src/lib/yang/tests/config_unittests.cc
src/lib/yang/tests/sysrepo_setup.h
src/lib/yang/tests/translator_class_unittests.cc
src/lib/yang/tests/translator_control_socket_unittests.cc
src/lib/yang/tests/translator_database_unittests.cc
src/lib/yang/tests/translator_host_unittests.cc
src/lib/yang/tests/translator_logger_unittests.cc
src/lib/yang/tests/translator_option_data_unittests.cc
src/lib/yang/tests/translator_option_def_unittests.cc
src/lib/yang/tests/translator_pd_pool_unittests.cc
src/lib/yang/tests/translator_pool_unittests.cc
src/lib/yang/tests/translator_shared_network_unittests.cc
src/lib/yang/tests/translator_subnet_unittests.cc
src/lib/yang/tests/translator_unittests.cc
src/lib/yang/tests/translator_utils_unittests.cc
src/lib/yang/testutils/translator_test.cc
src/lib/yang/testutils/translator_test.h
src/lib/yang/translator.cc
src/lib/yang/translator.h
src/lib/yang/translator_class.cc
src/lib/yang/translator_class.h
src/lib/yang/translator_config.cc
src/lib/yang/translator_config.h
src/lib/yang/translator_control_socket.cc
src/lib/yang/translator_control_socket.h
src/lib/yang/translator_database.cc
src/lib/yang/translator_database.h
src/lib/yang/translator_host.cc
src/lib/yang/translator_host.h
src/lib/yang/translator_logger.cc
src/lib/yang/translator_logger.h
src/lib/yang/translator_option_data.cc
src/lib/yang/translator_option_data.h
src/lib/yang/translator_option_def.cc
src/lib/yang/translator_option_def.h
src/lib/yang/translator_pd_pool.cc
src/lib/yang/translator_pd_pool.h
src/lib/yang/translator_pool.cc
src/lib/yang/translator_pool.h
src/lib/yang/translator_shared_network.cc
src/lib/yang/translator_shared_network.h
src/lib/yang/translator_subnet.cc
src/lib/yang/translator_subnet.h

index 11a3a78cb233e4c4b1acfeb9af0e69e9e738c743..8d40afc453829eab224addaaaa8598dac856811c 100644 (file)
@@ -941,11 +941,19 @@ if test "$SYSREPO_CONFIG" != "" ; then
     )
 
     AC_LINK_IFELSE(
-            [AC_LANG_PROGRAM([#include <sysrepo-cpp/Session.h>],
-                              [Connection("conn-name");])],
-            [AC_MSG_RESULT([checking for Sysrepo C++ bindings headers and library... yes])],
-            [AC_MSG_RESULT([checking for Sysrepo C++ bindings headers and library... no])
-             AC_MSG_ERROR([Needs Sysrepo C++ bindings (unable to find Sysrepo-ccp library. To get it, you need to compile sysrepo with -DGEN_CPP_BINDINGS=ON.])]
+        [AC_LANG_PROGRAM(
+            [#include <sysrepo-cpp/Session.hpp>],
+            [sysrepo::Connection("conn-name");])],
+        [AC_MSG_RESULT([checking for Sysrepo C++ bindings headers and library... yes])],
+        [AC_LINK_IFELSE(
+            [AC_LANG_PROGRAM(
+                [#include <sysrepo-cpp/Session.h>],
+                [Connection("conn-name");])],
+            [AC_MSG_RESULT([checking for Sysrepo C++ bindings headers and library... old])
+             AC_DEFINE([HAVE_OLD_SYSREPO], [1], [Using sysrepo < 0.7.6])],
+             [AC_MSG_RESULT([checking for Sysrepo C++ bindings headers and library... no])
+              AC_MSG_ERROR([Needs Sysrepo C++ bindings (unable to find Sysrepo-ccp library. To get it, you need to compile sysrepo with -DGEN_CPP_BINDINGS=ON.)])]
+        )]
     )
 
     CPPFLAGS=$CPPFLAGS_SAVED
index 8760200dec6c310689ba700a4d2b6fc8eb74b7f2..277ec595b867d1d9459f7477af536474c276d8f6 100644 (file)
@@ -83,8 +83,8 @@
 
 After installation the result should be similar to this:
 <screen>
-Sysrepo schema directory: /home/thomson/devel/sysrepo-0.7.5/build/repository/yang/
-Sysrepo data directory:   /home/thomson/devel/sysrepo-0.7.5/build/repository/data/
+Sysrepo schema directory: /home/thomson/devel/sysrepo-0.7.6/build/repository/yang/
+Sysrepo data directory:   /home/thomson/devel/sysrepo-0.7.6/build/repository/data/
 (Do not alter contents of these directories manually)
 
 Module Name                | Revision   | Conformance | Data Owner          | Permissions | Submodules                    | Enabled Features
@@ -113,9 +113,9 @@ src/lib/libyang/models. To install models, do the following:
 
 <screen>
 cd src/lib/yang/models
-sudo sysrepoctl -i -s /home/thomson/devel/sysrepo-0.7.5/build/repository/yang -s . -g ietf-dhcpv6-server.yang
-sudo sysrepoctl -i -s /home/thomson/devel/sysrepo-0.7.5/build/repository/yang -s . -g kea-dhcp4-server.yang
-sudo sysrepoctl -i -s /home/thomson/devel/sysrepo-0.7.5/build/repository/yang -s . -g kea-dhcp6-server.yang
+sudo sysrepoctl -i -s /home/thomson/devel/sysrepo-0.7.6/build/repository/yang -s . -g ietf-dhcpv6-server.yang
+sudo sysrepoctl -i -s /home/thomson/devel/sysrepo-0.7.6/build/repository/yang -s . -g kea-dhcp4-server.yang
+sudo sysrepoctl -i -s /home/thomson/devel/sysrepo-0.7.6/build/repository/yang -s . -g kea-dhcp6-server.yang
 </screen>
 
 Note the first -s parameter specifies the location of your YANG schema
@@ -125,15 +125,15 @@ under the SYSREPO_REPO name.
 
 The installation should look similar to the following:
 <screen>
-$ sudo sysrepoctl -i -s /home/thomson/devel/sysrepo-0.7.5/build/repository/yang -s . -g ietf-dhcpv6-server.yang
+$ sudo sysrepoctl -i -s /home/thomson/devel/sysrepo-0.7.6/build/repository/yang -s . -g ietf-dhcpv6-server.yang
 Installing a new module from file 'ietf-dhcpv6-server.yang'...
-Installing the YANG file to '/home/thomson/devel/sysrepo-0.7.5/build/repository/yang/ietf-dhcpv6-server@2018-07-14.yang'...
+Installing the YANG file to '/home/thomson/devel/sysrepo-0.7.6/build/repository/yang/ietf-dhcpv6-server@2018-07-14.yang'...
 Resolving dependency: 'ietf-dhcpv6-server' imports 'ietf-dhcpv6-options'...
-Installing the YANG file to '/home/thomson/devel/sysrepo-0.7.5/build/repository/yang/ietf-dhcpv6-options@2018-07-14.yang'...
+Installing the YANG file to '/home/thomson/devel/sysrepo-0.7.6/build/repository/yang/ietf-dhcpv6-options@2018-07-14.yang'...
 Resolving dependency: 'ietf-dhcpv6-options' imports 'ietf-dhcpv6-types'...
-Installing the YANG file to '/home/thomson/devel/sysrepo-0.7.5/build/repository/yang/ietf-dhcpv6-types@2018-07-14.yang'...
+Installing the YANG file to '/home/thomson/devel/sysrepo-0.7.6/build/repository/yang/ietf-dhcpv6-types@2018-07-14.yang'...
 Resolving dependency: 'ietf-dhcpv6-server' imports 'ietf-dhcpv6-types'...
-Installing the YANG file to '/home/thomson/devel/sysrepo-0.7.5/build/repository/yang/ietf-dhcpv6-types@2018-07-14.yang'...
+Installing the YANG file to '/home/thomson/devel/sysrepo-0.7.6/build/repository/yang/ietf-dhcpv6-types@2018-07-14.yang'...
 Resolving dependency: 'ietf-dhcpv6-server' imports 'ietf-interfaces'...
 Schema of the module ietf-interfaces is already installed, skipping...
 Installing data files for module 'ietf-dhcpv6-server'...
@@ -153,8 +153,8 @@ You can confirm whether the models are imported correctly by using sysrepoctl -l
 
 <screen>
 $ sysrepoctl -l
-Sysrepo schema directory: /home/thomson/devel/sysrepo-0.7.5/build/repository/yang/
-Sysrepo data directory:   /home/thomson/devel/sysrepo-0.7.5/build/repository/data/
+Sysrepo schema directory: /home/thomson/devel/sysrepo-0.7.6/build/repository/yang/
+Sysrepo data directory:   /home/thomson/devel/sysrepo-0.7.6/build/repository/data/
 (Do not alter contents of these directories manually)
 
 Module Name                | Revision   | Conformance | Data Owner          | Permissions | Submodules                    | Enabled Features
index f8509d3774dc182f547507cca960517bff3ae57f..4f2276fa6b48a29a02f28e1953fa21cda7343b63 100644 (file)
@@ -22,6 +22,9 @@ using namespace isc::config;
 using namespace isc::data;
 using namespace isc::netconf;
 using namespace isc::yang;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace {
 
index 86964997b61562db62474ef1cacaf5454e8d0d9a..9778726b0c2e91735d1b10c8cbd8d9c1468c2e91 100644 (file)
@@ -9,12 +9,20 @@
 #ifndef NETCONF_H
 #define NETCONF_H
 
+#ifndef HAVE_SYSREPO
+#error "config.h must be included before netconf.h"
+#endif
+
 #include <netconf/netconf_cfg_mgr.h>
 #include <netconf/control_socket.h>
 #include <netconf/http_control_socket.h>
 #include <netconf/stdout_control_socket.h>
 #include <netconf/unix_control_socket.h>
+#ifndef HAVE_OLD_SYSREPO
+#include <sysrepo-cpp/Session.hpp>
+#else
 #include <sysrepo-cpp/Session.h>
+#endif
 #include <map>
 
 namespace isc {
@@ -71,7 +79,12 @@ public:
     /// @param sess The sysrepo running datastore session.
     /// @param service_pair The service name and configuration pair.
     /// @return return code for sysrepo.
+#ifndef HAVE_OLD_SYSREPO
+    static int validate(sysrepo::S_Session sess,
+                        const CfgServersMapPair& service_pair);
+#else
     static int validate(S_Session sess, const CfgServersMapPair& service_pair);
+#endif
 
     /// @brief Update.
     ///
@@ -80,7 +93,12 @@ public:
     /// @param sess The sysrepo running datastore session.
     /// @param service_pair The service name and configuration pair.
     /// @return return code for sysrepo.
+#ifndef HAVE_OLD_SYSREPO
+    static int update(sysrepo::S_Session sess,
+                      const CfgServersMapPair& service_pair);
+#else
     static int update(S_Session sess, const CfgServersMapPair& service_pair);
+#endif
 
     /// @brief Log changes.
     ///
@@ -90,7 +108,11 @@ public:
     ///
     /// @param sess The sysrepo running datastore session.
     /// @param model The model name.
+#ifndef HAVE_OLD_SYSREPO
+    static void logChanges(sysrepo::S_Session sess, const std::string& model);
+#else
     static void logChanges(S_Session sess, const std::string& model);
+#endif
 
     /// @brief Cancel flag.
     bool cancel_;
@@ -124,16 +146,32 @@ protected:
     void subscribeConfig(const CfgServersMapPair& service_pair);
 
     /// @brief Sysrepo connection.
+#ifndef HAVE_OLD_SYSREPO
+    sysrepo::S_Connection conn_;
+#else
     S_Connection conn_;
+#endif
 
     /// @brief Sysrepo startup datastore session.
+#ifndef HAVE_OLD_SYSREPO
+    sysrepo::S_Session startup_sess_;
+#else
     S_Session startup_sess_;
+#endif
 
     /// @brief Sysrepo running datastore session.
+#ifndef HAVE_OLD_SYSREPO
+    sysrepo::S_Session running_sess_;
+#else
     S_Session running_sess_;
+#endif
 
     /// @brief Subscription map.
+#ifndef HAVE_OLD_SYSREPO
+    std::map<const std::string, sysrepo::S_Subscribe> subscriptions_;
+#else
     std::map<const std::string, S_Subscribe> subscriptions_;
+#endif
 };
 
 } // namespace netconf
index 107056e31002de8bc5eecb8988f81bcbf1b25d93..9fc97698fb401b098fc90c07f093e280dd5d5669 100644 (file)
@@ -34,6 +34,9 @@ using namespace isc::test;
 using namespace isc::yang;
 using namespace isc::yang::test;
 using namespace isc::util::thread;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace {
 
index ddcb9379371ae06beed485954a35a37e877221b0..98b7aa87f3b8d10d2c788c71d6ddbd8a006f736d 100644 (file)
@@ -6,10 +6,18 @@
 
 #include <config.h>
 
+#ifndef HAVE_OLD_SYSREPO
+#include <sysrepo-cpp/Session.hpp>
+#else
 #include <sysrepo-cpp/Session.h>
+#endif
+
 #include <sstream>
 
 using namespace std;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 /// Not using libyang headers, e.g. yang_models.h.
 
index d5a8634f6a98e89d262d89d43321dff8ace46229..cb4b083a321d923c701b31d8d1e39578dc300fdd 100644 (file)
@@ -21,6 +21,9 @@ using namespace isc;
 using namespace isc::data;
 using namespace isc::yang;
 using namespace isc::yang::test;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace {
 
index b6005049166539a629c524c9423b96d4516cb9cc..c9e270ebeb65320d267787f7cedc422c60a4498f 100644 (file)
@@ -36,8 +36,13 @@ public:
     void useModel(std::string model) {
         std::string full_name =
             "translator " + std::string(Name) + " unittests";
+#ifndef HAVE_OLD_SYSREPO
+        conn_.reset(new sysrepo::Connection(full_name.c_str()));
+        sess_.reset(new sysrepo::Session(conn_, SR_DS_CANDIDATE));
+#else
         conn_.reset(new Connection(full_name.c_str()));
         sess_.reset(new Session(conn_, SR_DS_CANDIDATE));
+#endif
         EXPECT_NO_THROW(t_obj_.reset(new Type(sess_, model)));
     }
 
@@ -51,10 +56,18 @@ public:
     }
 
     /// @brief Sysrepo connection.
+#ifndef HAVE_OLD_SYSREPO
+    sysrepo::S_Connection conn_;
+#else
     S_Connection conn_;
+#endif
 
     /// @brief Sysrepo session.
+#ifndef HAVE_OLD_SYSREPO
+    sysrepo::S_Session sess_;
+#else
     S_Session sess_;
+#endif
 
     /// @brief Shared pointer to the transaction object.
     boost::shared_ptr<Type> t_obj_;
index c7a9b5999fa6cd4c3e0fc2e11ef896b15a88ed5c..1eefe0138f016a22f6ef55624841cce008d4323a 100644 (file)
@@ -18,6 +18,9 @@ using namespace isc;
 using namespace isc::data;
 using namespace isc::yang;
 using namespace isc::yang::test;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace {
 
index 9889cc7487df142401f8865bc0c3c07e2463d68a..c6a3e69cfb36e7789e8ee7f6590deea788d33cf5 100644 (file)
@@ -17,6 +17,9 @@ using namespace isc;
 using namespace isc::data;
 using namespace isc::yang;
 using namespace isc::yang::test;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace {
 
index d575b08072a5bddf76a273ae1b6c98d728120045..d891b54417a383195affcc185d65d340917041e1 100644 (file)
@@ -17,6 +17,9 @@ using namespace isc;
 using namespace isc::data;
 using namespace isc::yang;
 using namespace isc::yang::test;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace {
 
index 5a7b26a80629ac804e644767496cb262e749c2ee..e387587550dfeff1bfa047607129af9ee7c3bfb9 100644 (file)
@@ -18,6 +18,9 @@ using namespace isc;
 using namespace isc::data;
 using namespace isc::yang;
 using namespace isc::yang::test;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace {
 
index 80e6f4d86388c6412aabeca37c827d28f1b1c4b4..6dce09b576f937621136345d85a5cb287ed2bcd8 100644 (file)
@@ -17,6 +17,9 @@ using namespace isc;
 using namespace isc::data;
 using namespace isc::yang;
 using namespace isc::yang::test;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace {
 
index 9daa34878691c380966db5dc7a696ade7929588a..5aa0d3216e1409056a781af0c78533be32a52424 100644 (file)
@@ -18,6 +18,9 @@ using namespace isc;
 using namespace isc::data;
 using namespace isc::yang;
 using namespace isc::yang::test;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace {
 
index 03b5dc865ed07d9ecfb990bb4fd52f83f491d704..2baec9ae36ebb51ea7ab16ec343dc27db95010f1 100644 (file)
@@ -18,6 +18,9 @@ using namespace isc;
 using namespace isc::data;
 using namespace isc::yang;
 using namespace isc::yang::test;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace {
 
index e82e06565aff7dbc652ae4738e18cf8343b7e93b..f9e30b63d5bc891fd8dd41f868edbfc4384b450f 100644 (file)
@@ -18,6 +18,9 @@ using namespace isc;
 using namespace isc::data;
 using namespace isc::yang;
 using namespace isc::yang::test;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace {
 
index 18f191344e086e0ffeb17cd5fb079298b8018a0b..c8ed80c1aa461182ec17ceba87cc2ec1bbd06dfc 100644 (file)
@@ -18,6 +18,9 @@ using namespace isc;
 using namespace isc::data;
 using namespace isc::yang;
 using namespace isc::yang::test;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace {
 
index 87ffe6f10b6bdc8ff2bb63c7cf3cbacf51348549..b18510d08a084bf8391c840652251769eea8be69 100644 (file)
@@ -17,6 +17,9 @@ using namespace isc;
 using namespace isc::data;
 using namespace isc::yang;
 using namespace isc::yang::test;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace {
 
index de22ad9293364d9744a2597bc8c31c72b6d04d76..5b33d28ad614b5a67575af40aa5ebb82e5b976d0 100644 (file)
@@ -17,6 +17,9 @@ using namespace isc;
 using namespace isc::data;
 using namespace isc::yang;
 using namespace isc::yang::test;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace {
 
index 5b3bdb47cfa065516ef3279c61eb22f2719ac894..515c28c94c986e5cebded9bf61409c30966db4a2 100644 (file)
@@ -15,6 +15,9 @@ using namespace std;
 using namespace isc;
 using namespace isc::data;
 using namespace isc::yang;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace {
 
@@ -26,7 +29,7 @@ TEST(TranslatorBasicTest, constructor) {
     S_Session sess(new Session(conn, SR_DS_CANDIDATE));
     // Get a translator object.
     boost::scoped_ptr<TranslatorBasic> t_obj;
-    EXPECT_NO_THROW(t_obj.reset(new TranslatorBasic(sess)));
+    EXPECT_NO_THROW(t_obj.reset(new TranslatorBasic(sess, "")));
 }
 
 // Test basic yang value to JSON using the static method.
@@ -147,7 +150,7 @@ TEST(TranslatorBasicTest, getItem) {
     S_Connection conn(new Connection("translator unittests"));
     S_Session sess(new Session(conn, SR_DS_CANDIDATE));
     boost::scoped_ptr<TranslatorBasic> t_obj;
-    ASSERT_NO_THROW(t_obj.reset(new TranslatorBasic(sess)));
+    ASSERT_NO_THROW(t_obj.reset(new TranslatorBasic(sess, "")));
 
     // Container.
     string xpath = "/keatest-module:container/list";
@@ -449,7 +452,7 @@ TEST(TranslatorBasicTest, setItem) {
     S_Connection conn(new Connection("translator unittests"));
     S_Session sess(new Session(conn, SR_DS_CANDIDATE));
     boost::scoped_ptr<TranslatorBasic> t_obj;
-    ASSERT_NO_THROW(t_obj.reset(new TranslatorBasic(sess)));
+    ASSERT_NO_THROW(t_obj.reset(new TranslatorBasic(sess, "")));
 
     // Container.
     string xpath = "/keatest-module:container";
@@ -653,7 +656,7 @@ TEST(TranslatorBasicTest, list) {
     S_Connection conn(new Connection("translator unittests"));
     S_Session sess(new Session(conn, SR_DS_CANDIDATE));
     boost::scoped_ptr<TranslatorBasic> t_obj;
-    ASSERT_NO_THROW(t_obj.reset(new TranslatorBasic(sess)));
+    ASSERT_NO_THROW(t_obj.reset(new TranslatorBasic(sess, "")));
 
     // Empty list.
     S_Iter_Value iter;
index 6fae632b423d2f7d745af8c9fe3db6c7fca0c97b..79845c29ce2d881f3abad0b7b59415975c7b1be9 100644 (file)
@@ -15,6 +15,9 @@ using namespace std;
 using namespace isc;
 using namespace isc::yang;
 using namespace isc::yang::test;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace {
 
index 0020e863a47ea1fa120bdd7f059a03a70bd8efb7..f21146bbaf14ec708df27b376608b62fa60b7a02 100644 (file)
@@ -4,12 +4,17 @@
 // License, v. 2.0. If a copy of the MPL was not distributed with this
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+#include <config.h>
+
 #include <yang/testutils/translator_test.h>
 #include <boost/lexical_cast.hpp>
 #include <sstream>
 
 using namespace std;
 using namespace isc::data;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace isc {
 namespace yang {
@@ -104,7 +109,7 @@ YangRepr::get(S_Session session) const {
     Tree result;
     try {
         const string& xpath0 = "/" + model_ + ":*//.";
-        TranslatorBasic tb(session);
+        TranslatorBasic tb(session, model_);
         S_Iter_Value iter = tb.getIter(xpath0);
         for (;;) {
             const string& xpath = tb.getNext(iter);
index 11352865fe2e264fb8c9830e17e6aa976e0aa0f5..1ead1da05bf122fa7fa6b4910194a37bb8fd6fe4 100644 (file)
@@ -46,7 +46,12 @@ public:
         /// @param xpath The xpath of an element to be retrieved.
         /// @param session Sysrepo session.
         /// @return YangReprItem instance representing configuration parameter.
+#ifndef HAVE_OLD_SYSREPO
+        static YangReprItem get(const std::string& xpath,
+                                sysrepo::S_Session session);
+#else
         static YangReprItem get(const std::string& xpath, S_Session session);
+#endif
 
         /// @brief The xpath.
         std::string xpath_;
@@ -85,7 +90,11 @@ public:
     /// @brief Get tree from session.
     ///
     /// @param session Sysrepo session.
+#ifndef HAVE_OLD_SYSREPO
+    Tree get(sysrepo::S_Session session) const;
+#else
     Tree get(S_Session session) const;
+#endif
 
     /// @brief Verifies a tree.
     ///
@@ -94,8 +103,13 @@ public:
     /// @param errs Error stream.
     /// @return true if verification succeeds, false with errors displayed.
     /// on errs if it fails.
+#ifndef HAVE_OLD_SYSREPO
+    bool verify(const Tree& expected, sysrepo::S_Session session,
+                std::ostream& errs) const;
+#else
     bool verify(const Tree& expected, S_Session session,
                 std::ostream& errs) const;
+#endif
 
     /// @brief Sets specified tree in a sysrepo.
     ///
@@ -103,7 +117,11 @@ public:
     ///
     /// @param tree The tree to install.
     /// @param session Sysrepo session.
+#ifndef HAVE_OLD_SYSREPO
+    void set(const Tree& tree, sysrepo::S_Session session) const;
+#else
     void set(const Tree& tree, S_Session session) const;
+#endif
 
     /// @brief Validate.
     ///
@@ -111,7 +129,11 @@ public:
     /// @param errs Error stream.
     /// @return True if validation succeeds, false with errors displayed
     /// on errs if it fails.
+#ifndef HAVE_OLD_SYSREPO
+    bool validate(sysrepo::S_Session session, std::ostream& errs) const;
+#else
     bool validate(S_Session session, std::ostream& errs) const;
+#endif
 
     /// @brief The model name.
     std::string model_;
index 082adbd2801373c1880e448b433315a87307cd16..783b47daaea9576146d2a5bb9b9c70c510cbdccc 100644 (file)
@@ -4,6 +4,8 @@
 // License, v. 2.0. If a copy of the MPL was not distributed with this
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+#include <config.h>
+
 #include <yang/translator.h>
 #include <util/encode/base64.h>
 #include <cstring>
@@ -11,6 +13,9 @@
 using namespace std;
 using namespace isc::data;
 using namespace isc::util::encode;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace {
 
@@ -35,7 +40,8 @@ string decode64(const string& input) {
 namespace isc {
 namespace yang {
 
-TranslatorBasic::TranslatorBasic(S_Session session) : session_(session) {
+TranslatorBasic::TranslatorBasic(S_Session session, const string& model)
+    : session_(session), model_(model) {
 }
 
 TranslatorBasic::~TranslatorBasic() {
index 866d66f040d3b6cdd935d517b10703c3470fdf4d..227939a3e11420e2d67051bb9375eb0ad5a029fa 100644 (file)
 #include <cc/data.h>
 #include <yang/sysrepo_error.h>
 
+#ifndef HAVE_SYSREPO
+#error "config.h must be included before translator.h"
+#endif
+
+#ifndef HAVE_OLD_SYSREPO
+#include <sysrepo-cpp/Session.hpp>
+#else
 #include <sysrepo-cpp/Session.h>
+#endif
 
 namespace isc {
 namespace yang {
@@ -22,7 +30,12 @@ public:
     /// @brief Constructor.
     ///
     /// @param session Sysrepo session.
-    TranslatorBasic(S_Session session);
+    /// @param model Model name (used and shared by derived classes).
+#ifndef HAVE_OLD_SYSREPO
+    TranslatorBasic(sysrepo::S_Session session, const std::string& model);
+#else
+    TranslatorBasic(S_Session session, const std::string& model);
+#endif
 
     /// @brief Destructor.
     virtual ~TranslatorBasic();
@@ -34,7 +47,11 @@ public:
     /// @param s_val The value.
     /// @return The Element representing the sysrepo value.
     /// @throw NotImplemented when the value type is not supported.
+#ifndef HAVE_OLD_SYSREPO
+    static isc::data::ElementPtr value(sysrepo::S_Val s_val);
+#else
     static isc::data::ElementPtr value(S_Val s_val);
+#endif
 
     /// @brief Get and translate basic value from YANG to JSON.
     ///
@@ -60,7 +77,12 @@ public:
     ///
     /// @param elem The JSON element.
     /// @param type The sysrepo type.
+#ifndef HAVE_OLD_SYSREPO
+    static sysrepo::S_Val value(isc::data::ConstElementPtr elem,
+                                sr_type_t type);
+#else
     static S_Val value(isc::data::ConstElementPtr elem, sr_type_t type);
+#endif
 
     /// @brief Translate and set basic value from JSON to YANG.
     ///
@@ -81,17 +103,33 @@ public:
     ///
     /// @param xpath The xpath of the list.
     /// @return An S_Iter_Value pointer. Null is the list does not exist.
+#ifndef HAVE_OLD_SYSREPO
+    sysrepo::S_Iter_Value getIter(const std::string& xpath);
+#else
     S_Iter_Value getIter(const std::string& xpath);
+#endif
 
     /// @brief Get xpath of the next YANG list item.
     ///
     /// @param iter The iterator pointing to the previous element
-    /// @return The xpath of the next element. Empty string when at the end of the list.
+    /// @return The xpath of the next element. Empty string when at
+    /// the end of the list.
+#ifndef HAVE_OLD_SYSREPO
+    std::string getNext(sysrepo::S_Iter_Value iter);
+#else
     std::string getNext(S_Iter_Value iter);
+#endif
 
 protected:
     /// @brief The sysrepo session.
+#ifndef HAVE_OLD_SYSREPO
+    sysrepo::S_Session session_;
+#else
     S_Session session_;
+#endif
+
+    /// @brief The model.
+    std::string model_;
 };
 
 }; // end of namespace isc::yang
index de0ec9a8ad0be07a45befcd40582b735bca4df63..199e23b8897bc9e80de4196461d761fe441672cc 100644 (file)
@@ -4,6 +4,8 @@
 // License, v. 2.0. If a copy of the MPL was not distributed with this
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+#include <config.h>
+
 #include <yang/translator_class.h>
 #include <yang/adaptor.h>
 #include <yang/yang_models.h>
 
 using namespace std;
 using namespace isc::data;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace isc {
 namespace yang {
 
 TranslatorClass::TranslatorClass(S_Session session, const string& model)
-    : TranslatorBasic(session),
+    : TranslatorBasic(session, model),
       TranslatorOptionData(session, model),
       TranslatorOptionDataList(session, model),
       TranslatorOptionDef(session, model),
-      TranslatorOptionDefList(session, model),
-      model_(model) {
+      TranslatorOptionDefList(session, model) {
 }
 
 TranslatorClass::~TranslatorClass() {
@@ -161,13 +165,12 @@ TranslatorClass::setClassKea(const string& xpath, ConstElementPtr elem) {
 }
 
 TranslatorClasses::TranslatorClasses(S_Session session, const string& model)
-    : TranslatorBasic(session),
+    : TranslatorBasic(session, model),
       TranslatorOptionData(session, model),
       TranslatorOptionDataList(session, model),
       TranslatorOptionDef(session, model),
       TranslatorOptionDefList(session, model),
-      TranslatorClass(session, model),
-      model_(model) {
+      TranslatorClass(session, model) {
 }
 
 TranslatorClasses::~TranslatorClasses() {
index 27ab642095fa213f2ea946982d98e006aef794c1..545420fdb8363ffae3fd1b92bb87524164f146ef 100644 (file)
@@ -82,7 +82,11 @@ public:
     ///
     /// @param session Sysrepo session.
     /// @param model Model name.
+#ifndef HAVE_OLD_SYSREPO
+    TranslatorClass(sysrepo::S_Session session, const std::string& model);
+#else
     TranslatorClass(S_Session session, const std::string& model);
+#endif
 
     /// @brief Destructor.
     virtual ~TranslatorClass();
@@ -114,9 +118,6 @@ protected:
     /// @param elem The JSON element.
     void setClassKea(const std::string& xpath,
                      isc::data::ConstElementPtr elem);
-
-    /// @brief The model.
-    std::string model_;
 };
 
 /// @brief A translator class for converting a client class list between
@@ -131,7 +132,11 @@ public:
     ///
     /// @param session Sysrepo session.
     /// @param model Model name.
+#ifndef HAVE_OLD_SYSREPO
+    TranslatorClasses(sysrepo::S_Session session, const std::string& model);
+#else
     TranslatorClasses(S_Session session, const std::string& model);
+#endif
 
     /// @brief Destructor.
     virtual ~TranslatorClasses();
@@ -165,9 +170,6 @@ protected:
     /// @throw BadValue on client class without name.
     void setClassesKea(const std::string& xpath,
                        isc::data::ConstElementPtr elem);
-
-    /// @brief The model.
-    std::string model_;
 };
 
 }; // end of namespace isc::yang
index 3c1c20be028ce5e347e8467b8d042a0c3ffd5166..969a312046ebdf037c8333a5bd29d3cb2f100811 100644 (file)
@@ -4,6 +4,8 @@
 // License, v. 2.0. If a copy of the MPL was not distributed with this
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+#include <config.h>
+
 #include <yang/translator_config.h>
 #include <yang/adaptor_config.h>
 #include <yang/yang_models.h>
 
 using namespace std;
 using namespace isc::data;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace isc {
 namespace yang {
 
 TranslatorConfig::TranslatorConfig(S_Session session, const string& model)
-    : TranslatorBasic(session),
+    : TranslatorBasic(session, model),
       TranslatorControlSocket(session, model),
       TranslatorDatabase(session, model),
       TranslatorDatabases(session, model),
@@ -37,8 +42,7 @@ TranslatorConfig::TranslatorConfig(S_Session session, const string& model)
       TranslatorSharedNetwork(session, model),
       TranslatorSharedNetworks(session, model),
       TranslatorLogger(session, model),
-      TranslatorLoggers(session, model),
-      model_(model) {
+      TranslatorLoggers(session, model) {
 }
 
 TranslatorConfig::~TranslatorConfig() {
index 600cfdf46d30e0e6d2453f7803ca739eaeb69cbb..fd9bf33a5381c0247f13107b0d01c3130fa07674 100644 (file)
@@ -22,59 +22,59 @@ namespace yang {
 ///
 /// This translator supports kea-dhcp4-server, kea-dhcp6-server and
 /// partially ietf-dhcpv6-server.
-///
-/// JSON syntax for kea-dhcp6 is:
+
+/// JSON syntax for kea-dhcp4 is:
 /// @code
-/// "Dhcp6": {
-///     "preferred-lifetime": <preferred lifetime>,
+/// "Dhcp4": {
 ///     "valid-lifetime": <valid lifetime>,
 ///     "renew-timer": <renew timer>,
 ///     "rebind-timer": <rebind timer>,
 ///     "decline-probation-period": <decline probation period>,
-///     "subnet6": [ <list of subnet6> ],
+///     "subnet4": [ <list of subnet4> ],
 ///     <shared-networks>,
 ///     "interfaces-config": {
 ///         "interfaces" [ <list of interface names / specs> ],
 ///         ...
 ///     },
 ///     <databases>,
-///     <mac-sources>,
-///     <relay-supplied-options>,
 ///     <host-reservation-identifiers>,
 ///     <client-classes>,
 ///     <option-def>,
 ///     <option-data>,
 ///     <hooks-libraries>,
 ///     <expired-leases-processing>,
-///     <server-id>,
 ///     <dhcp4o6-port>,
 ///     <control-socket>,
 ///     <dhcp-ddns>,
+///     "echo-client-id": <echo client id flag>,
+///     "match-client-id": <match client id flag>,
+///     "next-server": <next server address>,
+///     "server-hostname": <server hostname>,
+///     "boot-file-name": <boot file name>,
 ///     <user-context>,
-///     <comment>
+///     <comment>,
+///     "sanity-checks": { <sanity checks> },
+///     "reservations": [ <list of host reservations> ]
 /// },
 /// "Logging": <logging>
 /// @endcode
 ///
-/// @todo: add kea-dhcp4 syntax and expand logging.
-///
-/// YANG syntax for kea-dhcp6-server:config is:
+/// YANG syntax for kea-dhcp4-server:config is:
 /// @code
-/// +--rw preferred-lifetime?            uint32
 /// +--rw valid-lifetime?                uint32
 /// +--rw renew-timer?                   uint32
 /// +--rw rebind-timer?                  uint32
 /// +--rw decline-probation-period?      uint32
-/// +--rw subnet6                        subnet6*
+/// +--rw subnet4                        subnet4*
 /// +--rw shared-networks                shared-network*
 /// +--rw interfaces-config
 ///    +--rw interfaces*                 string
+///    +--rw dhcp-socket-type?           enumeration
+///    +--rw outbound-interface?         enumeration
 ///    +--rw re-detect?                  boolean
 ///    +--rw user-context?               string
 /// +--rw lease-database!                <database>
 /// +--rw hosts-databases                hosts-database*
-/// +--rw relay-supplied-options*        string
-/// +--rw mac-sources*                   string
 /// +--rw host-reservation-identifiers*  enumeration
 /// +--rw client-classes                 client-class*
 /// +--rw option-def-list                option-def*
@@ -83,32 +83,127 @@ namespace yang {
 ///    +--rw library                     string
 ///    +--rw parameters?                 string
 /// +--rw expired-leases-processing      <expired-leases-processing>
-/// +--rw server-id                      <server-id>
 /// +--rw dhcp4o6-port?                  uint16
 /// +--rw control-socket!                <control-socket>
 /// +--rw dhcp-ddns                      <dhcp-ddns>
 /// +--rw echo-client-id?                boolean
+/// +--rw match-client-id?               boolean
+/// +--rw next-server?                   inet:ipv4-address
+/// +--rw server-hostname?               string
+/// +--rw boot-file-name?                string
 /// +--rw user-context?                  string
 /// +--rw sanity-checks
 ///    +--rw lease-checks?               enumeration
 /// @endcode
 ///
-/// YANG syntax for kea-dhcp4-server:config is:
+/// Example of kea-dhcp6 simple configuration:
+/// @code
+/// {
+///     "Dhcp4": {
+///         "interfaces-config":
+///     {
+///         "interfaces": [ "eth1" ]
+///     },
+///         "control-socket": {
+///             "socket-type": "unix",
+///             "socket-name": "/tmp/kea4-sock"
+///         },
+///     "subnet4":
+///     [
+///         {
+///             "subnet": "10.0.35.0/24",
+///             "pools":
+///             [
+///                 {
+///                     "pool": "10.0.35.64/27"
+///                 }
+///             ]
+///         }
+///     ]
+///     }
+/// }
+///
+/// @endcode
+///
+/// The same configuration wrote into YANG datastore using @c setConfig()
+/// with the kea-dhcp4-model and exported to XML format:
+/// @code
+/// <config xmlns="urn:ietf:params:xml:ns:yang:kea-dhcp4-server">
+///   <subnet4>
+///     <subnet4>
+///       <id>1</id>
+///       <pools>
+///         <pool>
+///           <start-address>10.0.35.64</start-address>
+///           <end-address>10.0.35.95</end-address>
+///           <prefix>10.0.35.64/27</prefix>
+///         </pool>
+///       </pools>
+///       <subnet>10.0.35.0/24</subnet>
+///     </subnet4>
+///   </subnet4>
+///   <interfaces-config>
+///     <interfaces>eth1</interfaces>
+///   </interfaces-config>
+///   <control-socket>
+///     <socket-name>/tmp/kea4-sock</socket-name>
+///     <socket-type>unix</socket-type>
+///   </control-socket>
+/// </config>
+/// @endcode
+
+/// JSON syntax for kea-dhcp6 is:
 /// @code
+/// "Dhcp6": {
+///     "preferred-lifetime": <preferred lifetime>,
+///     "valid-lifetime": <valid lifetime>,
+///     "renew-timer": <renew timer>,
+///     "rebind-timer": <rebind timer>,
+///     "decline-probation-period": <decline probation period>,
+///     "subnet6": [ <list of subnet6> ],
+///     <shared-networks>,
+///     "interfaces-config": {
+///         "interfaces" [ <list of interface names / specs> ],
+///         ...
+///     },
+///     <databases>,
+///     <mac-sources>,
+///     <relay-supplied-options>,
+///     <host-reservation-identifiers>,
+///     <client-classes>,
+///     <option-def>,
+///     <option-data>,
+///     <hooks-libraries>,
+///     <expired-leases-processing>,
+///     <server-id>,
+///     <dhcp4o6-port>,
+///     <control-socket>,
+///     <dhcp-ddns>,
+///     <user-context>,
+///     <comment>
+///     "sanity-checks": { <sanity checks> },
+///     "reservations": [ <list of host reservations> ]
+/// },
+/// "Logging": <logging>
+/// @endcode
+///
+/// YANG syntax for kea-dhcp6-server:config is:
+/// @code
+/// +--rw preferred-lifetime?            uint32
 /// +--rw valid-lifetime?                uint32
 /// +--rw renew-timer?                   uint32
 /// +--rw rebind-timer?                  uint32
 /// +--rw decline-probation-period?      uint32
-/// +--rw subnet4                        subnet4*
+/// +--rw subnet6                        subnet6*
 /// +--rw shared-networks                shared-network*
 /// +--rw interfaces-config
 ///    +--rw interfaces*                 string
-///    +--rw dhcp-socket-type?           enumeration
-///    +--rw outbound-interface?         enumeration
 ///    +--rw re-detect?                  boolean
 ///    +--rw user-context?               string
 /// +--rw lease-database!                <database>
 /// +--rw hosts-databases                hosts-database*
+/// +--rw relay-supplied-options*        string
+/// +--rw mac-sources*                   string
 /// +--rw host-reservation-identifiers*  enumeration
 /// +--rw client-classes                 client-class*
 /// +--rw option-def-list                option-def*
@@ -117,25 +212,16 @@ namespace yang {
 ///    +--rw library                     string
 ///    +--rw parameters?                 string
 /// +--rw expired-leases-processing      <expired-leases-processing>
+/// +--rw server-id                      <server-id>
 /// +--rw dhcp4o6-port?                  uint16
 /// +--rw control-socket!                <control-socket>
 /// +--rw dhcp-ddns                      <dhcp-ddns>
 /// +--rw echo-client-id?                boolean
-/// +--rw match-client-id?               boolean
-/// +--rw next-server?                   inet:ipv4-address
-/// +--rw server-hostname?               string
-/// +--rw boot-file-name?                string
 /// +--rw user-context?                  string
 /// +--rw sanity-checks
 ///    +--rw lease-checks?               enumeration
 /// @endcode
 ///
-/// YANG syntax for kea-*:logging is:
-/// @code
-/// +--rw logging
-///    +--rw loggers
-/// @endcode
-///
 /// Example of kea-dhcp6 simple configuration:
 /// @code
 /// {
@@ -190,7 +276,64 @@ namespace yang {
 ///   </control-socket>
 /// </config>
 /// @endcode
+
+/// JSON syntax for the logging part of kea servers is:
+/// @code
+/// "Logging": {
+///     "loggers": [ <list of loggers> '
+/// }
+/// @endcode
 ///
+/// YANG syntax for kea-*:logging is:
+/// @code
+/// +--rw logging
+///    +--rw loggers
+/// @endcode
+///
+/// Example of Logging simple configuration:
+/// @code
+/// {
+///     "Logging":
+///     {
+///         "loggers":
+///         [
+///             {
+///                 "name": "kea-dhcp6",
+///                 "output_options":
+///                 [
+///                     {
+///                         "output": "stderr"
+///                     }
+///                 ],
+///                 "severity": "DEBUG",
+///                 "debuglevel": 99
+///             }
+///         ]
+///     }
+/// }
+/// @endcode
+///
+/// The same configuration wrote into YANG datastore using @c setConfig()
+/// with a kea server model and exported to XML format:
+/// @code
+/// <logging xmlns="urn:ietf:params:xml:ns:yang:kea-dhcp4-server">
+///   <loggers>
+///     <logger>
+///       <name>kea-dhcp6</name>
+///       <output-options>
+///         <option>
+///           <output>stderr</output>
+///         </option>
+///       </output-options>
+///       <debuglevel>99</debuglevel>
+///       <severity>DEBUG</severity>
+///     </logger>
+///   </loggers>
+/// </logging>
+/// @endcode
+///
+/// Note that sysrepo uses one XML document per container in the model.
+
 /// Inheritance graph between translators is:
 ///
 ///        +-----------------------------------------+
@@ -232,7 +375,7 @@ namespace yang {
 ///
 ///  'XXX (list)' stands for 'XXX list --- XXX' which is a common motif
 ///  (only database shows direct dependencies on both the list and the element)
-///
+
 /// @brief A translator class for converting the config between YANG and JSON.
 ///
 /// Currently supports the following models:
@@ -251,7 +394,11 @@ public:
     ///
     /// @param session Sysrepo session.
     /// @param model Model name.
+#ifndef HAVE_OLD_SYSREPO
+    TranslatorConfig(sysrepo::S_Session session, const std::string& model);
+#else
     TranslatorConfig(S_Session session, const std::string& model);
+#endif
 
     /// @brief Destructor.
     virtual ~TranslatorConfig();
@@ -392,9 +539,6 @@ protected:
     /// @param name name of the parameter
     void getParam(isc::data::ElementPtr& storage, const std::string& xpath,
                   const std::string& name);
-
-    /// @brief The model.
-    std::string model_;
 };
 
 }; // end of namespace isc::yang
index d4a1aba5d3ffe9076ebd2689067192b0d81ccb85..64e72a0b127549c9f1b5a55bdd6a6bd11ca5c172 100644 (file)
@@ -4,6 +4,8 @@
 // License, v. 2.0. If a copy of the MPL was not distributed with this
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+#include <config.h>
+
 #include <yang/translator_control_socket.h>
 #include <yang/adaptor.h>
 #include <yang/yang_models.h>
 
 using namespace std;
 using namespace isc::data;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace isc {
 namespace yang {
 
 TranslatorControlSocket::TranslatorControlSocket(S_Session session,
                                                  const string& model)
-    : TranslatorBasic(session), model_(model) {
+    : TranslatorBasic(sessionmodel) {
 }
 
 TranslatorControlSocket::~TranslatorControlSocket() {
index 4d65fc8118b3127fa6578dbee7f6577740a8c49f..3254869470cc4ebca70a5d936a00d7b634cb7f23 100644 (file)
@@ -74,7 +74,12 @@ public:
     ///
     /// @param session Sysrepo session.
     /// @param model Model name.
+#ifndef HAVE_OLD_SYSREPO
+    TranslatorControlSocket(sysrepo::S_Session session,
+                            const std::string& model);
+#else
     TranslatorControlSocket(S_Session session, const std::string& model);
+#endif
 
     /// @brief Destructor.
     virtual ~TranslatorControlSocket();
@@ -112,9 +117,6 @@ protected:
     /// @throw BadValue on control socket without socket type or name.
     void setControlSocketKea(const std::string& xpath,
                              isc::data::ConstElementPtr elem);
-
-    /// @brief The model.
-    std::string model_;
 };
 
 }; // end of namespace isc::yang
index 2ceaa4e39d3e74ff228d29a72488e20b8f1b3410..d103ccdf2c5dfbe62177f6373c2c3e0a76d9c661 100644 (file)
@@ -4,6 +4,8 @@
 // License, v. 2.0. If a copy of the MPL was not distributed with this
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+#include <config.h>
+
 #include <yang/translator_database.h>
 #include <yang/adaptor.h>
 #include <yang/yang_models.h>
 
 using namespace std;
 using namespace isc::data;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace isc {
 namespace yang {
 
 TranslatorDatabase::TranslatorDatabase(S_Session session, const string& model)
-    : TranslatorBasic(session), model_(model) {
+    : TranslatorBasic(sessionmodel) {
 }
 
 TranslatorDatabase::~TranslatorDatabase() {
@@ -225,9 +230,8 @@ TranslatorDatabase::setDatabaseKea(const string& xpath,
 
 TranslatorDatabases::TranslatorDatabases(S_Session session,
                                          const string& model)
-    : TranslatorBasic(session),
-      TranslatorDatabase(session, model),
-      model_(model) {
+    : TranslatorBasic(session, model),
+      TranslatorDatabase(session, model) {
 }
 
 TranslatorDatabases::~TranslatorDatabases() {
index 74459c90c4349dcc81b284eb6df81f4f28e0ce63..dfcc5293b7e29a452e5626a10dbe4ecf7cf1caa6 100644 (file)
@@ -109,7 +109,11 @@ public:
     ///
     /// @param session Sysrepo session.
     /// @param model Model name.
+#ifndef HAVE_OLD_SYSREPO
+    TranslatorDatabase(sysrepo::S_Session session, const std::string& model);
+#else
     TranslatorDatabase(S_Session session, const std::string& model);
+#endif
 
     /// @brief Destructor.
     virtual ~TranslatorDatabase();
@@ -149,9 +153,6 @@ protected:
     void setDatabaseKea(const std::string& xpath,
                         isc::data::ConstElementPtr elem,
                         bool skip);
-
-    /// @brief The model.
-    std::string model_;
 };
 
 /// @brief A translator class for converting a database access list between
@@ -165,7 +166,11 @@ public:
     ///
     /// @param session Sysrepo session.
     /// @param model Model name.
+#ifndef HAVE_OLD_SYSREPO
+    TranslatorDatabases(sysrepo::S_Session session, const std::string& model);
+#else
     TranslatorDatabases(S_Session session, const std::string& model);
+#endif
 
     /// @brief Destructor.
     virtual ~TranslatorDatabases();
@@ -201,9 +206,6 @@ protected:
     /// @throw BadValue on database without tyoe,
     void setDatabasesKea(const std::string& xpath,
                          isc::data::ConstElementPtr elem);
-
-    /// @brief The model.
-    std::string model_;
 };
 
 }; // end of namespace isc::yang
index 3bfade199151d2e5f1cbdfe158cb1471a2835d4a..db3e42ce3df921096c644d2e314bbf64cb9cf55d 100644 (file)
@@ -4,6 +4,8 @@
 // License, v. 2.0. If a copy of the MPL was not distributed with this
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+#include <config.h>
+
 #include <yang/translator_host.h>
 #include <yang/adaptor.h>
 #include <yang/yang_models.h>
 
 using namespace std;
 using namespace isc::data;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace isc {
 namespace yang {
 
 TranslatorHost::TranslatorHost(S_Session session, const string& model)
-    : TranslatorBasic(session),
+    : TranslatorBasic(session, model),
       TranslatorOptionData(session, model),
-      TranslatorOptionDataList(session, model),
-      model_(model) {
+      TranslatorOptionDataList(session, model) {
 }
 
 TranslatorHost::~TranslatorHost() {
@@ -178,11 +182,10 @@ TranslatorHost::setHostKea(const string& xpath, ConstElementPtr elem) {
 }
 
 TranslatorHosts::TranslatorHosts(S_Session session, const string& model)
-    : TranslatorBasic(session),
+    : TranslatorBasic(session, model),
       TranslatorOptionData(session, model),
       TranslatorOptionDataList(session, model),
-      TranslatorHost(session, model),
-      model_(model) {
+      TranslatorHost(session, model) {
 }
 
 TranslatorHosts::~TranslatorHosts() {
index beac9ddbee9d7caae6193e8acaa34aa5e960cd9f..f19372308214ba687998324abe46746cd14516d1 100644 (file)
@@ -119,7 +119,11 @@ public:
     ///
     /// @param session Sysrepo session.
     /// @param model Model name.
+#ifndef HAVE_OLD_SYSREPO
+    TranslatorHost(sysrepo::S_Session session, const std::string& model);
+#else
     TranslatorHost(S_Session session, const std::string& model);
+#endif
 
     /// @brief Destructor.
     virtual ~TranslatorHost();
@@ -149,9 +153,6 @@ protected:
     /// @param xpath The xpath of the host reservation.
     /// @param elem The JSON element.
     void setHostKea(const std::string& xpath, isc::data::ConstElementPtr elem);
-
-    /// @brief The model.
-    std::string model_;
 };
 
 /// @brief A translator class for converting host reservations list between
@@ -169,7 +170,11 @@ public:
     ///
     /// @param session Sysrepo session.
     /// @param model Model name.
+#ifndef HAVE_OLD_SYSREPO
+    TranslatorHosts(sysrepo::S_Session session, const std::string& model);
+#else
     TranslatorHosts(S_Session session, const std::string& model);
+#endif
 
     /// @brief Destructor.
     virtual ~TranslatorHosts();
@@ -194,9 +199,6 @@ protected:
     /// @throw BadValue on host reservation without known identifier type.
     void setHostsKea(const std::string& xpath,
                      isc::data::ConstElementPtr elem);
-
-    /// @brief The model.
-    std::string model_;
 };
 
 }; // end of namespace isc::yang
index e43de36de820c07893493bc69f39f56455223a4b..f00d20ecf9e25b1ee8246ee33e85d746afcf5e03 100644 (file)
@@ -4,6 +4,8 @@
 // License, v. 2.0. If a copy of the MPL was not distributed with this
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+#include <config.h>
+
 #include <yang/translator_logger.h>
 #include <yang/adaptor.h>
 #include <yang/yang_models.h>
 
 using namespace std;
 using namespace isc::data;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace isc {
 namespace yang {
 
 TranslatorLogger::TranslatorLogger(S_Session session, const string& model)
-    : TranslatorBasic(session), model_(model) {
+    : TranslatorBasic(sessionmodel) {
 }
 
 TranslatorLogger::~TranslatorLogger() {
@@ -194,9 +199,8 @@ TranslatorLogger::setOutputOptions(const string& xpath, ConstElementPtr elem) {
 }
 
 TranslatorLoggers::TranslatorLoggers(S_Session session, const string& model)
-    : TranslatorBasic(session),
-      TranslatorLogger(session, model),
-      model_(model) {
+    : TranslatorBasic(session, model),
+      TranslatorLogger(session, model) {
 }
 
 TranslatorLoggers::~TranslatorLoggers() {
index 5ecfb18b57a4f294c5862590ed320ff66bc37170..2b5bc2d34d1d0e6c282e2826c92a1b440030619a 100644 (file)
@@ -101,7 +101,11 @@ public:
     ///
     /// @param session Sysrepo session.
     /// @param model Model name.
+#ifndef HAVE_OLD_SYSREPO
+    TranslatorLogger(sysrepo::S_Session session, const std::string& model);
+#else
     TranslatorLogger(S_Session session, const std::string& model);
+#endif
 
     /// @brief Destructor.
     virtual ~TranslatorLogger();
@@ -162,9 +166,6 @@ protected:
     /// @param elem The JSON element.
     void setLoggerKea(const std::string& xpath,
                       isc::data::ConstElementPtr elem);
-
-    /// @brief The model.
-    std::string model_;
 };
 
 /// @brief A translator class for converting a logger list between
@@ -178,7 +179,11 @@ public:
     ///
     /// @param session Sysrepo session.
     /// @param model Model name.
+#ifndef HAVE_OLD_SYSREPO
+    TranslatorLoggers(sysrepo::S_Session session, const std::string& model);
+#else
     TranslatorLoggers(S_Session session, const std::string& model);
+#endif
 
     /// @brief Destructor.
     virtual ~TranslatorLoggers();
@@ -212,9 +217,6 @@ protected:
     /// @throw BadValue on a logger without name.
     void setLoggersKea(const std::string& xpath,
                        isc::data::ConstElementPtr elem);
-
-    /// @brief The model.
-    std::string model_;
 };
 
 }; // end of namespace isc::yang
index 1c7c6d812d837850fc37175f760f8a0b9a6e7759..f05fe28a94750bf2368ca15642d58493cf3b83e2 100644 (file)
@@ -4,6 +4,8 @@
 // License, v. 2.0. If a copy of the MPL was not distributed with this
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+#include <config.h>
+
 #include <yang/translator_option_data.h>
 #include <yang/adaptor.h>
 #include <yang/yang_models.h>
 
 using namespace std;
 using namespace isc::data;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace isc {
 namespace yang {
 
 TranslatorOptionData::TranslatorOptionData(S_Session session,
                                            const string& model)
-    : TranslatorBasic(session), model_(model) {
+    : TranslatorBasic(sessionmodel) {
 }
 
 TranslatorOptionData::~TranslatorOptionData() {
@@ -122,8 +127,8 @@ TranslatorOptionData::setOptionDataKea(const string& xpath,
 
 TranslatorOptionDataList::TranslatorOptionDataList(S_Session session,
                                                    const string& model)
-    : TranslatorBasic(session), TranslatorOptionData(session, model),
-      model_(model) {
+    : TranslatorBasic(session, model),
+      TranslatorOptionData(session, model) {
 }
 
 TranslatorOptionDataList::~TranslatorOptionDataList() {
index d286d68d8075adab5226034c69c178593618bcea..74a9439403851fce0f234ce6d1881d35df0bff82 100644 (file)
@@ -80,7 +80,11 @@ public:
     ///
     /// @param session Sysrepo session.
     /// @param model Model name.
+#ifndef HAVE_OLD_SYSREPO
+    TranslatorOptionData(sysrepo::S_Session session, const std::string& model);
+#else
     TranslatorOptionData(S_Session session, const std::string& model);
+#endif
 
     /// @brief Destructor.
     virtual ~TranslatorOptionData();
@@ -114,9 +118,6 @@ protected:
     /// @param elem The JSON element.
     void setOptionDataKea(const std::string& xpath,
                           isc::data::ConstElementPtr elem);
-
-    /// @brief The model.
-    std::string model_;
 };
 
 /// @brief A translator class for converting an option data list between
@@ -130,7 +131,12 @@ public:
     ///
     /// @param session Sysrepo session.
     /// @param model Model name.
+#ifndef HAVE_OLD_SYSREPO
+    TranslatorOptionDataList(sysrepo::S_Session session,
+                             const std::string& model);
+#else
     TranslatorOptionDataList(S_Session session, const std::string& model);
+#endif
 
     /// @brief Destructor.
     virtual ~TranslatorOptionDataList();
@@ -162,9 +168,6 @@ protected:
     /// @throw BadValue on option data without code or space.
     void setOptionDataListKea(const std::string& xpath,
                               isc::data::ConstElementPtr elem);
-
-    /// @brief The model.
-    std::string model_;
 };
 
 }; // end of namespace isc::yang
index b5365052c5125bf3ae646c4f8f14be2bede2a554..88a784ef1a91158ac86419963c9b81aedaf8887a 100644 (file)
@@ -4,6 +4,8 @@
 // License, v. 2.0. If a copy of the MPL was not distributed with this
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+#include <config.h>
+
 #include <yang/translator_option_def.h>
 #include <yang/adaptor.h>
 #include <yang/yang_models.h>
 
 using namespace std;
 using namespace isc::data;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace isc {
 namespace yang {
 
 TranslatorOptionDef::TranslatorOptionDef(S_Session session,
                                          const string& model)
-    : TranslatorBasic(session), model_(model) {
+    : TranslatorBasic(sessionmodel) {
 }
 
 TranslatorOptionDef::~TranslatorOptionDef() {
@@ -131,8 +136,8 @@ TranslatorOptionDef::setOptionDefKea(const string& xpath,
 
 TranslatorOptionDefList::TranslatorOptionDefList(S_Session session,
                                                  const string& model)
-    : TranslatorBasic(session), TranslatorOptionDef(session, model),
-      model_(model) {
+    : TranslatorBasic(session, model),
+      TranslatorOptionDef(session, model) {
 }
 
 TranslatorOptionDefList::~TranslatorOptionDefList() {
index c0a1af17c00ce4fa41a72cb3853692f7c84aa2a7..4987be325fff96a3c2c78c37bf519f78eec9a543 100644 (file)
@@ -83,7 +83,11 @@ public:
     ///
     /// @param session Sysrepo session.
     /// @param model Model name.
+#ifndef HAVE_OLD_SYSREPO
+    TranslatorOptionDef(sysrepo::S_Session session, const std::string& model);
+#else
     TranslatorOptionDef(S_Session session, const std::string& model);
+#endif
 
     /// @brief Destructor.
     virtual ~TranslatorOptionDef();
@@ -118,9 +122,6 @@ protected:
     /// @throw BadValue on option definition without name or type.
     void setOptionDefKea(const std::string& xpath,
                          isc::data::ConstElementPtr elem);
-
-    /// @brief The model.
-    std::string model_;
 };
 
 // @brief A translator class for converting an option definition list
@@ -135,7 +136,12 @@ public:
     ///
     /// @param session Sysrepo session.
     /// @param model Model name.
+#ifndef HAVE_OLD_SYSREPO
+    TranslatorOptionDefList(sysrepo::S_Session session,
+                            const std::string& model);
+#else
     TranslatorOptionDefList(S_Session session, const std::string& model);
+#endif
 
     /// @brief Destructor.
     virtual ~TranslatorOptionDefList();
@@ -169,9 +175,6 @@ protected:
     /// @throw BadValue on option definition without code or space.
     void setOptionDefListKea(const std::string& xpath,
                              isc::data::ConstElementPtr elem);
-
-    /// @brief The model.
-    std::string model_;
 };
 
 }; // end of namespace isc::yang
index 02411ec73c2eda741553955a8b9f3f59e995af21..7638b51898829bf781ea9aab5732ecca7354b860 100644 (file)
@@ -4,6 +4,8 @@
 // License, v. 2.0. If a copy of the MPL was not distributed with this
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+#include <config.h>
+
 #include <yang/adaptor.h>
 #include <yang/translator_pd_pool.h>
 #include <yang/yang_models.h>
 
 using namespace std;
 using namespace isc::data;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace isc {
 namespace yang {
 
 TranslatorPdPool::TranslatorPdPool(S_Session session, const string& model)
-    : TranslatorBasic(session),
+    : TranslatorBasic(session, model),
       TranslatorOptionData(session, model),
-      TranslatorOptionDataList(session, model),
-      model_(model) {
+      TranslatorOptionDataList(session, model) {
 }
 
 TranslatorPdPool::~TranslatorPdPool() {
@@ -283,11 +287,10 @@ TranslatorPdPool::setPdPoolKea(const string& xpath, ConstElementPtr elem) {
 }
 
 TranslatorPdPools::TranslatorPdPools(S_Session session, const string& model)
-    : TranslatorBasic(session),
+    : TranslatorBasic(session, model),
       TranslatorOptionData(session, model),
       TranslatorOptionDataList(session, model),
-      TranslatorPdPool(session, model),
-      model_(model) {
+      TranslatorPdPool(session, model) {
 }
 
 TranslatorPdPools::~TranslatorPdPools() {
index d2cd13014cc0f3623737eb5640fdce581f9b4ef3..05e2019ab56736865b4cc7f44606dced867bbaad 100644 (file)
@@ -122,7 +122,11 @@ public:
     ///
     /// @param session Sysrepo session.
     /// @param model Model name.
+#ifndef HAVE_OLD_SYSREPO
+    TranslatorPdPool(sysrepo::S_Session session, const std::string& model);
+#else
     TranslatorPdPool(S_Session session, const std::string& model);
+#endif
 
     /// @brief Destructor.
     virtual ~TranslatorPdPool();
@@ -170,9 +174,6 @@ protected:
     /// @param elem The JSON element.
     void setPdPoolKea(const std::string& xpath,
                       isc::data::ConstElementPtr elem);
-
-    /// @brief The model.
-    std::string model_;
 };
 
 /// @brief A translator class for converting a pd-pool list between
@@ -188,7 +189,11 @@ public:
     ///
     /// @param session Sysrepo session.
     /// @param model Model name.
+#ifndef HAVE_OLD_SYSREPO
+    TranslatorPdPools(sysrepo::S_Session session, const std::string& model);
+#else
     TranslatorPdPools(S_Session session, const std::string& model);
+#endif
 
     /// @brief Destructor.
     virtual ~TranslatorPdPools();
@@ -220,9 +225,6 @@ protected:
     /// @throw BadValue on pd-pool without prefix or prefix length.
     void setPdPoolsPrefix(const std::string& xpath,
                           isc::data::ConstElementPtr elem);
-
-    /// @brief The model.
-    std::string model_;
 };
 
 }; // end of namespace isc::yang
index d9c038566987893de1547ab5bf4c8af72d1b1613..a5b6c0dc70057c83868d4748cbfb1ac55db770ed 100644 (file)
@@ -4,6 +4,8 @@
 // License, v. 2.0. If a copy of the MPL was not distributed with this
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+#include <config.h>
+
 #include <asiolink/io_address.h>
 #include <asiolink/addr_utilities.h>
 #include <yang/adaptor.h>
@@ -16,15 +18,17 @@ using namespace std;
 using namespace isc::data;
 using namespace isc::asiolink;
 using namespace isc::dhcp;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace isc {
 namespace yang {
 
 TranslatorPool::TranslatorPool(S_Session session, const string& model)
-    : TranslatorBasic(session),
+    : TranslatorBasic(session, model),
       TranslatorOptionData(session, model),
-      TranslatorOptionDataList(session, model),
-      model_(model) {
+      TranslatorOptionDataList(session, model) {
 }
 
 TranslatorPool::~TranslatorPool() {
@@ -263,11 +267,10 @@ TranslatorPool::getAddresses(const string& prefix,
 }
 
 TranslatorPools::TranslatorPools(S_Session session, const string& model)
-    : TranslatorBasic(session),
+    : TranslatorBasic(session, model),
       TranslatorOptionData(session, model),
       TranslatorOptionDataList(session, model),
-      TranslatorPool(session, model),
-      model_(model) {
+      TranslatorPool(session, model) {
 }
 
 TranslatorPools::~TranslatorPools() {
index 1e702af7c7f8f72c48aff3ea2318e38e4a1cf056..aa92e73bb69816c722bc662d14a2505dc7377f9b 100644 (file)
@@ -130,7 +130,11 @@ public:
     ///
     /// @param session Sysrepo session.
     /// @param model Model name.
+#ifndef HAVE_OLD_SYSREPO
+    TranslatorPool(sysrepo::S_Session session, const std::string& model);
+#else
     TranslatorPool(S_Session session, const std::string& model);
+#endif
 
     /// @brief Destructor.
     virtual ~TranslatorPool();
@@ -188,9 +192,6 @@ protected:
     /// @param elem The JSON element.
     /// @throw BadValue on a pool without a well formed prefix.
     void setPoolKea(const std::string& xpath, isc::data::ConstElementPtr elem);
-
-    /// @brief The model.
-    std::string model_;
 };
 
 /// @brief A translator class for converting pools between YANG and JSON.
@@ -203,7 +204,11 @@ public:
     ///
     /// @param session Sysrepo session.
     /// @param model Model name.
+#ifndef HAVE_OLD_SYSREPO
+    TranslatorPools(sysrepo::S_Session session, const std::string& model);
+#else
     TranslatorPools(S_Session session, const std::string& model);
+#endif
 
     /// @brief Destructor.
     virtual ~TranslatorPools();
@@ -235,9 +240,6 @@ protected:
     /// @throw BadValue on a pool without a prefix.
     void setPoolsByAddresses(const std::string& xpath,
                              isc::data::ConstElementPtr elem);
-
-    /// @brief The model.
-    std::string model_;
 };
 
 }; // end of namespace isc::yang
index 2b483ed14c9d57de2df87af8d9b3aa69483732d4..fa152ce30de824c15334cf591ed540cef986b8b2 100644 (file)
@@ -4,6 +4,8 @@
 // License, v. 2.0. If a copy of the MPL was not distributed with this
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+#include <config.h>
+
 #include <yang/translator_shared_network.h>
 #include <yang/adaptor.h>
 #include <yang/yang_models.h>
 
 using namespace std;
 using namespace isc::data;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace isc {
 namespace yang {
 
 TranslatorSharedNetwork::TranslatorSharedNetwork(S_Session session,
                                                  const string& model)
-    : TranslatorBasic(session),
+    : TranslatorBasic(session, model),
       TranslatorOptionData(session, model),
       TranslatorOptionDataList(session, model),
       TranslatorPool(session, model),
@@ -27,8 +32,7 @@ TranslatorSharedNetwork::TranslatorSharedNetwork(S_Session session,
       TranslatorHost(session, model),
       TranslatorHosts(session, model),
       TranslatorSubnet(session, model),
-      TranslatorSubnets(session, model),
-      model_(model) {
+      TranslatorSubnets(session, model) {
 }
 
 TranslatorSharedNetwork::~TranslatorSharedNetwork() {
@@ -262,7 +266,7 @@ TranslatorSharedNetwork::setSharedNetworkKea(const string& xpath,
 
 TranslatorSharedNetworks::TranslatorSharedNetworks(S_Session session,
                                                    const string& model)
-    : TranslatorBasic(session),
+    : TranslatorBasic(session, model),
       TranslatorOptionData(session, model),
       TranslatorOptionDataList(session, model),
       TranslatorPool(session, model),
@@ -273,8 +277,7 @@ TranslatorSharedNetworks::TranslatorSharedNetworks(S_Session session,
       TranslatorHosts(session, model),
       TranslatorSubnet(session, model),
       TranslatorSubnets(session, model),
-      TranslatorSharedNetwork(session, model),
-      model_(model) {
+      TranslatorSharedNetwork(session, model) {
 }
 
 TranslatorSharedNetworks::~TranslatorSharedNetworks() {
index 5d546681e88a4a2cefa374ba0720746a5dd38783..60628f2787664762af0d6ab5b359993af10eb3b5 100644 (file)
@@ -132,7 +132,12 @@ public:
     ///
     /// @param session Sysrepo session.
     /// @param model Model name.
+#ifndef HAVE_OLD_SYSREPO
+    TranslatorSharedNetwork(sysrepo::S_Session session,
+                            const std::string& model);
+#else
     TranslatorSharedNetwork(S_Session session, const std::string& model);
+#endif
 
     /// @brief Destructor.
     virtual ~TranslatorSharedNetwork();
@@ -170,9 +175,6 @@ protected:
     void setSharedNetworkKea(const std::string& xpath,
                              isc::data::ConstElementPtr elem,
                              const std::string& subsel);
-
-    /// @brief The model name.
-    std::string model_;
 };
 
 /// @brief A translator class for converting a shared network list between
@@ -188,7 +190,12 @@ public:
     ///
     /// @param session Sysrepo session.
     /// @param model Model name.
+#ifndef HAVE_OLD_SYSREPO
+    TranslatorSharedNetworks(sysrepo::S_Session session,
+                             const std::string& model);
+#else
     TranslatorSharedNetworks(S_Session session, const std::string& model);
+#endif
 
     /// @brief Destructor.
     virtual ~TranslatorSharedNetworks();
@@ -215,9 +222,6 @@ protected:
     /// @throw BadValue on a shared network without name.
     void setSharedNetworksKea(const std::string& xpath,
                               isc::data::ConstElementPtr elem);
-
-    /// @brief The model name.
-    std::string model_;
 };
 
 }; // end of namespace isc::yang
index 335821485736cc64f0836ebdb3d6edb071054e35..9881e041c20d332b6ca296f84ee5dc81c057770a 100644 (file)
@@ -4,6 +4,8 @@
 // License, v. 2.0. If a copy of the MPL was not distributed with this
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+#include <config.h>
+
 #include <yang/translator_subnet.h>
 #include <yang/adaptor_pool.h>
 #include <yang/yang_models.h>
 
 using namespace std;
 using namespace isc::data;
+#ifndef HAVE_OLD_SYSREPO
+using namespace sysrepo;
+#endif
 
 namespace isc {
 namespace yang {
 
 TranslatorSubnet::TranslatorSubnet(S_Session session, const string& model)
-    : TranslatorBasic(session),
+    : TranslatorBasic(session, model),
       TranslatorOptionData(session, model),
       TranslatorOptionDataList(session, model),
       TranslatorPool(session, model),
@@ -24,8 +29,7 @@ TranslatorSubnet::TranslatorSubnet(S_Session session, const string& model)
       TranslatorPdPool(session, model),
       TranslatorPdPools(session, model),
       TranslatorHost(session, model),
-      TranslatorHosts(session, model),
-      model_(model) {
+      TranslatorHosts(session, model) {
 }
 
 TranslatorSubnet::~TranslatorSubnet() {
@@ -378,7 +382,7 @@ TranslatorSubnet::setSubnetKea(const string& xpath, ConstElementPtr elem) {
 }
 
 TranslatorSubnets::TranslatorSubnets(S_Session session, const string& model)
-    : TranslatorBasic(session),
+    : TranslatorBasic(session, model),
       TranslatorOptionData(session, model),
       TranslatorOptionDataList(session, model),
       TranslatorPool(session, model),
@@ -387,8 +391,7 @@ TranslatorSubnets::TranslatorSubnets(S_Session session, const string& model)
       TranslatorPdPools(session, model),
       TranslatorHost(session, model),
       TranslatorHosts(session, model),
-      TranslatorSubnet(session, model),
-      model_(model) {
+      TranslatorSubnet(session, model) {
 }
 
 TranslatorSubnets::~TranslatorSubnets() {
index ea8736c0564fbecba65487188c448ae1ed92174c..a44b155a9e294bc0460e331cd412af4cb08f927f 100644 (file)
@@ -240,7 +240,11 @@ public:
     ///
     /// @param session Sysrepo session.
     /// @param model Model name.
+#ifndef HAVE_OLD_SYSREPO
+    TranslatorSubnet(sysrepo::S_Session session, const std::string& model);
+#else
     TranslatorSubnet(S_Session session, const std::string& model);
+#endif
 
     /// @brief Destructor.
     virtual ~TranslatorSubnet();
@@ -286,9 +290,6 @@ protected:
     /// @param elem The JSON element.
     void setSubnetKea(const std::string& xpath,
                       isc::data::ConstElementPtr elem);
-
-    /// @brief The model.
-    std::string model_;
 };
 
 /// @brief A translator class for converting a subnet list between
@@ -302,7 +303,11 @@ public:
     ///
     /// @param session Sysrepo session.
     /// @param model Model name.
+#ifndef HAVE_OLD_SYSREPO
+    TranslatorSubnets(sysrepo::S_Session session, const std::string& model);
+#else
     TranslatorSubnets(S_Session session, const std::string& model);
+#endif
 
     /// @brief Destructor.
     virtual ~TranslatorSubnets();
@@ -336,9 +341,6 @@ protected:
     void setSubnetsKea(const std::string& xpath,
                        isc::data::ConstElementPtr elem,
                        const std::string& subsel);
-
-    /// @brief The model.
-    std::string model_;
 };
 
 }; // end of namespace isc::yang