The commit consists of:

1) Support metadata (e.g. get-depth) for rpc request.
2) Support parameters in rpc requests
3) Generate the code for netconf rpc to Voltha grpc mapping
4) Initial Support custom rpc requests (those defined in the voltha YANG schemas).

Change-Id: I24dc7fd75b5f71d0d8591637579672b25fda57ec
diff --git a/netconf/capabilities.py b/netconf/capabilities.py
index 80fe63d..b033131 100755
--- a/netconf/capabilities.py
+++ b/netconf/capabilities.py
@@ -18,12 +18,11 @@
 import sys
 from constants import Constants as C
 
-# URN_PREFIX = "urn:ietf:params:netconf:capability:"
 URN_PREFIX = "urn:opencord:params:xml:ns:voltha:"
 log = structlog.get_logger()
 
-class Capabilities:
 
+class Capabilities:
     def __init__(self):
         self.server_caps = set()
         self.client_caps = set()
@@ -41,10 +40,14 @@
         self.server_caps.add(C.NETCONF_MONITORING)
         for schema in schemas:
             self.server_caps.add(''.join([URN_PREFIX, schema]))
+            self.server_caps.add(''.join([
+                                            URN_PREFIX,
+                                            schema,
+                                            ':writable-running'])
+                                )
             self.voltha_schemas.add(schema)
 
-
-    def set_schema_dir(self, schema_dir)        :
+    def set_schema_dir(self, schema_dir):
         self.schema_dir = schema_dir
 
     def get_yang_schemas_definitions(self):
@@ -53,18 +56,18 @@
             defs.append(
                 {
                     'id': schema,
-                    'version': '2016-11-15', #TODO: need to extract from voltha
+                    'version': '2016-11-15',
+                    # TODO: need to extract from voltha
                     'format': 'yang',
                     'location': 'NETCONF',
                     'namespace': ''.join([URN_PREFIX, schema])
-                 }
+                }
             )
         return defs
 
     def is_schema_supported(self, schema):
         return schema in self.voltha_schemas
 
-
     def get_schema_content(self, schema):
         if self.schema_dir not in sys.path:
             sys.path.insert(0, self.schema_dir)
@@ -77,4 +80,3 @@
         except Exception as e:
             log.error("error-opening-file", file=''.join([schema, '.yang']),
                       dir=self.schema_dir, exception=repr(e))
-