Revision 9667bcb2 ncclient/capabilities.py

b/ncclient/capabilities.py
12 12
# See the License for the specific language governing permissions and
13 13
# limitations under the License.
14 14

  
15
_capability_map = {
16
    'urn:liberouter:params:netconf:capability:power-control:1.0':
17
        [':power-control', ':power-control:1.0']
18
}
15
#_capability_map = {
16
#    "urn:liberouter:params:netconf:capability:power-control:1.0":
17
#        [":power-control", ":power-control:1.0"]
18
#}
19 19

  
20 20
def _abbreviate(uri):
21
    if uri.startswith('urn:ietf:params:netconf:'):
22
        splitted = uri.split(':')
23
        if ':capability:' in uri:
24
            return [ ':' + splitted[5], ':' + splitted[5] + ':' + splitted[6] ]
25
        elif ':base:' in uri:
26
            return [ ':base', ':base' + ':'+ splitted[5] ]
27
    elif uri in _capability_map:
28
        return _capability_map[uri]
21
    if uri.startswith("urn:ietf:params:netconf:"):
22
        splitted = uri.split(":")
23
        if ":capability:" in uri:
24
            return [ ":" + splitted[5], ":" + splitted[5] + ":" + splitted[6] ]
25
        elif ":base:" in uri:
26
            return [ ":base", ":base" + ":" + splitted[5] ]
27
    #elif uri in _capability_map:
28
    #    return _capability_map[uri]
29 29
    return []
30 30

  
31 31
def schemes(url_uri):
32 32
    """Given a URI that has a *scheme* query string (i.e. *:url* capability
33 33
    URI), will return a list of supported schemes.
34 34
    """
35
    return url_uri.partition("?scheme=")[2].split(',')
35
    return url_uri.partition("?scheme=")[2].split(",")
36 36

  
37 37
class Capabilities:
38 38

  
......
98 98

  
99 99
#: :class:`Capabilities` object representing the capabilities currently supported by NCClient
100 100
CAPABILITIES = Capabilities([
101
    'urn:ietf:params:netconf:base:1.0',
102
    'urn:ietf:params:netconf:capability:writable-running:1.0',
103
    'urn:ietf:params:netconf:capability:candidate:1.0',
104
    'urn:ietf:params:netconf:capability:confirmed-commit:1.0',
105
    'urn:ietf:params:netconf:capability:rollback-on-error:1.0',
106
    'urn:ietf:params:netconf:capability:startup:1.0',
107
    'urn:ietf:params:netconf:capability:url:1.0?scheme=http,ftp,file,https,sftp',
108
    'urn:ietf:params:netconf:capability:validate:1.0',
109
    'urn:ietf:params:netconf:capability:xpath:1.0',
110
    'urn:liberouter:params:netconf:capability:power-control:1.0'
101
    "urn:ietf:params:netconf:base:1.0",
102
    "urn:ietf:params:netconf:capability:writable-running:1.0",
103
    "urn:ietf:params:netconf:capability:candidate:1.0",
104
    "urn:ietf:params:netconf:capability:confirmed-commit:1.0",
105
    "urn:ietf:params:netconf:capability:rollback-on-error:1.0",
106
    "urn:ietf:params:netconf:capability:startup:1.0",
107
    "urn:ietf:params:netconf:capability:url:1.0?scheme=http,ftp,file,https,sftp",
108
    "urn:ietf:params:netconf:capability:validate:1.0",
109
    "urn:ietf:params:netconf:capability:xpath:1.0",
110
    "urn:liberouter:params:netconf:capability:power-control:1.0"
111
    "urn:ietf:params:netconf:capability:interleave:1.0"
111 112
    #'urn:ietf:params:netconf:capability:notification:1.0', # TODO
112
    #'urn:ietf:params:netconf:capability:interleave:1.0' # theoretically already supported
113
    
113 114
])

Also available in: Unified diff