- private void registerRpcsToSal(final SchemaContext schemaContext, final RpcProvisionRegistry rpcRegistry, final RpcImplementation deviceRpc) {
- final Map<QName, String> failedRpcs = Maps.newHashMap();
- for (final RpcDefinition rpcDef : schemaContext.getOperations()) {
- try {
- salRegistrations.add(rpcRegistry.addRpcImplementation(rpcDef.getQName(), deviceRpc));
- logger.debug("{}: Rpc {} from netconf registered successfully", id, rpcDef.getQName());
- } catch (final Exception e) {
- // Only debug per rpc, warn for all of them at the end to pollute log a little less (e.g. routed rpcs)
- logger.debug("{}: Unable to register rpc {} from netconf device. This rpc will not be available", id,
- rpcDef.getQName(), e);
- failedRpcs.put(rpcDef.getQName(), e.getClass() + ":" + e.getMessage());
- }
- }
-
- if (failedRpcs.isEmpty() == false) {
- if (logger.isDebugEnabled()) {
- logger.warn("{}: Some rpcs from netconf device were not registered: {}", id, failedRpcs);
- } else {
- logger.warn("{}: Some rpcs from netconf device were not registered: {}", id, failedRpcs.keySet());
- }
- }
+ @Override
+ public synchronized void onDeviceFailed(final Throwable throwable) {
+ salProvider.getTopologyDatastoreAdapter().setDeviceAsFailed(throwable);
+ salProvider.getMountInstance().onDeviceDisconnected();
+ salProvider.getMountInstance().onTopologyDeviceDisconnected();