]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[1676] Basics of the rpc_call in python
authorMichal 'vorner' Vaner <michal.vaner@nic.cz>
Thu, 14 Feb 2013 09:23:44 +0000 (10:23 +0100)
committerMichal 'vorner' Vaner <michal.vaner@nic.cz>
Thu, 14 Feb 2013 09:23:44 +0000 (10:23 +0100)
Successful case. Small fixes of the tests.

src/lib/python/isc/config/ccsession.py
src/lib/python/isc/config/tests/ccsession_test.py
src/lib/python/isc/config/tests/unittest_fakesession.py

index 8464a01e048c84327df41a665098595693090d28..c5c8a891f096210b33ddce29f366345e6aad6934 100644 (file)
@@ -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
index cb4fc28313327188fb3c0030f72e87cee138c974..0f772ff3d8c1e63662949d4999d07388a68a076d 100644 (file)
@@ -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)
 
index 38a0637069c6e69b521de86853a07ae59d040680..84be1fe619740e83195287a60ba5a624d63bc163 100644 (file)
@@ -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):