Revision 41e2ed46 ncclient/operations/session.py

b/ncclient/operations/session.py
16 16

  
17 17
from rpc import RPC
18 18

  
19

  
20 19
class CloseSession(RPC):
21 20
    
21
    'CloseSession is always synchronous'
22
    
22 23
    def __init__(self, *args, **kwds):
23 24
        RPC.__init__(self, *args, **kwds)
24 25
        self.spec = { 'tag': 'close-session' }
25 26
    
26
    def deliver(self, reply):
27
        RPC.deliver(self, reply)
28
        # can't be too huge, should be ok to parse in callback
29
        if self._reply.ok: # (implicitly parse)
30
            self._session.expect_close()
31
        self._session.close()
27
    def _delivery_hook(self):
28
        if self.reply.ok:
29
            self.session.expect_close()
32 30
    
33 31
    def request(self):
34
        self._request(self.spec)
32
        return self._request(self.spec)
35 33

  
36 34

  
37 35
class KillSession(RPC):
......
47 45
        if not isinstance(session_id, basestring): # just make sure...
48 46
            session_id = str(session_id)
49 47
        self.spec['children'][0]['text'] = session_id
50
        self._request(self.spec)
48
        return self._request(self.spec)

Also available in: Unified diff