BIND 10 trac2676, updated. 4b678e1d42ea66fae49f2248b4c4cfeb32fe0a09 [1676] Basics of the rpc_call in python

BIND 10 source code commits bind10-changes at lists.isc.org
Thu Feb 14 09:24:25 UTC 2013


The branch, trac2676 has been updated
       via  4b678e1d42ea66fae49f2248b4c4cfeb32fe0a09 (commit)
      from  ce03b1032e086e7f2cb038068dfbbdb5eac61645 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 4b678e1d42ea66fae49f2248b4c4cfeb32fe0a09
Author: Michal 'vorner' Vaner <michal.vaner at nic.cz>
Date:   Thu Feb 14 10:23:44 2013 +0100

    [1676] Basics of the rpc_call in python
    
    Successful case. Small fixes of the tests.

-----------------------------------------------------------------------

Summary of changes:
 src/lib/python/isc/config/ccsession.py             |   11 +++++++++++
 src/lib/python/isc/config/tests/ccsession_test.py  |    4 ++--
 .../isc/config/tests/unittest_fakesession.py       |    5 +++--
 3 files changed, 16 insertions(+), 4 deletions(-)

-----------------------------------------------------------------------
diff --git a/src/lib/python/isc/config/ccsession.py b/src/lib/python/isc/config/ccsession.py
index 8464a01..c5c8a89 100644
--- a/src/lib/python/isc/config/ccsession.py
+++ b/src/lib/python/isc/config/ccsession.py
@@ -37,6 +37,7 @@
 """
 
 from isc.cc import Session
+from isc.cc.proto_defs import *
 from isc.config.config_data import ConfigData, MultiConfigData, BIND10_CONFIG_DATA_VERSION
 import isc.config.module_spec
 import isc
@@ -474,6 +475,16 @@ class ModuleCCSession(ConfigData):
         except isc.cc.SessionTimeout:
             raise ModuleCCSessionError("CC Session timeout waiting for configuration manager")
 
+    def rpc_call(self, command, group, instance=CC_INSTANCE_WILDCARD,
+                 to=CC_TO_WILDCARD, **params):
+        cmd = create_command(command, params)
+        seq = self._session.group_sendmsg(cmd, group, instance=instance,
+                                          to=to, want_answer=True)
+        # For non-blocking, we'll have rpc_call_async (once the nonblock actualy
+        # works)
+        reply, rheaders = self._session.group_recvmsg(nonblock=False, seq=seq)
+        code, value = parse_answer(reply)
+        return value
 
 class UIModuleCCSession(MultiConfigData):
     """This class is used in a configuration user interface. It contains
diff --git a/src/lib/python/isc/config/tests/ccsession_test.py b/src/lib/python/isc/config/tests/ccsession_test.py
index cb4fc28..0f772ff 100644
--- a/src/lib/python/isc/config/tests/ccsession_test.py
+++ b/src/lib/python/isc/config/tests/ccsession_test.py
@@ -299,13 +299,13 @@ class TestModuleCCSession(unittest.TestCase):
         fake_session.message_queue = [
             ["Spec1", None, {"result": [0, {"Hello": "a"}]}, False]
         ]
-        result = mccs.rpc_call("Spec2", "*", "test", param1="Param 1",
+        result = mccs.rpc_call("test", "Spec2", param1="Param 1",
                                param2="Param 2")
         self.assertEqual([
                 ["Spec2", "*", {"command": ["test", {
                     "param1": "Param 1",
                     "param2": "Param 2"
-                }]}]
+                }]}, True]
             ], fake_session.message_queue)
         self.assertEqual({"Hello": "a"}, result)
 
diff --git a/src/lib/python/isc/config/tests/unittest_fakesession.py b/src/lib/python/isc/config/tests/unittest_fakesession.py
index 38a0637..84be1fe 100644
--- a/src/lib/python/isc/config/tests/unittest_fakesession.py
+++ b/src/lib/python/isc/config/tests/unittest_fakesession.py
@@ -68,8 +68,9 @@ class FakeModuleCCSession:
         else:
             return False
 
-    def group_sendmsg(self, msg, channel, target=None, want_answer=False):
-        self.message_queue.append([ channel, target, msg, want_answer ])
+    def group_sendmsg(self, msg, group, instance=None, to=None,
+                      want_answer=False):
+        self.message_queue.append([ group, instance, msg, want_answer ])
         return 42
 
     def group_reply(self, env, msg):



More information about the bind10-changes mailing list