Author: richard
Date: Fri Jul 31 12:23:59 2015
New Revision: 1693583
URL: http://svn.apache.org/r1693583
Log:
Update 0.7.0-incubating guide to git rev
b170307dc63a78bbd6a6a400f97387b1c1ff7deb
Added:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/external-error-large.png
(with props)
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/external-error.png
(with props)
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/failed-task-large.png
(with props)
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/failed-task.png
(with props)
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/jmx-sensors-all-large.png
(with props)
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/jmx-sensors-all.png
(with props)
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/jmx-sensors-large.png
(with props)
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/jmx-sensors.png
(with props)
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/resource-exception-large.png
(with props)
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/resource-exception.png
(with props)
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/script-failure-large.png
(with props)
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/script-failure.png
(with props)
incubator/brooklyn/site/v/0.7.0-incubating/ops/troubleshooting/
incubator/brooklyn/site/v/0.7.0-incubating/ops/troubleshooting/connectivity.html
incubator/brooklyn/site/v/0.7.0-incubating/ops/troubleshooting/deployment.html
incubator/brooklyn/site/v/0.7.0-incubating/ops/troubleshooting/going-deep-in-java-and-logs.html
incubator/brooklyn/site/v/0.7.0-incubating/ops/troubleshooting/images/
incubator/brooklyn/site/v/0.7.0-incubating/ops/troubleshooting/images/failed-task-large.png
(with props)
incubator/brooklyn/site/v/0.7.0-incubating/ops/troubleshooting/images/jmx-sensors-large.png
(with props)
incubator/brooklyn/site/v/0.7.0-incubating/ops/troubleshooting/index.html
incubator/brooklyn/site/v/0.7.0-incubating/ops/troubleshooting/overview.html
incubator/brooklyn/site/v/0.7.0-incubating/ops/troubleshooting/softwareprocess.html
incubator/brooklyn/site/v/latest/dev/tips/images/
incubator/brooklyn/site/v/latest/dev/tips/images/external-error-large.png
(with props)
incubator/brooklyn/site/v/latest/dev/tips/images/external-error.png (with
props)
incubator/brooklyn/site/v/latest/dev/tips/images/failed-task-large.png
(with props)
incubator/brooklyn/site/v/latest/dev/tips/images/failed-task.png (with
props)
incubator/brooklyn/site/v/latest/dev/tips/images/jmx-sensors-all-large.png
(with props)
incubator/brooklyn/site/v/latest/dev/tips/images/jmx-sensors-all.png
(with props)
incubator/brooklyn/site/v/latest/dev/tips/images/jmx-sensors-large.png
(with props)
incubator/brooklyn/site/v/latest/dev/tips/images/jmx-sensors.png (with
props)
incubator/brooklyn/site/v/latest/dev/tips/images/resource-exception-large.png
(with props)
incubator/brooklyn/site/v/latest/dev/tips/images/resource-exception.png
(with props)
incubator/brooklyn/site/v/latest/dev/tips/images/script-failure-large.png
(with props)
incubator/brooklyn/site/v/latest/dev/tips/images/script-failure.png (with
props)
incubator/brooklyn/site/v/latest/ops/troubleshooting/
incubator/brooklyn/site/v/latest/ops/troubleshooting/connectivity.html
incubator/brooklyn/site/v/latest/ops/troubleshooting/deployment.html
incubator/brooklyn/site/v/latest/ops/troubleshooting/going-deep-in-java-and-logs.html
incubator/brooklyn/site/v/latest/ops/troubleshooting/images/
incubator/brooklyn/site/v/latest/ops/troubleshooting/images/failed-task-large.png
(with props)
incubator/brooklyn/site/v/latest/ops/troubleshooting/images/jmx-sensors-large.png
(with props)
incubator/brooklyn/site/v/latest/ops/troubleshooting/index.html
incubator/brooklyn/site/v/latest/ops/troubleshooting/overview.html
incubator/brooklyn/site/v/latest/ops/troubleshooting/softwareprocess.html
Removed:
incubator/brooklyn/site/v/0.7.0-incubating/concepts/advanced-concepts.html
incubator/brooklyn/site/v/latest/concepts/advanced-concepts.html
Modified:
incubator/brooklyn/site/v/0.7.0-incubating/concepts/configuration-sensor-effectors.html
incubator/brooklyn/site/v/0.7.0-incubating/ops/brooklyn_properties.html
incubator/brooklyn/site/v/0.7.0-incubating/ops/catalog/index.html
incubator/brooklyn/site/v/0.7.0-incubating/ops/high-availability.html
incubator/brooklyn/site/v/0.7.0-incubating/ops/index.html
incubator/brooklyn/site/v/0.7.0-incubating/ops/install-on-server.html
incubator/brooklyn/site/v/0.7.0-incubating/ops/launch.html
incubator/brooklyn/site/v/0.7.0-incubating/ops/locations/index.html
incubator/brooklyn/site/v/0.7.0-incubating/ops/logging.html
incubator/brooklyn/site/v/0.7.0-incubating/ops/persistence/index.html
incubator/brooklyn/site/v/0.7.0-incubating/ops/requirements.html
incubator/brooklyn/site/v/0.7.0-incubating/start/running.html
incubator/brooklyn/site/v/latest/concepts/configuration-sensor-effectors.html
incubator/brooklyn/site/v/latest/ops/brooklyn_properties.html
incubator/brooklyn/site/v/latest/ops/catalog/index.html
incubator/brooklyn/site/v/latest/ops/high-availability.html
incubator/brooklyn/site/v/latest/ops/index.html
incubator/brooklyn/site/v/latest/ops/install-on-server.html
incubator/brooklyn/site/v/latest/ops/launch.html
incubator/brooklyn/site/v/latest/ops/locations/index.html
incubator/brooklyn/site/v/latest/ops/logging.html
incubator/brooklyn/site/v/latest/ops/persistence/index.html
incubator/brooklyn/site/v/latest/ops/requirements.html
incubator/brooklyn/site/v/latest/start/running.html
Modified:
incubator/brooklyn/site/v/0.7.0-incubating/concepts/configuration-sensor-effectors.html
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/concepts/configuration-sensor-effectors.html?rev=1693583&r1=1693582&r2=1693583&view=diff
==============================================================================
---
incubator/brooklyn/site/v/0.7.0-incubating/concepts/configuration-sensor-effectors.html
(original)
+++
incubator/brooklyn/site/v/0.7.0-incubating/concepts/configuration-sensor-effectors.html
Fri Jul 31 12:23:59 2015
@@ -343,8 +343,6 @@ in the entityâs interface is the re
the entityâs state in attributes (see
<code>getAttribute(AttributeKey)</code>`). If internal fields can be used then
the data will be lost on brooklyn
restart, and may cause problems if the entity is to be moved to a different
brooklyn management node.</p>
-<p>Next: <a href="advanced-concepts.html">Advanced Concepts</a>.</p>
-
</div>
Added:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/external-error-large.png
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/external-error-large.png?rev=1693583&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/external-error-large.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/external-error.png
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/external-error.png?rev=1693583&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/external-error.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/failed-task-large.png
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/failed-task-large.png?rev=1693583&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/failed-task-large.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/failed-task.png
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/failed-task.png?rev=1693583&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/failed-task.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/jmx-sensors-all-large.png
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/jmx-sensors-all-large.png?rev=1693583&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/jmx-sensors-all-large.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/jmx-sensors-all.png
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/jmx-sensors-all.png?rev=1693583&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/jmx-sensors-all.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/jmx-sensors-large.png
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/jmx-sensors-large.png?rev=1693583&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/jmx-sensors-large.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/jmx-sensors.png
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/jmx-sensors.png?rev=1693583&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/jmx-sensors.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/resource-exception-large.png
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/resource-exception-large.png?rev=1693583&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/resource-exception-large.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/resource-exception.png
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/resource-exception.png?rev=1693583&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/resource-exception.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/script-failure-large.png
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/script-failure-large.png?rev=1693583&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/script-failure-large.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/script-failure.png
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/script-failure.png?rev=1693583&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
incubator/brooklyn/site/v/0.7.0-incubating/dev/tips/images/script-failure.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Modified:
incubator/brooklyn/site/v/0.7.0-incubating/ops/brooklyn_properties.html
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/ops/brooklyn_properties.html?rev=1693583&r1=1693582&r2=1693583&view=diff
==============================================================================
--- incubator/brooklyn/site/v/0.7.0-incubating/ops/brooklyn_properties.html
(original)
+++ incubator/brooklyn/site/v/0.7.0-incubating/ops/brooklyn_properties.html Fri
Jul 31 12:23:59 2015
@@ -596,6 +596,13 @@ certificate from a trusted certifying au
</a>
+
+
+
+ <a href="/v/0.7.0-incubating/ops/troubleshooting/index.html"
class="list-group-item">Troubleshooting
+ </a>
+
+
Modified: incubator/brooklyn/site/v/0.7.0-incubating/ops/catalog/index.html
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/ops/catalog/index.html?rev=1693583&r1=1693582&r2=1693583&view=diff
==============================================================================
--- incubator/brooklyn/site/v/0.7.0-incubating/ops/catalog/index.html (original)
+++ incubator/brooklyn/site/v/0.7.0-incubating/ops/catalog/index.html Fri Jul
31 12:23:59 2015
@@ -589,8 +589,17 @@ the latest non-snapshot version will be
on a catalog reset, or if persistence is off</li>
</ul>
-<p>If <a href="../persistence/">persistence</a> is enabled, catalog additions
will remain between runs.
-For more information on these commands, run <code>brooklyn help
launch</code>.</p>
+<p>If <code>--catalogInitial</code> is not specified, the default initial
catalog at <code>brooklyn/default.catalog.bom</code> will be used.
+As <code>scanJavaAnnotations: true</code> is set in
<code>default.catalog.bom</code>, Brooklyn will scan the classpath for catalog
items,
+which will be added to the catalog.
+To launch Brooklyn without initializing the catalog, use
<code>--catalogInitial classpath://brooklyn/empty.catalog.bom</code></p>
+
+<p>If <a href="../persistence/">persistence</a> is enabled, catalog additions
will remain between runs. If items that were
+previously added based on items in <code>brooklyn/default.catalog.bom</code>
or <code>--catalogInitial</code> are
+deleted, they will not be re-added on subsequent restarts of brooklyn. I.e.
<code>--catalogInitial</code> is ignored
+if persistence is enabled and persistent state has already been created.</p>
+
+<p>For more information on these commands, run <code>brooklyn help
launch</code>.</p>
<!--
TODO: make test cases from the code snippets here, and when building the docs
assert that they match test cases
@@ -718,6 +727,13 @@ TODO: make test cases from the code snip
</a>
+
+
+
+ <a href="/v/0.7.0-incubating/ops/troubleshooting/index.html"
class="list-group-item">Troubleshooting
+ </a>
+
+
Modified: incubator/brooklyn/site/v/0.7.0-incubating/ops/high-availability.html
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/ops/high-availability.html?rev=1693583&r1=1693582&r2=1693583&view=diff
==============================================================================
--- incubator/brooklyn/site/v/0.7.0-incubating/ops/high-availability.html
(original)
+++ incubator/brooklyn/site/v/0.7.0-incubating/ops/high-availability.html Fri
Jul 31 12:23:59 2015
@@ -447,6 +447,13 @@ For example, the following cURL command
</a>
+
+
+
+ <a href="/v/0.7.0-incubating/ops/troubleshooting/index.html"
class="list-group-item">Troubleshooting
+ </a>
+
+
Modified: incubator/brooklyn/site/v/0.7.0-incubating/ops/index.html
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/ops/index.html?rev=1693583&r1=1693582&r2=1693583&view=diff
==============================================================================
--- incubator/brooklyn/site/v/0.7.0-incubating/ops/index.html (original)
+++ incubator/brooklyn/site/v/0.7.0-incubating/ops/index.html Fri Jul 31
12:23:59 2015
@@ -332,6 +332,8 @@ under the License.
<li> <a href="/v/0.7.0-incubating/ops/logging.html">Logging</a> </li>
+<li> <a
href="/v/0.7.0-incubating/ops/troubleshooting/index.html">Troubleshooting</a>
</li>
+
</ul></div>
</div>
@@ -437,6 +439,11 @@ under the License.
Logging
</a>
+
+ <a
href="/v/0.7.0-incubating/ops/troubleshooting/index.html"
class="list-group-item sub-item " >
+ Troubleshooting
+ </a>
+
</div>
Modified: incubator/brooklyn/site/v/0.7.0-incubating/ops/install-on-server.html
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/ops/install-on-server.html?rev=1693583&r1=1693582&r2=1693583&view=diff
==============================================================================
--- incubator/brooklyn/site/v/0.7.0-incubating/ops/install-on-server.html
(original)
+++ incubator/brooklyn/site/v/0.7.0-incubating/ops/install-on-server.html Fri
Jul 31 12:23:59 2015
@@ -507,6 +507,13 @@ INFO Started Brooklyn console at http:/
</a>
+
+
+
+ <a href="/v/0.7.0-incubating/ops/troubleshooting/index.html"
class="list-group-item">Troubleshooting
+ </a>
+
+
Modified: incubator/brooklyn/site/v/0.7.0-incubating/ops/launch.html
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/ops/launch.html?rev=1693583&r1=1693582&r2=1693583&view=diff
==============================================================================
--- incubator/brooklyn/site/v/0.7.0-incubating/ops/launch.html (original)
+++ incubator/brooklyn/site/v/0.7.0-incubating/ops/launch.html Fri Jul 31
12:23:59 2015
@@ -315,11 +315,14 @@ under the License.
<p>To launch Brooklyn, from the directory where Brooklyn is unpacked, run:</p>
-<div class="highlight"><pre><code class="language-bash" data-lang="bash">%
nohup bin/brooklyn launch <span class="p">&</span></code></pre></div>
+<div class="highlight"><pre><code class="language-bash" data-lang="bash">%
nohup bin/brooklyn launch > /dev/null 2<span class="p">&</span>>1
<span class="p">&</span></code></pre></div>
<p>With no configuration, this will launch the Brooklyn web console and REST
API on <a href="http://localhost:8081/"><code>http://localhost:8081/</code></a>.
No password is set, but the server is listening only on the loopback network
interface for security.
-Once <a href="brooklyn_properties.html">security is configured</a>, Brooklyn
will listen on all network interfaces by default.</p>
+Once <a href="brooklyn_properties.html">security is configured</a>, Brooklyn
will listen on all network interfaces by default.
+By default, Brooklyn will write log messages at the INFO level or above to
<code>brooklyn.info.log</code> and messgages at the
+DEBUG level or above to <code>brooklyn.debug.log</code>. Redirecting the
output to <code>/dev/null</code> prevents the default console output
+being written to <code>nohup.out</code>.</p>
<p>You may wish to <a href="#path-setup">add Brooklyn to your path</a>;
assuming youâve done this, to get information the supported CLI options
@@ -590,6 +593,13 @@ nohup brooklyn launch --app brooklyn.dem
</a>
+
+
+
+ <a href="/v/0.7.0-incubating/ops/troubleshooting/index.html"
class="list-group-item">Troubleshooting
+ </a>
+
+
Modified: incubator/brooklyn/site/v/0.7.0-incubating/ops/locations/index.html
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/ops/locations/index.html?rev=1693583&r1=1693582&r2=1693583&view=diff
==============================================================================
--- incubator/brooklyn/site/v/0.7.0-incubating/ops/locations/index.html
(original)
+++ incubator/brooklyn/site/v/0.7.0-incubating/ops/locations/index.html Fri Jul
31 12:23:59 2015
@@ -734,6 +734,30 @@ brooklyn.location.named.On-Prem<span cla
brooklyn.location.named.On-Prem<span class="se">\ </span>Iron<span
class="se">\ </span>Example.privateKeyFile<span
class="o">=</span>~/.ssh/produser_id_rsa
brooklyn.location.named.On-Prem<span class="se">\ </span>Iron<span
class="se">\ </span>Example.privateKeyPassphrase<span
class="o">=</span>s3cr3tpassphrase</code></pre></div>
+<p>For more complex host configuration, one can define custom config values
per machine. In the example
+below, there will be two machines. The first will be a machine reachable on
+<code>ssh -i ~/.ssh/brooklyn.pem -p 8022 [email protected]</code>. The second
is a windows machine, reachable
+over WinRM. Each machine has also has a private address (e.g. for within a
private network).</p>
+
+<div class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span
class="l-Scalar-Plain">location</span><span class="p-Indicator">:</span>
+ <span class="l-Scalar-Plain">byon</span><span class="p-Indicator">:</span>
+ <span class="l-Scalar-Plain">hosts</span><span class="p-Indicator">:</span>
+ <span class="p-Indicator">-</span> <span
class="l-Scalar-Plain">ssh</span><span class="p-Indicator">:</span> <span
class="l-Scalar-Plain">50.51.52.53:8022</span>
+ <span class="l-Scalar-Plain">privateAddresses</span><span
class="p-Indicator">:</span> <span class="p-Indicator">[</span><span
class="nv">10.0.0.1</span><span class="p-Indicator">]</span>
+ <span class="l-Scalar-Plain">privateKeyFile</span><span
class="p-Indicator">:</span> <span
class="l-Scalar-Plain">~/.ssh/brooklyn.pem</span>
+ <span class="l-Scalar-Plain">user</span><span
class="p-Indicator">:</span> <span class="l-Scalar-Plain">myuser</span>
+ <span class="p-Indicator">-</span> <span
class="l-Scalar-Plain">winrm</span><span class="p-Indicator">:</span> <span
class="l-Scalar-Plain">50.51.52.54:8985</span>
+ <span class="l-Scalar-Plain">privateAddresses</span><span
class="p-Indicator">:</span> <span class="p-Indicator">[</span><span
class="nv">10.0.0.2</span><span class="p-Indicator">]</span>
+ <span class="l-Scalar-Plain">password</span><span
class="p-Indicator">:</span> <span class="l-Scalar-Plain">mypassword</span>
+ <span class="l-Scalar-Plain">user</span><span
class="p-Indicator">:</span> <span class="l-Scalar-Plain">myuser</span>
+ <span class="l-Scalar-Plain">osfamily</span><span
class="p-Indicator">:</span> <span
class="l-Scalar-Plain">windows</span></code></pre></div>
+
+<p>The BYON location also supports a machine chooser, using the config key
<code>byon.machineChooser</code>.
+This allows one to plugin logic to choose from the set of available machines
in the pool. For
+example, additional config could be supplied for each machine. This could be
used (during the call
+to <code>location.obtain()</code>) to find the config that matches the
requirements of the entity being
+provisioned. See
<code>brooklyn.location.basic.FixedListMachineProvisioningLocation.MACHINE_CHOOSER</code>.</p>
+
<h3 id="other-location-topics">Other Location Topics</h3>
<ul>
@@ -864,6 +888,13 @@ brooklyn.location.named.On-Prem<span cla
</a>
+
+
+
+ <a href="/v/0.7.0-incubating/ops/troubleshooting/index.html"
class="list-group-item">Troubleshooting
+ </a>
+
+
Modified: incubator/brooklyn/site/v/0.7.0-incubating/ops/logging.html
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/ops/logging.html?rev=1693583&r1=1693582&r2=1693583&view=diff
==============================================================================
--- incubator/brooklyn/site/v/0.7.0-incubating/ops/logging.html (original)
+++ incubator/brooklyn/site/v/0.7.0-incubating/ops/logging.html Fri Jul 31
12:23:59 2015
@@ -463,6 +463,13 @@ which can then <a href="http://www.logst
</a>
+
+
+
+ <a href="/v/0.7.0-incubating/ops/troubleshooting/index.html"
class="list-group-item">Troubleshooting
+ </a>
+
+
Modified: incubator/brooklyn/site/v/0.7.0-incubating/ops/persistence/index.html
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/ops/persistence/index.html?rev=1693583&r1=1693582&r2=1693583&view=diff
==============================================================================
--- incubator/brooklyn/site/v/0.7.0-incubating/ops/persistence/index.html
(original)
+++ incubator/brooklyn/site/v/0.7.0-incubating/ops/persistence/index.html Fri
Jul 31 12:23:59 2015
@@ -792,6 +792,13 @@ rm -r $TEMP_DATA_DIR
</a>
+
+
+
+ <a href="/v/0.7.0-incubating/ops/troubleshooting/index.html"
class="list-group-item">Troubleshooting
+ </a>
+
+
Modified: incubator/brooklyn/site/v/0.7.0-incubating/ops/requirements.html
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/ops/requirements.html?rev=1693583&r1=1693582&r2=1693583&view=diff
==============================================================================
--- incubator/brooklyn/site/v/0.7.0-incubating/ops/requirements.html (original)
+++ incubator/brooklyn/site/v/0.7.0-incubating/ops/requirements.html Fri Jul 31
12:23:59 2015
@@ -460,6 +460,13 @@ it is normally recommended that the serv
</a>
+
+
+
+ <a href="/v/0.7.0-incubating/ops/troubleshooting/index.html"
class="list-group-item">Troubleshooting
+ </a>
+
+
Added:
incubator/brooklyn/site/v/0.7.0-incubating/ops/troubleshooting/connectivity.html
URL:
http://svn.apache.org/viewvc/incubator/brooklyn/site/v/0.7.0-incubating/ops/troubleshooting/connectivity.html?rev=1693583&view=auto
==============================================================================
---
incubator/brooklyn/site/v/0.7.0-incubating/ops/troubleshooting/connectivity.html
(added)
+++
incubator/brooklyn/site/v/0.7.0-incubating/ops/troubleshooting/connectivity.html
Fri Jul 31 12:23:59 2015
@@ -0,0 +1,880 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you 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 at
+
+ 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.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+
+
+<head>
+
+
+<title>Troubleshooting Server Connectivity Issues in the Cloud - Apache
Brooklyn (incubating)</title>
+
+<meta http-equiv="content-type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
+<link
href="https://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css"
rel="stylesheet">
+<link href="/v/0.7.0-incubating/style/deps/octicons/octicons.css"
rel="stylesheet">
+<link href="/v/0.7.0-incubating/style/deps/bootstrap-theme.css"
rel="stylesheet">
+
+<link rel="stylesheet" href="/v/0.7.0-incubating/style/css/code.css"
type="text/css" media="screen" />
+
+<link href="/v/0.7.0-incubating/style/css/website.css" rel="stylesheet">
+
+<script
src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
+<script
src="https://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
+<script type="text/javascript"
src="/v/0.7.0-incubating/style/deps/jquery.cookie.js"></script>
+
+
+</head>
+
+
+<body>
+
+<nav class="navbar navbar-default navbar-fixed-top" id="header"
role="navigation">
+ <div class="container-and-sidebars">
+
+ <div class="container-sidebar-left feather">
+ <a href="http://www.apache.org/">
+ <img src="/v/0.7.0-incubating/style/img/feather.png"
alt="[Apache]" width="80" class="flip navbar-feather">
+ </a>
+ </div>
+
+ <div class="container container-between-sidebars top-menu">
+ <div class="container-fluid">
+ <!-- Brand and toggle get grouped for better mobile display -->
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle"
data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="/"><img
src="/v/0.7.0-incubating/style/img/apache-brooklyn-logo-244px-wide.png"
alt="brooklyn"></a>
+ </div>
+
+ <!-- Collect the nav links, forms, and other content for toggling
-->
+ <div class="collapse navbar-collapse"
id="bs-example-navbar-collapse-1">
+ <ul class="nav navbar-nav navbar-right">
+
+
+ <li class="dropdown">
+ <a href="/learnmore/index.html">learn more</a>
+ <ul class="dropdown-menu" role="menu">
+ <li>
+ <a href="/learnmore/index.html">Learn More</a>
+ </li>
+ <li class="divider"></li>
+
+ <li>
+
+ <a
href="/learnmore/blueprint-tour.html">Blueprint Tour
+ </a>
+
+ </li>
+
+ <li>
+
+ <a
href="/learnmore/features/index.html">Features
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="/learnmore/theory.html">Theory
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="/learnmore/catalog/index.html">Browse
Catalog
+ </a>
+
+ </li>
+
+ </ul>
+ </li>
+
+
+
+ <li class="">
+ <a href="/download/index.html">download</a>
+ </li>
+
+
+
+ <li class="">
+ <a href="/v/0.7.0-incubating/start/running.html">get
started</a>
+ </li>
+
+
+
+ <li class="dropdown active">
+ <a href="/documentation/index.html">documentation</a>
+ <ul class="dropdown-menu" role="menu">
+ <li>
+ <a
href="/documentation/index.html">Documentation</a>
+ </li>
+ <li class="divider"></li>
+
+ <li>
+
+ <a href="/v/0.7.0-incubating/index.html">User
Guide
+ </a>
+
+ <div
class="dropdown_section_header"><hr></div>
+
+ </li>
+
+ <li>
+
+ <a
href="/v/0.7.0-incubating/yaml/creating-yaml.html">YAML Blueprints
+ </a>
+
+ </li>
+
+ <li>
+
+ <a
href="/v/0.7.0-incubating/java/index.html">Java Blueprints
+ </a>
+
+ </li>
+
+ <li>
+
+ <a
href="/v/0.7.0-incubating/ops/index.html">Operations
+ </a>
+
+ <div
class="dropdown_section_header"><hr></div>
+
+ </li>
+
+ <li>
+
+ <a
href="/v/0.7.0-incubating/dev/index.html">Developer Guide
+ </a>
+
+ </li>
+
+ <li>
+
+ <div class="dropdown_new_section"><hr></div>
+
+ <a href="/documentation/other-docs.html">Other
Resources
+ </a>
+
+ </li>
+
+ </ul>
+ </li>
+
+
+
+ <li class="dropdown">
+ <a href="/community/index.html">community</a>
+ <ul class="dropdown-menu" role="menu">
+ <li>
+ <a href="/community/index.html">Community</a>
+ </li>
+ <li class="divider"></li>
+
+ <li>
+
+ <a
href="/community/mailing-lists.html">Mailing Lists
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="/community/irc.html">IRC
+ </a>
+
+ </li>
+
+ <li>
+
+ <a
href="https://issues.apache.org/jira/browse/BROOKLYN">Bug Tracker (JIRA)
+ <span class="octicon
octicon-link-external"></span></a>
+
+ </li>
+
+ <li>
+
+ <a
href="/community/how-to-contribute-docs.html">How to Contribute Documentation
+ </a>
+
+ </li>
+
+ </ul>
+ </li>
+
+
+
+ <li class="dropdown">
+ <a href="/developers/index.html">developers</a>
+ <ul class="dropdown-menu" role="menu">
+ <li>
+ <a href="/developers/index.html">Developers</a>
+ </li>
+ <li class="divider"></li>
+
+ <li>
+
+ <a
href="/developers/how-to-contribute.html">How to Contribute
+ </a>
+
+ </li>
+
+ <li>
+
+ <a
href="/v/0.7.0-incubating/dev/index.html">Developer Guide
+ </a>
+
+ </li>
+
+ <li>
+
+ <a
href="/developers/committers/index.html">Committer Guide
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="/developers/code-standards.html">Code
Standards
+ </a>
+
+ </li>
+
+ <li>
+
+ <a
href="http://github.com/apache/incubator-brooklyn">GitHub
+ <span class="octicon
octicon-link-external"></span></a>
+
+ </li>
+
+ <li>
+
+ <a
href="https://issues.apache.org/jira/browse/BROOKLYN">Bug Tracker (JIRA)
+ <span class="octicon
octicon-link-external"></span></a>
+
+ </li>
+
+ </ul>
+ </li>
+
+
+ </ul>
+ </div><!-- /.navbar-collapse -->
+ </div><!-- /.container-fluid -->
+ </div><!-- /.container -->
+
+ <div class="container-sidebar-right">
+ <div class="navbar-sidebar-right-icons">
+ <a href="https://github.com/apache/incubator-brooklyn"
class="navbar-icon navbar-icon-shift icon-github"
+ data-toggle="tooltip" data-placement="bottom" title="GitHub:
apache/incubator-brooklyn"/>
+ <a href="https://twitter.com/#!/search?q=brooklyncentral"
class="navbar-icon navbar-icon-shift icon-twitter"
+ data-toggle="tooltip" data-placement="bottom" title="Twitter:
@brooklyncentral"/>
+ <a href="http://webchat.freenode.net/?channels=brooklyncentral"
class="navbar-icon icon-irc"
+ data-toggle="tooltip" data-placement="bottom" title="IRC:
freenode #brooklyncentral"/>
+ <!-- extra a element seems needed as landing page seems to copy
the last element here (!?)
+ -->
+ <a href="/" style="width: 0px; height: 0px;"></a>
+ </div>
+ </div>
+
+ </div>
+</nav>
+
+
+<div class="container" id="main_container">
+ <div class="row">
+ <div class="col-md-9" id="content_container">
+ <div id="page_notes"></div>
+ <h1>Troubleshooting Server Connectivity Issues in the Cloud</h1>
+ <p>A common problem when setting up an application in the cloud is
getting the basic connectivity right - how
+do I get my service (e.g. a TCP host:port) publicly accessible over the
internet?</p>
+
+<p>This varies a lot - e.g. Is the VM public or in a private network? Is the
service only accessible through
+a load balancer? Should the service be globally reachable or only to a
particular CIDR?</p>
+
+<p>This guide gives some general tips for debugging connectivity issues, which
are applicable to a
+range of different service types. Choose those that are appropriate for your
use-case.</p>
+
+<h2 id="vm-reachable">VM reachable</h2>
+<p>If the VM is supposed to be accessible directly (e.g. from the public
internet, or if in a private network
+then from a jump host)â¦</p>
+
+<h3 id="ping">ping</h3>
+<p>Can you <code>ping</code> the VM from the machine you are trying to reach
it from?</p>
+
+<p>However, ping is over ICMP. If the VM is unreachable, it could be that the
firewall forbids ICMP but still
+lets TCP traffic through.</p>
+
+<h3 id="telnet-to-tcp-port">telnet to TCP port</h3>
+<p>You can check if a given TCP port is reachable and listening using
<code>telnet <host> <port></code>, such as
+<code>telnet www.google.com 80</code>, which gives output like:</p>
+
+<p><code>
+ Trying 31.55.163.219...
+ Connected to www.google.com.
+ Escape character is '^]'.
+</code></p>
+
+<p>If this is very slow to respond, it can be caused by a firewall blocking
access. If it is fast, it could
+be that the server is just not listening on that port.</p>
+
+<h3 id="dns-and-routing">DNS and routing</h3>
+<p>If using a hostname rather than IP, then is it resolving to a sensible
IP?</p>
+
+<p>Is the route to the server sensible? (e.g. one can hit problems with proxy
servers in a corporate
+network, or ISPs returning a default result for unknown hosts).</p>
+
+<p>The following commands can be useful:</p>
+
+<ul>
+ <li><code>host</code> is a DNS lookup utility. e.g. <code>host
www.google.com</code>.</li>
+ <li><code>dig</code> stands for âdomain information groperâ. e.g.
<code>dig www.google.com</code>.</li>
+ <li><code>traceroute</code> prints the route that packets take to a network
host. e.g. <code>traceroute www.google.com</code>.</li>
+</ul>
+
+<h2 id="service-is-listening">Service is listening</h2>
+
+<h3 id="service-responds">Service responds</h3>
+<p>Try connecting to the service from the VM itself. For example, <code>curl
http://localhost:8080</code> for a
+web-service.</p>
+
+<p>On dev/test VMs, donât be afraid to install the utilities you need such
as <code>curl</code>, <code>telnet</code>, <code>nc</code>,
+etc. Cloud VMs often have a very cut-down set of packages installed. For
example, execute
+<code>sudo apt-get update; sudo apt-get install -y curl</code> or <code>sudo
yum install -y curl</code>.</p>
+
+<h3 id="listening-on-port">Listening on port</h3>
+<p>Check that the service is listening on the port, and on the correct
NIC(s).</p>
+
+<p>Execute <code>netstat -antp</code> (or on OS X <code>netstat -antp
TCP</code>) to list the TCP ports in use (or use
+<code>-anup</code> for UDP). You should expect to see the something like the
output below for a service.</p>
+
+<p><code>
+Proto Recv-Q Send-Q Local Address Foreign Address
State PID/Program name
+tcp 0 0 :::8080 :::*
LISTEN 8276/java
+</code></p>
+
+<p>In this case a Java process with pid 8276 is listening on port 8080. The
local address <code>:::8080</code>
+format means all NICs (in IPv6 address format). You may also see
<code>0.0.0.0:8080</code> for IPv4 format.
+If it says 127.0.0.1:8080 then your service will most likely not be reachable
externally.</p>
+
+<p>Use <code>ip addr show</code> (or the obsolete <code>ifconfig -a</code>) to
see the network interfaces on your server.</p>
+
+<p>For <code>netstat</code>, run with <code>sudo</code> to see the pid for all
listed ports.</p>
+
+<h2 id="firewalls">Firewalls</h2>
+<p>On Linux, check if <code>iptables</code> is preventing the remote
connection. On Windows, check the Windows Firewall.</p>
+
+<p>If it is acceptable (e.g. it is not a server in production), try turning
off the firewall temporarily,
+and testing connectivity again. Remember to re-enable it afterwards! On
CentOS, this is <code>sudo service
+iptables stop</code>. On Ubuntu, use <code>sudo ufw disable</code>. On
Windows, press the Windows key and type âWindows
+Firewall with Advanced Securityâ to open the firewall tools, then click
âWindows Firewall Propertiesâ
+and set the firewall state to âOffâ in the Domain, Public and Private
profiles.</p>
+
+<p>If you cannot temporarily turn off the firewall, then look carefully at the
firewall settings. For
+example, execute <code>sudo iptables -n --list</code> and <code>iptables -t
nat -n --list</code>.</p>
+
+<h2 id="cloud-firewalls">Cloud firewalls</h2>
+<p>Some clouds offer a firewall service, where ports need to be explicitly
listed to be reachable.</p>
+
+<p>For example, [security groups for EC2-classic]
+(http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#ec2-classic-security-groups)
+have rules for the protocols and ports to be reachable from specific CIDRs.</p>
+
+<p>Check these settings via the cloud providerâs web-console (or API).</p>
+
+<h2 id="quick-test-of-a-listener-port">Quick test of a listener port</h2>
+<p>It can be useful to start listening on a given port, and to then check if
that port is reachable.
+This is useful for testing basic connectivity when your service is not yet
running, or to a
+different port to compare behaviour, or to compare with another VM in the
network.</p>
+
+<p>The <code>nc</code> netcat tool is useful for this. For example, <code>nc
-l 0.0.0.0 8080</code> will listen on port
+TCP 8080 on all network interfaces. On another server, you can then run
<code>echo hello from client
+| nc <hostname> 8080</code>. If all works well, this will send âhello
from clientâ over the TCP port 8080,
+which will be written out by the <code>nc -l</code> process before exiting.</p>
+
+<p>Similarly for UDP, you use <code>-lU</code>.</p>
+
+<p>You may first have to install <code>nc</code>, e.g. with <code>sudo yum
install -y nc</code> or <code>sudo apt-get install netcat</code>.</p>
+
+<h3 id="cloud-load-balancers">Cloud load balancers</h3>
+<p>For some use-cases, it is good practice to use the load balancer service
offered by the cloud provider
+(e.g. <a href="http://aws.amazon.com/elasticloadbalancing/">ELB in AWS</a> or
the [Cloudstack Load Balancer]
+(http://docs.cloudstack.apache.org/projects/cloudstack-installation/en/latest/network_setup.html#management-server-load-balancing))</p>
+
+<p>The VMs can all be isolated within a private network, with access only
through the load balancer service.</p>
+
+<p>Debugging techniques here include ensuring connectivity from another jump
server within the private
+network, and careful checking of the load-balancer configuration from the
Cloud Providerâs web-console.</p>
+
+<h3 id="dnat">DNAT</h3>
+<p>Use of DNAT is appropriate for some use-cases, where a particular port on a
particular VM is to be
+made available.</p>
+
+<p>Debugging connectivity issues here is similar to the steps for a cloud load
balancer. Ensure
+connectivity from another jump server within the private network. Carefully
check the NAT rules from
+the Cloud Providerâs web-console.</p>
+
+<h3 id="guest-wifi">Guest wifi</h3>
+<p>It is common for guest wifi to restrict access to only specific ports (e.g.
80 and 443, restricting
+ssh over port 22 etc).</p>
+
+<p>Normally your best bet is then to abandon the guest wifi (e.g. to tether to
a mobile phone instead).</p>
+
+<p>There are some unconventional workarounds such as <a
href="http://askubuntu.com/questions/107173/is-it-possible-to-ssh-through-port-80">configuring
sshd to listen on port 80 so you can
+use an ssh tunnel</a>.
+However, the firewall may well inspect traffic so sending non-http traffic
over port 80 may still fail.</p>
+
+
+ </div>
+
+ <div class="col-md-3">
+ <div class="list-group side-menu" id="side-menu">
+
+
+
+
+
+
+ <h4 class=" with_following">
+ <a href="/v/0.7.0-incubating/index.html"
class="list-group-item breadcrumb breadcrumb0">
+ User Guide
+ </a></h4>
+
+ <h4 class=" with_preceding with_following">
+ <a href="/v/0.7.0-incubating/ops/index.html"
class="list-group-item breadcrumb breadcrumb1">
+ Operations
+ </a></h4>
+
+ <h4 class=" with_preceding">
+ <a
href="/v/0.7.0-incubating/ops/troubleshooting/index.html"
class="list-group-item breadcrumb breadcrumb2">
+ Troubleshooting
+ </a></h4>
+
+
+
+
+
+ <a
href="/v/0.7.0-incubating/ops/troubleshooting/overview.html"
class="list-group-item">Overview
+ </a>
+
+
+
+
+
+ <a
href="/v/0.7.0-incubating/ops/troubleshooting/deployment.html"
class="list-group-item">Deployment
+ </a>
+
+
+
+
+
+ <a
href="/v/0.7.0-incubating/ops/troubleshooting/connectivity.html"
class="list-group-item active">Server Connectivity
+ </a>
+
+
+
+
+
+ <a
href="/v/0.7.0-incubating/ops/troubleshooting/softwareprocess.html"
class="list-group-item">SoftwareProcess Entities
+ </a>
+
+
+
+
+
+ <a
href="/v/0.7.0-incubating/ops/troubleshooting/going-deep-in-java-and-logs.html"
class="list-group-item">Going Deep in Java and Logs
+ </a>
+
+
+
+
+
+
+
+</div>
+<div id="width_reference"></div>
+
+
+<script language="JavaScript" type="application/javascript">
+
+
+sidemenu_x_sizer=function(){
$('#side-menu').width($('#side-menu').parent().find('#width_reference').outerWidth());
};
+$(sidemenu_x_sizer);
+$(window).resize(sidemenu_x_sizer);
+
+
+sidemenu_y_nonfloater=function(){
+ if ($('#side-menu').outerHeight(true) + $('#header').outerHeight(true) +
$('#footer').outerHeight(true) > window.innerHeight ||
+ $('#side-menu').width() >= $('#content_container').width()/2) {
+ $('#side-menu').css('position', 'inherit');
+ } else {
+ // restore if screen has grown
+ $('#side-menu').css('position', 'fixed');
+ }
+};
+$(sidemenu_y_nonfloater);
+$(window).resize(sidemenu_y_nonfloater);
+
+
+
+var sideMenu = $("#side-menu"),
+ sideItems = sideMenu.find("a"),
+ // Anchors corresponding to menu items
+ scrollItems = sideItems.map(function(){
+ var item = $(this).attr("section-target");
+ if (item && item.length) { return item; }
+ });
+
+var highlight_section_last_top = -1;
+var highlight_section_completed = false;
+
+var highlight_section = function() {
+ // Get container scroll position
+ var highlight_section_new_top = $(this).scrollTop();
+ if (highlight_section_new_top == highlight_section_last_top) return;
+ var highlight_section_new_bottom = highlight_section_new_top +
$(window).height();
+ var scroll_advancing = (highlight_section_new_top >
highlight_section_last_top);
+
+ var last_item = null, active_item = $("#side-menu a.section#active");
+
+ var found_top = false;
+ var displayable_items = scrollItems.map(function(itemI){
+ item = $(scrollItems[itemI]);
+ if (item && item.length) {
+ if (highlight_section_last_top == -1 || !highlight_section_completed) {
+ // just opening page - take item matching hash, or otherwise the
first item visible
+ if (item.selector === window.location.hash || (item.offset().top >
highlight_section_new_top - 20 && !found_top)) {
+ found_top = true;
+ if (item.selector === window.location.hash && item.offset().top <
highlight_section_new_top + 60) {
+ // because of our top header, we need to scroll 64px down from
any link
+ $('html, body').animate({scrollTop: item.offset().top - 64}, 0);
+ }
+ return item;
+ }
+ } else if (scroll_advancing) {
+ // if scrolling advance, pick up a section when title starts before
1/3 height
+ if (item.offset().top < highlight_section_new_top +
$(window).height()/3)
+ return item;
+
+ // or if containing div is finished (usu the whole main content)
+ div_containing_item = item.closest("div");
+ if (div_containing_item.offset().top + div_containing_item.height() <
highlight_section_new_bottom + 15)
+ return item;
+ // or when next title is visible
+ if (last_item && item.offset().top < highlight_section_new_bottom +
15)
+ return last_item;
+ } else {
+ // if scrolling back, pick up a section as soon as the title is
visible,
+ if (item.offset().top < highlight_section_new_top)
+ return item;
+ // or if title is before the 2/3 point
+ // (not sure about this, probably want also to have
+ // "AND the id.top is <= displayable_itemsrent_active_it.top" so we
don't jump FORWARD a section
+ // when scrolling BACK, with lots of tiny sections)
+ if ((item.offset().top < highlight_section_new_top +
2*$(window).height()/3)
+ && (!active_item || !active_item.offset() ||
active_item.offset().top >= item.offset().top))
+ return item;
+
+ }
+ last_item = item;
+ }
+ });
+ if (!highlight_section_completed && document.readyState === "complete") {
+ highlight_section_completed = true;
+ }
+ if (!displayable_items.length) {
+ $("#side-menu a.section").removeClass("active");
+ } else {
+ displayable_items = displayable_items[displayable_items.length-1];
+ var id = displayable_items && displayable_items.length ?
displayable_items[0].id : "";
+ // Set/remove active class
+ new_active = $("#side-menu
a.section").filter("[section-target='#"+id+"']");
+ if (new_active.hasClass("active")) {
+ // nothing needed
+ } else {
+ $("#side-menu a.section").removeClass("active");
+ $("#side-menu
a.section").filter("[section-target='#"+id+"']").addClass("active");
+ }
+ }
+
+ highlight_section_last_top = highlight_section_new_top;
+};
+var highlight_new_section = function() {
+ highlight_section_completed = false;
+ highlight_section_last_top = -1;
+ highlight_section();
+}
+
+$(window).scroll(highlight_section);
+$(highlight_new_section);
+
+// detect link change - courtesy
http://www.bennadel.com/blog/1520-binding-events-to-non-dom-objects-with-jquery.htm
+ (
+ function( $ ){
+ // Default to the current location.
+ var strLocation = window.location.href;
+ var strHash = window.location.hash;
+ var strPrevLocation = "";
+ var strPrevHash = "";
+
+ // This is how often we will be checkint for
+ // changes on the location.
+ var intIntervalTime = 100;
+
+ // This method removes the pound from the hash.
+ var fnCleanHash = function( strHash ){
+ return(
+ strHash.substring( 1, strHash.length )
+ );
+ }
+
+ // This will be the method that we use to check
+ // changes in the window location.
+ var fnCheckLocation = function(){
+ // Check to see if the location has changed.
+ if (strLocation != window.location.href){
+
+ // Store the new and previous locations.
+ strPrevLocation = strLocation;
+ strPrevHash = strHash;
+ strLocation = window.location.href;
+ strHash = window.location.hash;
+
+ // The location has changed. Trigger a
+ // change event on the location object,
+ // passing in the current and previous
+ // location values.
+ $( window.location ).trigger(
+ "change",
+ {
+ currentHref: strLocation,
+ currentHash: fnCleanHash( strHash ),
+ previousHref: strPrevLocation,
+ previousHash: fnCleanHash( strPrevHash )
+ }
+ );
+
+ }
+ }
+
+ // Set an interval to check the location changes.
+ setInterval( fnCheckLocation, intIntervalTime );
+ }
+ )( jQuery );
+// and trigger highlight section on link change
+$(window.location).bind("change", highlight_new_section);
+
+</script>
+
+ </div>
+ </div>
+</div>
+
+<div id="footer">
+ <div class="container">
+ <div class="row">
+ <div class="col-md-10 text-muted">
+ Apache Brooklyn is distributed under the <a
href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+ License v2.0</a>.
+ <br />
+ Apache Brooklyn is currently undergoing Incubation at The
Apache Software
+ Foundation.
+ </div>
+ <div class="col-md-2">
+ <a class="btn btn-sm btn-default"
href="https://github.com/apache/incubator-brooklyn/edit/master/docs/guide/ops/troubleshooting/connectivity.md">Edit
This Page</a>
+ <a
href="http://0.0.0.0:4000/community/how-to-contribute-docs.html"
+ data-toggle="tooltip" data-placement="top" title="How to
Edit Documentation" data-delay="400"/>
+ <span class="octicon octicon-question octicon-footer"></span>
+ </a>
+ </div>
+ </div>
+ </div>
+</div>
+
+
+
+
+
+<script
src="//cdnjs.cloudflare.com/ajax/libs/zeroclipboard/1.3.1/ZeroClipboard.min.js"></script>
+
+<script language="JavaScript" type="application/javascript">
+ fix_padding_function = function () {
+ $('body').css('padding-top', parseInt($('#header').css("height"))+10);
+ $('body').css('padding-bottom',
parseInt($('#footer').css("height"))+10);
+ };
+ $(window).resize(fix_padding_function);
+ $(window).load(fix_padding_function);
+
+ $(function () {
+ $('[data-toggle="tooltip"]').tooltip({ delay: { show: 600, hide: 100
}})
+ });
+
+/* generate anchors for headers, a la github and
http://blog.parkermoore.de/2014/08/01/header-anchor-links-in-vanilla-javascript-for-github-pages-and-jekyll/
*/
+var anchorForId = function (id, text) {
+ var anchor = document.createElement("a");
+ anchor.className = "header-link";
+ anchor.href = "#" + id;
+ anchor.innerHTML = "<i class=\"fa fa-link\"></i>";
+ return anchor;
+};
+
+var linkifyAnchors = function (level, containingElement) {
+ var headers = contentBlock.find("h" + level);
+ for (var h = 0; h < headers.length; h++) {
+ var header = headers[h];
+ if (typeof header.id !== "undefined" && header.id !== "") {
+ header.appendChild(anchorForId(header.id, $(header).text()));
+ }
+ }
+};
+
+$(function () {
+ contentBlock = $("#content_container");
+ if (!contentBlock) return;
+ for (var level = 1; level <= 6; level++) {
+ linkifyAnchors(level, contentBlock);
+ }
+});
+
+<!-- Clipboard support -->
+ ZeroClipboard.config({ moviePath:
'//cdnjs.cloudflare.com/ajax/libs/zeroclipboard/1.3.1/ZeroClipboard.swf' });
+
+$(function() {
+ $('div.highlight').prepend(
+ $('<div class="clipboard_container" title="Copy to Clipboard">'+
+ '<div class="fa clipboard_button">'+
+ '<div class="on-active"><div>Copied to Clipboard</div></div>'+
+ '</div></div>'));
+ $('div.clipboard_container').each(function(index) {
+ var clipboard = new ZeroClipboard();
+ clipboard.clip( $(this).find(":first")[0], $(this)[0] );
+ var target = $(this).next();
+ var txt = target.text().trim();
+ if (target.find('code.bash')) {
+ // Strip out bash prompts from the start of each line (i.e. '$' or '%'
characters
+ // at the very start, or immediately following any newline). Correctly
handles continuation
+ // lines, where a leading '$' or '%' is *not* a prompt character.
+ txt = txt.replace(/(^|[^\\]\n)[$%] /g, "$1");
+ }
+ clipboard.on( 'dataRequested', function (client, args) {
+ client.setText( txt );
+ });
+ });
+});
+
+<!-- search -->
+ $(function() {
+ $('#simple_google')
+ .submit(function() {
+ $('input[name="q"]').val("site:" + document.location.hostname
+ " " + $('input[name="brooklyn-search"]').val());
+ return true;
+ });
+ $('input[name="brooklyn-search"]').focus(function() {
+ if ($(this).val() === $(this).attr('placeholder')) {
+ $(this).val('');
+ }
+ })
+ .blur(function() {
+ if ($(this).val() === '') {
+ $(this).val($(this).attr('placeholder'));
+ }
+ })
+ .blur();
+ });
+
+
+ <!-- analytics -->
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-30530918-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript';
ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' :
'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
+ })();
+
+
+<!-- page warning (for archive pages) -->
+
+
+ $(function() {
+ if (document.location.pathname.replace(/^\/([^\/]*).*$/, '$1') ===
"v"){
+ var thisversion = document.location.pathname.split("/")[2],
+ msg = "";
+ if (thisversion != 'latest' && (!$.cookie('brooklyn_versions') ||
+ (($.inArray('ALL',
$.cookie('brooklyn_versions').split(",")) === -1) &&
+ ($.inArray(thisversion,
$.cookie('brooklyn_versions').split(",")) === -1))) ){
+ msg += "<div class='warning_banner_image'><img
src='/v/0.7.0-incubating/style/img/warning.png'/></div>";
+ msg += "<p>You are browsing the archive site for version
<strong>"+thisversion+"</strong>.</p>";
+ if (thisversion.indexOf("SNAPSHOT") >= 0) {
+ msg += "<p>Note that SNAPSHOT versions have not been voted
on and are not endorsed by the Apache Software Foundation.</p>";
+ msg += "<p>Do you understand and accept the risks?</p>";
+ } else {
+ msg += "<p>Is this deliberate?</p>";
+ }
+ msg += "<center><p class='warning_banner_buttons'>";
+ msg += "<a href = 'javascript:void(0);'
onclick=\"set_user_version('"+thisversion+"');\">Yes, hide this warning</a>";
+ msg += "<a href = '/v/latest/'>No, take me to the latest
version guide</a>";
+ msg += "<a href = '/meta/versions.html'>Show all versions</a>";
+ msg += "</p></center>"
+
+ $('#page_notes').html(msg);
+ $('#page_notes').fadeIn('slow');
+ }
+ }
+ });
+
+ function get_user_versions() {
+ return $.cookie("brooklyn_versions") ?
$.cookie("brooklyn_versions").split(",") : [];
+ };
+ function set_user_version(version) {
+ var version_cookie = get_user_versions();
+ version_cookie.push(version);
+ $.cookie('brooklyn_versions', version_cookie, { expires: 365, path:
'/' });
+ $('#page_notes').fadeOut();
+ event.preventDefault ? event.preventDefault() : event.returnValue =
false;
+ };
+ function set_user_versions_all() {
+ var version_cookie = get_user_versions();
+ version_cookie.push("ALL");
+ $.cookie('brooklyn_versions', version_cookie, { expires: 365, path:
'/' });
+ $('#page_notes').fadeOut();
+ event.preventDefault ? event.preventDefault() : event.returnValue =
false;
+ };
+ function clear_user_versions() {
+ $.removeCookie('brooklyn_versions', { path: '/' });
+ $('#page_notes').fadeIn('slow');
+ event.preventDefault ? event.preventDefault() : event.returnValue =
false;
+ };
+
+</script>
+
+</body>
+
+</html>