Revision 0b7d3b31 ncclient/operations/rpc.py
b/ncclient/operations/rpc.py | ||
---|---|---|
289 | 289 |
:type opspec: :obj:`dict` or :obj:`string` or :class:`~xml.etree.ElementTree.Element` |
290 | 290 |
:rtype: :class:`~threading.Event` or :class:`RPCReply` |
291 | 291 |
""" |
292 |
logger.debug('request %r with opsepc=%r' % (self, op)) |
|
292 | 293 |
req = self._build(op) |
293 |
self._session.send(req) |
|
294 |
if self._async: |
|
295 |
return self._event |
|
294 |
self.session.send(req) |
|
295 |
if self.async: |
|
296 |
logger.debug('async, returning event') |
|
297 |
return self.event |
|
296 | 298 |
else: |
297 |
self._event.wait(self._timeout) |
|
298 |
if self._event.isSet(): |
|
299 |
if self._error: |
|
299 |
logger.debug('sync, will wait for timeout=%r' % self.timeout) |
|
300 |
self.event.wait(self.timeout) |
|
301 |
if self.event.isSet(): |
|
302 |
if self.error: |
|
300 | 303 |
raise self._error |
301 |
self._reply.parse()
|
|
302 |
return self._reply
|
|
304 |
self.reply.parse() |
|
305 |
return self.reply |
|
303 | 306 |
else: |
304 | 307 |
raise TimeoutExpiredError |
305 | 308 |
|
Also available in: Unified diff