You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by kr...@apache.org on 2018/12/06 17:17:04 UTC

svn commit: r1848343 - in /knox: site/ site/books/knox-1-2-0/ trunk/books/1.2.0/ trunk/books/1.2.0/dev-guide/

Author: krisden
Date: Thu Dec  6 17:17:03 2018
New Revision: 1848343

URL: http://svn.apache.org/viewvc?rev=1848343&view=rev
Log:
KNOX-1640 - Documentation improvements (Lars Francke via Kevin Risden)

Modified:
    knox/site/books/knox-1-2-0/dev-guide.html
    knox/site/books/knox-1-2-0/user-guide.html
    knox/site/index.html
    knox/site/issue-management.html
    knox/site/licenses.html
    knox/site/mailing-lists.html
    knox/site/project-info.html
    knox/site/team.html
    knox/trunk/books/1.2.0/book.md
    knox/trunk/books/1.2.0/book_gateway-details.md
    knox/trunk/books/1.2.0/book_getting-started.md
    knox/trunk/books/1.2.0/book_service-details.md
    knox/trunk/books/1.2.0/config_authn.md
    knox/trunk/books/1.2.0/dev-guide/book.md
    knox/trunk/books/1.2.0/knox_cli.md
    knox/trunk/books/1.2.0/service_elasticsearch.md
    knox/trunk/books/1.2.0/service_service_test.md
    knox/trunk/books/1.2.0/service_solr.md

Modified: knox/site/books/knox-1-2-0/dev-guide.html
URL: http://svn.apache.org/viewvc/knox/site/books/knox-1-2-0/dev-guide.html?rev=1848343&r1=1848342&r2=1848343&view=diff
==============================================================================
--- knox/site/books/knox-1-2-0/dev-guide.html (original)
+++ knox/site/books/knox-1-2-0/dev-guide.html Thu Dec  6 17:17:03 2018
@@ -985,7 +985,7 @@ rewrite.xml
 <p>If Knox doesn&rsquo;t find that file, it will check for a Java system property named <strong>org.apache.gateway.topology.discovery.ambari.config</strong>, whose value is the fully-qualified path to an XML file. This file&rsquo;s contents must adhere to the format outlined above.</p>
 <p>If this configuration exists, Knox will apply it as if it were part of the internal configuration.</p>
 <p><strong>Example</strong></p>
-<p>If Apache SOLR weren&rsquo;t supported, then it could be added by creating the following definition in <strong><em>{GATEWAY_HOME}</em>/conf/ambari-discovery-url-mappings.xml</strong> :</p>
+<p>If Apache Solr weren&rsquo;t supported, then it could be added by creating the following definition in <strong><em>{GATEWAY_HOME}</em>/conf/ambari-discovery-url-mappings.xml</strong> :</p>
 <pre><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
 &lt;service-discovery-url-mappings&gt;
   &lt;service name=&quot;SOLR&quot;&gt;

Modified: knox/site/books/knox-1-2-0/user-guide.html
URL: http://svn.apache.org/viewvc/knox/site/books/knox-1-2-0/user-guide.html?rev=1848343&r1=1848342&r2=1848343&view=diff
==============================================================================
--- knox/site/books/knox-1-2-0/user-guide.html (original)
+++ knox/site/books/knox-1-2-0/user-guide.html Thu Dec  6 17:17:03 2018
@@ -123,10 +123,10 @@
       <li><a href="#Yarn">Yarn</a></li>
       <li><a href="#Kafka">Kafka</a></li>
       <li><a href="#Storm">Storm</a></li>
-      <li><a href="#SOLR">SOLR</a></li>
+      <li><a href="#Solr">Solr</a></li>
       <li><a href="#Avatica">Avatica</a></li>
       <li><a href="#Livy+Server">Livy Server</a></li>
-      <li><a href="#ElasticSearch">ElasticSearch</a></li>
+      <li><a href="#Elasticsearch">Elasticsearch</a></li>
       <li><a href="#Common+Service+Config">Common Service Config</a></li>
       <li><a href="#Default+Service+HA+support">Default Service HA support</a></li>
     </ul>
@@ -457,10 +457,10 @@ curl -i -k -u guest:guest-password -X GE
       <td><img src="error.png" alt="n" title="No" /></td>
     </tr>
     <tr>
-      <td>SOLR </td>
+      <td>Solr </td>
       <td>5.5+ and 6+ </td>
       <td><img src="check.png" alt="y" title="Yes" /> </td>
-      <td><img src="error.png" alt="n" title="No" /> </td>
+      <td><img src="check.png" alt="y" title="Yes" /> </td>
       <td><img src="check.png" alt="y" title="Yes" /></td>
     </tr>
   </tbody>
@@ -535,7 +535,7 @@ curl -i -k -u guest:guest-password -X GE
    limitations under the License.
 -->
 <h2><a id="Gateway+Details">Gateway Details</a> <a href="#Gateway+Details"><img src="markbook-section-link.png"/></a></h2>
-<p>This section describes the details of the Knox Gateway itself. Including: </p>
+<p>This section describes the details of the Knox Gateway itself. Including:</p>
 <ul>
   <li>How URLs are mapped between a gateway that services multiple Hadoop clusters and the clusters themselves</li>
   <li>How the gateway is configured through <code>gateway-site.xml</code> and cluster specific topology files</li>
@@ -547,8 +547,8 @@ curl -i -k -u guest:guest-password -X GE
 <p>In order to provide compatibility with the Hadoop Java client and existing CLI tools, the Knox Gateway has provided a feature called the <em>Default Topology</em>. This refers to a topology deployment that will be able to route URLs without the additional context that the gateway uses for differentiating from one Hadoop cluster to another. This allows the URLs to match those used by existing clients that may access WebHDFS through the Hadoop file system abstraction.</p>
 <p>When a topology file is deployed with a file name that matches the configured default topology name, a specialized mapping for URLs is installed for that particular topology. This allows the URLs that are expected by the existing Hadoop CLIs for WebHDFS to be used in interacting with the specific Hadoop cluster that is represented by the default topology file.</p>
 <p>The configuration for the default topology name is found in <code>gateway-site.xml</code> as a property called: <code>default.app.topology.name</code>.</p>
-<p>The default value for this property is <code>sandbox</code>.</p>
-<p>Therefore, when deploying the <code>sandbox.xml</code> topology, both of the following example URLs work for the same underlying Hadoop cluster:</p>
+<p>The default value for this property is empty.</p>
+<p>When deploying the <code>sandbox.xml</code> topology and setting <code>default.app.topology.name</code> to <code>sandbox</code>, both of the following example URLs work for the same underlying Hadoop cluster:</p>
 <pre><code>https://{gateway-host}:{gateway-port}/webhdfs
 https://{gateway-host}:{gateway-port}/{gateway-path}/{cluster-name}/webhdfs
 </code></pre>
@@ -591,7 +591,7 @@ https://{gateway-host}:{gateway-port}/{g
 <p>The value for <code>{cluster-name}</code> is derived from the file name of the cluster topology descriptor (e.g. <code>{GATEWAY_HOME}/deployments/{cluster-name}.xml</code>).</p>
 <p>The value for <code>{webhdfs-host}</code>, <code>{webhcat-host}</code>, <code>{oozie-host}</code>, <code>{hbase-host}</code> and <code>{hive-host}</code> are provided via the cluster topology descriptor (e.g. <code>{GATEWAY_HOME}/conf/topologies/{cluster-name}.xml</code>).</p>
 <p>Note: The ports 50070 (9870 for Hadoop 3.x), 50111, 11000, 8080 and 10001 are the defaults for WebHDFS, WebHCat, Oozie, HBase and Hive respectively. Their values can also be provided via the cluster topology descriptor if your Hadoop cluster uses different ports.</p>
-<p>Note: The HBase REST API uses port 8080 by default. This often clashes with other running services. In the Hortonworks Sandbox, Apache Ambari might be running on this port, so you might have to change it to a different port (e.g. 60080). </p>
+<p>Note: The HBase REST API uses port 8080 by default. This often clashes with other running services. In the Hortonworks Sandbox, Apache Ambari might be running on this port, so you might have to change it to a different port (e.g. 60080).</p>
 <h4><a id="Topology+Port+Mapping">Topology Port Mapping</a> <a href="#Topology+Port+Mapping"><img src="markbook-section-link.png"/></a></h4>
 <p>This feature allows mapping of a topology to a port, as a result one can have a specific topology listening on a configured port. This feature routes URLs to these port-mapped topologies without the additional context that the gateway uses for differentiating from one Hadoop cluster to another, just like the <a href="#Default+Topology+URLs">Default Topology URLs</a> feature, but on a dedicated port. </p>
 <p>The configuration for Topology Port Mapping goes in <code>gateway-site.xml</code> file. The configuration uses the property name and value model to configure the settings for this feature. The format for the property name is <code>gateway.port.mapping.{topologyName}</code> and value is the port number that this topology would listen on. </p>
@@ -1612,12 +1612,17 @@ keytool -keystore gateway.jks -storepass
 <h5><a id="`bin/knoxcli.sh+version+[--help]`"><code>bin/knoxcli.sh version [--help]</code></a> <a href="#`bin/knoxcli.sh+version+[--help]`"><img src="markbook-section-link.png"/></a></h5>
 <p>Displays Knox version information.</p>
 <h4><a id="Master+secret+persistence">Master secret persistence</a> <a href="#Master+secret+persistence"><img src="markbook-section-link.png"/></a></h4>
-<h5><a id="`bin/knoxcli.sh+create-master+[--force][--help]`"><code>bin/knoxcli.sh create-master [--force][--help]</code></a> <a href="#`bin/knoxcli.sh+create-master+[--force][--help]`"><img src="markbook-section-link.png"/></a></h5>
-<p>Creates and persists an encrypted master secret in a file within <code>{GATEWAY_HOME}/data/security/master</code>. </p>
+<h5><a id="`bin/knoxcli.sh+create-master+[--force]+[--master+mastersecret]+[--generate]`"><code>bin/knoxcli.sh create-master [--force] [--master mastersecret] [--generate]</code></a> <a href="#`bin/knoxcli.sh+create-master+[--force]+[--master+mastersecret]+[--generate]`"><img src="markbook-section-link.png"/></a></h5>
+<p>The create-master command persists the master secret in a file located at: <code>{GATEWAY_HOME}/data/security/master</code>.</p>
+<p>It will prompt the user for the secret to persist.</p>
+<p>Use <code>--force</code> to overwrite the master secret.</p>
+<p>Use <code>--master</code> to pass in a master secret to persist. This can be used to persist the secret without any user interaction. Be careful as the secret might appear in shell histories or process listings.<br/> Instead of <code>--master</code> it is usually a better idea to use <code>--generate</code> instead!</p>
+<p>Use <code>--generate</code> to have Knox automatically generate a random secret. The generated secret will not be printed or otherwise exposed.</p>
+<p>Do not specify both <code>--master</code> and <code>--generate</code> at the same time.</p>
 <p>NOTE: This command fails when there is an existing master file in the expected location. You may force it to overwrite the master file with the --force switch. NOTE: this will require you to change passwords protecting the keystores for the gateway identity keystores and all credential stores.</p>
 <h4><a id="Alias+creation">Alias creation</a> <a href="#Alias+creation"><img src="markbook-section-link.png"/></a></h4>
 <h5><a id="`bin/knoxcli.sh+create-alias+name+[--cluster+c]+[--value+v]+[--generate]+[--help]`"><code>bin/knoxcli.sh create-alias name [--cluster c] [--value v] [--generate] [--help]</code></a> <a href="#`bin/knoxcli.sh+create-alias+name+[--cluster+c]+[--value+v]+[--generate]+[--help]`"><img src="markbook-section-link.png"/></a></h5>
-<p>Creates a password alias and stores it in a credential store within the <code>{GATEWAY_HOME}/data/security/keystores</code> dir. </p>
+<p>Creates a password alias and stores it in a credential store within the <code>{GATEWAY_HOME}/data/security/keystores</code> dir.</p>
 <table>
   <thead>
     <tr>
@@ -1685,7 +1690,7 @@ keytool -keystore gateway.jks -storepass
 </table>
 <h4><a id="Self-signed+cert+creation">Self-signed cert creation</a> <a href="#Self-signed+cert+creation"><img src="markbook-section-link.png"/></a></h4>
 <h5><a id="`bin/knoxcli.sh+create-cert+[--hostname+n]+[--help]`"><code>bin/knoxcli.sh create-cert [--hostname n] [--help]</code></a> <a href="#`bin/knoxcli.sh+create-cert+[--hostname+n]+[--help]`"><img src="markbook-section-link.png"/></a></h5>
-<p>Creates and stores a self-signed certificate to represent the identity of the gateway instance. This is stored within the <code>{GATEWAY_HOME}/data/security/keystores/gateway.jks</code> keystore. </p>
+<p>Creates and stores a self-signed certificate to represent the identity of the gateway instance. This is stored within the <code>{GATEWAY_HOME}/data/security/keystores/gateway.jks</code> keystore.</p>
 <table>
   <thead>
     <tr>
@@ -1765,7 +1770,7 @@ keytool -keystore gateway.jks -storepass
 </table>
 <h4><a id="Topology+LDAP+Bind">Topology LDAP Bind</a> <a href="#Topology+LDAP+Bind"><img src="markbook-section-link.png"/></a></h4>
 <h5><a id="`bin/knoxcli.sh+system-user-auth-test+[--cluster+c]+[--d]+[--help]`"><code>bin/knoxcli.sh system-user-auth-test [--cluster c] [--d] [--help]</code></a> <a href="#`bin/knoxcli.sh+system-user-auth-test+[--cluster+c]+[--d]+[--help]`"><img src="markbook-section-link.png"/></a></h5>
-<p>This command will test a given topology&rsquo;s ability to connect, bind, and authenticate with the LDAP server from the settings specified in the topology file. The bind currently only will with Shiro as the authentication provider. There are also two parameters required inside of the topology for these </p>
+<p>This command will test a given topology&rsquo;s ability to connect, bind, and authenticate with the LDAP server from the settings specified in the topology file. The bind currently only will with Shiro as the authentication provider. There are also two parameters required inside of the topology for these</p>
 <table>
   <thead>
     <tr>
@@ -2594,7 +2599,7 @@ ldapRealm.userDnTemplate=uid={0},ou=peop
 <ol>
   <li><strong>main.ldapRealm.contextFactory.url</strong> must be changed to have the <code>ldaps</code> protocol scheme and the port must be the SSL listener port on your LDAP server.</li>
   <li>Identity certificate (keypair) provisioned to LDAP server - your LDAP server specific documentation should indicate what is required for providing a cert or keypair to represent the LDAP server identity to connecting clients.</li>
-  <li>Trusting the LDAP Server&rsquo;s public key - if the LDAP Server&rsquo;s identity certificate is issued by a well known and trusted certificate authority and is already represented in the JRE&rsquo;s cacerts truststore then you don&rsquo;t need to do anything for trusting the LDAP server&rsquo;s cert. If, however, the cert is self-signed or issued by an untrusted authority you will need to either add it to the cacerts keystore or to another truststore that you may direct Knox to utilize through a system property.</li>
+  <li>Trusting the LDAP Server&rsquo;s public key - if the LDAP Server&rsquo;s identity certificate is issued by a well known and trusted certificate authority and is already represented in the JRE&rsquo;s cacerts truststore then you don&rsquo;t need to do anything for trusting the LDAP server&rsquo;s cert. If, however, the cert is self-signed or issued by an untrusted authority you will need to either add it to the cacerts keystore or to another truststore that you may direct Knox to utilize through a system property (<code>javax.net.ssl.trustStore</code> and <code>javax.net.ssl.trustStorePassword</code>).</li>
 </ol>
 <h4><a id="Session+Configuration">Session Configuration</a> <a href="#Session+Configuration"><img src="markbook-section-link.png"/></a></h4>
 <p>Knox maps each cluster topology to a web application and leverages standard JavaEE session management.</p>
@@ -5757,10 +5762,10 @@ dep/commons-codec-1.7.jar
   <li><a href="#Yarn">Yarn</a></li>
   <li><a href="#Kafka">Kafka</a></li>
   <li><a href="#Storm">Storm</a></li>
-  <li><a href="#SOLR">SOLR</a></li>
+  <li><a href="#Solr">Solr</a></li>
   <li><a href="#Avatica">Avatica</a></li>
   <li><a href="#Livy+Server">Livy Server</a></li>
-  <li><a href="#ElasticSearch">ElasticSearch</a></li>
+  <li><a href="#Elasticsearch">Elasticsearch</a></li>
 </ul>
 <h3><a id="Assumptions">Assumptions</a> <a href="#Assumptions"><img src="markbook-section-link.png"/></a></h3>
 <p>This document assumes a few things about your environment in order to simplify the examples.</p>
@@ -7725,6 +7730,13 @@ SolrJ API at this time.</p>
 &lt;/service&gt;
 </code></pre>
 <p>The default Solr port is 8983. Adjust the version specified to either &rsquo;5.5.0 or &lsquo;6.0.0&rsquo;.</p>
+<p>For Solr 5.5.0 you also need to change the role name to <code>SOLRAPI</code> like this:</p>
+<pre><code>&lt;service&gt;
+    &lt;role&gt;SOLRAPI&lt;/role&gt;
+    &lt;version&gt;5.5.0&lt;/version&gt;
+    &lt;url&gt;http://&lt;solr-host&gt;:&lt;solr-port&gt;&lt;/url&gt;
+&lt;/service&gt;
+</code></pre>
 <h4><a id="Solr+URL+Mapping">Solr URL Mapping</a> <a href="#Solr+URL+Mapping"><img src="markbook-section-link.png"/></a></h4>
 <p>For Solr URLs, the mapping of Knox Gateway accessible URLs to direct Solr URLs is the following.</p>
 <table>
@@ -7966,10 +7978,10 @@ DriverManager.getConnection(url, props);
 } 
 </code></pre>
 <p>The above is an example request body to be used to create a Spark session via Livy server and illustrates the &ldquo;proxyUser&rdquo; that requires rewrite.</p>
-<h3><a id="ElasticSearch">ElasticSearch</a> <a href="#ElasticSearch"><img src="markbook-section-link.png"/></a></h3>
-<p>ElasticSearch provides a REST API for communicating with ElasticSearch via JSON over HTTP. ElasticSearch uses X-Pack to do its own security (authentication and authorization). Therefore, the Knox Gateway is to forward the user credentials to ElasticSearch, and treats the ElasticSearch-authenticated user as &ldquo;anonymous&rdquo; to the backend service via a doas query param while Knox will authenticate to backend services as itself.</p>
+<h3><a id="Elasticsearch">Elasticsearch</a> <a href="#Elasticsearch"><img src="markbook-section-link.png"/></a></h3>
+<p>Elasticsearch provides a REST API for communicating with Elasticsearch via JSON over HTTP. Elasticsearch uses X-Pack to do its own security (authentication and authorization). Therefore, the Knox Gateway is to forward the user credentials to Elasticsearch, and treats the Elasticsearch-authenticated user as &ldquo;anonymous&rdquo; to the backend service via a doas query param while Knox will authenticate to backend services as itself.</p>
 <h4><a id="Gateway+configuration">Gateway configuration</a> <a href="#Gateway+configuration"><img src="markbook-section-link.png"/></a></h4>
-<p>The Gateway can be configured for ElasticSearch by modifying the topology XML file and providing a new service XML file.</p>
+<p>The Gateway can be configured for Elasticsearch by modifying the topology XML file and providing a new service XML file.</p>
 <p>In the topology XML file, add the following new service named &ldquo;ELASTICSEARCH&rdquo; with the correct elasticsearch-rest-server hostname and port number (e.g., 9200):</p>
 <pre><code> &lt;service&gt;
    &lt;role&gt;ELASTICSEARCH&lt;/role&gt;
@@ -7977,16 +7989,16 @@ DriverManager.getConnection(url, props);
    &lt;name&gt;elasticsearch&lt;/name&gt;
  &lt;/service&gt;
 </code></pre>
-<h4><a id="ElasticSearch+via+Knox+Gateway">ElasticSearch via Knox Gateway</a> <a href="#ElasticSearch+via+Knox+Gateway"><img src="markbook-section-link.png"/></a></h4>
+<h4><a id="Elasticsearch+via+Knox+Gateway">Elasticsearch via Knox Gateway</a> <a href="#Elasticsearch+via+Knox+Gateway"><img src="markbook-section-link.png"/></a></h4>
 <p>After adding the above to a topology, you can make a cURL request similar to the following structures:</p>
-<h5><a id="1.++ElasticSearch+Node+Root+Query">1. ElasticSearch Node Root Query</a> <a href="#1.++ElasticSearch+Node+Root+Query"><img src="markbook-section-link.png"/></a></h5>
+<h5><a id="1.++Elasticsearch+Node+Root+Query">1. Elasticsearch Node Root Query</a> <a href="#1.++Elasticsearch+Node+Root+Query"><img src="markbook-section-link.png"/></a></h5>
 <pre><code>curl -i -k -u username:password -H &quot;Accept: application/json&quot;  -X GET  &quot;https://{gateway-hostname}:{gateway-port}/gateway/{topology-name}/elasticsearch&quot;
 
 or
 
 curl -i -k -u username:password -H &quot;Accept: application/json&quot;  -X GET  &quot;https://{gateway-hostname}:{gateway-port}/gateway/{topology-name}/elasticsearch/&quot;
 </code></pre>
-<p>The quotation marks around the URL, can be single quotes or double quotes on both sides, and can also be omitted (Note: This is true for all other ElasticSearch queries via Knox). Below is an example response:</p>
+<p>The quotation marks around the URL, can be single quotes or double quotes on both sides, and can also be omitted (Note: This is true for all other Elasticsearch queries via Knox). Below is an example response:</p>
 <pre><code> HTTP/1.1 200 OK
  Date: Wed, 23 May 2018 16:36:34 GMT
  Content-Type: application/json; charset=UTF-8
@@ -7995,7 +8007,7 @@ curl -i -k -u username:password -H &quot
 
  {&quot;name&quot;:&quot;w0A80p0&quot;,&quot;cluster_name&quot;:&quot;elasticsearch&quot;,&quot;cluster_uuid&quot;:&quot;poU7j48pSpu5qQONr64HLQ&quot;,&quot;version&quot;:{&quot;number&quot;:&quot;6.2.4&quot;,&quot;build_hash&quot;:&quot;ccec39f&quot;,&quot;build_date&quot;:&quot;2018-04-12T20:37:28.497551Z&quot;,&quot;build_snapshot&quot;:false,&quot;lucene_version&quot;:&quot;7.2.1&quot;,&quot;minimum_wire_compatibility_version&quot;:&quot;5.6.0&quot;,&quot;minimum_index_compatibility_version&quot;:&quot;5.0.0&quot;},&quot;tagline&quot;:&quot;You Know, for Search&quot;}
 </code></pre>
-<h5><a id="2.++ElasticSearch+Index+-+Creation,+Deletion,+Refreshing+and+Data+Operations+-+Writing,+Updating+and+Retrieval">2. ElasticSearch Index - Creation, Deletion, Refreshing and Data Operations - Writing, Updating and Retrieval</a> <a href="#2.++ElasticSearch+Index+-+Creation,+Deletion,+Refreshing+and+Data+Operations+-+Writing,+Updating+and+Retrieval"><img src="markbook-section-link.png"/></a></h5>
+<h5><a id="2.++Elasticsearch+Index+-+Creation,+Deletion,+Refreshing+and+Data+Operations+-+Writing,+Updating+and+Retrieval">2. Elasticsearch Index - Creation, Deletion, Refreshing and Data Operations - Writing, Updating and Retrieval</a> <a href="#2.++Elasticsearch+Index+-+Creation,+Deletion,+Refreshing+and+Data+Operations+-+Writing,+Updating+and+Retrieval"><img src="markbook-section-link.png"/></a></h5>
 <h6><a id="(1)+Index+Creation">(1) Index Creation</a> <a href="#(1)+Index+Creation"><img src="markbook-section-link.png"/></a></h6>
 <pre><code>curl -i -k -u username:password -H &quot;Content-Type: application/json&quot;  -X PUT  &quot;https://{gateway-hostname}:{gateway-port}/gateway/{topology-name}/elasticsearch/{index-name}&quot;  -d &#39;{
 &quot;settings&quot; : {
@@ -8084,16 +8096,16 @@ curl -i -k -u username:password -H &quot
  {&quot;acknowledged&quot;:true}
 </code></pre>
 <h3><a id="Service+Test+API">Service Test API</a> <a href="#Service+Test+API"><img src="markbook-section-link.png"/></a></h3>
-<p>The gateway supports a Service Test API that can be used to test Knox&rsquo;s ability to connect to each of the different Hadoop services via a simple HTTP GET request. To be able to access this API, one must add the following line into the topology for which you wish to run the service test.</p>
+<p>The gateway supports a Service Test API that can be used to test Knox&rsquo;s ability to connect to each of the different Hadoop services via a simple HTTP GET request. To be able to access this API, one must add the following lines into the topology for which you wish to run the service test.</p>
 <pre><code>&lt;service&gt;
   &lt;role&gt;SERVICE-TEST&lt;/role&gt;
 &lt;/service&gt;
 </code></pre>
 <p>After adding the above to a topology, you can make a cURL request with the following structure</p>
-<pre><code>curl -i -k &quot;https://{gateway-hostname}:{gateway-port}/gateway/path/{topology-name}/service-test?username=guest&amp;password=guest-password&quot;
+<pre><code>curl -i -k &quot;https://{gateway-hostname}:{gateway-port}/gateway/{topology-name}/service-test?username=guest&amp;password=guest-password&quot;
 </code></pre>
 <p>An alternate method of providing credentials:</p>
-<pre><code>curl -i -k -u guest:guest-password https://{gateway-hostname}:{gateway-port}/gateway/path/{topology-name}/service-test
+<pre><code>curl -i -k -u guest:guest-password https://{gateway-hostname}:{gateway-port}/gateway/{topology-name}/service-test
 </code></pre>
 <p>Below is an example response. The gateway is also capable of returning XML if specified in the request&rsquo;s &ldquo;Accept&rdquo; HTTP header.</p>
 <pre><code>{

Modified: knox/site/index.html
URL: http://svn.apache.org/viewvc/knox/site/index.html?rev=1848343&r1=1848342&r2=1848343&view=diff
==============================================================================
--- knox/site/index.html (original)
+++ knox/site/index.html Thu Dec  6 17:17:03 2018
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia Site Renderer 1.8.1 from src/site/markdown/index.md at 2018-11-16
+ | Generated by Apache Maven Doxia Site Renderer 1.8.1 from src/site/markdown/index.md at 2018-12-06
  | Rendered using Apache Maven Fluido Skin 1.7
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20181116" />
+    <meta name="Date-Revision-yyyymmdd" content="20181206" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Knox Gateway &#x2013; Announcing Apache Knox 1.1.0!</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.7.min.css" />
@@ -40,7 +40,7 @@
 
       <div id="breadcrumbs">
         <ul class="breadcrumb">
-        <li id="publishDate">Last Published: 2018-11-16</li>
+        <li id="publishDate">Last Published: 2018-12-06</li>
         </ul>
       </div>
       <div class="row-fluid">

Modified: knox/site/issue-management.html
URL: http://svn.apache.org/viewvc/knox/site/issue-management.html?rev=1848343&r1=1848342&r2=1848343&view=diff
==============================================================================
--- knox/site/issue-management.html (original)
+++ knox/site/issue-management.html Thu Dec  6 17:17:03 2018
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia Site Renderer 1.8.1 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.0.0:issue-management at 2018-11-16
+ | Generated by Apache Maven Doxia Site Renderer 1.8.1 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.0.0:issue-management at 2018-12-06
  | Rendered using Apache Maven Fluido Skin 1.7
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20181116" />
+    <meta name="Date-Revision-yyyymmdd" content="20181206" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Knox Gateway &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.7.min.css" />
@@ -40,7 +40,7 @@
 
       <div id="breadcrumbs">
         <ul class="breadcrumb">
-        <li id="publishDate">Last Published: 2018-11-16</li>
+        <li id="publishDate">Last Published: 2018-12-06</li>
         </ul>
       </div>
       <div class="row-fluid">

Modified: knox/site/licenses.html
URL: http://svn.apache.org/viewvc/knox/site/licenses.html?rev=1848343&r1=1848342&r2=1848343&view=diff
==============================================================================
--- knox/site/licenses.html (original)
+++ knox/site/licenses.html Thu Dec  6 17:17:03 2018
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia Site Renderer 1.8.1 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.0.0:licenses at 2018-11-16
+ | Generated by Apache Maven Doxia Site Renderer 1.8.1 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.0.0:licenses at 2018-12-06
  | Rendered using Apache Maven Fluido Skin 1.7
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20181116" />
+    <meta name="Date-Revision-yyyymmdd" content="20181206" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Knox Gateway &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.7.min.css" />
@@ -40,7 +40,7 @@
 
       <div id="breadcrumbs">
         <ul class="breadcrumb">
-        <li id="publishDate">Last Published: 2018-11-16</li>
+        <li id="publishDate">Last Published: 2018-12-06</li>
         </ul>
       </div>
       <div class="row-fluid">

Modified: knox/site/mailing-lists.html
URL: http://svn.apache.org/viewvc/knox/site/mailing-lists.html?rev=1848343&r1=1848342&r2=1848343&view=diff
==============================================================================
--- knox/site/mailing-lists.html (original)
+++ knox/site/mailing-lists.html Thu Dec  6 17:17:03 2018
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia Site Renderer 1.8.1 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.0.0:mailing-lists at 2018-11-16
+ | Generated by Apache Maven Doxia Site Renderer 1.8.1 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.0.0:mailing-lists at 2018-12-06
  | Rendered using Apache Maven Fluido Skin 1.7
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20181116" />
+    <meta name="Date-Revision-yyyymmdd" content="20181206" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Knox Gateway &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.7.min.css" />
@@ -40,7 +40,7 @@
 
       <div id="breadcrumbs">
         <ul class="breadcrumb">
-        <li id="publishDate">Last Published: 2018-11-16</li>
+        <li id="publishDate">Last Published: 2018-12-06</li>
         </ul>
       </div>
       <div class="row-fluid">

Modified: knox/site/project-info.html
URL: http://svn.apache.org/viewvc/knox/site/project-info.html?rev=1848343&r1=1848342&r2=1848343&view=diff
==============================================================================
--- knox/site/project-info.html (original)
+++ knox/site/project-info.html Thu Dec  6 17:17:03 2018
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia Site Renderer 1.8.1 from org.apache.maven.plugins:maven-site-plugin:3.7.1:CategorySummaryDocumentRenderer at 2018-11-16
+ | Generated by Apache Maven Doxia Site Renderer 1.8.1 from org.apache.maven.plugins:maven-site-plugin:3.7.1:CategorySummaryDocumentRenderer at 2018-12-06
  | Rendered using Apache Maven Fluido Skin 1.7
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20181116" />
+    <meta name="Date-Revision-yyyymmdd" content="20181206" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Knox Gateway &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.7.min.css" />
@@ -40,7 +40,7 @@
 
       <div id="breadcrumbs">
         <ul class="breadcrumb">
-        <li id="publishDate">Last Published: 2018-11-16</li>
+        <li id="publishDate">Last Published: 2018-12-06</li>
         </ul>
       </div>
       <div class="row-fluid">

Modified: knox/site/team.html
URL: http://svn.apache.org/viewvc/knox/site/team.html?rev=1848343&r1=1848342&r2=1848343&view=diff
==============================================================================
--- knox/site/team.html (original)
+++ knox/site/team.html Thu Dec  6 17:17:03 2018
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia Site Renderer 1.8.1 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.0.0:team at 2018-11-16
+ | Generated by Apache Maven Doxia Site Renderer 1.8.1 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.0.0:team at 2018-12-06
  | Rendered using Apache Maven Fluido Skin 1.7
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20181116" />
+    <meta name="Date-Revision-yyyymmdd" content="20181206" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Knox Gateway &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.7.min.css" />
@@ -40,7 +40,7 @@
 
       <div id="breadcrumbs">
         <ul class="breadcrumb">
-        <li id="publishDate">Last Published: 2018-11-16</li>
+        <li id="publishDate">Last Published: 2018-12-06</li>
         </ul>
       </div>
       <div class="row-fluid">

Modified: knox/trunk/books/1.2.0/book.md
URL: http://svn.apache.org/viewvc/knox/trunk/books/1.2.0/book.md?rev=1848343&r1=1848342&r2=1848343&view=diff
==============================================================================
--- knox/trunk/books/1.2.0/book.md (original)
+++ knox/trunk/books/1.2.0/book.md Thu Dec  6 17:17:03 2018
@@ -96,10 +96,10 @@
     * #[Yarn]
     * #[Kafka]
     * #[Storm]
-    * #[SOLR]
+    * #[Solr]
     * #[Avatica]
     * #[Livy Server]
-    * #[ElasticSearch]
+    * #[Elasticsearch]
     * #[Common Service Config]
     * #[Default Service HA support]
 * #[UI Service Details]

Modified: knox/trunk/books/1.2.0/book_gateway-details.md
URL: http://svn.apache.org/viewvc/knox/trunk/books/1.2.0/book_gateway-details.md?rev=1848343&r1=1848342&r2=1848343&view=diff
==============================================================================
--- knox/trunk/books/1.2.0/book_gateway-details.md (original)
+++ knox/trunk/books/1.2.0/book_gateway-details.md Thu Dec  6 17:17:03 2018
@@ -17,7 +17,7 @@
 
 ## Gateway Details ##
 
-This section describes the details of the Knox Gateway itself. Including: 
+This section describes the details of the Knox Gateway itself. Including:
 
 * How URLs are mapped between a gateway that services multiple Hadoop clusters and the clusters themselves
 * How the gateway is configured through `gateway-site.xml` and cluster specific topology files
@@ -35,9 +35,10 @@ When a topology file is deployed with a
 
 The configuration for the default topology name is found in `gateway-site.xml` as a property called: `default.app.topology.name`.
 
-The default value for this property is `sandbox`.
+The default value for this property is empty.
 
-Therefore, when deploying the `sandbox.xml` topology, both of the following example URLs work for the same underlying Hadoop cluster:
+
+When deploying the `sandbox.xml` topology and setting `default.app.topology.name` to `sandbox`, both of the following example URLs work for the same underlying Hadoop cluster:
 
     https://{gateway-host}:{gateway-port}/webhdfs
     https://{gateway-host}:{gateway-port}/{gateway-path}/{cluster-name}/webhdfs
@@ -76,7 +77,7 @@ Note: The ports 50070 (9870 for Hadoop 3
 Their values can also be provided via the cluster topology descriptor if your Hadoop cluster uses different ports.
 
 Note: The HBase REST API uses port 8080 by default. This often clashes with other running services.
-In the Hortonworks Sandbox, Apache Ambari might be running on this port, so you might have to change it to a different port (e.g. 60080). 
+In the Hortonworks Sandbox, Apache Ambari might be running on this port, so you might have to change it to a different port (e.g. 60080).
 
 <<book_topology_port_mapping.md>>
 <<config.md>>

Modified: knox/trunk/books/1.2.0/book_getting-started.md
URL: http://svn.apache.org/viewvc/knox/trunk/books/1.2.0/book_getting-started.md?rev=1848343&r1=1848342&r2=1848343&view=diff
==============================================================================
--- knox/trunk/books/1.2.0/book_getting-started.md (original)
+++ knox/trunk/books/1.2.0/book_getting-started.md Thu Dec  6 17:17:03 2018
@@ -79,7 +79,7 @@ This table enumerates the versions of va
 | Yarn ResourceManager   | 2.5.0       | ![y]        | ![y]   |![n]|
 | Kafka (via REST Proxy) | 0.10.0      | ![y]        | ![y]   |![y]|
 | Storm                  | 0.9.3       | ![y]        | ![n]   |![n]|
-| SOLR                   | 5.5+ and 6+ | ![y]        | ![n]   |![y]|
+| Solr                   | 5.5+ and 6+ | ![y]        | ![y]   |![y]|
 
 
 ### More Examples ###

Modified: knox/trunk/books/1.2.0/book_service-details.md
URL: http://svn.apache.org/viewvc/knox/trunk/books/1.2.0/book_service-details.md?rev=1848343&r1=1848342&r2=1848343&view=diff
==============================================================================
--- knox/trunk/books/1.2.0/book_service-details.md (original)
+++ knox/trunk/books/1.2.0/book_service-details.md Thu Dec  6 17:17:03 2018
@@ -37,10 +37,10 @@ These are the current Hadoop services wi
 * #[Yarn]
 * #[Kafka]
 * #[Storm]
-* #[SOLR]
+* #[Solr]
 * #[Avatica]
 * #[Livy Server]
-* #[ElasticSearch]
+* #[Elasticsearch]
 
 ### Assumptions
 
@@ -94,214 +94,4 @@ Therefore each request via cURL will res
 <<service_avatica.md>>
 <<service_livy.md>>
 <<service_elasticsearch.md>>
-
-### Service Test API
-
-The gateway supports a Service Test API that can be used to test Knox's ability to connect to each of the different Hadoop services via a simple HTTP GET request. To be able to access this API, one must add the following line into the topology for which you wish to run the service test.
-
-    <service>
-      <role>SERVICE-TEST</role>
-    </service>
-
-After adding the above to a topology, you can make a cURL request with the following structure
-
-    curl -i -k "https://{gateway-hostname}:{gateway-port}/gateway/path/{topology-name}/service-test?username=guest&password=guest-password"
-
-An alternate method of providing credentials:
-
-    curl -i -k -u guest:guest-password https://{gateway-hostname}:{gateway-port}/gateway/path/{topology-name}/service-test
-
-Below is an example response. The gateway is also capable of returning XML if specified in the request's "Accept" HTTP header.
-
-    {
-        "serviceTestWrapper": {
-         "Tests": {
-          "ServiceTest": [
-           {
-            "serviceName": "WEBHDFS",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/webhdfs/v1/?op=LISTSTATUS",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           },
-           {
-            "serviceName": "WEBHCAT",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/templeton/v1/status",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           },
-           {
-            "serviceName": "WEBHCAT",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/templeton/v1/version",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           },
-           {
-            "serviceName": "WEBHCAT",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/templeton/v1/version/hive",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           },
-           {
-            "serviceName": "WEBHCAT",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/templeton/v1/version/hadoop",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           },
-           {
-            "serviceName": "OOZIE",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/oozie/v1/admin/build-version",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           },
-           {
-            "serviceName": "OOZIE",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/oozie/v1/admin/status",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           },
-           {
-            "serviceName": "OOZIE",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/oozie/versions",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           },
-           {
-            "serviceName": "WEBHBASE",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/hbase/version",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           },
-           {
-            "serviceName": "WEBHBASE",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/hbase/version/cluster",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           },
-           {
-            "serviceName": "WEBHBASE",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/hbase/status/cluster",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           },
-           {
-            "serviceName": "WEBHBASE",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/hbase",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           },
-           {
-            "serviceName": "RESOURCEMANAGER",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/resourcemanager/v1/{topology-name}/info",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           },
-           {
-            "serviceName": "RESOURCEMANAGER",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/resourcemanager/v1/{topology-name}/metrics",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           },
-           {
-            "serviceName": "RESOURCEMANAGER",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/resourcemanager/v1/{topology-name}/apps",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           },
-           {
-            "serviceName": "FALCON",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/falcon/api/admin/stack",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           },
-           {
-            "serviceName": "FALCON",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/falcon/api/admin/version",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           },
-           {
-            "serviceName": "FALCON",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/falcon/api/metadata/lineage/serialize",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           },
-           {
-            "serviceName": "FALCON",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/falcon/api/metadata/lineage/vertices/all",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           },
-           {
-            "serviceName": "FALCON",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/falcon/api/metadata/lineage/edges/all",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           },
-           {
-            "serviceName": "STORM",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/storm/api/v1/cluster/configuration",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           },
-           {
-            "serviceName": "STORM",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/storm/api/v1/cluster/summary",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           },
-           {
-            "serviceName": "STORM",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/storm/api/v1/supervisor/summary",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           },
-           {
-            "serviceName": "STORM",
-            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/storm/api/v1/topology/summary",
-            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-            "httpCode": 200,
-            "message": "Request sucessful."
-           }
-          ]
-         },
-         "messages": {
-          "message": [
-
-          ]
-         }
-        }
-    }
-
-
-We can see that this service-test makes HTTP requests to each of the services through Knox using the specified topology. The test will only make calls to those services that have entries within the topology file.
-
-##### Adding and Changing test URLs
-
-URLs for each service are stored in `{GATEWAY_HOME}/data/services/{service-name}/{service-version}/service.xml`. Each `<testURL>` element represents a service resource that will be tested if the service is set up in the topology. You can add or remove these from the `service.xml` file. Just note if you add URLs there is no guarantee in the order they will be tested. All default URLs have been tested and work on various clusters. If a new URL is added and doesn't respond in a way the user expects then it is up to the user to determine whether the URL is correct or not.
-
-##### Some important things to note:
- - In the first cURL request, the quotes are necessary around the URL or else a command line terminal will not include the `&password` query parameter in the request.
- - This API call does not require any credentials to receive a response from Knox, but expect to receive 401 responses from each of the services if none are provided.
+<<service_service_test.md>>

Modified: knox/trunk/books/1.2.0/config_authn.md
URL: http://svn.apache.org/viewvc/knox/trunk/books/1.2.0/config_authn.md?rev=1848343&r1=1848342&r2=1848343&view=diff
==============================================================================
--- knox/trunk/books/1.2.0/config_authn.md (original)
+++ knox/trunk/books/1.2.0/config_authn.md Thu Dec  6 17:17:03 2018
@@ -128,7 +128,7 @@ In order to communicate with your LDAP s
 
 1. **main.ldapRealm.contextFactory.url** must be changed to have the `ldaps` protocol scheme and the port must be the SSL listener port on your LDAP server.
 2. Identity certificate (keypair) provisioned to LDAP server - your LDAP server specific documentation should indicate what is required for providing a cert or keypair to represent the LDAP server identity to connecting clients.
-3. Trusting the LDAP Server's public key - if the LDAP Server's identity certificate is issued by a well known and trusted certificate authority and is already represented in the JRE's cacerts truststore then you don't need to do anything for trusting the LDAP server's cert. If, however, the cert is self-signed or issued by an untrusted authority you will need to either add it to the cacerts keystore or to another truststore that you may direct Knox to utilize through a system property.
+3. Trusting the LDAP Server's public key - if the LDAP Server's identity certificate is issued by a well known and trusted certificate authority and is already represented in the JRE's cacerts truststore then you don't need to do anything for trusting the LDAP server's cert. If, however, the cert is self-signed or issued by an untrusted authority you will need to either add it to the cacerts keystore or to another truststore that you may direct Knox to utilize through a system property (`javax.net.ssl.trustStore` and `javax.net.ssl.trustStorePassword`).
 
 #### Session Configuration ####
 

Modified: knox/trunk/books/1.2.0/dev-guide/book.md
URL: http://svn.apache.org/viewvc/knox/trunk/books/1.2.0/dev-guide/book.md?rev=1848343&r1=1848342&r2=1848343&view=diff
==============================================================================
--- knox/trunk/books/1.2.0/dev-guide/book.md (original)
+++ knox/trunk/books/1.2.0/dev-guide/book.md Thu Dec  6 17:17:03 2018
@@ -1167,7 +1167,7 @@ If this configuration exists, Knox will
 
 **Example**
 
-If Apache SOLR weren't supported, then it could be added by creating the following definition in
+If Apache Solr weren't supported, then it could be added by creating the following definition in
 **_{GATEWAY_HOME}_/conf/ambari-discovery-url-mappings.xml** :
 
     <?xml version="1.0" encoding="utf-8"?>

Modified: knox/trunk/books/1.2.0/knox_cli.md
URL: http://svn.apache.org/viewvc/knox/trunk/books/1.2.0/knox_cli.md?rev=1848343&r1=1848342&r2=1848343&view=diff
==============================================================================
--- knox/trunk/books/1.2.0/knox_cli.md (original)
+++ knox/trunk/books/1.2.0/knox_cli.md Thu Dec  6 17:17:03 2018
@@ -31,18 +31,30 @@ prints help for all commands
 Displays Knox version information.
 
 #### Master secret persistence ####
-##### `bin/knoxcli.sh create-master [--force][--help]` #####
-Creates and persists an encrypted master secret in a file within `{GATEWAY_HOME}/data/security/master`. 
+##### `bin/knoxcli.sh create-master [--force] [--master mastersecret] [--generate]` #####
+The create-master command persists the master secret in a file located at: `{GATEWAY_HOME}/data/security/master`.
+
+It will prompt the user for the secret to persist.
+
+Use `--force` to overwrite the master secret.
+
+Use `--master` to pass in a master secret to persist. This can be used to persist the secret without any user interaction. Be careful as the secret might appear in shell histories or process listings.<br/>
+Instead of `--master` it is usually a better idea to use `--generate` instead!
+
+Use `--generate` to have Knox automatically generate a random secret.
+The generated secret will not be printed or otherwise exposed.
+
+Do not specify both `--master` and `--generate` at the same time.
 
 NOTE: This command fails when there is an existing master file in the expected location. You may force it to overwrite the master file with the \-\-force switch. NOTE: this will require you to change passwords protecting the keystores for the gateway identity keystores and all credential stores.
 
 #### Alias creation ####
 ##### `bin/knoxcli.sh create-alias name [--cluster c] [--value v] [--generate] [--help]` #####
-Creates a password alias and stores it in a credential store within the `{GATEWAY_HOME}/data/security/keystores` dir. 
+Creates a password alias and stores it in a credential store within the `{GATEWAY_HOME}/data/security/keystores` dir.
 
 Argument     | Description
 -------------|-----------
-name         | Name of the alias to create  
+name         | Name of the alias to create
 \-\-cluster  | Name of Hadoop cluster for the cluster specific credential store otherwise assumes that it is for the gateway itself
 \-\-value    | Parameter for specifying the actual password otherwise prompted. Escape complex passwords or surround with single quotes
 \-\-generate | Boolean flag to indicate whether the tool should just generate the value. This assumes that \-\-value is not set - will result in error otherwise. User will not be prompted for the value when \-\-generate is set.
@@ -53,7 +65,7 @@ Deletes a password and alias mapping fro
 
 Argument    | Description
 ------------|-----------
-name        | Name of the alias to delete  
+name        | Name of the alias to delete
 \-\-cluster | Name of Hadoop cluster for the cluster specific credential store otherwise assumes '__gateway'
 
 #### Alias listing ####
@@ -68,7 +80,7 @@ Argument    | Description
 
 #### Self-signed cert creation ####
 ##### `bin/knoxcli.sh create-cert [--hostname n] [--help]` #####
-Creates and stores a self-signed certificate to represent the identity of the gateway instance. This is stored within the `{GATEWAY_HOME}/data/security/keystores/gateway.jks` keystore.  
+Creates and stores a self-signed certificate to represent the identity of the gateway instance. This is stored within the `{GATEWAY_HOME}/data/security/keystores/gateway.jks` keystore.
 
 Argument     | Description
 -------------|-----------
@@ -76,7 +88,7 @@ Argument     | Description
 
 #### Certificate Export ####
 ##### `bin/knoxcli.sh export-cert [--type JKS|PEM] [--help]` #####
-Exports and stores the gateway-identity certificate as the type indicated or PEM by default. This is stored within the `{GATEWAY_HOME}/data/security/keystores/` directory as either `gateway-identity.pem` or `gateway-client-trust.jks` depending on the type specified.  
+Exports and stores the gateway-identity certificate as the type indicated or PEM by default. This is stored within the `{GATEWAY_HOME}/data/security/keystores/` directory as either `gateway-identity.pem` or `gateway-client-trust.jks` depending on the type specified. 
 
 #### Topology Redeploy ####
 ##### `bin/knoxcli.sh redeploy [--cluster c]` #####
@@ -109,7 +121,7 @@ Argument    | Description
 
 #### Topology LDAP Bind ####
 ##### `bin/knoxcli.sh system-user-auth-test [--cluster c] [--d] [--help]` ####
-This command will test a given topology's ability to connect, bind, and authenticate with the LDAP server from the settings specified in the topology file. The bind currently only will with Shiro as the authentication provider. There are also two parameters required inside of the topology for these  
+This command will test a given topology's ability to connect, bind, and authenticate with the LDAP server from the settings specified in the topology file. The bind currently only will with Shiro as the authentication provider. There are also two parameters required inside of the topology for these
 
 Argument    | Description
 ------------|-----------

Modified: knox/trunk/books/1.2.0/service_elasticsearch.md
URL: http://svn.apache.org/viewvc/knox/trunk/books/1.2.0/service_elasticsearch.md?rev=1848343&r1=1848342&r2=1848343&view=diff
==============================================================================
--- knox/trunk/books/1.2.0/service_elasticsearch.md (original)
+++ knox/trunk/books/1.2.0/service_elasticsearch.md Thu Dec  6 17:17:03 2018
@@ -15,13 +15,13 @@
    limitations under the License.
 --->
 
-### ElasticSearch ###
+### Elasticsearch ###
 
-ElasticSearch provides a REST API for communicating with ElasticSearch via JSON over HTTP. ElasticSearch uses X-Pack to do its own security (authentication and authorization). Therefore, the Knox Gateway is to forward the user credentials to ElasticSearch, and treats the ElasticSearch-authenticated user as "anonymous" to the backend service via a doas query param while Knox will authenticate to backend services as itself.
+Elasticsearch provides a REST API for communicating with Elasticsearch via JSON over HTTP. Elasticsearch uses X-Pack to do its own security (authentication and authorization). Therefore, the Knox Gateway is to forward the user credentials to Elasticsearch, and treats the Elasticsearch-authenticated user as "anonymous" to the backend service via a doas query param while Knox will authenticate to backend services as itself.
 
 #### Gateway configuration ####
 
-The Gateway can be configured for ElasticSearch by modifying the topology XML file and providing a new service XML file.
+The Gateway can be configured for Elasticsearch by modifying the topology XML file and providing a new service XML file.
 
 In the topology XML file, add the following new service named "ELASTICSEARCH" with the correct elasticsearch-rest-server hostname and port number (e.g., 9200):
 
@@ -31,11 +31,11 @@ In the topology XML file, add the follow
        <name>elasticsearch</name>
      </service>
 
-#### ElasticSearch via Knox Gateway ####
+#### Elasticsearch via Knox Gateway ####
 
 After adding the above to a topology, you can make a cURL request similar to the following structures:
 
-##### 1.  ElasticSearch Node Root Query #####
+##### 1.  Elasticsearch Node Root Query #####
 
     curl -i -k -u username:password -H "Accept: application/json"  -X GET  "https://{gateway-hostname}:{gateway-port}/gateway/{topology-name}/elasticsearch"
 
@@ -43,7 +43,7 @@ After adding the above to a topology, yo
 
     curl -i -k -u username:password -H "Accept: application/json"  -X GET  "https://{gateway-hostname}:{gateway-port}/gateway/{topology-name}/elasticsearch/"
 
-The quotation marks around the URL, can be single quotes or double quotes on both sides, and can also be omitted (Note: This is true for all other ElasticSearch queries via Knox). Below is an example response:
+The quotation marks around the URL, can be single quotes or double quotes on both sides, and can also be omitted (Note: This is true for all other Elasticsearch queries via Knox). Below is an example response:
 
      HTTP/1.1 200 OK
      Date: Wed, 23 May 2018 16:36:34 GMT
@@ -53,7 +53,7 @@ The quotation marks around the URL, can
      
      {"name":"w0A80p0","cluster_name":"elasticsearch","cluster_uuid":"poU7j48pSpu5qQONr64HLQ","version":{"number":"6.2.4","build_hash":"ccec39f","build_date":"2018-04-12T20:37:28.497551Z","build_snapshot":false,"lucene_version":"7.2.1","minimum_wire_compatibility_version":"5.6.0","minimum_index_compatibility_version":"5.0.0"},"tagline":"You Know, for Search"}
     
-##### 2.  ElasticSearch Index - Creation, Deletion, Refreshing and Data Operations - Writing, Updating and Retrieval #####
+##### 2.  Elasticsearch Index - Creation, Deletion, Refreshing and Data Operations - Writing, Updating and Retrieval #####
 
 ###### (1) Index Creation ######
 

Modified: knox/trunk/books/1.2.0/service_service_test.md
URL: http://svn.apache.org/viewvc/knox/trunk/books/1.2.0/service_service_test.md?rev=1848343&r1=1848342&r2=1848343&view=diff
==============================================================================
--- knox/trunk/books/1.2.0/service_service_test.md (original)
+++ knox/trunk/books/1.2.0/service_service_test.md Thu Dec  6 17:17:03 2018
@@ -15,207 +15,214 @@
    limitations under the License.
 --->
 
-### Service Test ###
 
-The gateway supports a Service Test API that can be used to test Knox's ability to connect to each of the different Hadoop services via a simple HTTP GET request. To be able to access this API one must add the following entry into the topology for which you wish to run the service test.
+### Service Test API
 
-	<service>
-		<role>SERVICE-TEST</role>
-	</service>
+The gateway supports a Service Test API that can be used to test Knox's ability to connect to each of the different Hadoop services via a simple HTTP GET request. To be able to access this API, one must add the following lines into the topology for which you wish to run the service test.
+
+    <service>
+      <role>SERVICE-TEST</role>
+    </service>
 
 After adding the above to a topology, you can make a cURL request with the following structure
 
-	curl -i -k -u guest:guest-password https://{gateway-host}:{gateway-port}/{gateway-path}/{topology-name}/service-test
+    curl -i -k "https://{gateway-hostname}:{gateway-port}/gateway/{topology-name}/service-test?username=guest&password=guest-password"
+
+An alternate method of providing credentials:
+
+    curl -i -k -u guest:guest-password https://{gateway-hostname}:{gateway-port}/gateway/{topology-name}/service-test
 
 Below is an example response. The gateway is also capable of returning XML if specified in the request's "Accept" HTTP header.
 
-	{
-	    "serviceTestWrapper": {
-		   "Tests": {
-			  "ServiceTest": [
-				 {
-					"serviceName": "WEBHDFS",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/webhdfs/v1/?op=LISTSTATUS",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 },
-				 {
-					"serviceName": "WEBHCAT",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/templeton/v1/status",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 },
-				 {
-					"serviceName": "WEBHCAT",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/templeton/v1/version",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 },
-				 {
-					"serviceName": "WEBHCAT",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/templeton/v1/version/hive",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 },
-				 {
-					"serviceName": "WEBHCAT",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/templeton/v1/version/hadoop",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 },
-				 {
-					"serviceName": "OOZIE",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/oozie/v1/admin/build-version",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 },
-				 {
-					"serviceName": "OOZIE",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/oozie/v1/admin/status",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 },
-				 {
-					"serviceName": "OOZIE",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/oozie/versions",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 },
-				 {
-					"serviceName": "WEBHBASE",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/hbase/version",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 },
-				 {
-					"serviceName": "WEBHBASE",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/hbase/version/cluster",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 },
-				 {
-					"serviceName": "WEBHBASE",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/hbase/status/cluster",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 },
-				 {
-					"serviceName": "WEBHBASE",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/hbase",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 },
-				 {
-					"serviceName": "RESOURCEMANAGER",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/resourcemanager/v1/{topology-name}/info",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 },
-				 {
-					"serviceName": "RESOURCEMANAGER",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/resourcemanager/v1/{topology-name}/metrics",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 },
-				 {
-					"serviceName": "RESOURCEMANAGER",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/resourcemanager/v1/{topology-name}/apps",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 },
-				 {
-					"serviceName": "FALCON",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/falcon/api/admin/stack",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 },
-				 {
-					"serviceName": "FALCON",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/falcon/api/admin/version",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 },
-				 {
-					"serviceName": "FALCON",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/falcon/api/metadata/lineage/serialize",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 },
-				 {
-					"serviceName": "FALCON",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/falcon/api/metadata/lineage/vertices/all",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 },
-				 {
-					"serviceName": "FALCON",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/falcon/api/metadata/lineage/edges/all",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 },
-				 {
-					"serviceName": "STORM",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/storm/api/v1/cluster/configuration",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 },
-				 {
-					"serviceName": "STORM",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/storm/api/v1/cluster/summary",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 },
-				 {
-					"serviceName": "STORM",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/storm/api/v1/supervisor/summary",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 },
-				 {
-					"serviceName": "STORM",
-					"requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/storm/api/v1/topology/summary",
-					"responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
-					"httpCode": 200,
-					"message": "Request sucessful."
-				 }
-			  ]
-		   },
-		   "messages": {
-			  "message": [
-			  ]
-		   }
-	    }
-	}
+    {
+        "serviceTestWrapper": {
+         "Tests": {
+          "ServiceTest": [
+           {
+            "serviceName": "WEBHDFS",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/webhdfs/v1/?op=LISTSTATUS",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           },
+           {
+            "serviceName": "WEBHCAT",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/templeton/v1/status",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           },
+           {
+            "serviceName": "WEBHCAT",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/templeton/v1/version",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           },
+           {
+            "serviceName": "WEBHCAT",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/templeton/v1/version/hive",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           },
+           {
+            "serviceName": "WEBHCAT",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/templeton/v1/version/hadoop",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           },
+           {
+            "serviceName": "OOZIE",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/oozie/v1/admin/build-version",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           },
+           {
+            "serviceName": "OOZIE",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/oozie/v1/admin/status",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           },
+           {
+            "serviceName": "OOZIE",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/oozie/versions",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           },
+           {
+            "serviceName": "WEBHBASE",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/hbase/version",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           },
+           {
+            "serviceName": "WEBHBASE",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/hbase/version/cluster",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           },
+           {
+            "serviceName": "WEBHBASE",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/hbase/status/cluster",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           },
+           {
+            "serviceName": "WEBHBASE",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/hbase",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           },
+           {
+            "serviceName": "RESOURCEMANAGER",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/resourcemanager/v1/{topology-name}/info",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           },
+           {
+            "serviceName": "RESOURCEMANAGER",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/resourcemanager/v1/{topology-name}/metrics",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           },
+           {
+            "serviceName": "RESOURCEMANAGER",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/resourcemanager/v1/{topology-name}/apps",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           },
+           {
+            "serviceName": "FALCON",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/falcon/api/admin/stack",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           },
+           {
+            "serviceName": "FALCON",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/falcon/api/admin/version",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           },
+           {
+            "serviceName": "FALCON",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/falcon/api/metadata/lineage/serialize",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           },
+           {
+            "serviceName": "FALCON",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/falcon/api/metadata/lineage/vertices/all",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           },
+           {
+            "serviceName": "FALCON",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/falcon/api/metadata/lineage/edges/all",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           },
+           {
+            "serviceName": "STORM",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/storm/api/v1/cluster/configuration",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           },
+           {
+            "serviceName": "STORM",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/storm/api/v1/cluster/summary",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           },
+           {
+            "serviceName": "STORM",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/storm/api/v1/supervisor/summary",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           },
+           {
+            "serviceName": "STORM",
+            "requestURL": "http://{gateway-host}:{gateway-port}/gateway/{topology-name}/storm/api/v1/topology/summary",
+            "responseContent": "Content-Length:0,Content-Type: application/json;charset=utf-8",
+            "httpCode": 200,
+            "message": "Request sucessful."
+           }
+          ]
+         },
+         "messages": {
+          "message": [
+
+          ]
+         }
+        }
+    }
 
 
 We can see that this service-test makes HTTP requests to each of the services through Knox using the specified topology. The test will only make calls to those services that have entries within the topology file.
 
 ##### Adding and Changing test URLs
 
-URLs for each service are stored in `{GATEWAY_HOME}/data/services/{service-name}/{service-version}/service.xml`. Each `<testURL>` element represents a service resource that will be tested if the service is set up in the topology. You can add or remove these from teh service.xml files. Just note if you add URL's there is no guarantee in the order they will be tested. All default URLs have been tested and work on various clusters. If a new URL is added and doesn't respond in a way the user expects then it is up to the user to determine whether the URL is correct or not.
+URLs for each service are stored in `{GATEWAY_HOME}/data/services/{service-name}/{service-version}/service.xml`. Each `<testURL>` element represents a service resource that will be tested if the service is set up in the topology. You can add or remove these from the `service.xml` file. Just note if you add URLs there is no guarantee in the order they will be tested. All default URLs have been tested and work on various clusters. If a new URL is added and doesn't respond in a way the user expects then it is up to the user to determine whether the URL is correct or not.
 
 ##### Some important things to note:
+ - In the first cURL request, the quotes are necessary around the URL or else a command line terminal will not include the `&password` query parameter in the request.
  - This API call does not require any credentials to receive a response from Knox, but expect to receive 401 responses from each of the services if none are provided.

Modified: knox/trunk/books/1.2.0/service_solr.md
URL: http://svn.apache.org/viewvc/knox/trunk/books/1.2.0/service_solr.md?rev=1848343&r1=1848342&r2=1848343&view=diff
==============================================================================
--- knox/trunk/books/1.2.0/service_solr.md (original)
+++ knox/trunk/books/1.2.0/service_solr.md Thu Dec  6 17:17:03 2018
@@ -38,6 +38,15 @@ To enable this functionality, a topology
 
 The default Solr port is 8983. Adjust the version specified to either '5.5.0 or '6.0.0'.
 
+For Solr 5.5.0 you also need to change the role name to `SOLRAPI` like this:
+
+    <service>
+        <role>SOLRAPI</role>
+        <version>5.5.0</version>
+        <url>http://<solr-host>:<solr-port></url>
+    </service>
+
+
 #### Solr URL Mapping ####
 
 For Solr URLs, the mapping of Knox Gateway accessible URLs to direct Solr URLs is the following.