This commit consists of:
1) Ability for the netconf client to retrieve schemas metadata from
   the netconf server
2) Ability for the netconf server to retrieve specific yang schema from
   the netconf server
3) Netconf says Happy New Year 2017

Change-Id: I6552224707607ca6cc1397f2fbf193503bb116a3
diff --git a/netconf/nc_server.py b/netconf/nc_server.py
index 6c43194..9c19794 100644
--- a/netconf/nc_server.py
+++ b/netconf/nc_server.py
@@ -1,5 +1,5 @@
 #
-# Copyright 2016 the original author or authors.
+# Copyright 2017 the original author or authors.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -32,6 +32,7 @@
 from session.nc_connection import NetconfConnection
 from session.session_mgr import get_session_manager_instance
 from constants import Constants as C
+from capabilities import Capabilities
 
 dir_path = os.path.dirname(os.path.realpath(__file__))
 
@@ -97,6 +98,7 @@
         self.client_passwords_file = client_passwords_file
         self.session_mgr = get_session_manager_instance()
         self.grpc_client = grpc_client
+        self.capabilities = Capabilities()
         self.connector = None
         self.nc_client_map = {}
         self.running = False
@@ -118,6 +120,14 @@
         self.d_stopped.callback(None)
         log.info('stopped')
 
+    def set_capabilities(self):
+        yang_schemas = self.grpc_client.yang_schemas
+        if not yang_schemas:
+            log.error('no-yang-schema')
+            return
+        self.capabilities.set_server_capabilities(yang_schemas)
+        self.capabilities.set_schema_dir(self.grpc_client.work_dir)
+
     def reload_capabilities(self):
         # TODO: Called when there is a reconnect to voltha
         # If there are new device types then the new
@@ -139,7 +149,8 @@
         #create a session
         session = self.session_mgr.create_session(client_conn.avatar.get_user())
         handler = NetconfProtocolHandler(self, client_conn,
-                                         session, self.grpc_client)
+                                         session, self.grpc_client,
+                                         self.capabilities)
         client_conn.proto_handler = handler
         reactor.callLater(0, handler.start)
 
@@ -176,6 +187,7 @@
     def start_ssh_server(self):
         try:
             log.debug('starting', port=self.netconf_port)
+            self.set_capabilities()
             self.portal = self.setup_secure_access()
             self.connector = reactor.listenTCP(self.netconf_port, self)
             log.debug('started', port=self.netconf_port)