Browse Source

[2853] Return any error message returned by ZoneWriter::load()

Mukund Sivaraman 12 years ago
parent
commit
efea64180e

+ 2 - 1
src/lib/python/isc/datasrc/tests/clientlist_test.py

@@ -190,7 +190,8 @@ class ClientListTest(unittest.TestCase):
         result, self.__zone_writer = self.clist.get_cached_zone_writer(isc.dns.Name("example.org"))
         self.assertEqual(isc.datasrc.ConfigurableClientList.CACHE_STATUS_ZONE_SUCCESS,
                          result)
-        self.__zone_writer.load()
+        err_msg = self.__zone_writer.load()
+        self.assertIsNone(err_msg)
         self.__zone_writer.install()
         self.__zone_writer.cleanup()
 

+ 5 - 1
src/lib/python/isc/datasrc/zonewriter_python.cc

@@ -85,7 +85,11 @@ PyObject*
 ZoneWriter_load(PyObject* po_self, PyObject*) {
     s_ZoneWriter* self = static_cast<s_ZoneWriter*>(po_self);
     try {
-        self->cppobj->load();
+        std::string error_msg;
+        self->cppobj->load(&error_msg);
+        if (!error_msg.empty()) {
+            return (Py_BuildValue("s", error_msg.c_str()));
+        }
     } catch (const std::exception& exc) {
         PyErr_SetString(getDataSourceException("Error"), exc.what());
         return (NULL);