This commit consists of:
1) Yang annotations to the protobuf definitions.  These annotations, when
   added to the relevant proto files in Voltha,  allow us to convert
   the voltha proto schemas into Yang schemas without the need to change the
   model definitions.
2) Update to the Yang parser to handle the above annotations
3) Some initial work on the netconf GET RPCs (work in progress)
4) Cleanup

Change-Id: I5e4f4217850f0beb1c41aca1b2530a41e4f8a809
diff --git a/netconf/session/nc_protocol_handler.py b/netconf/session/nc_protocol_handler.py
index a08ea37..c64c2c1 100644
--- a/netconf/session/nc_protocol_handler.py
+++ b/netconf/session/nc_protocol_handler.py
@@ -180,7 +180,9 @@
                              rpc_handler=rpc_handler,
                              is_error=response.is_error,
                              response=response)
-                    self.send_rpc_reply(response.node, rpc)
+                    # self.send_rpc_reply(response.node, rpc)
+                    self.send_rpc_reply(self.get_instance(), rpc)
+
                     if response.close_session:
                         log.info('response-closing-session', response=response)
                         self.close()
@@ -230,3 +232,372 @@
             self.session.session_opened = False
             self.connected.callback(None)
             log.info('closing-client')
+
+    # Example of a properly formatted Yang-XML message
+    def get_instance(self):
+        xml_string = """
+            <data>
+             <Voltha xmlns="urn:opencord:params:xml:ns:voltha:ietf-voltha">
+             <instances>
+              <log_level>INFO</log_level>
+                <device_types>
+                  <adapter>simulated_onu</adapter>
+                  <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+                  <id>simulated_onu</id>
+                  <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+                </device_types>
+                <device_types>
+                  <adapter>tibit_onu</adapter>
+                  <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+                  <id>tibit_onu</id>
+                  <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+                </device_types>
+                <device_types>
+                  <adapter>maple_olt</adapter>
+                  <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+                  <id>maple_olt</id>
+                  <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+                </device_types>
+                <device_types>
+                  <adapter>tibit_olt</adapter>
+                  <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+                  <id>tibit_olt</id>
+                  <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+                </device_types>
+                <device_types>
+                  <adapter>broadcom_onu</adapter>
+                  <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+                  <id>broadcom_onu</id>
+                  <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+                </device_types>
+                <device_types>
+                  <adapter>simulated_olt</adapter>
+                  <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+                  <id>simulated_olt</id>
+                  <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+                </device_types>
+                <logical_devices>
+                  <datapath_id>1</datapath_id>
+                  <root_device_id>simulated_olt_1</root_device_id>
+                  <switch_features>
+                    <auxiliary_id>0</auxiliary_id>
+                    <n_tables>2</n_tables>
+                    <datapath_id>0</datapath_id>
+                    <capabilities>15</capabilities>
+                    <n_buffers>256</n_buffers>
+                  </switch_features>
+                  <flows/>
+                  <id>simulated1</id>
+                  <flow_groups/>
+                    <ports>
+                      <device_port_no>2</device_port_no>
+                      <root_port>False</root_port>
+                      <device_id>simulated_onu_1</device_id>
+                      <id>onu1</id>
+                      <ofp_port>
+                        <hw_addr>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>1</item>
+                        </hw_addr>
+                        <curr_speed>32</curr_speed>
+                        <curr>4128</curr>
+                        <name>onu1</name>
+                        <supported>0</supported>
+                        <state>4</state>
+                        <max_speed>32</max_speed>
+                        <advertised>4128</advertised>
+                        <peer>4128</peer>
+                        <config>0</config>
+                        <port_no>1</port_no>
+                      </ofp_port>
+                    </ports>
+                    <ports>
+                      <device_port_no>2</device_port_no>
+                      <root_port>False</root_port>
+                      <device_id>simulated_onu_2</device_id>
+                      <id>onu2</id>
+                      <ofp_port>
+                        <hw_addr>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>2</item>
+                        </hw_addr>
+                        <curr_speed>32</curr_speed>
+                        <curr>4128</curr>
+                        <name>onu2</name>
+                        <supported>0</supported>
+                        <state>4</state>
+                        <max_speed>32</max_speed>
+                        <advertised>4128</advertised>
+                        <peer>4128</peer>
+                        <config>0</config>
+                        <port_no>2</port_no>
+                      </ofp_port>
+                    </ports>
+                    <ports>
+                      <device_port_no>2</device_port_no>
+                      <root_port>True</root_port>
+                      <device_id>simulated_olt_1</device_id>
+                      <id>olt1</id>
+                      <ofp_port>
+                        <hw_addr>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>0</item>
+                          <item>129</item>
+                        </hw_addr>
+                        <curr_speed>32</curr_speed>
+                        <curr>4128</curr>
+                        <name>olt1</name>
+                        <supported>0</supported>
+                        <state>4</state>
+                        <max_speed>32</max_speed>
+                        <advertised>4128</advertised>
+                        <peer>4128</peer>
+                        <config>0</config>
+                        <port_no>129</port_no>
+                      </ofp_port>
+                    </ports>
+                  <desc>
+                    <dp_desc>n/a</dp_desc>
+                    <sw_desc>simualted pon</sw_desc>
+                    <hw_desc>simualted pon</hw_desc>
+                    <serial_num>985c4449d50a441ca843401e2f44e682</serial_num>
+                    <mfr_desc>cord porject</mfr_desc>
+                  </desc>
+                </logical_devices>
+              <devices>
+                <item>
+                  <vendor>simulated</vendor>
+                  <parent_port_no>0</parent_port_no>
+                  <software_version>1.0</software_version>
+                  <connect_status>UNKNOWN</connect_status>
+                  <type>simulated_olt</type>
+                  <adapter>simulated_olt</adapter>
+                  <vlan>0</vlan>
+                  <hardware_version>n/a</hardware_version>
+                  <flows>
+                    <items/>
+                  </flows>
+                  <ports>
+                    <item>
+                      <peers>
+                        <item>
+                          <port_no>1</port_no>
+                          <device_id>simulated_onu_1</device_id>
+                        </item>
+                        <item>
+                          <port_no>1</port_no>
+                          <device_id>simulated_onu_2</device_id>
+                        </item>
+                      </peers>
+                      <label>pon</label>
+                      <oper_status>UNKNOWN</oper_status>
+                      <admin_state>UNKNOWN</admin_state>
+                      <type>PON_OLT</type>
+                      <port_no>1</port_no>
+                      <device_id>simulated_olt_1</device_id>
+                    </item>
+                    <item>
+                      <peers/>
+                      <label>eth</label>
+                      <oper_status>UNKNOWN</oper_status>
+                      <admin_state>UNKNOWN</admin_state>
+                      <type>ETHERNET_NNI</type>
+                      <port_no>2</port_no>
+                      <device_id>simulated_olt_1</device_id>
+                    </item>
+                  </ports>
+                  <parent_id/>
+                  <oper_status>DISCOVERED</oper_status>
+                  <flow_groups>
+                    <items/>
+                  </flow_groups>
+                  <admin_state>UNKNOWN</admin_state>
+                  <serial_number>19addcd7305d4d4fa90300cb8e4ab9a6</serial_number>
+                  <model>n/a</model>
+                  <root>True</root>
+                  <id>simulated_olt_1</id>
+                  <firmware_version>n/a</firmware_version>
+                </item>
+                <item>
+                  <vendor>simulated</vendor>
+                  <parent_port_no>1</parent_port_no>
+                  <software_version>1.0</software_version>
+                  <connect_status>UNKNOWN</connect_status>
+                  <root>False</root>
+                  <adapter>simulated_onu</adapter>
+                  <vlan>101</vlan>
+                  <hardware_version>n/a</hardware_version>
+                  <flows>
+                    <items/>
+                  </flows>
+                  <ports>
+                    <item>
+                      <peers/>
+                      <label>eth</label>
+                      <oper_status>UNKNOWN</oper_status>
+                      <admin_state>UNKNOWN</admin_state>
+                      <type>ETHERNET_UNI</type>
+                      <port_no>2</port_no>
+                      <device_id>simulated_onu_1</device_id>
+                    </item>
+                    <item>
+                      <peers>
+                        <item>
+                          <port_no>1</port_no>
+                          <device_id>simulated_olt_1</device_id>
+                        </item>
+                      </peers>
+                      <label>pon</label>
+                      <oper_status>UNKNOWN</oper_status>
+                      <admin_state>UNKNOWN</admin_state>
+                      <type>PON_ONU</type>
+                      <port_no>1</port_no>
+                      <device_id>simulated_onu_1</device_id>
+                    </item>
+                  </ports>
+                  <parent_id>simulated_olt_1</parent_id>
+                  <oper_status>DISCOVERED</oper_status>
+                  <flow_groups>
+                    <items/>
+                  </flow_groups>
+                  <admin_state>UNKNOWN</admin_state>
+                  <serial_number>8ce6514e1b324d349038d9a80af04772</serial_number>
+                  <model>n/a</model>
+                  <type>simulated_onu</type>
+                  <id>simulated_onu_1</id>
+                  <firmware_version>n/a</firmware_version>
+                </item>
+                <item>
+                  <vendor>simulated</vendor>
+                  <parent_port_no>1</parent_port_no>
+                  <software_version>1.0</software_version>
+                  <connect_status>UNKNOWN</connect_status>
+                  <root>False</root>
+                  <adapter>simulated_onu</adapter>
+                  <vlan>102</vlan>
+                  <hardware_version>n/a</hardware_version>
+                  <flows>
+                    <items/>
+                  </flows>
+                  <ports>
+                    <item>
+                      <peers/>
+                      <label>eth</label>
+                      <oper_status>UNKNOWN</oper_status>
+                      <admin_state>UNKNOWN</admin_state>
+                      <type>ETHERNET_UNI</type>
+                      <port_no>2</port_no>
+                      <device_id>simulated_onu_2</device_id>
+                    </item>
+                    <item>
+                      <peers>
+                        <item>
+                          <port_no>1</port_no>
+                          <device_id>simulated_olt_1</device_id>
+                        </item>
+                      </peers>
+                      <label>pon</label>
+                      <oper_status>UNKNOWN</oper_status>
+                      <admin_state>UNKNOWN</admin_state>
+                      <type>PON_ONU</type>
+                      <port_no>1</port_no>
+                      <device_id>simulated_onu_2</device_id>
+                    </item>
+                  </ports>
+                  <parent_id>simulated_olt_1</parent_id>
+                  <oper_status>DISCOVERED</oper_status>
+                  <flow_groups>
+                    <items/>
+                  </flow_groups>
+                  <admin_state>UNKNOWN</admin_state>
+                  <serial_number>0dfbb5af422044639c0660b518c06519</serial_number>
+                  <model>n/a</model>
+                  <type>simulated_onu</type>
+                  <id>simulated_onu_2</id>
+                  <firmware_version>n/a</firmware_version>
+                </item>
+              </devices>
+              <instance_id>compose_voltha_1</instance_id>
+              <version>0.9.0</version>
+              <health>
+                <state>HEALTHY</state>
+              </health>
+              <device_groups>
+                <item>
+                  <logical_devices/>
+                  <id>1</id>
+                  <devices/>
+                </item>
+              </device_groups>
+              <adapters>
+                <item>
+                  <config>
+                    <log_level>INFO</log_level>
+                  </config>
+                  <version>0.1</version>
+                  <vendor>Voltha project</vendor>
+                  <id>simulated_onu</id>
+                  <logical_device_ids/>
+                </item>
+                <item>
+                  <config>
+                    <log_level>INFO</log_level>
+                  </config>
+                  <version>0.1</version>
+                  <vendor>Tibit Communications Inc.</vendor>
+                  <id>tibit_onu</id>
+                  <logical_device_ids/>
+                </item>
+                <item>
+                  <config>
+                    <log_level>INFO</log_level>
+                  </config>
+                  <version>0.1</version>
+                  <vendor>Voltha project</vendor>
+                  <id>maple_olt</id>
+                  <logical_device_ids/>
+                </item>
+                <item>
+                  <config>
+                    <log_level>INFO</log_level>
+                  </config>
+                  <version>0.1</version>
+                  <vendor>Tibit Communications Inc.</vendor>
+                  <id>tibit_olt</id>
+                  <logical_device_ids/>
+                </item>
+                <item>
+                  <config>
+                    <log_level>INFO</log_level>
+                  </config>
+                  <version>0.1</version>
+                  <vendor>Voltha project</vendor>
+                  <id>broadcom_onu</id>
+                  <logical_device_ids/>
+                </item>
+                <item>
+                  <config>
+                    <log_level>INFO</log_level>
+                  </config>
+                  <version>0.1</version>
+                  <vendor>Voltha project</vendor>
+                  <id>simulated_olt</id>
+                  <logical_device_ids/>
+                </item>
+              </adapters>
+             </instances>
+             </Voltha>
+            </data>
+        """
+        return etree.fromstring(xml_string)
\ No newline at end of file