This commit consists of:
1) Improved error handling
2) Return correct XML message for unimplemented rpcs
3) Clean up
Change-Id: Ia59d203840efc2e238a50d4f05e56f854cca9fc7
diff --git a/netconf/nc_rpc/base/get.py b/netconf/nc_rpc/base/get.py
index d953b17..b2bb9fe 100644
--- a/netconf/nc_rpc/base/get.py
+++ b/netconf/nc_rpc/base/get.py
@@ -40,8 +40,8 @@
if not rpc:
log.info('unsupported-request', request=self.request)
self.rpc_response.is_error = True
- self.rpc_response.node = ncerror.BadMsg(self.request)
- return
+ self.rpc_response.node = ncerror.NotImpl(self.request_xml)
+ returnValue(self.rpc_response)
# Invoke voltha via the grpc client
res_dict = yield self.grpc_client.invoke_voltha_api(rpc)
@@ -66,18 +66,18 @@
try:
if self.request['command'] != 'get':
self.rpc_response.is_error = True
- self.rpc_response.node = ncerror.BadMsg('No GET in get '
- 'request')
+ self.rpc_response.node = ncerror.BadMsg(self.request_xml)
+ return
if self.request.has_key('filter'):
if not self.request.has_key('class'):
self.rpc_response.is_error = True
- self.rpc_response.node = ncerror.BadMsg(
- 'Missing filter sub-element')
+ self.rpc_response.node = ncerror.NotImpl(self.request_xml)
+ return
except Exception as e:
self.rpc_response.is_error = True
- self.rpc_response.node = ncerror.BadMsg(self.request)
+ self.rpc_response.node = ncerror.ServerException(self.request_xml)
return
def get_voltha_rpc(self, request):
@@ -92,6 +92,11 @@
'subclass']:
return rpc['rpc']
+ # If the request has a subclass and is not in the list of
+ # supported rpc then return None
+ if request.has_key('subclass'):
+ return None
+
# If we are here then no subclass exists. Just return the rpc
# associated with theNone subclass
for rpc in rpcs:
@@ -128,9 +133,9 @@
{'subclass': 'device_groups',
'rpc': 'VolthaLocalService-ListDeviceGroups'
},
- ],
- 'VolthaInstances': [
- {'subclass': None,
- 'rpc': 'VolthaGlobalService-ListVolthaInstances'
- }],
+ ]
+ # 'VolthaInstances': [
+ # {'subclass': None,
+ # 'rpc': 'VolthaGlobalService-ListVolthaInstances'
+ # }],
}