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'
+        #      }],
     }