Adding introspection for getting record details.

Change-Id: Iba15acff0f6830cffbc33d9dac3b5f0c417be844
Reviewed-on: https://asterix-gerrit.ics.uci.edu/313
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Steven Jacobs <sjaco002@ucr.edu>
diff --git a/asterix-common/src/main/resources/schema/asterix-conf.xsd b/asterix-common/src/main/resources/schema/asterix-conf.xsd
index 6edfbf8..bed63be 100644
--- a/asterix-common/src/main/resources/schema/asterix-conf.xsd
+++ b/asterix-common/src/main/resources/schema/asterix-conf.xsd
@@ -1,88 +1,108 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
-<!--
- ! Copyright 2009-2013 by The Regents of the University of California
- ! Licensed under the Apache License, Version 2.0 (the "License");
- ! you may not use this file except in compliance with the License.
- ! you may obtain a copy of the License from
- !
- !     http://www.apache.org/licenses/LICENSE-2.0
- !
- ! Unless required by applicable law or agreed to in writing, software
- ! distributed under the License is distributed on an "AS IS" BASIS,
- ! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ! See the License for the specific language governing permissions and
- ! limitations under the License.
- !-->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
-	xmlns:mg="asterixconf" targetNamespace="asterixconf"
-	elementFormDefault="qualified">
+<xs:schema
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:mg="asterixconf"
+    targetNamespace="asterixconf"
+    elementFormDefault="qualified">
 
-	<!-- definition of simple types -->
+    <!-- definition of simple types -->
+    <xs:element
+        name="instanceName"
+        type="xs:string" />
+    <xs:element
+        name="version"
+        type="xs:string" />
+    <xs:element
+        name="metadataNode"
+        type="xs:string" />
+    <xs:element
+        name="coredumpPath"
+        type="xs:string" />
+    <xs:element
+        name="storeDirs"
+        type="xs:string" />
+    <xs:element
+        name="ncId"
+        type="xs:string" />
+    <xs:element
+        name="name"
+        type="xs:string" />
+    <xs:element
+        name="value"
+        type="xs:string" />
+    <xs:element
+        name="description"
+        type="xs:string" />
+    <xs:element
+        name="txnLogDirPath"
+        type="xs:string" />
+
+    <!-- definition of complex elements -->
+    <xs:element name="store">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="mg:ncId" />
+                <xs:element ref="mg:storeDirs" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="coredump">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="mg:ncId" />
+                <xs:element ref="mg:coredumpPath" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="transactionLogDir">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="mg:ncId" />
+                <xs:element ref="mg:txnLogDirPath" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="property">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="mg:name" />
+                <xs:element ref="mg:value" />
+                <xs:element ref="mg:description" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
 
 
-	<xs:element name="instanceName" type="xs:string" />
-	<xs:element name="version" type="xs:string"/>
-	<xs:element name="metadataNode" type="xs:string" />
-	<xs:element name="coredumpPath" type="xs:string" />
-	<xs:element name="storeDirs" type="xs:string" />
-	<xs:element name="ncId" type="xs:string" />
-	<xs:element name="name" type="xs:string" />
-	<xs:element name="value" type="xs:string" />
-	<xs:element name="description" type="xs:string" />
-	<xs:element name="txnLogDirPath" type="xs:string" />
+    <xs:element name="asterixConfiguration">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element
+                    ref="mg:instanceName"
+                    minOccurs="0" />
+                <xs:element
+                    ref="mg:version"
+                    minOccurs="0" />
+                <xs:element
+                    ref="mg:metadataNode"
+                    minOccurs="0" />
+                <xs:element
+                    ref="mg:store"
+                    maxOccurs="unbounded" />
+                <xs:element
+                    ref="mg:coredump"
+                    maxOccurs="unbounded" />
+                <xs:element
+                    ref="mg:transactionLogDir"
+                    maxOccurs="unbounded" />
+                <xs:element
+                    ref="mg:property"
+                    minOccurs="0"
+                    maxOccurs="unbounded" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
 
-
-	<!-- definition of complex elements -->
-	<xs:element name="store">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="mg:ncId" />
-				<xs:element ref="mg:storeDirs" />
-			</xs:sequence>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="coredump">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="mg:ncId" />
-				<xs:element ref="mg:coredumpPath" />
-			</xs:sequence>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="transactionLogDir">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="mg:ncId" />
-				<xs:element ref="mg:txnLogDirPath" />
-			</xs:sequence>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="property">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="mg:name" />
-				<xs:element ref="mg:value" />
-				<xs:element ref="mg:description" />
-			</xs:sequence>
-		</xs:complexType>
-	</xs:element>
-
-
-	<xs:element name="asterixConfiguration">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="mg:instanceName" minOccurs="0" />
-				<xs:element ref="mg:version" minOccurs="0" />
-				<xs:element ref="mg:metadataNode" minOccurs="0" />
-				<xs:element ref="mg:store" maxOccurs="unbounded" />
-				<xs:element ref="mg:coredump" maxOccurs="unbounded" />
-				<xs:element ref="mg:transactionLogDir" maxOccurs="unbounded" />
-				<xs:element ref="mg:property" minOccurs="0" maxOccurs="unbounded" />
-			</xs:sequence>
-		</xs:complexType>
-	</xs:element>
-
-</xs:schema>     
+</xs:schema>
diff --git a/asterix-common/src/main/resources/schema/yarn_cluster.xsd b/asterix-common/src/main/resources/schema/yarn_cluster.xsd
index 2aa76cf..62c6f9a 100644
--- a/asterix-common/src/main/resources/schema/yarn_cluster.xsd
+++ b/asterix-common/src/main/resources/schema/yarn_cluster.xsd
@@ -1,103 +1,179 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
-	xmlns:cl="yarn_cluster" targetNamespace="yarn_cluster" elementFormDefault="qualified">
+<xs:schema
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:cl="yarn_cluster"
+    targetNamespace="yarn_cluster"
+    elementFormDefault="qualified">
 
 	<!-- definition of simple types -->
-	<xs:element name="instance_name" type="xs:string" />
-	<xs:element name="cluster_name" type="xs:string" />
-	<xs:element name="log_dir" type="xs:string" />
-	<xs:element name="txn_log_dir" type="xs:string" />
-	<xs:element name="id" type="xs:string" />
-	<xs:element name="client_ip" type="xs:string" />
-	<xs:element name="cluster_ip" type="xs:string" />
-	<xs:element name="key" type="xs:string" />
-	<xs:element name="value" type="xs:string" />
-	<xs:element name="store" type="xs:string" />
-	<xs:element name="iodevices" type="xs:string" />
-	<xs:element name="web_port" type="xs:string" />
-	<xs:element name="client_port" type="xs:integer" />
-	<xs:element name="cluster_port" type="xs:integer" />
-	<xs:element name="http_port" type="xs:integer" />
-	<xs:element name="debug_port" type="xs:integer" />
-	<xs:element name="metadata_node" type="xs:string" />
-	<xs:element name="cc_container_mem" type="xs:string" />
-	<xs:element name="nc_container_mem" type="xs:string" />
+    <xs:element
+        name="instance_name"
+        type="xs:string" />
+    <xs:element
+        name="cluster_name"
+        type="xs:string" />
+    <xs:element
+        name="log_dir"
+        type="xs:string" />
+    <xs:element
+        name="txn_log_dir"
+        type="xs:string" />
+    <xs:element
+        name="id"
+        type="xs:string" />
+    <xs:element
+        name="client_ip"
+        type="xs:string" />
+    <xs:element
+        name="cluster_ip"
+        type="xs:string" />
+    <xs:element
+        name="key"
+        type="xs:string" />
+    <xs:element
+        name="value"
+        type="xs:string" />
+    <xs:element
+        name="store"
+        type="xs:string" />
+    <xs:element
+        name="iodevices"
+        type="xs:string" />
+    <xs:element
+        name="web_port"
+        type="xs:string" />
+    <xs:element
+        name="client_port"
+        type="xs:integer" />
+    <xs:element
+        name="cluster_port"
+        type="xs:integer" />
+    <xs:element
+        name="http_port"
+        type="xs:integer" />
+    <xs:element
+        name="debug_port"
+        type="xs:integer" />
+    <xs:element
+        name="metadata_node"
+        type="xs:string" />
+    <xs:element
+        name="cc_container_mem"
+        type="xs:string" />
+    <xs:element
+        name="nc_container_mem"
+        type="xs:string" />
 	
 
 	<!-- definition of complex elements -->
 
-	<xs:element name="master_node">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="cl:id" />
-				<xs:element ref="cl:client_ip" />
-				<xs:element ref="cl:cluster_ip" />
-				<xs:element ref="cl:log_dir" minOccurs="0" />
-				<xs:element ref="cl:client_port" />
-				<xs:element ref="cl:cluster_port" />
-				<xs:element ref="cl:http_port" />
-				<xs:element ref="cl:debug_port" minOccurs="0" />
-			</xs:sequence>
-		</xs:complexType>
-	</xs:element>
+    <xs:element name="master_node">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="cl:id" />
+                <xs:element ref="cl:client_ip" />
+                <xs:element ref="cl:cluster_ip" />
+                <xs:element
+                    ref="cl:log_dir"
+                    minOccurs="0" />
+                <xs:element ref="cl:client_port" />
+                <xs:element ref="cl:cluster_port" />
+                <xs:element ref="cl:http_port" />
+                <xs:element
+                    ref="cl:debug_port"
+                    minOccurs="0" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
 
-	<xs:element name="property">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="cl:key" />
-				<xs:element ref="cl:value" />
-			</xs:sequence>
-		</xs:complexType>
-	</xs:element>
+    <xs:element name="property">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="cl:key" />
+                <xs:element ref="cl:value" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
 
-	<xs:element name="env">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="cl:property" minOccurs="0" maxOccurs="unbounded" />
-			</xs:sequence>
-		</xs:complexType>
-	</xs:element>
+    <xs:element name="env">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element
+                    ref="cl:property"
+                    minOccurs="0"
+                    maxOccurs="unbounded" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
 
-	<xs:element name="node">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="cl:id" />
-				<xs:element ref="cl:cluster_ip" />
-				<xs:element ref="cl:log_dir" minOccurs="0" />
-				<xs:element ref="cl:txn_log_dir" minOccurs="0" />
-				<xs:element ref="cl:store" minOccurs="0" />
-				<xs:element ref="cl:iodevices" minOccurs="0" />
-				<xs:element ref="cl:debug_port" minOccurs="0" />
-			</xs:sequence>
-		</xs:complexType>
-	</xs:element>
+    <xs:element name="node">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="cl:id" />
+                <xs:element ref="cl:cluster_ip" />
+                <xs:element
+                    ref="cl:log_dir"
+                    minOccurs="0" />
+                <xs:element
+                    ref="cl:txn_log_dir"
+                    minOccurs="0" />
+                <xs:element
+                    ref="cl:store"
+                    minOccurs="0" />
+                <xs:element
+                    ref="cl:iodevices"
+                    minOccurs="0" />
+                <xs:element
+                    ref="cl:debug_port"
+                    minOccurs="0" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
 
-	<xs:element name="substitute_nodes">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="cl:node" maxOccurs="unbounded" />
-			</xs:sequence>
-		</xs:complexType>
-	</xs:element>
+    <xs:element name="substitute_nodes">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element
+                    ref="cl:node"
+                    maxOccurs="unbounded" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
 
-	<xs:element name="cluster">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="cl:instance_name" />
-				<xs:element ref="cl:cluster_name" />
-				<xs:element ref="cl:cc_container_mem" minOccurs="0" />
-				<xs:element ref="cl:nc_container_mem" minOccurs="0" />
-				<xs:element ref="cl:env" minOccurs="0" />
-				<xs:element ref="cl:log_dir" minOccurs="0" />
-				<xs:element ref="cl:txn_log_dir" minOccurs="0" />
-				<xs:element ref="cl:store" minOccurs="0" />
-				<xs:element ref="cl:iodevices" minOccurs="0" />
-				<xs:element ref="cl:metadata_node" />
-				<xs:element ref="cl:master_node" />
-				<xs:element ref="cl:node" maxOccurs="unbounded" />
-				<xs:element ref="cl:substitute_nodes" />
-			</xs:sequence>
-		</xs:complexType>
-	</xs:element>
+    <xs:element name="cluster">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="cl:instance_name" />
+                <xs:element ref="cl:cluster_name" />
+                <xs:element
+                    ref="cl:cc_container_mem"
+                    minOccurs="0" />
+                <xs:element
+                    ref="cl:nc_container_mem"
+                    minOccurs="0" />
+                <xs:element
+                    ref="cl:env"
+                    minOccurs="0" />
+                <xs:element
+                    ref="cl:log_dir"
+                    minOccurs="0" />
+                <xs:element
+                    ref="cl:txn_log_dir"
+                    minOccurs="0" />
+                <xs:element
+                    ref="cl:store"
+                    minOccurs="0" />
+                <xs:element
+                    ref="cl:iodevices"
+                    minOccurs="0" />
+                <xs:element ref="cl:metadata_node" />
+                <xs:element ref="cl:master_node" />
+                <xs:element
+                    ref="cl:node"
+                    maxOccurs="unbounded" />
+                <xs:element ref="cl:substitute_nodes" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
 
 </xs:schema>