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