Statistics
| Branch: | Tag: | Revision:

root / ncclient / operations / session.py @ bbd4ce54

History | View | Annotate | Download (1.6 kB)

1 7101ce49 Shikhar Bhushan
# Copyright 2009 Shikhar Bhushan
2 7101ce49 Shikhar Bhushan
#
3 7101ce49 Shikhar Bhushan
# Licensed under the Apache License, Version 2.0 (the "License");
4 7101ce49 Shikhar Bhushan
# you may not use this file except in compliance with the License.
5 7101ce49 Shikhar Bhushan
# You may obtain a copy of the License at
6 7101ce49 Shikhar Bhushan
#
7 7101ce49 Shikhar Bhushan
#    http://www.apache.org/licenses/LICENSE-2.0
8 7101ce49 Shikhar Bhushan
#
9 7101ce49 Shikhar Bhushan
# Unless required by applicable law or agreed to in writing, software
10 7101ce49 Shikhar Bhushan
# distributed under the License is distributed on an "AS IS" BASIS,
11 7101ce49 Shikhar Bhushan
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 7101ce49 Shikhar Bhushan
# See the License for the specific language governing permissions and
13 7101ce49 Shikhar Bhushan
# limitations under the License.
14 7101ce49 Shikhar Bhushan
15 a956ef07 Shikhar Bhushan
'Session-related NETCONF operations'
16 a956ef07 Shikhar Bhushan
17 ce5fb329 Shikhar Bhushan
from copy import deepcopy
18 ce5fb329 Shikhar Bhushan
19 ebf2bbc6 Shikhar Bhushan
from rpc import RPC
20 efed7d4c Shikhar Bhushan
21 179b00d4 Shikhar Bhushan
class CloseSession(RPC):
22 a7cb58ce Shikhar Bhushan
23 0b7d3b31 Shikhar Bhushan
    # TESTED
24 0b7d3b31 Shikhar Bhushan
25 a7cb58ce Shikhar Bhushan
    "*<close-session>* RPC. The connection to NETCONF server is also closed."
26 a7cb58ce Shikhar Bhushan
27 1fca349b Shikhar Bhushan
    SPEC = { 'tag': 'close-session' }
28 a7cb58ce Shikhar Bhushan
29 bbd4ce54 Shikhar Bhushan
    def _delivery_hook(self):
30 541247ba Shikhar Bhushan
        self.session.close()
31 efed7d4c Shikhar Bhushan
32 216bb34c Shikhar Bhushan
    def request(self):
33 0b7d3b31 Shikhar Bhushan
        ":seealso: :ref:`return`"
34 216bb34c Shikhar Bhushan
        return self._request(CloseSession.SPEC)
35 216bb34c Shikhar Bhushan
36 7101ce49 Shikhar Bhushan
37 179b00d4 Shikhar Bhushan
class KillSession(RPC):
38 a7cb58ce Shikhar Bhushan
39 a7cb58ce Shikhar Bhushan
    "*<kill-session>* RPC."
40 a7cb58ce Shikhar Bhushan
41 1fca349b Shikhar Bhushan
    SPEC = {
42 1fca349b Shikhar Bhushan
        'tag': 'kill-session',
43 179b00d4 Shikhar Bhushan
        'subtree': []
44 1fca349b Shikhar Bhushan
    }
45 a7cb58ce Shikhar Bhushan
46 216bb34c Shikhar Bhushan
    def request(self, session_id):
47 0b7d3b31 Shikhar Bhushan
        """
48 0b7d3b31 Shikhar Bhushan
        :arg session_id: *session-id* of NETCONF session to kill
49 0b7d3b31 Shikhar Bhushan
        :type session_id: `string`
50 0b7d3b31 Shikhar Bhushan

51 0b7d3b31 Shikhar Bhushan
        :seealso: :ref:`return`
52 0b7d3b31 Shikhar Bhushan
        """
53 ce5fb329 Shikhar Bhushan
        spec = deepcopy(KillSession.SPEC)
54 0b7d3b31 Shikhar Bhushan
        if not isinstance(session_id, basestring): # make sure
55 efed7d4c Shikhar Bhushan
            session_id = str(session_id)
56 179b00d4 Shikhar Bhushan
        spec['subtree'].append({
57 179b00d4 Shikhar Bhushan
            'tag': 'session-id',
58 179b00d4 Shikhar Bhushan
            'text': session_id
59 179b00d4 Shikhar Bhushan
        })
60 216bb34c Shikhar Bhushan
        return self._request(spec)