http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol-website/blob/ee296175/docs/1.8.0/development/traffic_monitor.html
----------------------------------------------------------------------
diff --git a/docs/1.8.0/development/traffic_monitor.html 
b/docs/1.8.0/development/traffic_monitor.html
new file mode 100644
index 0000000..959832c
--- /dev/null
+++ b/docs/1.8.0/development/traffic_monitor.html
@@ -0,0 +1,392 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Traffic Monitor &mdash; Traffic Control 1.8.0 documentation </title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+    <link rel="stylesheet" href="../_static/theme_overrides.css" 
type="text/css" />
+  
+
+  
+    <link rel="top" title="Traffic Control 1.8.0 documentation" 
href="../index.html"/>
+        <link rel="up" title="Developer’s Guide" href="index.html"/>
+        <link rel="next" title="Traffic Monitor APIs" 
href="traffic_monitor/traffic_monitor_api.html"/>
+        <link rel="prev" title="Traffic Router API" 
href="traffic_router/traffic_router_api.html"/> 
+
+  
+  <script src="_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-nav-search">
+        
+
+        
+          <a href="/" class="icon icon-home"> Traffic Control
+        
+
+        
+          
+          <img src="../_static/tc_logo.png" class="logo" />
+        
+        </a>
+
+        
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" 
method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+        
+      </div>
+
+      <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" 
aria-label="main navigation">
+        
+          
+          
+              <ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../basics/index.html">CDN Basics</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../basics/content_delivery_networks.html">Content Delivery 
Networks</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../basics/http_11.html">HTTP 1.1</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../basics/caching_proxies.html">Caching Proxies</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../basics/cache_revalidation.html">Cache Control Headers and 
Revalidation</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../overview/index.html">Traffic Control Overview</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/introduction.html">Introduction</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_ops.html">Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_portal.html">Traffic Portal</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_router.html">Traffic Router</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_monitor.html">Traffic Monitor</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_stats.html">Traffic Stats</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_server.html">Traffic Server</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_vault.html">Traffic Vault</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../admin/index.html">Administrator&#8217;s Guide</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_ops_install.html">Installing Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_ops_config.html">Configuring Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_ops_using.html">Using Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_ops_extensions.html">Managing Traffic Ops 
Extensions</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_portal.html">Traffic Portal Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_monitor.html">Traffic Monitor Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_router.html">Traffic Router Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_stats.html">Traffic Stats Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_server.html">Traffic Server Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_vault.html">Traffic Vault Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/quick_howto/index.html">Quick How To Guides</a></li>
+</ul>
+</li>
+</ul>
+<ul class="current">
+<li class="toctree-l1 current"><a class="reference internal" 
href="index.html">Developer&#8217;s Guide</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_ops.html">Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_portal.html">Traffic Portal</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_router.html">Traffic Router</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" 
href="">Traffic Monitor</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_stats.html">Traffic Stats</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_server.html">Traffic Server</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../faq/index.html">FAQ</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../faq/general.html">General</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../faq/development.html">Development</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../faq/administration.html">Running a Traffic Control CDN</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../glossary.html">Glossary</a></li>
+</ul>
+
+          
+        
+      </div>
+      &nbsp;
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">Traffic Control</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          <div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Traffic Control 1.8.0</a> &raquo;</li>
+      
+          <li><a href="index.html">Developer&#8217;s Guide</a> &raquo;</li>
+      
+    <li>Traffic Monitor</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          <a href="../_sources/development/traffic_monitor.txt" 
rel="nofollow"> View page source</a>
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+                 
+                 <div class="rst-footer-buttons" role="navigation" 
aria-label="footer navigation">
+                 
+                         <a href="traffic_monitor/traffic_monitor_api.html" 
class="btn btn-neutral float-right" title="Traffic Monitor APIs">Next <span 
class="fa fa-arrow-circle-right"></span></a>
+                 
+                 
+                         <a href="traffic_router/traffic_router_api.html" 
class="btn btn-neutral" title="Traffic Router API"><span class="fa 
fa-arrow-circle-left"></span> Previous</a>
+                 
+                 </div>
+                 
+          <div role="main" class="document">
+            
+  <div class="section" id="traffic-monitor">
+<h1>Traffic Monitor<a class="headerlink" href="#traffic-monitor" 
title="Permalink to this headline">¶</a></h1>
+<div class="section" id="introduction">
+<h2>Introduction<a class="headerlink" href="#introduction" title="Permalink to 
this headline">¶</a></h2>
+<p>Traffic Monitor is a Java Tomcat application that monitors caches, provides 
health state information to Traffic Router, and collects statistics for use in 
tools such as Traffic Ops and Traffic Stats.  The health state provided by 
Traffic Monitor is used by Traffic Router to control which caches are available 
on the CDN.</p>
+</div>
+<div class="section" id="software-requirements">
+<h2>Software Requirements<a class="headerlink" href="#software-requirements" 
title="Permalink to this headline">¶</a></h2>
+<p>To work on Traffic Monitor you need a *nix (MacOS and Linux are most 
commonly used) environment that has the following installed:</p>
+<ul class="simple">
+<li>Eclipse &gt;= Kepler SR2 (or another Java IDE)</li>
+<li>Maven &gt;= 3.3.1</li>
+<li>JDK &gt;= 6.0</li>
+</ul>
+</div>
+<div class="section" id="traffic-monitor-project-tree-overview">
+<h2>Traffic Monitor Project Tree Overview<a class="headerlink" 
href="#traffic-monitor-project-tree-overview" title="Permalink to this 
headline">¶</a></h2>
+<ul>
+<li><p class="first"><code class="docutils literal"><span 
class="pre">traffic_control/traffic_monitor/</span></code> - base directory for 
Traffic Monitor</p>
+<blockquote>
+<div><ul>
+<li><p class="first"><code class="docutils literal"><span 
class="pre">etc/</span></code> - Miscellaneous simulator utilities</p>
+</li>
+<li><p class="first"><code class="docutils literal"><span 
class="pre">src/main</span></code> - Main source directory for the Traffic 
Monitor</p>
+<blockquote>
+<div><ul class="simple">
+<li><code class="docutils literal"><span class="pre">bin/</span></code> - 
Configuration tools</li>
+<li><code class="docutils literal"><span class="pre">conf/</span></code> - 
Configuration files</li>
+<li><code class="docutils literal"><span class="pre">java/</span></code> - 
Java source code for Traffic Monitor</li>
+<li><code class="docutils literal"><span 
class="pre">opt/tomcat/conf</span></code> - Contains Tomcat configuration 
file(s) pulled in during an RPM build</li>
+<li><code class="docutils literal"><span class="pre">resources/</span></code> 
- Resources pulled in during an RPM build</li>
+<li><code class="docutils literal"><span class="pre">scripts/</span></code> - 
Scripts used by the RPM build process</li>
+<li><code class="docutils literal"><span class="pre">webapp/</span></code> - 
Java webapp resources</li>
+</ul>
+</div></blockquote>
+</li>
+<li><p class="first"><code class="docutils literal"><span 
class="pre">src/test</span></code> - Test source directory for Traffic 
Monitor</p>
+<blockquote>
+<div><ul class="simple">
+<li><code class="docutils literal"><span class="pre">java/</span></code> - 
JUnit based unit tests for Traffic Monitor</li>
+<li><code class="docutils literal"><span 
class="pre">resources/conf</span></code> - Configuration files used by unit 
tests</li>
+<li><code class="docutils literal"><span 
class="pre">resources/db</span></code> - Files downloaded by unit tests</li>
+<li><code class="docutils literal"><span 
class="pre">resources/var</span></code> - Files generated by unit tests</li>
+</ul>
+</div></blockquote>
+</li>
+</ul>
+</div></blockquote>
+</li>
+</ul>
+</div>
+<div class="section" id="java-formatting-conventions">
+<h2>Java Formatting Conventions<a class="headerlink" 
href="#java-formatting-conventions" title="Permalink to this 
headline">¶</a></h2>
+<p>None at this time.  The codebase will eventually be formatted per Java 
standards.</p>
+</div>
+<div class="section" id="installing-the-developer-environment">
+<h2>Installing The Developer Environment<a class="headerlink" 
href="#installing-the-developer-environment" title="Permalink to this 
headline">¶</a></h2>
+<p>To install the Traffic Monitor Developer environment:</p>
+<ol class="arabic simple">
+<li>Clone the traffic_control repository using Git.</li>
+<li>Change directories into <code class="docutils literal"><span 
class="pre">traffic_control/traffic_monitor</span></code>.</li>
+<li>Edit the following parameters in 
src/test/resources/conf/traffic_monitor_config.js:</li>
+</ol>
+<table border="1" class="docutils">
+<colgroup>
+<col width="22%" />
+<col width="78%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Parameter</th>
+<th class="head">Value</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><code class="docutils literal"><span 
class="pre">tm.hostname</span></code></td>
+<td>FQDN of the Traffic Ops instance (do not include <a class="reference 
external" href="http://";>http://</a>).</td>
+</tr>
+<tr class="row-odd"><td><code class="docutils literal"><span 
class="pre">tm.username</span></code></td>
+<td>Admin username for Traffic Ops</td>
+</tr>
+<tr class="row-even"><td><code class="docutils literal"><span 
class="pre">tm.password</span></code></td>
+<td>Password for admin user</td>
+</tr>
+<tr class="row-odd"><td><code class="docutils literal"><span 
class="pre">cdnName</span></code></td>
+<td>Name of the CDN this Traffic Monitor will monitor</td>
+</tr>
+</tbody>
+</table>
+<ol class="arabic" start="4">
+<li><p class="first">Import the existing git repo into Eclipse:</p>
+<blockquote>
+<div><ol class="loweralpha simple">
+<li>File -&gt; Import -&gt; Git -&gt; Projects from Git; Next</li>
+<li>Existing local repository; Next</li>
+<li>Add -&gt; browse to find <code class="docutils literal"><span 
class="pre">traffic_control</span></code>; Add</li>
+<li>Select <code class="docutils literal"><span 
class="pre">traffic_control</span></code>; Next</li>
+<li>Ensure &#8220;Import existing projects&#8221; is selected, expand <code 
class="docutils literal"><span class="pre">traffic_control</span></code>, 
select <code class="docutils literal"><span 
class="pre">traffic_monitor</span></code>; Next</li>
+<li>Ensure <code class="docutils literal"><span 
class="pre">traffic_monitor</span></code> is checked; Finish</li>
+<li>Ensure <code class="docutils literal"><span 
class="pre">traffic_monitor</span></code> has been opened by Eclipse after 
importing</li>
+</ol>
+</div></blockquote>
+</li>
+<li><p class="first">Run <code class="docutils literal"><span 
class="pre">mvn</span> <span class="pre">clean</span> <span 
class="pre">verify</span></code> from the <code class="docutils literal"><span 
class="pre">traffic_monitor</span></code> directory</p>
+</li>
+<li><p class="first">Start the embedded Jetty instance from within Eclipse</p>
+<blockquote>
+<div><ol class="loweralpha">
+<li><p class="first">In the package explorer, expand <code class="docutils 
literal"><span class="pre">traffic_monitor</span></code></p>
+</li>
+<li><p class="first">Expand <code class="docutils literal"><span 
class="pre">src/test/java</span></code></p>
+</li>
+<li><p class="first">Expand the package <code class="docutils literal"><span 
class="pre">com.comcast.cdn.traffic_control.traffic_monitor</span></code></p>
+</li>
+<li><p class="first">Open and run <code class="docutils literal"><span 
class="pre">Start.java</span></code></p>
+<blockquote>
+<div><div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">If an error is displayed in the Console, run <code 
class="docutils literal"><span class="pre">mvn</span> <span 
class="pre">clean</span> <span class="pre">verify</span></code> from the <code 
class="docutils literal"><span class="pre">traffic_monitor</span></code> 
directory</p>
+</div>
+</div></blockquote>
+</li>
+<li><p class="first">With a web browser, navigate to <a class="reference 
external" href="http://localhost:8080";>http://localhost:8080</a></p>
+</li>
+</ol>
+</div></blockquote>
+</li>
+</ol>
+</div>
+<div class="section" id="test-cases">
+<h2>Test Cases<a class="headerlink" href="#test-cases" title="Permalink to 
this headline">¶</a></h2>
+<p>Unit tests can be executed using Maven by running <code class="docutils 
literal"><span class="pre">mvn</span> <span class="pre">test</span></code> at 
the root of the <code class="docutils literal"><span 
class="pre">traffic_monitor</span></code> project.</p>
+</div>
+<div class="section" id="api">
+<h2>API<a class="headerlink" href="#api" title="Permalink to this 
headline">¶</a></h2>
+<p><a class="reference internal" 
href="traffic_monitor/traffic_monitor_api.html#reference-tm-api"><em>Traffic 
Monitor APIs</em></a></p>
+<div class="toctree-wrapper compound">
+</div>
+</div>
+</div>
+
+
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer 
navigation">
+      
+        <a href="traffic_monitor/traffic_monitor_api.html" class="btn 
btn-neutral float-right" title="Traffic Monitor APIs">Next <span class="fa 
fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="traffic_router/traffic_router_api.html" class="btn 
btn-neutral" title="Traffic Router API"><span class="fa 
fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/";>Sphinx</a> using a <a 
href="https://github.com/snide/sphinx_rtd_theme";>theme</a> provided by <a 
href="https://readthedocs.org";>Read the Docs</a>.
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.8.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol-website/blob/ee296175/docs/1.8.0/development/traffic_monitor/traffic_monitor_api.html
----------------------------------------------------------------------
diff --git a/docs/1.8.0/development/traffic_monitor/traffic_monitor_api.html 
b/docs/1.8.0/development/traffic_monitor/traffic_monitor_api.html
new file mode 100644
index 0000000..05152ce
--- /dev/null
+++ b/docs/1.8.0/development/traffic_monitor/traffic_monitor_api.html
@@ -0,0 +1,505 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Traffic Monitor APIs &mdash; Traffic Control 1.8.0 documentation 
</title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" 
/>
+  
+
+  
+    <link rel="stylesheet" href="../../_static/theme_overrides.css" 
type="text/css" />
+  
+
+  
+    <link rel="top" title="Traffic Control 1.8.0 documentation" 
href="../../index.html"/>
+        <link rel="up" title="Traffic Monitor" href="../traffic_monitor.html"/>
+        <link rel="next" title="Traffic Stats" href="../traffic_stats.html"/>
+        <link rel="prev" title="Traffic Monitor" 
href="../traffic_monitor.html"/> 
+
+  
+  <script src="_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-nav-search">
+        
+
+        
+          <a href="/" class="icon icon-home"> Traffic Control
+        
+
+        
+          
+          <img src="../../_static/tc_logo.png" class="logo" />
+        
+        </a>
+
+        
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../../search.html" 
method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+        
+      </div>
+
+      <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" 
aria-label="main navigation">
+        
+          
+          
+              <ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../../basics/index.html">CDN Basics</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../../basics/content_delivery_networks.html">Content Delivery 
Networks</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../../basics/http_11.html">HTTP 1.1</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../../basics/caching_proxies.html">Caching Proxies</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../../basics/cache_revalidation.html">Cache Control Headers and 
Revalidation</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../../overview/index.html">Traffic Control Overview</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../../overview/introduction.html">Introduction</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../../overview/traffic_ops.html">Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../../overview/traffic_portal.html">Traffic Portal</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../../overview/traffic_router.html">Traffic Router</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../../overview/traffic_monitor.html">Traffic Monitor</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../../overview/traffic_stats.html">Traffic Stats</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../../overview/traffic_server.html">Traffic Server</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../../overview/traffic_vault.html">Traffic Vault</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../../admin/index.html">Administrator&#8217;s Guide</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../../admin/traffic_ops_install.html">Installing Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../../admin/traffic_ops_config.html">Configuring Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../../admin/traffic_ops_using.html">Using Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../../admin/traffic_ops_extensions.html">Managing Traffic Ops 
Extensions</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../../admin/traffic_portal.html">Traffic Portal Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../../admin/traffic_monitor.html">Traffic Monitor Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../../admin/traffic_router.html">Traffic Router Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../../admin/traffic_stats.html">Traffic Stats Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../../admin/traffic_server.html">Traffic Server Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../../admin/traffic_vault.html">Traffic Vault Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../../admin/quick_howto/index.html">Quick How To Guides</a></li>
+</ul>
+</li>
+</ul>
+<ul class="current">
+<li class="toctree-l1 current"><a class="reference internal" 
href="../index.html">Developer&#8217;s Guide</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" 
href="../traffic_ops.html">Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../traffic_portal.html">Traffic Portal</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../traffic_router.html">Traffic Router</a></li>
+<li class="toctree-l2 current"><a class="reference internal" 
href="../traffic_monitor.html">Traffic Monitor</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../traffic_stats.html">Traffic Stats</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../traffic_server.html">Traffic Server</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../../faq/index.html">FAQ</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../../faq/general.html">General</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../../faq/development.html">Development</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../../faq/administration.html">Running a Traffic Control CDN</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../../glossary.html">Glossary</a></li>
+</ul>
+
+          
+        
+      </div>
+      &nbsp;
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../../index.html">Traffic Control</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          <div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../../index.html">Traffic Control 1.8.0</a> &raquo;</li>
+      
+          <li><a href="../index.html">Developer&#8217;s Guide</a> &raquo;</li>
+      
+          <li><a href="../traffic_monitor.html">Traffic Monitor</a> 
&raquo;</li>
+      
+    <li>Traffic Monitor APIs</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          <a 
href="../../_sources/development/traffic_monitor/traffic_monitor_api.txt" 
rel="nofollow"> View page source</a>
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+                 
+                 <div class="rst-footer-buttons" role="navigation" 
aria-label="footer navigation">
+                 
+                         <a href="../traffic_stats.html" class="btn 
btn-neutral float-right" title="Traffic Stats">Next <span class="fa 
fa-arrow-circle-right"></span></a>
+                 
+                 
+                         <a href="../traffic_monitor.html" class="btn 
btn-neutral" title="Traffic Monitor"><span class="fa 
fa-arrow-circle-left"></span> Previous</a>
+                 
+                 </div>
+                 
+          <div role="main" class="document">
+            
+  <div class="section" id="traffic-monitor-apis">
+<span id="reference-tm-api"></span><h1>Traffic Monitor APIs<a 
class="headerlink" href="#traffic-monitor-apis" title="Permalink to this 
headline">¶</a></h1>
+<p>The Traffic Monitor URLs below allow certain query parameters for use in 
controlling the data returned. The optional query parameters are the 
<em>tabbed</em> in values under each URL, if they exist.</p>
+<div class="line-block">
+<div class="line"><br /></div>
+</div>
+<p><strong>/publish/EventLog</strong></p>
+<p>Log of recent events.</p>
+<div class="line-block">
+<div class="line"><br /></div>
+</div>
+<p><strong>/publish/CacheStats</strong></p>
+<p>Statistics gathered for each cache.</p>
+<p><strong>Query Parameters</strong></p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="20%" />
+<col width="13%" />
+<col width="68%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Parameter</th>
+<th class="head">Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><code class="docutils literal"><span 
class="pre">hc</span></code></td>
+<td>int</td>
+<td>The history count, number of items to display.</td>
+</tr>
+<tr class="row-odd"><td><code class="docutils literal"><span 
class="pre">stats</span></code></td>
+<td>string</td>
+<td>A comma separated list of stats to display.</td>
+</tr>
+<tr class="row-even"><td><code class="docutils literal"><span 
class="pre">wildcard</span></code></td>
+<td>boolean</td>
+<td>Controls whether specified stats should be
+treated as partial strings.</td>
+</tr>
+</tbody>
+</table>
+<div class="line-block">
+<div class="line"><br /></div>
+</div>
+<p><strong>/publish/CacheStats/:cache</strong></p>
+<p>Statistics gathered for only this cache.</p>
+<p><strong>Query Parameters</strong></p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="20%" />
+<col width="13%" />
+<col width="68%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Parameter</th>
+<th class="head">Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><code class="docutils literal"><span 
class="pre">hc</span></code></td>
+<td>int</td>
+<td>The history count, number of items to display.</td>
+</tr>
+<tr class="row-odd"><td><code class="docutils literal"><span 
class="pre">stats</span></code></td>
+<td>string</td>
+<td>A comma separated list of stats to display.</td>
+</tr>
+<tr class="row-even"><td><code class="docutils literal"><span 
class="pre">wildcard</span></code></td>
+<td>boolean</td>
+<td>Controls whether specified stats should be
+treated as partial strings.</td>
+</tr>
+</tbody>
+</table>
+<div class="line-block">
+<div class="line"><br /></div>
+</div>
+<p><strong>/publish/DsStats</strong></p>
+<p>Statistics gathered for delivery services.</p>
+<p><strong>Query Parameters</strong></p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="20%" />
+<col width="13%" />
+<col width="68%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Parameter</th>
+<th class="head">Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><code class="docutils literal"><span 
class="pre">hc</span></code></td>
+<td>int</td>
+<td>The history count, number of items to display.</td>
+</tr>
+<tr class="row-odd"><td><code class="docutils literal"><span 
class="pre">stats</span></code></td>
+<td>string</td>
+<td>A comma separated list of stats to display.</td>
+</tr>
+<tr class="row-even"><td><code class="docutils literal"><span 
class="pre">wildcard</span></code></td>
+<td>boolean</td>
+<td>Controls whether specified stats should be
+treated as partial strings.</td>
+</tr>
+</tbody>
+</table>
+<div class="line-block">
+<div class="line"><br /></div>
+</div>
+<p><strong>/publish/DsStats/:deliveryService</strong></p>
+<p>Statistics gathered for this delivery service only.</p>
+<p><strong>Query Parameters</strong></p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="20%" />
+<col width="13%" />
+<col width="68%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Parameter</th>
+<th class="head">Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><code class="docutils literal"><span 
class="pre">hc</span></code></td>
+<td>int</td>
+<td>The history count, number of items to display.</td>
+</tr>
+<tr class="row-odd"><td><code class="docutils literal"><span 
class="pre">stats</span></code></td>
+<td>string</td>
+<td>A comma separated list of stats to display.</td>
+</tr>
+<tr class="row-even"><td><code class="docutils literal"><span 
class="pre">wildcard</span></code></td>
+<td>boolean</td>
+<td>Controls whether specified stats should be
+treated as partial strings.</td>
+</tr>
+</tbody>
+</table>
+<div class="line-block">
+<div class="line"><br /></div>
+</div>
+<p><strong>/publish/CrStates</strong></p>
+<p>The current state of this CDN per the health protocol.</p>
+<div class="line-block">
+<div class="line"><br /></div>
+</div>
+<p><strong>raw</strong></p>
+<p>The current state of this CDN per this Traffic Monitor only.</p>
+<div class="line-block">
+<div class="line"><br /></div>
+</div>
+<p><strong>/publish/CrConfig</strong></p>
+<p>The CrConfig served to and consumed by Traffic Router.</p>
+<div class="line-block">
+<div class="line"><br /></div>
+</div>
+<p><strong>/publish/PeerStates</strong></p>
+<p>The health state information from all peer Traffic Monitors.</p>
+<p><strong>Query Parameters</strong></p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="20%" />
+<col width="13%" />
+<col width="68%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Parameter</th>
+<th class="head">Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><code class="docutils literal"><span 
class="pre">hc</span></code></td>
+<td>int</td>
+<td>The history count, number of items to display.</td>
+</tr>
+<tr class="row-odd"><td><code class="docutils literal"><span 
class="pre">stats</span></code></td>
+<td>string</td>
+<td>A comma separated list of stats to display.</td>
+</tr>
+<tr class="row-even"><td><code class="docutils literal"><span 
class="pre">wildcard</span></code></td>
+<td>boolean</td>
+<td>Controls whether specified stats should be
+treated as partial strings.</td>
+</tr>
+</tbody>
+</table>
+<div class="line-block">
+<div class="line"><br /></div>
+</div>
+<p><strong>/publish/Stats</strong></p>
+<p>The general statistics about Traffic Monitor.</p>
+<div class="line-block">
+<div class="line"><br /></div>
+</div>
+<p><strong>/publish/StatSummary</strong></p>
+<p>The summary of cache statistics.</p>
+<p><strong>Query Parameters</strong></p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="18%" />
+<col width="11%" />
+<col width="71%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Parameter</th>
+<th class="head">Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><code class="docutils literal"><span 
class="pre">startTime</span></code></td>
+<td>number</td>
+<td>Window start. The number of milliseconds since the epoch.</td>
+</tr>
+<tr class="row-odd"><td><code class="docutils literal"><span 
class="pre">endTime</span></code></td>
+<td>number</td>
+<td>Window end. The number of milliseconds since the epoch.</td>
+</tr>
+<tr class="row-even"><td><code class="docutils literal"><span 
class="pre">hc</span></code></td>
+<td>int</td>
+<td>The history count, number of items to display.</td>
+</tr>
+<tr class="row-odd"><td><code class="docutils literal"><span 
class="pre">stats</span></code></td>
+<td>string</td>
+<td>A comma separated list of stats to display.</td>
+</tr>
+<tr class="row-even"><td><code class="docutils literal"><span 
class="pre">wildcard</span></code></td>
+<td>boolean</td>
+<td>Controls whether specified stats should be
+treated as partial strings.</td>
+</tr>
+<tr class="row-odd"><td><code class="docutils literal"><span 
class="pre">cache</span></code></td>
+<td>string</td>
+<td>Summary statistics for just this cache.</td>
+</tr>
+</tbody>
+</table>
+<div class="line-block">
+<div class="line"><br /></div>
+</div>
+<p><strong>/publish/ConfigDoc</strong></p>
+<p>The overview of configuration options.</p>
+</div>
+
+
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer 
navigation">
+      
+        <a href="../traffic_stats.html" class="btn btn-neutral float-right" 
title="Traffic Stats">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="../traffic_monitor.html" class="btn btn-neutral" 
title="Traffic Monitor"><span class="fa fa-arrow-circle-left"></span> 
Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/";>Sphinx</a> using a <a 
href="https://github.com/snide/sphinx_rtd_theme";>theme</a> provided by <a 
href="https://readthedocs.org";>Read the Docs</a>.
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../../',
+            VERSION:'1.8.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../../_static/jquery.js"></script>
+      <script type="text/javascript" 
src="../../_static/underscore.js"></script>
+      <script type="text/javascript" src="../../_static/doctools.js"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol-website/blob/ee296175/docs/1.8.0/development/traffic_ops.html
----------------------------------------------------------------------
diff --git a/docs/1.8.0/development/traffic_ops.html 
b/docs/1.8.0/development/traffic_ops.html
new file mode 100644
index 0000000..340c5e8
--- /dev/null
+++ b/docs/1.8.0/development/traffic_ops.html
@@ -0,0 +1,895 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Traffic Ops &mdash; Traffic Control 1.8.0 documentation </title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+    <link rel="stylesheet" href="../_static/theme_overrides.css" 
type="text/css" />
+  
+
+  
+    <link rel="top" title="Traffic Control 1.8.0 documentation" 
href="../index.html"/>
+        <link rel="up" title="Developer’s Guide" href="index.html"/>
+        <link rel="next" title="API Routes" 
href="traffic_ops_api/routes.html"/>
+        <link rel="prev" title="Developer’s Guide" href="index.html"/> 
+
+  
+  <script src="_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-nav-search">
+        
+
+        
+          <a href="/" class="icon icon-home"> Traffic Control
+        
+
+        
+          
+          <img src="../_static/tc_logo.png" class="logo" />
+        
+        </a>
+
+        
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" 
method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+        
+      </div>
+
+      <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" 
aria-label="main navigation">
+        
+          
+          
+              <ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../basics/index.html">CDN Basics</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../basics/content_delivery_networks.html">Content Delivery 
Networks</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../basics/http_11.html">HTTP 1.1</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../basics/caching_proxies.html">Caching Proxies</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../basics/cache_revalidation.html">Cache Control Headers and 
Revalidation</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../overview/index.html">Traffic Control Overview</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/introduction.html">Introduction</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_ops.html">Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_portal.html">Traffic Portal</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_router.html">Traffic Router</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_monitor.html">Traffic Monitor</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_stats.html">Traffic Stats</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_server.html">Traffic Server</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_vault.html">Traffic Vault</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../admin/index.html">Administrator&#8217;s Guide</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_ops_install.html">Installing Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_ops_config.html">Configuring Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_ops_using.html">Using Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_ops_extensions.html">Managing Traffic Ops 
Extensions</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_portal.html">Traffic Portal Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_monitor.html">Traffic Monitor Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_router.html">Traffic Router Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_stats.html">Traffic Stats Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_server.html">Traffic Server Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_vault.html">Traffic Vault Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/quick_howto/index.html">Quick How To Guides</a></li>
+</ul>
+</li>
+</ul>
+<ul class="current">
+<li class="toctree-l1 current"><a class="reference internal" 
href="index.html">Developer&#8217;s Guide</a><ul class="current">
+<li class="toctree-l2 current"><a class="current reference internal" 
href="">Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_portal.html">Traffic Portal</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_router.html">Traffic Router</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_monitor.html">Traffic Monitor</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_stats.html">Traffic Stats</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_server.html">Traffic Server</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../faq/index.html">FAQ</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../faq/general.html">General</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../faq/development.html">Development</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../faq/administration.html">Running a Traffic Control CDN</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../glossary.html">Glossary</a></li>
+</ul>
+
+          
+        
+      </div>
+      &nbsp;
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">Traffic Control</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          <div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Traffic Control 1.8.0</a> &raquo;</li>
+      
+          <li><a href="index.html">Developer&#8217;s Guide</a> &raquo;</li>
+      
+    <li>Traffic Ops</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          <a href="../_sources/development/traffic_ops.txt" rel="nofollow"> 
View page source</a>
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+                 
+                 <div class="rst-footer-buttons" role="navigation" 
aria-label="footer navigation">
+                 
+                         <a href="traffic_ops_api/routes.html" class="btn 
btn-neutral float-right" title="API Routes">Next <span class="fa 
fa-arrow-circle-right"></span></a>
+                 
+                 
+                         <a href="index.html" class="btn btn-neutral" 
title="Developer’s Guide"><span class="fa fa-arrow-circle-left"></span> 
Previous</a>
+                 
+                 </div>
+                 
+          <div role="main" class="document">
+            
+  <div class="section" id="traffic-ops">
+<h1>Traffic Ops<a class="headerlink" href="#traffic-ops" title="Permalink to 
this headline">¶</a></h1>
+<div class="section" id="introduction">
+<h2>Introduction<a class="headerlink" href="#introduction" title="Permalink to 
this headline">¶</a></h2>
+<p>Traffic Ops uses a MySql or Postgres database to store the configuration 
information, and the <a class="reference external" 
href="http://mojolicio.us/";>Mojolicious framework</a> to generate the user 
interface and REST APIs.</p>
+</div>
+<div class="section" id="software-requirements">
+<h2>Software Requirements<a class="headerlink" href="#software-requirements" 
title="Permalink to this headline">¶</a></h2>
+<p>To work on Traffic Ops you need a *nix (MacOS and Linux are most commonly 
used) environment that has the following installed:</p>
+<ul class="simple">
+<li><a class="reference external" 
href="http://search.cpan.org/~miyagawa/Carton-v1.0.12/lib/Carton.pm";>Carton 
1.0.12</a><ul>
+<li>cpan JSON</li>
+<li>cpan JSON::PP</li>
+</ul>
+</li>
+<li><a class="reference external" href="http://golang.org/doc/install";>Go 
1.4</a></li>
+<li>Perl 5.10.1</li>
+<li>Git</li>
+<li>MySQL 5.1.52</li>
+<li><a class="reference external" 
href="https://bitbucket.org/liamstask/goose/";>Goose</a></li>
+</ul>
+</div>
+<div class="section" id="traffic-ops-project-tree-overview">
+<h2>Traffic Ops Project Tree Overview<a class="headerlink" 
href="#traffic-ops-project-tree-overview" title="Permalink to this 
headline">¶</a></h2>
+<p><strong>/opt/traffic_ops/app</strong></p>
+<ul class="simple">
+<li>bin/ - Directory for scripts, cronjobs, etc</li>
+<li>conf/<ul>
+<li>/development - Development (local) specific config files.</li>
+<li>/misc - Miscellaneous config files.</li>
+<li>/production - Production specific config files.</li>
+<li>/test - Test (unit test) specific config files.</li>
+</ul>
+</li>
+<li>db/ - Database related area.<ul>
+<li>/migrations - Database Migration files.</li>
+</ul>
+</li>
+<li>lib/<ul>
+<li>/API - Mojo Controllers for the /API area of the application.</li>
+<li>/Common - Common Code between both the API and UI areas.</li>
+<li>/Extensions</li>
+<li>Fixtures/ - Test Case fixture data for the &#8216;to_test&#8217; database.
+* /Integration - Integration Tests.</li>
+<li>/MojoPlugins - Mojolicious Plugins for Common Controller Code.</li>
+<li>Schema/ - Database Schema area.
+* /Result - DBIx ORM related files.</li>
+<li>/Test - Common Test.</li>
+<li>/UI - Mojo Controllers for the Traffic Ops UI itself.</li>
+<li>Utils/
+* /Helper - Common utilities for the Traffic Ops application.</li>
+</ul>
+</li>
+<li>log/ - Log directory where the development and test files are written by 
the app.</li>
+<li>public/</li>
+</ul>
+<blockquote>
+<div><ul class="simple">
+<li>css/ - Stylesheets.</li>
+<li>images/ - Images.</li>
+<li>js/ - Javascripts</li>
+</ul>
+</div></blockquote>
+<ul class="simple">
+<li>script/ - Mojo Bootstrap scripts.</li>
+<li>t/ - Unit Tests for the UI.</li>
+</ul>
+<blockquote>
+<div><ul class="simple">
+<li>api/ - Unit Tests for the API.</li>
+</ul>
+</div></blockquote>
+<ul class="simple">
+<li>t_integration/ - High level tests for Integration level testing.</li>
+<li>templates/ - Mojo Embedded Perl (.ep) files for the UI.</li>
+</ul>
+</div>
+<div class="section" id="perl-formatting-conventions">
+<h2>Perl Formatting Conventions<a class="headerlink" 
href="#perl-formatting-conventions" title="Permalink to this 
headline">¶</a></h2>
+<p>Perl tidy is for use in code formatting. See the following config file for 
formatting conventions.</p>
+<div class="highlight-python"><div class="highlight"><pre>edit a file called 
$HOME/.perltidyrc
+
+-l=156
+-et=4
+-t
+-ci=4
+-st
+-se
+-vt=0
+-cti=0
+-pt=1
+-bt=1
+-sbt=1
+-bbt=1
+-nsfs
+-nolq
+-otr
+-aws
+-wls=&quot;= + - / * .&quot;
+-wrs=\&quot;= + - / * .\&quot;
+-wbb=&quot;% + - * / x != == &gt;= &lt;= =~ &lt; &gt; | &amp; **= += *= &amp;= 
&lt;&lt;= &amp;&amp;= -= /= |= + &gt;&gt;= ||= .= %= ^= x=&quot;
+</pre></div>
+</div>
+</div>
+<div class="section" id="database-management">
+<h2>Database Management<a class="headerlink" href="#database-management" 
title="Permalink to this headline">¶</a></h2>
+<p>The admin.pl script is for use in managing the Traffic Ops database tables. 
Below is an example of its usage.</p>
+<p><code class="docutils literal"><span class="pre">$</span> <span 
class="pre">db/admin.pl</span></code></p>
+<p>Usage:  db/admin.pl [&#8211;env (development|test|production)] 
[arguments]</p>
+<p>Example: <code class="docutils literal"><span 
class="pre">db/admin.pl</span> <span class="pre">--env=test</span> <span 
class="pre">reset</span></code></p>
+<p>Purpose:  This script is used to manage the database. The environments are 
defined in the dbconf.yml, as well as the database names.</p>
+<ul class="simple">
+<li>To use the <code class="docutils literal"><span 
class="pre">admin.pl</span></code> script, you may need to add <code 
class="docutils literal"><span class="pre">traffic_ops/lib</span></code> and 
<code class="docutils literal"><span 
class="pre">traffic_ops/local/lib/perl5</span></code> to your <a 
class="reference external" 
href="http://modperlbook.org/html/3-9-2-2-Using-the-PERL5LIB-environment-variable.html";>PERL5LIB</a>
 environment variable.</li>
+</ul>
+<table border="1" class="docutils">
+<colgroup>
+<col width="14%" />
+<col width="86%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Arguments</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>create</td>
+<td>Execute db &#8216;create&#8217; the database for the current 
environment.</td>
+</tr>
+<tr class="row-odd"><td>down</td>
+<td>Roll back a single migration from the current version.</td>
+</tr>
+<tr class="row-even"><td>drop</td>
+<td>Execute db &#8216;drop&#8217; on the database for the current 
environment.</td>
+</tr>
+<tr class="row-odd"><td>redo</td>
+<td>Roll back the most recently applied migration, then run it again.</td>
+</tr>
+<tr class="row-even"><td>reset</td>
+<td>Execute db drop, create, load_schema, migrate on the database for
+the current environment.</td>
+</tr>
+<tr class="row-odd"><td>seed</td>
+<td>Execute SQL from db/seeds.sql for loading static data.</td>
+</tr>
+<tr class="row-even"><td>setup</td>
+<td>Execute db drop, create, load_schema, migrate, seed on the
+database for the current environment.</td>
+</tr>
+<tr class="row-odd"><td>status</td>
+<td>Print the status of all migrations.</td>
+</tr>
+<tr class="row-even"><td>upgrade</td>
+<td>Execute migrate then seed on the database for the current
+environment.</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="section" id="installing-the-developer-environment">
+<h2>Installing The Developer Environment<a class="headerlink" 
href="#installing-the-developer-environment" title="Permalink to this 
headline">¶</a></h2>
+<p>To install the Traffic Ops Developer environment:</p>
+<ol class="arabic simple">
+<li>Clone the traffic_control repository from <a class="reference external" 
href="https://github.com/apache/incubator-trafficcontrol";>github.com</a>.</li>
+<li>Install the local dependencies using Carton (cpanfile).</li>
+</ol>
+<blockquote>
+<div><div class="highlight-python"><div class="highlight"><pre>$ cd 
traffic_ops/app
+$ carton
+</pre></div>
+</div>
+</div></blockquote>
+<ol class="arabic simple" start="3">
+<li>Set up a user in MySQL.</li>
+</ol>
+<blockquote>
+<div><p>Example:</p>
+<div class="highlight-python"><div class="highlight"><pre>master $ mysql
+Welcome to the MySQL monitor.  Commands end with ; or \g.
+Your MySQL connection id is 305
+Server version: 5.6.19 Homebrew
+
+Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
+
+Oracle is a registered trademark of Oracle Corporation and/or its
+affiliates. Other names may be trademarks of their respective
+owners.
+
+Type &#39;help;&#39; or &#39;\h&#39; for help. Type &#39;\c&#39; to clear the 
current input statement.
+
+mysql&gt; create user &#39;to_user&#39;@&#39;localhost&#39;;
+mysql&gt; grant all on to_development.* to 
&#39;to_user&#39;@&#39;localhost&#39; identified by &#39;twelve&#39;;
+mysql&gt; grant all on to_test.* to &#39;to_user&#39;@&#39;localhost&#39; 
identified by &#39;twelve&#39;;
+mysql&gt; grant all on to_integration.* to 
&#39;to_user&#39;@&#39;localhost&#39; identified by &#39;twelve&#39;;
+</pre></div>
+</div>
+</div></blockquote>
+<ol class="arabic" start="4">
+<li><p class="first">Enter <code class="docutils literal"><span 
class="pre">db/admin.pl</span> <span class="pre">--env=&lt;enviroment</span> 
<span class="pre">name&gt;</span> <span class="pre">setup</span></code> to set 
up the traffic_ops database(s).</p>
+<ul class="simple">
+<li>Unit test database: <code class="docutils literal"><span 
class="pre">$</span> <span class="pre">db/admin.pl</span> <span 
class="pre">--env=test</span> <span class="pre">setup</span></code></li>
+<li>Development database: <code class="docutils literal"><span 
class="pre">$</span> <span class="pre">db/admin.pl</span> <span 
class="pre">--env=development</span> <span class="pre">setup</span></code></li>
+<li>Integration database: <code class="docutils literal"><span 
class="pre">$</span> <span class="pre">db/admin.pl</span> <span 
class="pre">--env=integration</span> <span class="pre">setup</span></code></li>
+</ul>
+<div class="line-block">
+<div class="line"><br /></div>
+</div>
+<p>Running the the admin.pl script in setup mode should look like this:</p>
+<div class="highlight-python"><div class="highlight"><pre>master $ db/admin.pl 
--env=development setup
+Using database.conf: conf/development/database.conf
+Using database.conf: conf/development/database.conf
+Using database.conf: conf/development/database.conf
+Using database.conf: conf/development/database.conf
+Using database.conf: conf/development/database.conf
+Using database.conf: conf/development/database.conf
+Executing &#39;drop database to_development&#39;
+Executing &#39;create database to_development&#39;
+Creating database tables...
+Warning: Using a password on the command line interface can be insecure.
+Migrating database...
+goose: migrating db environment &#39;development&#39;, current version: 0, 
target: 20150210100000
+OK    20141222103718_extension.sql
+OK    20150108100000_add_job_deliveryservice.sql
+OK    20150205100000_cg_location.sql
+OK    20150209100000_cran_to_asn.sql
+OK    20150210100000_ds_keyinfo.sql
+Seeding database...
+Warning: Using a password on the command line interface can be insecure.
+</pre></div>
+</div>
+</li>
+<li><p class="first">(Optional) To load temporary data into the tables: <code 
class="docutils literal"><span class="pre">$</span> <span 
class="pre">perl</span> <span 
class="pre">bin/db/setup_kabletown.pl</span></code></p>
+</li>
+<li><p class="first">Run the postinstall script: <code class="docutils 
literal"><span class="pre">traffic_ops/install/bin/postinstall</span></code></p>
+</li>
+<li><p class="first">To start Traffic Ops, enter <code class="docutils 
literal"><span class="pre">$</span> <span 
class="pre">bin/start.pl</span></code></p>
+<p>The local Traffic Ops instance uses an open source framework called morbo, 
starting following the start command execution.</p>
+<p>Start up success includes the following:</p>
+</li>
+</ol>
+<blockquote>
+<div><div class="highlight-python"><div class="highlight"><pre>[2015-02-24 
10:44:34,991] [INFO] Listening at &quot;http://*:3000&quot;.
+
+Server available at http://127.0.0.1:3000.
+</pre></div>
+</div>
+</div></blockquote>
+<ol class="arabic simple" start="8">
+<li>Using a browser, navigate to the given address: <code class="docutils 
literal"><span class="pre">http://127.0.0.1:3000</span></code></li>
+<li>For the initial log in:</li>
+</ol>
+<blockquote>
+<div><ul class="simple">
+<li>User name: admin</li>
+<li>Password: password</li>
+</ul>
+</div></blockquote>
+<ol class="arabic simple" start="10">
+<li>Change the log in information.</li>
+</ol>
+</div>
+<div class="section" id="test-cases">
+<h2>Test Cases<a class="headerlink" href="#test-cases" title="Permalink to 
this headline">¶</a></h2>
+<p>Use prove to execute test cases. Execute after a carton install:</p>
+<ul class="simple">
+<li>To run the Unit Tests: <code class="docutils literal"><span 
class="pre">$</span> <span class="pre">local/bin/prove</span> <span 
class="pre">-qrp</span>&nbsp; <span class="pre">t/</span></code></li>
+<li>To run the Integration Tests: <code class="docutils literal"><span 
class="pre">$</span> <span class="pre">local/bin/prove</span> <span 
class="pre">-qrp</span> <span class="pre">t_integration/</span></code></li>
+</ul>
+<div class="section" id="the-kabletown-cdn-example">
+<h3>The KableTown CDN example<a class="headerlink" 
href="#the-kabletown-cdn-example" title="Permalink to this headline">¶</a></h3>
+<p>The integration tests will load an example CDN with most of the features of 
Traffic Control being used. This is mostly for testing purposes, but can also 
be used as an example of how to configure certain features. To load the 
KableTown CDN example and access it:</p>
+<ol class="arabic simple">
+<li>Run the integration tests</li>
+<li>Start morbo against the integration database: <code class="docutils 
literal"><span class="pre">export</span> <span 
class="pre">MOJO_MODE=integration;</span> <span 
class="pre">./bin/start.pl</span></code></li>
+<li>Using a browser, navigate to the given address: <code class="docutils 
literal"><span class="pre">http://127.0.0.1:3000</span></code></li>
+<li>For the initial log in:</li>
+</ol>
+<blockquote>
+<div><ul class="simple">
+<li>User name: admin</li>
+<li>Password: password</li>
+</ul>
+</div></blockquote>
+</div>
+</div>
+<div class="section" id="extensions">
+<h2>Extensions<a class="headerlink" href="#extensions" title="Permalink to 
this headline">¶</a></h2>
+<p>Traffic Ops Extensions are a way to enhance the basic functionality of 
Traffic Ops in a custom manner. There are three types of extensions:</p>
+<ol class="arabic simple">
+<li>Check Extensions</li>
+</ol>
+<blockquote>
+<div>These allow you to add custom checks to the &#8220;Health-&gt;Server 
Checks&#8221; view.</div></blockquote>
+<ol class="arabic simple" start="2">
+<li>Configuration Extensions</li>
+</ol>
+<blockquote>
+<div>These allow you to add custom configuration file 
generators.</div></blockquote>
+<ol class="arabic simple" start="3">
+<li>Data source Extensions</li>
+</ol>
+<blockquote>
+<div>These allow you to add statistic sources for the graph views and 
APIs.</div></blockquote>
+<p>Extensions are managed using the $TO_HOME/bin/extensions command line 
script. For more information see <a class="reference internal" 
href="../admin/traffic_ops_extensions.html#admin-to-ext-script"><em>Managing 
Traffic Ops Extensions</em></a>.</p>
+<div class="section" id="check-extensions">
+<h3>Check Extensions<a class="headerlink" href="#check-extensions" 
title="Permalink to this headline">¶</a></h3>
+<p>In other words, check extensions are scripts that, after registering with 
Traffic Ops, have a column reserved in the &#8220;Health-&gt;Server 
Checks&#8221; view and that usually run periodically out of cron.</p>
+<p>It is the responsibility of the check extension script to iterate over the 
servers it wants to check and post the results.</p>
+<p>An example script might proceed by logging into the Traffic Ops server 
using the HTTPS base_url provided on the command line. The script is hardcoded 
with an auth token that is also provisioned in the Traffic Ops User database. 
This token allows the script to obtain a cookie used in later communications 
with the Traffic Ops API. The script then obtains a list of all caches to be 
polled by accessing Traffic Ops&#8217; <code class="docutils literal"><span 
class="pre">/api/1.1/servers.json</span></code> REST target. This list is 
walked, running a command to gather the stats from that cache. For some 
extensions, an HTTP GET request might be made to the ATS astats plugin, while 
for others the cache might be pinged, or a command run over SSH. The results 
are then compiled into a numeric or boolean result and the script POSTs tha 
result back to the Traffic Ops <code class="docutils literal"><span 
class="pre">/api/1.1/servercheck/</span></code> target.</p>
+<p>A check extension can have a column of <img alt="checkmark" 
src="../_images/good1.png" />&#8216;s and <img alt="X" 
src="../_images/bad1.png" />&#8216;s (CHECK_EXTENSION_BOOL) or a column that 
shows a number (CHECK_EXTENSION_NUM).A simple example of a check extension of 
type CHECK_EXTENSION_NUM that will show 99.33 for all servers of type EDGE is 
shown below:</p>
+<div class="highlight-python"><div class="highlight"><pre>Script here.
+</pre></div>
+</div>
+<p>Check Extension scripts are located in the $TO_HOME/bin/checks 
directory.</p>
+<p>Currently, the following Check Extensions are available and installed by 
default:</p>
+<dl class="docutils">
+<dt><strong>Cache Disk Usage Check - CDU</strong></dt>
+<dd>This check shows how much of the available total cache disk is in use. A 
&#8220;warm&#8221; cache should show 100.00.</dd>
+<dt><strong>Cache Hit Ratio Check - CHR</strong></dt>
+<dd>The cache hit ratio for the cache in the last 15 minutes (the interval is 
determined by the cron entry).</dd>
+<dt><strong>DiffServe CodePoint Check - DSCP</strong></dt>
+<dd>Checks if the returning traffic from the cache has the correct DSCP value 
as assigned in the delivery service. (Some routers will overwrite DSCP)</dd>
+<dt><strong>Maximum Transmission Check - MTU</strong></dt>
+<dd>Checks if the Traffic Ops host (if that is the one running the check) can 
send and receive 8192 size packets to the <code class="docutils literal"><span 
class="pre">ip_address</span></code> of the server in the server table.</dd>
+<dt><strong>Operational Readiness Check - ORT</strong></dt>
+<dd>See <a class="reference internal" 
href="../admin/traffic_server.html#reference-traffic-ops-ort"><em>Configuring 
Traffic Server</em></a> for more information on the ort script. The ORT column 
shows how many changes the traffic_ops_ort.pl script would apply if it was run. 
The number in this column should be 0.</dd>
+<dt><strong>Ping Check - 10G, ILO, 10G6, FQDN</strong></dt>
+<dd><p class="first">The bin/checks/ToPingCheck.pl is to check basic IP 
connectivity, and in the default setup it checks IP connectivity to the 
following:</p>
+<dl class="last docutils">
+<dt>10G</dt>
+<dd>Is the <code class="docutils literal"><span 
class="pre">ip_address</span></code> (the main IPv4 address) from the server 
table pingable?</dd>
+<dt>ILO</dt>
+<dd>Is the <code class="docutils literal"><span 
class="pre">ilo_ip_address</span></code> (the lights-out-mangement IPv4 
address) from the server table pingable?</dd>
+<dt>10G6</dt>
+<dd>Is the <code class="docutils literal"><span 
class="pre">ip6_address</span></code> (the main IPv6 address) from the server 
table pingable?</dd>
+<dt>FQDN</dt>
+<dd>Is the Fully Qualified Domain name (the concatenation of <code 
class="docutils literal"><span class="pre">host_name</span></code> and <code 
class="docutils literal"><span class="pre">.</span></code> and <code 
class="docutils literal"><span class="pre">domain_name</span></code> from the 
server table) pingable?</dd>
+</dl>
+</dd>
+<dt><strong>Traffic Router Check - RTR</strong></dt>
+<dd>Checks the state of each cache as perceived by all Traffic Monitors (via 
Traffic Router). This extension asks each Traffic Router for the state of the 
cache. A check failure is indicated if one or more monitors report an error for 
a cache. A cache is only marked as good if all reports are positive. (This is a 
pessimistic approach, opposite of how TM marks a cache as up, &#8220;the 
optimistic approach&#8221;)</dd>
+</dl>
+</div>
+<div class="section" id="configuration-extensions">
+<h3>Configuration Extensions<a class="headerlink" 
href="#configuration-extensions" title="Permalink to this headline">¶</a></h3>
+<p>NOTE: Config Extensions are Beta at this time.</p>
+</div>
+<div class="section" id="data-source-extensions">
+<h3>Data Source Extensions<a class="headerlink" href="#data-source-extensions" 
title="Permalink to this headline">¶</a></h3>
+<p>Traffic Ops has the ability to load custom code at runtime that allow any 
CDN user to build custom APIs for any requirement that Traffic Ops does not 
fulfill.  There are two classes of Data Source Extensions, private and public.  
Private extensions are Traffic Ops extensions that are not publicly available, 
and should be kept in the /opt/traffic_ops_extensions/private/lib. Public 
extensions are Traffic Ops extensions that are Open Source in nature and free 
to enhance or contribute back to the Traffic Ops Open Source project and should 
be kept in /opt/traffic_ops/app/lib/Extensions.</p>
+</div>
+<div class="section" id="extensions-at-runtime">
+<h3>Extensions at Runtime<a class="headerlink" href="#extensions-at-runtime" 
title="Permalink to this headline">¶</a></h3>
+<p>The search path for extensions depends on the configuration of the 
PERL5LIB, which is preconfigured in the Traffic Ops start scripts.  The 
following directory structure is where Traffic Ops will look for Extensions in 
this order.</p>
+</div>
+<div class="section" id="extension-directories">
+<h3>Extension Directories<a class="headerlink" href="#extension-directories" 
title="Permalink to this headline">¶</a></h3>
+<p>PERL5LIB Example Configuration:</p>
+<div class="highlight-python"><div class="highlight"><pre>export 
PERL5LIB=/opt/traffic_ops_extensions/private/lib/Extensions:/opt/traffic_ops/app/lib/Extensions/TrafficStats
+</pre></div>
+</div>
+</div>
+<div class="section" id="perl-package-naming-convention">
+<h3>Perl Package Naming Convention<a class="headerlink" 
href="#perl-package-naming-convention" title="Permalink to this 
headline">¶</a></h3>
+<p>To prevent Extension namespace collisions within Traffic Ops all Extensions 
should follow the package naming convention below:</p>
+<p>Extensions::&lt;ExtensionName&gt;</p>
+<p>Data Source Extension Perl package name example
+Extensions::TrafficStats
+Extensions::YourCustomExtension</p>
+</div>
+<div class="section" id="trafficopsroutes-pm">
+<h3>TrafficOpsRoutes.pm<a class="headerlink" href="#trafficopsroutes-pm" 
title="Permalink to this headline">¶</a></h3>
+<p>Traffic Ops accesses each extension through the addition of a URL route as 
a custom hook.  These routes will be defined in a file called 
TrafficOpsRoutes.pm that should live in the top directory of your Extension.  
The routes that are defined should follow the Mojolicious route conventions.</p>
+</div>
+<div class="section" id="development-configuration">
+<h3>Development Configuration<a class="headerlink" 
href="#development-configuration" title="Permalink to this headline">¶</a></h3>
+<p>To incorporate any custom Extensions during development set your PERL5LIB 
with any number of directories with the understanding that the PERL5LIB search 
order will come into play, so keep in mind that top-down is how your code will 
be located.  Once Perl locates your custom route or Perl package/class it 
&#8216;pins&#8217; on that class or Mojo Route and doesn&#8217;t look any 
further, which allows for the developer to <em>override</em> Traffic Ops 
functionality.</p>
+</div>
+</div>
+<div class="section" id="api">
+<h2>API<a class="headerlink" href="#api" title="Permalink to this 
headline">¶</a></h2>
+<p>The Traffic Ops API provides programmatic access to read and write CDN data 
providing authorized API consumers with the ability to monitor CDN performance 
and configure CDN settings and parameters.</p>
+<div class="section" id="response-structure">
+<h3>Response Structure<a class="headerlink" href="#response-structure" 
title="Permalink to this headline">¶</a></h3>
+<p>All successful responses have the following structure:</p>
+<div class="highlight-python"><div class="highlight"><pre>{
+  &quot;response&quot;: &lt;JSON object with main response&gt;,
+}
+</pre></div>
+</div>
+<p>To make the documentation easier to read, only the <code class="docutils 
literal"><span class="pre">&lt;JSON</span> <span class="pre">object</span> 
<span class="pre">with</span> <span class="pre">main</span> <span 
class="pre">response&gt;</span></code> is documented, even though the response 
and version fields are always present.</p>
+</div>
+<div class="section" id="using-api-endpoints">
+<h3>Using API Endpoints<a class="headerlink" href="#using-api-endpoints" 
title="Permalink to this headline">¶</a></h3>
+<ol class="arabic simple">
+<li>Authenticate with your Traffic Portal or Traffic Ops user account 
credentials.</li>
+<li>Upon successful user authentication, note the mojolicious cookie value in 
the response headers.</li>
+<li>Pass the mojolicious cookie value, along with any subsequent calls to an 
authenticated API endpoint.</li>
+</ol>
+<p>Example:</p>
+<div class="highlight-python"><div class="highlight"><pre>[jvd@laika ~]$ curl 
-H &quot;Accept: application/json&quot; 
http://localhost:3000/api/1.1/usage/asns.json
+{&quot;alerts&quot;:[{&quot;level&quot;:&quot;error&quot;,&quot;text&quot;:&quot;Unauthorized,
 please log in.&quot;}]}
+[jvd@laika ~]$
+[jvd@laika ~]$ curl -v -H &quot;Accept: application/json&quot; -v -X POST 
--data &#39;{ &quot;u&quot;:&quot;admin&quot;, 
&quot;p&quot;:&quot;secret_passwd&quot; }&#39; 
http://localhost:3000/api/1.1/user/login
+* Hostname was NOT found in DNS cache
+*   Trying ::1...
+* connect to ::1 port 3000 failed: Connection refused
+*   Trying 127.0.0.1...
+* Connected to localhost (127.0.0.1) port 3000 (#0)
+&gt; POST /api/1.1/user/login HTTP/1.1
+&gt; User-Agent: curl/7.37.1
+&gt; Host: localhost:3000
+&gt; Accept: application/json
+&gt; Content-Length: 32
+&gt; Content-Type: application/x-www-form-urlencoded
+&gt;
+* upload completely sent off: 32 out of 32 bytes
+&lt; HTTP/1.1 200 OK
+&lt; Connection: keep-alive
+&lt; Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE
+&lt; Access-Control-Allow-Origin: http://localhost:8080
+&lt; Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, 
Accept
+&lt; Set-Cookie: 
mojolicious=eyJleHBpcmVzIjoxNDI5NDAyMjAxLCJhdXRoX2RhdGEiOiJhZG1pbiJ9--f990d03b7180b1ece97c3bb5ca69803cd6a79862;
 expires=Sun, 19 Apr 2015 00:10:01 GMT; path=/; HttpOnly
+&lt; Content-Type: application/json
+&lt; Date: Sat, 18 Apr 2015 20:10:01 GMT
+&lt; Access-Control-Allow-Credentials: true
+&lt; Content-Length: 81
+&lt; Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+* Server Mojolicious (Perl) is not blacklisted
+&lt; Server: Mojolicious (Perl)
+&lt;
+* Connection #0 to host localhost left intact
+{&quot;alerts&quot;:[{&quot;level&quot;:&quot;success&quot;,&quot;text&quot;:&quot;Successfully
 logged in.&quot;}]}
+[jvd@laika ~]$
+
+[jvd@laika ~]$ curl -H&#39;Cookie: 
mojolicious=eyJleHBpcmVzIjoxNDI5NDAyMjAxLCJhdXRoX2RhdGEiOiJhZG1pbiJ9--f990d03b7180b1ece97c3bb5ca69803cd6a79862;&#39;
 -H &quot;Accept: application/json&quot; http://localhost:3000/api/1.1/asns.json
+{&quot;response&quot;:{&quot;asns&quot;:[{&quot;lastUpdated&quot;:&quot;2012-09-17
 15:41:22&quot;, .. asn data deleted ..   ,}
+[jvd@laika ~]$
+</pre></div>
+</div>
+</div>
+<div class="section" id="api-errors">
+<h3>API Errors<a class="headerlink" href="#api-errors" title="Permalink to 
this headline">¶</a></h3>
+<p><strong>Response Properties</strong></p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="28%" />
+<col width="10%" />
+<col width="62%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Parameter</th>
+<th class="head">Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><code class="docutils literal"><span 
class="pre">alerts</span></code></td>
+<td>array</td>
+<td>A collection of alert messages.</td>
+</tr>
+<tr class="row-odd"><td><code class="docutils literal"><span 
class="pre">&gt;level</span></code></td>
+<td>string</td>
+<td>Success, info, warning or error.</td>
+</tr>
+<tr class="row-even"><td><code class="docutils literal"><span 
class="pre">&gt;text</span></code></td>
+<td>string</td>
+<td>Alert message.</td>
+</tr>
+</tbody>
+</table>
+<p>The 3 most common errors returned by Traffic Ops are:</p>
+<dl class="docutils">
+<dt>401 Unauthorized</dt>
+<dd><p class="first">When you don&#8217;t supply the right cookie, this is the 
response.</p>
+<div class="last highlight-python"><div class="highlight"><pre>[jvd@laika ~]$ 
curl -v -H &quot;Accept: application/json&quot; 
http://localhost:3000/api/1.1/usage/asns.json
+* Hostname was NOT found in DNS cache
+*   Trying ::1...
+* connect to ::1 port 3000 failed: Connection refused
+*   Trying 127.0.0.1...
+* Connected to localhost (127.0.0.1) port 3000 (#0)
+&gt; GET /api/1.1/usage/asns.json HTTP/1.1
+&gt; User-Agent: curl/7.37.1
+&gt; Host: localhost:3000
+&gt; Accept: application/json
+&gt;
+&lt; HTTP/1.1 401 Unauthorized
+&lt; Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+&lt; Content-Length: 84
+* Server Mojolicious (Perl) is not blacklisted
+&lt; Server: Mojolicious (Perl)
+&lt; Connection: keep-alive
+&lt; Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE
+&lt; Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, 
Accept
+&lt; Access-Control-Allow-Origin: http://localhost:8080
+&lt; Date: Sat, 18 Apr 2015 20:36:12 GMT
+&lt; Content-Type: application/json
+&lt; Access-Control-Allow-Credentials: true
+&lt;
+* Connection #0 to host localhost left intact
+{&quot;alerts&quot;:[{&quot;level&quot;:&quot;error&quot;,&quot;text&quot;:&quot;Unauthorized,
 please log in.&quot;}]}
+[jvd@laika ~]$
+</pre></div>
+</div>
+</dd>
+<dt>404 Not Found</dt>
+<dd><p class="first">When the resource (path) is non existent Traffic Ops 
returns a 404:</p>
+<div class="last highlight-python"><div class="highlight"><pre>[jvd@laika ~]$ 
curl -v -H&#39;Cookie: 
mojolicious=eyJleHBpcmVzIjoxNDI5NDAyMjAxLCJhdXRoX2RhdGEiOiJhZG1pbiJ9--f990d03b7180b1ece97c3bb5ca69803cd6a79862;&#39;
 -H &quot;Accept: application/json&quot; 
http://localhost:3000/api/1.1/asnsjj.json
+* Hostname was NOT found in DNS cache
+*   Trying ::1...
+* connect to ::1 port 3000 failed: Connection refused
+*   Trying 127.0.0.1...
+* Connected to localhost (127.0.0.1) port 3000 (#0)
+&gt; GET /api/1.1/asnsjj.json HTTP/1.1
+&gt; User-Agent: curl/7.37.1
+&gt; Host: localhost:3000
+&gt; Cookie: 
mojolicious=eyJleHBpcmVzIjoxNDI5NDAyMjAxLCJhdXRoX2RhdGEiOiJhZG1pbiJ9--f990d03b7180b1ece97c3bb5ca69803cd6a79862;
+&gt; Accept: application/json
+&gt;
+&lt; HTTP/1.1 404 Not Found
+* Server Mojolicious (Perl) is not blacklisted
+&lt; Server: Mojolicious (Perl)
+&lt; Content-Length: 75
+&lt; Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+&lt; Content-Type: application/json
+&lt; Date: Sat, 18 Apr 2015 20:37:43 GMT
+&lt; Access-Control-Allow-Credentials: true
+&lt; Set-Cookie: 
mojolicious=eyJleHBpcmVzIjoxNDI5NDAzODYzLCJhdXRoX2RhdGEiOiJhZG1pbiJ9--8a5a61b91473bc785d4073fe711de8d2c63f02dd;
 expires=Sun, 19 Apr 2015 00:37:43 GMT; path=/; HttpOnly
+&lt; Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE
+&lt; Connection: keep-alive
+&lt; Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, 
Accept
+&lt; Access-Control-Allow-Origin: http://localhost:8080
+&lt;
+* Connection #0 to host localhost left intact
+{&quot;alerts&quot;:[{&quot;text&quot;:&quot;Resource not 
found.&quot;,&quot;level&quot;:&quot;error&quot;}]}
+[jvd@laika ~]$
+</pre></div>
+</div>
+</dd>
+<dt>500 Internal Server Error</dt>
+<dd><p class="first">When you are asking for a correct path, but the database 
doesn&#8217;t match, it returns a 500:</p>
+<div class="highlight-python"><div class="highlight"><pre>[jvd@laika ~]$ curl 
-v -H&#39;Cookie: 
mojolicious=eyJleHBpcmVzIjoxNDI5NDAyMjAxLCJhdXRoX2RhdGEiOiJhZG1pbiJ9--f990d03b7180b1ece97c3bb5ca69803cd6a79862;&#39;
 -H &quot;Accept: application/json&quot; 
http://localhost:3000/api/1.1/servers/hostname/jj/details.json
+* Hostname was NOT found in DNS cache
+*   Trying ::1...
+* connect to ::1 port 3000 failed: Connection refused
+*   Trying 127.0.0.1...
+* Connected to localhost (127.0.0.1) port 3000 (#0)
+&gt; GET /api/1.1/servers/hostname/jj/details.json HTTP/1.1
+&gt; User-Agent: curl/7.37.1
+&gt; Host: localhost:3000
+&gt; Cookie: 
mojolicious=eyJleHBpcmVzIjoxNDI5NDAyMjAxLCJhdXRoX2RhdGEiOiJhZG1pbiJ9--f990d03b7180b1ece97c3bb5ca69803cd6a79862;
+&gt; Accept: application/json
+&gt;
+&lt; HTTP/1.1 500 Internal Server Error
+* Server Mojolicious (Perl) is not blacklisted
+&lt; Server: Mojolicious (Perl)
+&lt; Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+&lt; Content-Length: 93
+&lt; Set-Cookie: 
mojolicious=eyJhdXRoX2RhdGEiOiJhZG1pbiIsImV4cGlyZXMiOjE0Mjk0MDQzMDZ9--1b08977e91f8f68b0ff5d5e5f6481c76ddfd0853;
 expires=Sun, 19 Apr 2015 00:45:06 GMT; path=/; HttpOnly
+&lt; Content-Type: application/json
+&lt; Date: Sat, 18 Apr 2015 20:45:06 GMT
+&lt; Access-Control-Allow-Credentials: true
+&lt; Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE
+&lt; Connection: keep-alive
+&lt; Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, 
Accept
+&lt; Access-Control-Allow-Origin: http://localhost:8080
+&lt;
+* Connection #0 to host localhost left intact
+{&quot;alerts&quot;:[{&quot;level&quot;:&quot;error&quot;,&quot;text&quot;:&quot;An
 error occurred. Please contact your administrator.&quot;}]}
+[jvd@laika ~]$
+</pre></div>
+</div>
+<p class="last">The rest of the API documentation will only document the <code 
class="docutils literal"><span class="pre">200</span> <span 
class="pre">OK</span></code> case, where no errors have occured.</p>
+</dd>
+</dl>
+</div>
+<div class="section" id="traffic-ops-api-routes">
+<h3>Traffic Ops API Routes<a class="headerlink" href="#traffic-ops-api-routes" 
title="Permalink to this headline">¶</a></h3>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/routes.html">API Routes</a></li>
+</ul>
+</div>
+</div>
+<div class="section" id="api-1-1-reference">
+<h3>API 1.1 Reference<a class="headerlink" href="#api-1-1-reference" 
title="Permalink to this headline">¶</a></h3>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v11/asn.html">ASN</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v11/cachegroup.html">Cache Group</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v11/cdn.html">CDN</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v11/changelog.html">Change Logs</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v11/deliveryservice.html">Delivery Service</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v11/hwinfo.html">Hardware Info</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v11/parameter.html">Parameter</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v11/phys_location.html">Physical Location</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v11/profile.html">Profiles</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v11/region.html">Regions</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v11/role.html">Roles</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v11/server.html">Server</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v11/static_dns.html">Static DNS Entries</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v11/status.html">Status</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v11/system.html">System</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v11/to_extension.html">TO Extensions</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v11/type.html">Types</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v11/user.html">Users</a></li>
+</ul>
+</div>
+</div>
+<div class="section" id="api-1-2-reference">
+<h3>API 1.2 Reference<a class="headerlink" href="#api-1-2-reference" 
title="Permalink to this headline">¶</a></h3>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/asn.html">ASN</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/cachegroup.html">Cache Group</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/cache_stats.html">Cache Statistics</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/cdn.html">CDN</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/changelog.html">Change Logs</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/deliveryservice.html">Delivery Service</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/deliveryservice_stats.html">Delivery Service 
Statistics</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/division.html">Divisions</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/federation.html">Federation</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/hwinfo.html">Hardware Info</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/parameter.html">Parameter</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/phys_location.html">Physical Location</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/profile.html">Profiles</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/profile_parameter.html">Profile parameters</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/influxdb.html">InfluxDB</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/region.html">Regions</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/role.html">Roles</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/server.html">Server</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/static_dns.html">Static DNS Entries</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/status.html">Status</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/system.html">System</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/to_extension.html">TO Extensions</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/type.html">Types</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/user.html">Users</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="traffic_ops_api/v12/topology.html">Snapshot CRConfig</a></li>
+</ul>
+</div>
+</div>
+</div>
+</div>
+
+
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer 
navigation">
+      
+        <a href="traffic_ops_api/routes.html" class="btn btn-neutral 
float-right" title="API Routes">Next <span class="fa 
fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="index.html" class="btn btn-neutral" title="Developer’s 
Guide"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/";>Sphinx</a> using a <a 
href="https://github.com/snide/sphinx_rtd_theme";>theme</a> provided by <a 
href="https://readthedocs.org";>Read the Docs</a>.
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.8.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file

Reply via email to