Error Adding Node to ODL via RESTCONF

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-24-2016 11:59 AM
Team,
I made a script for interfacing with ODL BORON release RESTCONF interface for adding a node. I'm getting an error as shown below. Any idea what is wrong?
(ydk-py-venv) [gibson@rickenbacker yangtesting]$ python addnode_odl.py
hello from Python 2.7.12 (default, Jun 29 2016, 15:48:48)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)]
The XML POST body is...
"<module xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
<type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">prefix:sal-netconf-connector</type>
<name>iosxrv-1</name>
<address xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">192.168.0.1</address>
<port xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">830</port>
<username xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">cisco</username>
<password xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">cisco</password>
<tcp-only xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">false</tcp-only>
<event-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
<type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-event-executor</type>
<name>global-event-executor</name>
</event-executor>
<binding-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
<type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-broker-osgi-registry</type>
<name>binding-osgi-broker</name>
</binding-registry>
<dom-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
<type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-broker-osgi-registry</type>
<name>dom-broker</name>
</dom-registry>
<client-dispatcher xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
<type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:netconf">prefix:netconf-client-dispatcher</type>
<name>global-netconf-dispatcher</name>
</client-dispatcher>
<processing-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
<type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool">prefix:threadpool</type>
<name>global-netconf-processing-executor</name>
</processing-executor>
<keepalive-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
<type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool">prefix:scheduled-threadpool</type>
<name>global-netconf-ssh-scheduled-executor</name>
</keepalive-executor>
</module>"
400
application/xml
<?xml version="1.0" ?>
<errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf">
<error>
<error-type>protocol</error-type>
<error-tag>malformed-message</error-tag>
<error-message>Error parsing input: Content is not allowed in prolog.</error-message>
</error>
</errors>
(ydk-py-venv) [gibson@rickenbacker yangtesting]$
- Labels:
-
OpenDaylight

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-24-2016 12:53 PM
UPDATE
I had extra quotes around the XML body that was causing the POST to fail.
Now, when I query the RESTCONF interface...
<module>
<type>x:sal-netconf-connector</type>
<name>iosxrv-1</name>
<tcp-only>false</tcp-only>
<event-executor>
<type>x:netty-event-executor</type>
<name>global-event-executor</name>
</event-executor>
<keepalive-executor>
<type>x:scheduled-threadpool</type>
<name>global-netconf-ssh-scheduled-executor</name>
</keepalive-executor>
<sleep-factor>1.5</sleep-factor>
<max-connection-attempts>0</max-connection-attempts>
<dom-registry>
<type>x:dom-broker-osgi-registry</type>
<name>dom-broker</name>
</dom-registry>
<client-dispatcher>
<type>x:netconf-client-dispatcher</type>
<name>global-netconf-dispatcher</name>
</client-dispatcher>
<concurrent-rpc-limit>0</concurrent-rpc-limit>
<schema-cache-directory>schema</schema-cache-directory>
<between-attempts-timeout-millis>2000</between-attempts-timeout-millis>
<port>830</port>
<connection-timeout-millis>20000</connection-timeout-millis>
<username>cisco</username>
<password>cisco</password>
<processing-executor>
<type>x:threadpool</type>
<name>global-netconf-processing-executor</name>
</processing-executor>
<binding-registry>
<type>x:binding-broker-osgi-registry</type>
<name>binding-osgi-broker</name>
</binding-registry>
<keepalive-delay>120</keepalive-delay>
<default-request-timeout-millis>60000</default-request-timeout-millis>
<address>192.168.0.1</address>
<reconnect-on-changed-schema>false</reconnect-on-changed-schema>
</module>
However, when I open DLUX and select "nodes" I do not see the element listed.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-25-2016 04:30 PM
UPDATE
I examined the logs for ODL (data/logs/karaf.log) and I can see ODL is trying to make a NETCONF connection but it is having trouble retrieving the YANG schema. Does IOS-XR support this? I didn't have this issue with the Beryllium release.
Error reply from remote device, request: <rpc message-id="m-85" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<get-schema xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring">
<identifier>Cisco-IOS-XR-lpts-pre-ifib-oper-sub1</identifier>
<version>2016-02-22</version>
<format>yang</format>
</get-schema>
</rpc>
, response: <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="m-85">
<rpc-error>
<error-type>application</error-type>
<error-tag>operation-failed</error-tag>
<error-severity>error</error-severity>
</rpc-error>
</rpc-reply>
RemoteDevice{iosxrv-1}: YANG schema was not successfully retrieved for RevisionSourceIdentifier [name=Cisco-IOS-XR-lpts-pre-ifib-oper-sub1@2016-02-22]. Errors: [RpcError [message=, severity=ERROR, errorType=APPLICATION, tag=operation-failed, applicationTag=null, info=, cause=null]]
Unable to build schema context, unsatisfied imports {RevisionSourceIdentifier [name=cisco-xr-netconf-monitoring-deviations@2016-02-16]=[ModuleImportImpl [name=ietf-netconf-monitoring, revision=null, semanticVersion=0.0.0]], RevisionSourceIdentifier [name=Cisco-IOS-XR-ha-eem-policy-oper@2016-02-05]=[ModuleImportImpl [name=Cisco-IOS-XR-ha-eem-policy-oper-sub1, revision=2016-02-05

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-26-2016 12:09 PM
Just tried with Beryllium and same issue
RemoteDevice{iosxrv-1}: YANG schema was not successfully retrieved for SourceIdentifier [name=Cisco-IOS-XR-lpts-pre-ifib-oper-sub1@2016-02-22]. Errors: [RpcError [message=, severity=ERROR, errorType=APPLICATION, tag=operation-failed, applicationTag=null, info=, cause=null]]

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-19-2017 08:47 AM
what release of XRv are you using? That can sometimes be an issue...
