This commit consists of:
1) Dockerizing the netconf server
2) Update proto2yang to support module imports
3) Provide a set of yang modules derived from the proto files in voltha.
   These files as well as the slight mmodifications to the proto files are
   provided in the experiments/netconf/proto2yang directory
4) Code to automatically pull proto files from voltha into the netconf server,
   compiles them and produce the yang equivalent files.
5) Add a getvoltha netconf API to provide voltha state information (basic at
   this time).  There is potential to make this generic once we experiment
   with additional APIs

Change-Id: I94f3a1f871b8025ad675d5f9b9b626d1be8b8d36
diff --git a/netconf/nc_rpc/rpc_factory.py b/netconf/nc_rpc/rpc_factory.py
index f3ec0cc..eb13b8d 100644
--- a/netconf/nc_rpc/rpc_factory.py
+++ b/netconf/nc_rpc/rpc_factory.py
@@ -28,6 +28,7 @@
 from base.unlock import UnLock
 from base.close_session import CloseSession
 from base.kill_session import KillSession
+from ext.get_voltha import GetVoltha
 from netconf import NSMAP, qmap
 import netconf.nc_common.error as ncerror
 log = structlog.get_logger()
@@ -36,7 +37,7 @@
 
 	instance = None
 
-	def get_rpc_handler(self, rpc_node, msg, session):
+	def get_rpc_handler(self, rpc_node, msg, grpc_channel, session):
 		try:
 			msg_id = rpc_node.get('message-id')
 			log.info("Received-rpc-message-id", msg_id=msg_id)
@@ -59,12 +60,13 @@
 
 		class_handler = self.rpc_class_handlers.get(rpc_name, None)
 		if class_handler is not None:
-			return class_handler(rpc_node, rpc_method, session)
+			return class_handler(rpc_node, rpc_method, grpc_channel, session)
 
 		log.error("rpc-not-implemented", rpc=rpc_name)
 
 
 	rpc_class_handlers = {
+		'getvoltha' : GetVoltha,
 		'get-config': GetConfig,
 		'get': Get,
 		'edit-config': EditConfig,
@@ -83,3 +85,8 @@
 		RpcFactory.instance = RpcFactory()
 	return RpcFactory.instance
 
+
+if __name__ == '__main__':
+   fac = get_rpc_factory_instance()
+   rpc = fac.rpc_class_handlers.get('getvoltha', None)
+   print rpc(None,None,None)
\ No newline at end of file