You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by mi...@apache.org on 2018/10/10 18:25:58 UTC

[trafficcontrol] branch master updated (ff796e0 -> b43fbcd)

This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git.


    from ff796e0  update release.pl git address
     new 25c43b7  finished adding 1.3 routes
     new 4a20e54  updated an api route
     new f0003a0  More API updates
     new 4dc9664  Fixed favicon and logo not linked
     new 0f94d63  No, seriously, what's with the arrow?
     new 260d154  added logo to LaTeX output
     new 3a710e7  Formatting consitency
     new 29f7c32  formatting consistency
     new f55bb40  Moved non-static files out of _static
     new 689fbba  Formatting changes, links between anonymous blocking rtype and tr logs
     new 1d5256f  added DNS response parser
     new c12828e  Title level consistency
     new 8f85133  Formatting
     new 56024fe  trivial whitespace change
     new da4cc35  Formatting
     new b0d1c9f  added admonition advising that a database is not provided
     new a9dc462  Added links to RGB docs
     new d0d7740  formatting and consistency
     new c9397bd  Title level consistency
     new 08048de  Replaced a text diagram with an image and formatting overhaul
     new cefa1dd  Formatting consistency
     new 0102c21  List format consistency, adding to directory listing
     new 305dc1d  Added missing commands/correcting existing commands for `admin.pl` docs
     new e91962f  Finished test case and example fixups
     new 31c5483  Fixed missing reference
     new 3216def  Moving Extension documentation to one place
     new 6bb37ca  Transformed some diagrams from ASCII -> SVG/PNG pairs
     new 34e3ece  Replaced Remaining ASCII diagrams
     new 5842d38  Converted decorated lists to definition lists
     new 5332624  Removed unnecessary `ref` roles on local section headings
     new 05a1f4e  Fixed broken logo spec/switched to new, *real* SVG logo for HTML
     new 362095b  Converting examples to syntax-highlighted examples
     new bfa0f25  Formatting overhaul to TM API docs
     new 0203ed5  Fixed the compatibility issue... again?
     new 2bb53b9  Added license headers
     new 22c7443  Using a more modern Python version to build docs
     new 0c40137  disabling parallel build, fixed a couple of build errors
     new e55f4f6  Added libpcap dependency listing
     new b43fbcd  Added instructions for building the documentation

The 39 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 docs/Makefile                                      |    2 +-
 docs/source/_static/theme_overrides.css            |    4 -
 docs/source/_static/warning.png                    |  Bin 595 -> 0 bytes
 .../admin/quick_howto/anonymous_blocking.rst       |   98 +-
 docs/source/admin/quick_howto/ds_requests.rst      |   10 +-
 docs/source/admin/quick_howto/federations.rst      |   91 +-
 docs/source/admin/quick_howto/index.rst            |    2 +-
 docs/source/admin/quick_howto/regionalgeo.rst      |  164 +-
 docs/source/admin/traffic_ops/extensions.rst       |   44 +-
 .../{_static => admin/traffic_ops/images}/bad.png  |  Bin
 .../traffic_ops/images}/clock-black.png            |  Bin
 .../traffic_ops/images}/clock.png                  |  Bin
 .../{_static => admin/traffic_ops/images}/good.png |  Bin
 .../traffic_ops/images}/graph.png                  |  Bin
 .../{_static => admin/traffic_ops/images}/info.png |  Bin
 docs/source/admin/traffic_ops/using.rst            |   12 +-
 docs/source/admin/traffic_router.rst               |  114 +-
 docs/source/api/routes.rst                         |    2 +
 docs/source/api/traffic_ops_api.rst                |  369 ++--
 docs/source/api/v11/asn.rst                        |  103 +-
 docs/source/api/v11/cachegroup.rst                 |  657 ++++---
 docs/source/api/v11/cdn.rst                        | 1913 ++++++++++----------
 docs/source/basics/caching_proxies.rst             |   80 +-
 docs/source/conf.py                                |   47 +-
 docs/source/development/building.rst               |  103 +-
 docs/source/development/index.rst                  |    1 +
 docs/source/development/traffic_monitor.rst        |  270 +--
 .../traffic_monitor/Health_Pipeline.png            |  Bin 0 -> 24657 bytes
 .../traffic_monitor/Health_Pipeline.svg            |   61 +
 .../traffic_monitor/Monitor_Pipeline.png           |  Bin 0 -> 30199 bytes
 .../traffic_monitor/Monitor_Pipeline.svg           |   53 +
 .../traffic_monitor/Ops-Config_Pipeline.png        |  Bin 0 -> 45045 bytes
 .../traffic_monitor/Ops-Config_Pipeline.svg        |   63 +
 .../development/traffic_monitor/Peer_Pipeline.png  |  Bin 0 -> 23854 bytes
 .../development/traffic_monitor/Peer_Pipeline.svg  |   59 +
 .../development/traffic_monitor/Pipeline.png       |  Bin 0 -> 292921 bytes
 .../development/traffic_monitor/Pipeline.svg       |  282 +++
 .../development/traffic_monitor/Stat_Pipeline.png  |  Bin 0 -> 23077 bytes
 .../development/traffic_monitor/Stat_Pipeline.svg  |   65 +
 .../traffic_monitor/traffic_monitor_api.rst        |  378 ++--
 docs/source/development/traffic_ops.rst            |  489 +++--
 docs/source/index.rst                              |    4 +-
 docs/source/overview/fwda.png                      |  Bin 206 -> 0 bytes
 docs/source/overview/traffic_monitor.rst           |   40 +-
 docs/source/overview/traffic_router.rst            |   89 +-
 docs/source/overview/traffic_stats.rst             |   31 +-
 infrastructure/docker/build/Dockerfile-docs        |    7 +-
 47 files changed, 3243 insertions(+), 2464 deletions(-)
 delete mode 100644 docs/source/_static/warning.png
 rename docs/source/{_static => admin/traffic_ops/images}/bad.png (100%)
 rename docs/source/{_static => admin/traffic_ops/images}/clock-black.png (100%)
 rename docs/source/{_static => admin/traffic_ops/images}/clock.png (100%)
 rename docs/source/{_static => admin/traffic_ops/images}/good.png (100%)
 rename docs/source/{_static => admin/traffic_ops/images}/graph.png (100%)
 rename docs/source/{_static => admin/traffic_ops/images}/info.png (100%)
 create mode 100644 docs/source/development/traffic_monitor/Health_Pipeline.png
 create mode 100644 docs/source/development/traffic_monitor/Health_Pipeline.svg
 create mode 100644 docs/source/development/traffic_monitor/Monitor_Pipeline.png
 create mode 100644 docs/source/development/traffic_monitor/Monitor_Pipeline.svg
 create mode 100644 docs/source/development/traffic_monitor/Ops-Config_Pipeline.png
 create mode 100644 docs/source/development/traffic_monitor/Ops-Config_Pipeline.svg
 create mode 100644 docs/source/development/traffic_monitor/Peer_Pipeline.png
 create mode 100644 docs/source/development/traffic_monitor/Peer_Pipeline.svg
 create mode 100644 docs/source/development/traffic_monitor/Pipeline.png
 create mode 100644 docs/source/development/traffic_monitor/Pipeline.svg
 create mode 100644 docs/source/development/traffic_monitor/Stat_Pipeline.png
 create mode 100644 docs/source/development/traffic_monitor/Stat_Pipeline.svg
 delete mode 100644 docs/source/overview/fwda.png


[trafficcontrol] 08/39: formatting consistency

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 29f7c32c92f442f8dfa1222c0cc418e5a2d8cebb
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Tue Sep 18 18:11:48 2018 -0600

    formatting consistency
---
 docs/source/index.rst | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/source/index.rst b/docs/source/index.rst
index 75b5ccc..753d0e4 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -13,9 +13,9 @@
 .. limitations under the License.
 ..
 
-%%%%%%%%%%%%%%%
+***************
 Traffic Control
-%%%%%%%%%%%%%%%
+***************
 
 The vast majority of today's Internet traffic is media files being sent from a single source to many thousands or even millions of destinations. Content Delivery Networks make that one-to-many distribution possible in an economical way.
 


[trafficcontrol] 17/39: Added links to RGB docs

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit a9dc4620f19095bfacdcffb4e2fd46e6b9216eeb
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Thu Sep 20 06:10:57 2018 -0600

    Added links to RGB docs
---
 docs/source/admin/traffic_router.rst | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/docs/source/admin/traffic_router.rst b/docs/source/admin/traffic_router.rst
index 4a5c160..052a9bc 100644
--- a/docs/source/admin/traffic_router.rst
+++ b/docs/source/admin/traffic_router.rst
@@ -228,6 +228,7 @@ Fields Always Present
 |rerr  |Message about internal Traffic Router Error                                      |String                                                                              |
 +------+---------------------------------------------------------------------------------+------------------------------------------------------------------------------------+
 
+.. seealso:: If `Regional Geo-Blocking <regionalgeo-qht>`_ is enabled on the Delivery Service, an additional field (``rgb``) will appear.
 
 ``rtype`` Meanings
 ^^^^^^^^^^^^^^^^^^
@@ -250,11 +251,11 @@ FED
 GEO
 	The result was derived from geolocation service based on the address in the ``chi`` field
 GEO_REDIRECT
-	The request was redirected (302) based on the National Geo blocking (Geo Limit Redirect URL) configured on the Delivery Service
+	The request was redirected based on the National Geo blocking (Geo Limit Redirect URL) configured on the Delivery Service
 MISS
 	Traffic Router was unable to resolve a DNS request or find a cache for the requested resource
 RGALT
-	The request was redirected (302) to the Regional Geo blocking URL. Regional Geo blocking is enabled on the Delivery Service and is configured through the ``regional_geoblock.polling.url`` setting for the Traffic Router profile
+	The request was redirected to the `Regional Geo-Blocking <regionalgeo-qht>`_ URL. Regional Geo blocking is enabled on the Delivery Service and is configured through the ``regional_geoblock.polling.url`` setting for the Traffic Router profile
 RGDENY
 	_*DNS Only*_ The result was obtained through federated coverage zone data outside of any Delivery Service The request was regionally blocked because there was no rule for the request made
 STATIC_ROUTE


[trafficcontrol] 13/39: Formatting

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 8f851336246615a2acf0a7a499bcb0a96b4cd548
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Wed Sep 19 07:52:40 2018 -0600

    Formatting
---
 docs/source/admin/quick_howto/regionalgeo.rst | 67 ++++++++++++++-------------
 1 file changed, 34 insertions(+), 33 deletions(-)

diff --git a/docs/source/admin/quick_howto/regionalgeo.rst b/docs/source/admin/quick_howto/regionalgeo.rst
index 6a77ddd..30d9ba4 100644
--- a/docs/source/admin/quick_howto/regionalgeo.rst
+++ b/docs/source/admin/quick_howto/regionalgeo.rst
@@ -15,38 +15,39 @@
 
 .. _regionalgeo-qht:
 
-**************************************
+*************************************
 Configure Regional Geo-blocking (RGB)
-**************************************
-
+*************************************
 .. Note:: RGB is only supported for HTTP delivery services.
 
-1)	Prepare RGB configuration file
-
-RGB uses a configuration file in JSON format to define regional geo-blocking rules for delivery services. The file needs to be put on an HTTP server accessible to Traffic Router. An example of the JSON is as follows::
-
-    {
-    "deliveryServices":
-        [
-            {
-                "deliveryServiceId": "hls-live",
-                "urlRegex": ".*live4\\.m3u8",
-                "geoLocation": {"includePostalCode":["N0H", "L9V", "L9W"]},
-                "redirectUrl": "http://third-party.com/blacked_out.html"
-            },
-            {
-                "deliveryServiceId": "hls-live",
-                "urlRegex": ".*live5\\.m3u8",
-                "ipWhiteList": [185.68.71.9/22","142.232.0.79/24"],
-                "geoLocation": {"excludePostalCode":["N0H", "L9V"]},
-                "redirectUrl": "/live5_low_bitrate.m3u8"
-            }
-        ]
-    }
-
-* The value of "deliveryServiceId" shall be equal to the “XML ID” field of the intended delivery service defined on Traffic Ops.
-
-* “urlRegex” is to match request URLs. The URLs matching the regex are applicable to the rule.
+#. Prepare an RGB configuration file. RGB uses a configuration file in JSON format to define regional geographic blocking rules for Delivery Services. The file needs to be put on an HTTP server accessible to Traffic Router.
+
+	.. code-block:: json
+		:caption: Example Configuration File
+
+		{
+		"deliveryServices":
+			[
+				{
+					"deliveryServiceId": "hls-live",
+					"urlRegex": ".*live4\\.m3u8",
+					"geoLocation": {"includePostalCode":["N0H", "L9V", "L9W"]},
+					"redirectUrl": "http://third-party.com/blacked_out.html"
+				},
+				{
+					"deliveryServiceId": "hls-live",
+					"urlRegex": ".*live5\\.m3u8",
+					"ipWhiteList": ["185.68.71.9/22","142.232.0.79/24"],
+					"geoLocation": {"excludePostalCode":["N0H", "L9V"]},
+					"redirectUrl": "/live5_low_bitrate.m3u8"
+				}
+			]
+		}
+
+	``deliveryServiceId``
+		Should be equal to the ``ID`` or ``xml_id`` field of the intended Delivery Service as configured in Traffic Portal
+	``urlRegex``
+		A regular expression to be used to determine
 
 * “geoLocation” currently supports “includePostalCode” and “excludePostalCode” attribute. When “includePostalCode” attribute is used, only the clients whose FSAs are in the “includePostalCode” list are able to view the content represented by “urlRegex”. When “excludePostalCode” is used, any client whose FSA are not in the “excludePostalCode” list are allowed to view the content. “includePostalCode” and “excludePostalCode” are mutually exclusive in one rule. (FSA: Forward Sortation Area,  [...]
 
@@ -88,7 +89,7 @@ For "rtype", RGALT indicates that a request is redirected to an alternate URL by
 
 For "rgb", when RGB is enabled, it will be non-empty with following format::
 
-    {FSA}:{allowed/disallowed}:{include/exclude postal}:{fallback config/current config}:{allowed by whitelist/otherwise}
+	{FSA}:{allowed/disallowed}:{include/exclude postal}:{fallback config/current config}:{allowed by whitelist/otherwise}
 
 
 * {FSA}: It is the client’s FSA part of its postal code, which is retrieved from geo-location database. If FSA is empty, dash (“-“) is filled in.
@@ -100,10 +101,10 @@ For "rgb", when RGB is enabled, it will be non-empty with following format::
 
 Example::
 
-    1446442214.685 qtype=HTTP chi=129.100.254.79 url="http://foo.geo2.cdn.com/live5.m3u8" cqhm=GET cqhv=HTTP/1.1 rtype=GEO rloc="-" rdtl=- rerr="-" rgb="N6G:1:X:0:0" pssc=302 ttms=3 rurl=http://cent6-44.geo2.cdn.com/live5.m3u8 rh="-"
+	1446442214.685 qtype=HTTP chi=129.100.254.79 url="http://foo.geo2.cdn.com/live5.m3u8" cqhm=GET cqhv=HTTP/1.1 rtype=GEO rloc="-" rdtl=- rerr="-" rgb="N6G:1:X:0:0" pssc=302 ttms=3 rurl=http://cent6-44.geo2.cdn.com/live5.m3u8 rh="-"
 
-    1446442219.181 qtype=HTTP chi=184.68.71.9 url="http://foo.geo2.cdn.com/live5.m3u8" cqhm=GET cqhv=HTTP/1.1 rtype=RGALT rloc="-" rdtl=- rerr="-" rgb="-:0:X:0:0" pssc=302 ttms=3 rurl=http://cent6-44.geo2.cdn.com/low_bitrate.m3u8 rh="-"
+	1446442219.181 qtype=HTTP chi=184.68.71.9 url="http://foo.geo2.cdn.com/live5.m3u8" cqhm=GET cqhv=HTTP/1.1 rtype=RGALT rloc="-" rdtl=- rerr="-" rgb="-:0:X:0:0" pssc=302 ttms=3 rurl=http://cent6-44.geo2.cdn.com/low_bitrate.m3u8 rh="-"
 
-    1446445521.677 qtype=HTTP chi=24.114.29.79 url="http://foo.geo2.cdn.com/live51.m3u8" cqhm=GET cqhv=HTTP/1.1 rtype=RGDENY rloc="-" rdtl=- rerr="-" rgb="L4S:0:-:0:0" pssc=520 ttms=3 rurl="-" rh="-"
+	1446445521.677 qtype=HTTP chi=24.114.29.79 url="http://foo.geo2.cdn.com/live51.m3u8" cqhm=GET cqhv=HTTP/1.1 rtype=RGDENY rloc="-" rdtl=- rerr="-" rgb="L4S:0:-:0:0" pssc=520 ttms=3 rurl="-" rh="-"
 
 


[trafficcontrol] 12/39: Title level consistency

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit c12828e674a7d1eadad8d175829341b0606889a3
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Wed Sep 19 07:52:27 2018 -0600

    Title level consistency
---
 docs/source/admin/quick_howto/ds_requests.rst | 10 ++++------
 docs/source/admin/quick_howto/index.rst       |  2 +-
 2 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/docs/source/admin/quick_howto/ds_requests.rst b/docs/source/admin/quick_howto/ds_requests.rst
index 45fb5b6..75d7fcc 100644
--- a/docs/source/admin/quick_howto/ds_requests.rst
+++ b/docs/source/admin/quick_howto/ds_requests.rst
@@ -15,9 +15,9 @@
 
 .. _ds_requests:
 
+*************************
 Delivery Service Requests
-=========================
-
+*************************
 When enabled in ``traffic_portal_properties.json``, Delivery Service requests are created when *all* users attempt to create, update or delete a Delivery Service. This allows users with higher level permissions (ops or admin) to review the changes for completeness and accuracy before deploying the changes. In addition, most Delivery Service changes require cache configuration updates (aka queue updates) and/or a CDN snapshot. Both of these actions are reserved for users with elevated per [...]
 
 A list of the Delivery Service requests associated with your tenant can be found under 'Services' -> 'Delivery Service Requests'
@@ -30,8 +30,7 @@ A list of the Delivery Service requests associated with your tenant can be found
 	Example Delivery Service Request Listing
 
 Who Can Create a Delivery Service Request and How?
---------------------------------------------------
-
+==================================================
 Users with the Portal role (or above) can create Delivery Service Requests by doing one of three things:
 
 - Creating a new Delivery Service
@@ -41,8 +40,7 @@ Users with the Portal role (or above) can create Delivery Service Requests by do
 By performing one of these actions, a Delivery Service Request will be created for you with a status of 'draft' or 'submitted'. You determine the status of your request upon submission. Only change the status of your request to 'submitted' once the request is ready for review and deployment.
 
 Who Can Fulfill a Delivery Service Request and How?
----------------------------------------------------
-
+===================================================
 Users with elevated permissions (Operations or above) can fulfill (apply the changes) or reject the Delivery Service Request. In fact, they can do all of the following:
 
 Update the contents of the Delivery Service request
diff --git a/docs/source/admin/quick_howto/index.rst b/docs/source/admin/quick_howto/index.rst
index 5d27bf6..c6d05dc 100644
--- a/docs/source/admin/quick_howto/index.rst
+++ b/docs/source/admin/quick_howto/index.rst
@@ -13,9 +13,9 @@
 .. limitations under the License.
 ..
 
+*******************
 Quick How To Guides
 *******************
-
 Traffic Control is a complicated system, and documenting it is not trivial. Sometimes a picture says more than a thousand words, so here are some screen shot based tutorials on how to use some of the more involved features.
 
 Traffic Ops


[trafficcontrol] 37/39: disabling parallel build, fixed a couple of build errors

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 0c40137fae4ca35acfcd6321193c2467fcb22341
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Fri Oct 5 12:34:31 2018 -0600

    disabling parallel build, fixed a couple of build errors
---
 docs/Makefile                       |  2 +-
 docs/source/api/traffic_ops_api.rst | 55 ++++++++++++++++---------------------
 docs/source/api/v11/cdn.rst         |  2 +-
 3 files changed, 26 insertions(+), 33 deletions(-)

diff --git a/docs/Makefile b/docs/Makefile
index 786bf19..f48302f 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -68,7 +68,7 @@ $(BUILDDIR):
 	-mkdir $(BUILDDIR)
 
 html: $(BUILDDIR)
-	$(SPHINXBUILD) -j 4 -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
+	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
 	@echo
 	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
 
diff --git a/docs/source/api/traffic_ops_api.rst b/docs/source/api/traffic_ops_api.rst
index 481a5df..639bee1 100644
--- a/docs/source/api/traffic_ops_api.rst
+++ b/docs/source/api/traffic_ops_api.rst
@@ -205,37 +205,30 @@ The 3 most common errors returned by Traffic Ops are:
 
 
 500 Internal Server Error
-	When you are asking for a correct path, but the database doesn't match, it returns a 500::
-
-	[jvd@laika ~]$ curl -v -H'Cookie: mojolicious=eyJleHBpcmVzIjoxNDI5NDAyMjAxLCJhdXRoX2RhdGEiOiJhZG1pbiJ9--f990d03b7180b1ece97c3bb5ca69803cd6a79862;' -H "Accept: application/json" 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)
-	> GET /api/1.1/servers/hostname/jj/details.json HTTP/1.1
-	> User-Agent: curl/7.37.1
-	> Host: localhost:3000
-	> Cookie: mojolicious=eyJleHBpcmVzIjoxNDI5NDAyMjAxLCJhdXRoX2RhdGEiOiJhZG1pbiJ9--f990d03b7180b1ece97c3bb5ca69803cd6a79862;
-	> Accept: application/json
-	>
-	< HTTP/1.1 500 Internal Server Error
-	* Server Mojolicious (Perl) is not blacklisted
-	< Server: Mojolicious (Perl)
-	< Cache-Control: no-cache, no-store, max-age=0, must-revalidate
-	< Content-Length: 93
-	< Set-Cookie: mojolicious=eyJhdXRoX2RhdGEiOiJhZG1pbiIsImV4cGlyZXMiOjE0Mjk0MDQzMDZ9--1b08977e91f8f68b0ff5d5e5f6481c76ddfd0853; expires=Sun, 19 Apr 2015 00:45:06 GMT; path=/; HttpOnly
-	< Content-Type: application/json
-	< Date: Sat, 18 Apr 2015 20:45:06 GMT
-	< Access-Control-Allow-Credentials: true
-	< Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE
-	< Connection: keep-alive
-	< Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept
-	< Access-Control-Allow-Origin: http://localhost:8080
-	<
-	* Connection #0 to host localhost left intact
-	{"alerts":[{"level":"error","text":"An error occurred. Please contact your administrator."}]}
-	[jvd@laika ~]$
+	When something goes wrong on the back-end, the Traffic Ops server returns a ``500 INTERNAL SERVER ERROR``
+
+	.. code-block:: http
+		:caption: Example Server-Side Error Response
+
+		HTTP/1.1 500 Internal Server Error
+		Access-Control-Allow-Credentials: true
+		Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept
+		Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE
+		Access-Control-Allow-Origin: *
+		Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+		Connection: keep-alive
+		Content-Length: 93
+		Content-Type: application/json
+		Date: Tue, 02 Oct 2018 20:45:06 GMT
+		Server: Mojolicious (Perl)
+		Set-Cookie: mojolicious=eyJhdXRoX2RhdGEiOiJhZG1pbiIsImV4cGlyZXMiOjE0Mjk0MDQzMDZ9--1b08977e91f8f68b0ff5d5e5f6481c76ddfd0853; expires=Wed, 03 Oct 2018 00:45:06 GMT; path=/; HttpOnly
+
+		{ "alerts":[
+			{
+				"level":"error",
+				"text":"An error occurred. Please contact your administrator."
+			}
+		]}
 
 The rest of the API documentation will only document the ``200 OK`` case, where no errors have occurred.
 
diff --git a/docs/source/api/v11/cdn.rst b/docs/source/api/v11/cdn.rst
index 6c3822d..d8e927c 100644
--- a/docs/source/api/v11/cdn.rst
+++ b/docs/source/api/v11/cdn.rst
@@ -103,7 +103,7 @@ Extract information about a specific CDN.
 	| ``domainName``    | string  | Top Level Domain name within which this CDN operates       |
 	+-------------------+---------+------------------------------------------------------------+
 
-.. code-block::
+.. code-block:: json
 	:caption: Response Example
 
 	{


[trafficcontrol] 39/39: Added instructions for building the documentation

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit b43fbcd1d4e5e210a5a168d023986e2aebad8b0f
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Mon Oct 8 07:34:35 2018 -0600

    Added instructions for building the documentation
---
 docs/source/development/building.rst | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/docs/source/development/building.rst b/docs/source/development/building.rst
index 4d20ddd..707b1b9 100644
--- a/docs/source/development/building.rst
+++ b/docs/source/development/building.rst
@@ -22,6 +22,8 @@ The build steps for Traffic Control components are all pretty much the same, des
 
 .. note:: Currently, both listed methods of building Traffic Control components will produce ``*.rpm`` files, meaning that the support of these components is limited to RedHat-based distributions - and none of them are currently tested (or guaranteed to work) outside of CentOS7, specifically.
 
+.. _pkg:
+
 Build using ``pkg``
 ===================
 This is the easiest way to build all the components of Traffic Control; all requirements are automatically loaded into the image used to build each component.
@@ -58,3 +60,22 @@ Output ``*.rpm`` files, build logs and source tarballs will be output to the ``d
 Build Using ``docker-compose``
 ==============================
 If the ``pkg`` script fails, ``docker-compose`` can still be used to build the projects directly. The compose file can be found at ``infrastructure/docker/build/docker-compose.yml`` under the repository's root directory. It is recommended that between builds ``docker-compose down -v`` is run to prevent caching of old build steps. The service names are the same as the project names described above in `Usage`_, and similar to the ``pkg`` script, the build results, logs and source tarballs  [...]
+
+Building Individual Components
+==============================
+Each Traffic Control component can be individually built, and the instructions for doing so may be found in their respective component's development documentation.
+
+Building This Documentation
+---------------------------
+This documentation uses the `Sphinx documentation build system <http://www.sphinx-doc.org/en/master/>`_, and as such requires a Python3 version that is at least 3.4.1, but no greater than 3.6.5\ [1]_. It also has dependency on Sphinx, and Sphinx extensions and themes. All of these can be easily installed using `pip` by referencing the requirements file like so:
+
+.. code-block:: shell
+	:caption: Run from the Repository's Root Directory
+
+	python3 -m pip install --user -r docs/source/requirements.txt
+
+Once all dependencies have been satisfied, build using the Makefile at ``docs/Makefile``.
+
+Alternatively, it is also possible to :ref:`pkg`.
+
+.. [1] A bug in `pygments` prevents Python 3.7.x from working with Sphinx


[trafficcontrol] 36/39: Using a more modern Python version to build docs

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 22c74431f2c37912c5e7c9977606c2dfa0b45e7a
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Thu Oct 4 14:04:09 2018 -0600

    Using a more modern Python version to build docs
---
 infrastructure/docker/build/Dockerfile-docs | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/infrastructure/docker/build/Dockerfile-docs b/infrastructure/docker/build/Dockerfile-docs
index 71c7f37..58f818f 100644
--- a/infrastructure/docker/build/Dockerfile-docs
+++ b/infrastructure/docker/build/Dockerfile-docs
@@ -32,11 +32,12 @@ RUN	yum -y install \
 ### docs specific requirements
 ADD docs/source/requirements.txt /docs.requirements.txt
 RUN	yum -y install \
-		python-pip \
+		python34 \
+		python34-pip \
 		make && \
 	yum -y clean all && \
-	pip install --upgrade setuptools && \
-	pip install -r /docs.requirements.txt
+	python3 -m pip install --upgrade setuptools && \
+	python3 -m pip install -r /docs.requirements.txt
 ###
 
 ADD infrastructure/docker/build/clean_build.sh /


[trafficcontrol] 27/39: Transformed some diagrams from ASCII -> SVG/PNG pairs

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 6bb37ca08918f30ff0a1117b52aa12439d244f07
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Mon Oct 1 10:45:51 2018 -0600

    Transformed some diagrams from ASCII -> SVG/PNG pairs
    
    Also fixed a minor type in TO dev docs
---
 docs/source/development/traffic_monitor.rst        |  36 +++++----------
 .../traffic_monitor/Health_Pipeline.png            | Bin 0 -> 24657 bytes
 .../traffic_monitor/Health_Pipeline.svg            |  45 +++++++++++++++++++
 .../development/traffic_monitor/Peer_Pipeline.png  | Bin 0 -> 23854 bytes
 .../development/traffic_monitor/Peer_Pipeline.svg  |  43 ++++++++++++++++++
 .../development/traffic_monitor/Stat_Pipeline.png  | Bin 0 -> 23077 bytes
 .../development/traffic_monitor/Stat_Pipeline.svg  |  49 +++++++++++++++++++++
 docs/source/development/traffic_ops.rst            |   2 +-
 8 files changed, 150 insertions(+), 25 deletions(-)

diff --git a/docs/source/development/traffic_monitor.rst b/docs/source/development/traffic_monitor.rst
index b99ae68..b35c5fb 100644
--- a/docs/source/development/traffic_monitor.rst
+++ b/docs/source/development/traffic_monitor.rst
@@ -88,15 +88,11 @@ All microthreads in the pipeline are started by ``manager/manager.go:Start()``.
 Stat Pipeline
 -------------
 
-::
+.. figure:: traffic_monitor/Stat_Pipeline.*
+	:align: center
+	:width: 70%
 
-	---------     ---------     ---------     ---------
-	| poller |-->| fetcher |-->| handler |-->| manager |
-	 -------- |   ---------     ---------  |  ---------
-						|   ---------     ---------  |
-						|->| fetcher |-->| handler |-|
-						|   ---------     ---------  |
-						...                          ...
+	The Stats Pipeline
 
 * **poller** - ``common/poller/poller.go:HttpPoller.Poll()``. Listens for config changes (from the ops config manager), and starts its own internal microthreads, one for each cache to poll. These internal microthreads call the Fetcher at each cache's poll interval.
 
@@ -111,15 +107,11 @@ Stat Pipeline
 Health Pipeline
 ---------------
 
-::
+.. figure:: traffic_monitor/Health_Pipeline.*
+	:align: center
+	:width: 70%
 
-	---------     ---------     ---------     ---------
-	| poller |-->| fetcher |-->| handler |-->| manager |
-	 -------- |   ---------     ---------  |  ---------
-						|   ---------     ---------  |
-						|->| fetcher |-->| handler |-|
-						|   ---------     ---------  |
-						...                          ...
+	The Health Pipeline
 
 * **poller** - ``common/poller/poller.go:HttpPoller.Poll()``. Same poller type as the Stat Poller pipeline, with a different handler object.
 
@@ -133,15 +125,11 @@ Health Pipeline
 Peer Pipeline
 -------------
 
-::
+.. figure:: traffic_monitor/Peer_Pipeline.*
+	:align: center
+	:width: 70%
 
-	---------     ---------     ---------     ---------
-	| poller |-->| fetcher |-->| handler |-->| manager |
-	 -------- |   ---------     ---------  |  ---------
-						|   ---------     ---------  |
-						|->| fetcher |-->| handler |-|
-						|   ---------     ---------  |
-						...                          ...
+	The Peers Pipeline
 
 * **poller** - ``common/poller/poller.go:HttpPoller.Poll()``. Same poller type as the Stat and Health Poller pipelines, with a different handler object. Its config changes come from the Monitor Config Manager, and it starts an internal microthread for each peer to poll.
 
diff --git a/docs/source/development/traffic_monitor/Health_Pipeline.png b/docs/source/development/traffic_monitor/Health_Pipeline.png
new file mode 100644
index 0000000..51262cf
Binary files /dev/null and b/docs/source/development/traffic_monitor/Health_Pipeline.png differ
diff --git a/docs/source/development/traffic_monitor/Health_Pipeline.svg b/docs/source/development/traffic_monitor/Health_Pipeline.svg
new file mode 100644
index 0000000..542284a
--- /dev/null
+++ b/docs/source/development/traffic_monitor/Health_Pipeline.svg
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="22.321117mm" width="137.69202mm" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 487.8851 79.090573">
+	<defs>
+		<marker id="d" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="f" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="e" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="a" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+	</defs>
+	<g transform="translate(-698.91461,-755.67407)">
+		<text font-size="12.5px" line-height="125%" style="word-spacing:0px;letter-spacing:0px" y="770.93561" x="699.43066" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="770.93561" x="699.43066">Health Poller</tspan></text>
+		<rect stroke-linejoin="round" height="20.203051" width="80.812202" stroke="#000" y="756.17407" x="699.41461" fill="none"/>
+		<text font-size="12.5px" line-height="125%" style="word-spacing:0px;letter-spacing:0px" y="770.93561" x="814.31323" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="770.93561" x="814.31323">Health Fetcher</tspan></text>
+		<rect stroke-linejoin="round" height="19.177704" width="93.250603" stroke="#000" y="756.68671" x="814.20587" stroke-width="1.01519358" fill="none"/>
+		<text font-size="12.5px" line-height="125%" style="word-spacing:0px;letter-spacing:0px" y="770.94843" x="935.14801" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="770.94843" x="935.14801">Health Handler</tspan></text>
+		<g fill="none" stroke="#000" transform="translate(580.45263,191.46985)">
+			<rect stroke-linejoin="round" height="18.672918" width="101.22736" y="565.48206" x="351.83258" stroke-width="1.04042637"/>
+			<path marker-end="url(#e)" d="m199.75767 574.82632h31.33815" stroke-width="1.16775703px"/>
+			<path marker-end="url(#a)" d="m326.63648 574.82438h23.34915" stroke-width="1.00797892px"/>
+		</g>
+		<text font-size="12.5px" style="word-spacing:0px;letter-spacing:0px" line-height="125%" xml:space="preserve" y="802.93561" x="814.67041" font-family="sans-serif" fill="#000000"><tspan y="802.93561" x="814.67041">Health Fetcher</tspan></text>
+		<rect stroke-linejoin="round" height="19.173944" width="93.961128" stroke="#000" y="788.6886" x="814.20776" stroke-width="1.01895392" fill="none"/>
+		<text font-size="12.5px" style="word-spacing:0px;letter-spacing:0px" line-height="125%" xml:space="preserve" y="802.92291" x="935.14801" font-family="sans-serif" fill="#000000"><tspan y="802.92291" x="935.14801">Health Handler</tspan></text>
+		<g fill="none" stroke="#000" transform="translate(580.45263,191.46985)">
+			<rect stroke-linejoin="round" height="18.672918" width="101.22736" y="597.45654" x="351.83258" stroke-width="1.04042637"/>
+			<path marker-end="url(#d)" d="m327.52933 606.82438h22.50905" stroke-width=".98967898px"/>
+			<path stroke-linejoin="round" marker-end="url(#f)" d="m209.29773 574.83146v32.19643h23.23275" stroke-width=".98251468px"/>
+			<path d="m209.30647 606.99245v23.61232" stroke-width="1px"/>
+		</g>
+		<text font-size="12.5px" line-height="125%" style="word-spacing:0px;letter-spacing:0px" y="834.76465" x="783.79901" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="834.76465" x="783.79901">...</tspan></text>
+		<path d="m1033.9299 766.8319h42.3724" stroke="#000" stroke-width="1.30847371px" fill="none"/>
+		<path d="m1047.6932 766.95817v54.67451" stroke="#000" stroke-width="1px" fill="none"/>
+		<text font-size="12.5px" style="word-spacing:0px;letter-spacing:0px" line-height="125%" xml:space="preserve" y="834.76465" x="1041.7332" font-family="sans-serif" fill="#000000"><tspan y="834.76465" x="1041.7332">...</tspan></text>
+		<path d="m1033.6312 798.2756h13.9286" stroke="#000" stroke-width="1px" fill="none"/>
+		<text font-size="12.5px" line-height="125%" style="word-spacing:0px;letter-spacing:0px" y="770.25732" x="1081.9628" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="770.25732" x="1081.9628">Health Manager</tspan></text>
+		<rect stroke-linejoin="round" height="20.172005" width="107.55019" stroke="#000" y="756.72284" x="1078.734" stroke-width="1.03104627" fill="none"/>
+	</g>
+</svg>
diff --git a/docs/source/development/traffic_monitor/Peer_Pipeline.png b/docs/source/development/traffic_monitor/Peer_Pipeline.png
new file mode 100644
index 0000000..0fb2cdf
Binary files /dev/null and b/docs/source/development/traffic_monitor/Peer_Pipeline.png differ
diff --git a/docs/source/development/traffic_monitor/Peer_Pipeline.svg b/docs/source/development/traffic_monitor/Peer_Pipeline.svg
new file mode 100644
index 0000000..0bf36cf
--- /dev/null
+++ b/docs/source/development/traffic_monitor/Peer_Pipeline.svg
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="22.321117mm" width="133.58116mm" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 473.31906 79.090573">
+	<defs>
+		<marker id="e" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="g" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="a" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="f" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+	</defs>
+	<text font-size="12.5px" style="word-spacing:0px;letter-spacing:0px" line-height="125%" xml:space="preserve" y="15.261536" x="7.2298889" font-family="sans-serif" fill="#000000"><tspan y="15.261536" x="7.2298889">Peer Poller</tspan></text>
+	<rect stroke-linejoin="round" height="20.203051" width="80.812202" stroke="#000" y=".5" x=".49993896" fill="none"/>
+	<text font-size="12.5px" style="word-spacing:0px;letter-spacing:0px" line-height="125%" xml:space="preserve" y="15.261536" x="120.68391" font-family="sans-serif" fill="#000000"><tspan y="15.261536" x="120.68391">Peer Fetcher</tspan></text>
+	<rect stroke-linejoin="round" height="19.192898" width="90.408653" stroke="#000" y="1.0050659" x="115.28365" fill="none"/>
+	<text font-size="12.5px" style="word-spacing:0px;letter-spacing:0px" line-height="125%" xml:space="preserve" y="15.261597" x="239.03291" font-family="sans-serif" fill="#000000"><tspan y="15.261597" x="239.03291">Peer Handler</tspan></text>
+	<g stroke="#000" fill="none">
+		<rect stroke-linejoin="round" height="18.687822" width="93.43911" y="1.2576294" x="233.35036"/>
+		<path marker-end="url(#f)" d="m81.295648 10.62211h31.338152" stroke-width="1.16775703px"/>
+		<path marker-end="url(#a)" d="m205.67446 10.62017h25.68822" stroke-width="1.05726266px"/>
+	</g>
+	<text font-size="12.5px" line-height="125%" style="word-spacing:0px;letter-spacing:0px" y="47.261536" x="120.68391" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="47.261536" x="120.68391">Peer Fetcher</tspan></text>
+	<rect stroke-linejoin="round" height="19.192898" width="90.408653" stroke="#000" y="33.005066" x="115.28365" fill="none"/>
+	<text font-size="12.5px" line-height="125%" style="word-spacing:0px;letter-spacing:0px" y="47.261597" x="239.03291" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="47.261597" x="239.03291">Peer Handler</tspan></text>
+	<rect stroke-linejoin="round" height="18.687822" width="93.43911" stroke="#000" y="33.257629" x="233.35036" fill="none"/>
+	<g fill="none" stroke="#000" transform="translate(-118.46202,-684.20421)">
+		<path marker-end="url(#a)" d="m324.13648 726.82438h25.68822" stroke-width="1.05726266px"/>
+		<path stroke-linejoin="round" marker-end="url(#g)" d="m209.29773 694.83146v32.19643h23.23275" stroke-width=".98251468px"/>
+		<path d="m209.30647 726.99245v23.61232" stroke-width="1px"/>
+	</g>
+	<text font-size="12.5px" line-height="125%" style="word-spacing:0px;letter-spacing:0px" y="79.090576" x="84.884369" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="79.090576" x="84.884369">...</tspan></text>
+	<path marker-end="url(#e)" d="m327.01525 11.15784h42.37241" stroke="#000" stroke-width="1.30847371px" fill="none"/>
+	<path d="m340.77858 11.28411v54.67451" stroke="#000" stroke-width="1px" fill="none"/>
+	<text font-size="12.5px" style="word-spacing:0px;letter-spacing:0px" line-height="125%" xml:space="preserve" y="79.090576" x="334.81848" font-family="sans-serif" fill="#000000"><tspan y="79.090576" x="334.81848">...</tspan></text>
+	<path d="m326.71655 42.60154h13.92857" stroke="#000" stroke-width="1px" fill="none"/>
+	<text font-size="12.5px" style="word-spacing:0px;letter-spacing:0px" line-height="125%" xml:space="preserve" y="14.390991" x="378.479" font-family="sans-serif" fill="#000000"><tspan y="14.390991" x="378.479">Peer Manager</tspan></text>
+	<rect stroke-linejoin="round" height="20.203051" width="101.01525" stroke="#000" y="1.0332642" x="371.80377" fill="none"/>
+</svg>
diff --git a/docs/source/development/traffic_monitor/Stat_Pipeline.png b/docs/source/development/traffic_monitor/Stat_Pipeline.png
new file mode 100644
index 0000000..55b43b0
Binary files /dev/null and b/docs/source/development/traffic_monitor/Stat_Pipeline.png differ
diff --git a/docs/source/development/traffic_monitor/Stat_Pipeline.svg b/docs/source/development/traffic_monitor/Stat_Pipeline.svg
new file mode 100644
index 0000000..904d7a5
--- /dev/null
+++ b/docs/source/development/traffic_monitor/Stat_Pipeline.svg
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="22.321115mm" width="133.58116mm" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 473.31908 79.090566">
+	<defs>
+		<marker id="d" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="c" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+	</defs>
+	<g transform="translate(648.08812,-69.959775)">
+		<g transform="translate(-771.37082,-375.19147)">
+			<text font-size="12.5px" line-height="125%" style="word-spacing:0px;letter-spacing:0px" y="460.41281" x="131.82491" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="460.41281" x="131.82491">Stat Poller</tspan></text>
+			<rect stroke-linejoin="round" height="20.203051" width="80.812202" stroke="#000" y="445.65125" x="123.7827" fill="none"/>
+		</g>
+		<g transform="translate(-765.13949,-379.85152)">
+			<text font-size="12.5px" line-height="125%" style="word-spacing:0px;letter-spacing:0px" y="465.07285" x="239.04759" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="465.07285" x="239.04759">Stat Fetcher</tspan></text>
+			<rect stroke-linejoin="round" height="19.192898" width="90.408653" stroke="#000" y="450.81638" x="232.33508" fill="none"/>
+		</g>
+		<g transform="translate(-746.55007,-377.77778)">
+			<text font-size="12.5px" line-height="125%" style="word-spacing:0px;letter-spacing:0px" y="462.99911" x="338.80719" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="462.99911" x="338.80719">Stat Handler</tspan></text>
+			<rect stroke-linejoin="round" height="18.687822" width="93.43911" stroke="#000" y="448.99518" x="331.81238" fill="none"/>
+		</g>
+		<path d="m-566.79241 80.581875h31.33815" stroke="#000" stroke-width="1.16775703px" fill="none"/>
+		<path d="m-442.4136 80.579935h25.68822" stroke="#000" stroke-width="1.05726266px" fill="none"/>
+		<g transform="translate(-765.13949,-347.85152)">
+			<text font-size="12.5px" style="word-spacing:0px;letter-spacing:0px" line-height="125%" xml:space="preserve" y="465.07285" x="239.04759" font-family="sans-serif" fill="#000000"><tspan y="465.07285" x="239.04759">Stat Fetcher</tspan></text>
+			<rect stroke-linejoin="round" height="19.192898" width="90.408653" stroke="#000" y="450.81638" x="232.33508" fill="none"/>
+		</g>
+		<g transform="translate(-746.55007,-345.77778)">
+			<text font-size="12.5px" style="word-spacing:0px;letter-spacing:0px" line-height="125%" xml:space="preserve" y="462.99911" x="338.80719" font-family="sans-serif" fill="#000000"><tspan y="462.99911" x="338.80719">Stat Handler</tspan></text>
+			<rect stroke-linejoin="round" height="18.687822" width="93.43911" stroke="#000" y="448.99518" x="331.81238" fill="none"/>
+		</g>
+		<g fill="none" stroke="#000" transform="translate(-766.55007,-374.24445)">
+			<path marker-end="url(#d)" d="m324.13648 486.82438h25.68822" stroke-width="1.05726266px"/>
+			<path stroke-linejoin="round" marker-end="url(#c)" d="m209.29773 454.83146v32.19643h23.23275" stroke-width=".98251468px"/>
+			<path d="m209.30647 486.99245v23.61232" stroke-width="1px"/>
+		</g>
+		<text font-size="12.5px" style="word-spacing:0px;letter-spacing:0px" line-height="125%" xml:space="preserve" y="149.05034" x="-563.20367" font-family="sans-serif" fill="#000000"><tspan y="149.05034" x="-563.20367">...</tspan></text>
+		<path d="m-321.07281 81.117605h42.37241" stroke="#000" stroke-width="1.30847371px" fill="none"/>
+		<path d="m-307.30948 81.243875v54.674505" stroke="#000" stroke-width="1px" fill="none"/>
+		<text font-size="12.5px" line-height="125%" style="word-spacing:0px;letter-spacing:0px" y="149.05034" x="-313.26956" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="149.05034" x="-313.26956">...</tspan></text>
+		<path d="m-321.37151 112.5613h13.92857" stroke="#000" stroke-width="1px" fill="none"/>
+		<g transform="translate(-777.91873,-382.54561)">
+			<text font-size="12.5px" line-height="125%" style="word-spacing:0px;letter-spacing:0px" y="466.97879" x="509.62195" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="466.97879" x="509.62195">Stat Manager</tspan></text>
+			<rect stroke-linejoin="round" height="20.203051" width="101.01525" stroke="#000" y="453.53864" x="501.63446" fill="none"/>
+		</g>
+	</g>
+</svg>
diff --git a/docs/source/development/traffic_ops.rst b/docs/source/development/traffic_ops.rst
index 45ec56d..8a0a545 100644
--- a/docs/source/development/traffic_ops.rst
+++ b/docs/source/development/traffic_ops.rst
@@ -33,7 +33,7 @@ To work on Traffic Ops you need a CentOS 7+ environment that has the following i
 - `Go 1.8.3 <http://golang.org/doc/install>`_
 - Perl 5.10.1
 - Git
-- Postgres 9.6.6
+- PostgreSQL 9.6.6
 - `Goose <https://bitbucket.org/liamstask/goose/>`_
 
 Traffic Ops Project Tree Overview


[trafficcontrol] 34/39: Fixed the compatibility issue... again?

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 0203ed5f2f3436291dba5e7fa71fdc496d4afb61
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Thu Oct 4 13:26:52 2018 -0600

    Fixed the compatibility issue... again?
---
 docs/source/conf.py | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/docs/source/conf.py b/docs/source/conf.py
index 3bbc874..3f5384e 100755
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -30,11 +30,7 @@ import sys
 ortPath = os.path.dirname(__file__)
 ortPath = os.path.join(ortPath, '..', '..', 'infrastructure', 'cdn-in-a-box', 'edge')
 ortPath = os.path.abspath(ortPath)
-print("Looking for Python-based ORT in '", ortPath, ",", sep="")
 sys.path.insert(0, ortPath)
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
 
 # -- Custom Lexical Analyzer for DNS -----------------------------------------
 


[trafficcontrol] 16/39: added admonition advising that a database is not provided

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit b0d1c9f08aa2ea0b3caaea591eebba0607670eb7
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Thu Sep 20 06:10:15 2018 -0600

    added admonition advising that a database is not provided
---
 docs/source/admin/quick_howto/anonymous_blocking.rst | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/source/admin/quick_howto/anonymous_blocking.rst b/docs/source/admin/quick_howto/anonymous_blocking.rst
index 2abc3f2..e62d651 100644
--- a/docs/source/admin/quick_howto/anonymous_blocking.rst
+++ b/docs/source/admin/quick_howto/anonymous_blocking.rst
@@ -19,7 +19,7 @@
 Configure Anonymous Blocking
 ****************************
 
-.. Note:: Anonymous Blocking is only supported for HTTP delivery services.
+.. Note:: Anonymous Blocking is only supported for HTTP delivery services. You will need access to a database that provides anonymous IP statistics (`Maxmind's database <https://www.maxmind.com/en/solutions/geoip2-enterprise-product-suite/anonymous-ip-database>`_ is recommended, as this functionality was built specifically to work with it.)
 
 #. Prepare the Anonymous Blocking configuration file. Anonymous Blocking uses a configuration file in JSON format to define blocking rules for Delivery Services. The file needs to be put on an HTTP server accessible to Traffic Router.
 


[trafficcontrol] 20/39: Replaced a text diagram with an image and formatting overhaul

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 08048de6f5ba36a10f1078145cb4a695cde9905c
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Thu Sep 20 06:14:02 2018 -0600

    Replaced a text diagram with an image and formatting overhaul
---
 docs/source/development/traffic_monitor.rst        | 166 +++++--------
 .../development/traffic_monitor/Pipeline.png       | Bin 0 -> 292921 bytes
 .../development/traffic_monitor/Pipeline.svg       | 266 +++++++++++++++++++++
 3 files changed, 329 insertions(+), 103 deletions(-)

diff --git a/docs/source/development/traffic_monitor.rst b/docs/source/development/traffic_monitor.rst
index 24ba783..b99ae68 100644
--- a/docs/source/development/traffic_monitor.rst
+++ b/docs/source/development/traffic_monitor.rst
@@ -13,31 +13,31 @@
 .. limitations under the License.
 ..
 
-Traffic Monitor Golang
-**********************
+***************
+Traffic Monitor
+***************
 Introduction
 ============
-Traffic Monitor is an HTTP service 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.
+Traffic Monitor is an HTTP service application that monitors caches, provides health state information to Traffic Router, and collects statistics for use in tools such as Traffic Portal and Traffic Stats. The health state provided by Traffic Monitor is used by Traffic Router to control which caches are available on the CDN.
 
 Software Requirements
 =====================
-To work on Traffic Monitor you need a \*nix (MacOS and Linux are most commonly used) environment that has the following installed:
-
-* Golang
+To work on Traffic Monitor you need a Unix-like (MacOS and Linux are most commonly used) environment that has a working install of Go
 
 Project Tree Overview
 =====================================
 
-* ``traffic_control/traffic_monitor/`` - base directory for Traffic Monitor.
+``traffic_monitor/`` - base directory for Traffic Monitor.
 
 * ``cache/`` - Handler for processing cache results.
 * ``config/`` - Application configuration; in-memory objects from ``traffic_monitor.cfg``.
 * ``crconfig/`` - struct for deserlializing the CRConfig from JSON.
-* ``deliveryservice/`` - aggregates delivery service data from cache results.
-* ``deliveryservicedata/`` - deliveryservice structs. This exists separate from ``deliveryservice`` to avoid circular dependencies.
+* ``deliveryservice/`` - aggregates Delivery Service data from cache results.
+* ``deliveryservicedata/`` - Delivery Service structs. This exists separate from ``deliveryservice`` to avoid circular dependencies.
 * ``enum/`` - enumerations and name alias types.
 * ``health/`` - functions for calculating cache health, and creating health event objects.
 * ``manager/`` - manager goroutines (microthreads).
+
 	* ``health.go`` - Health request manager. Processes health results, from the health poller -> fetcher -> manager. The health poll is the "heartbeat" containing a small amount of stats, primarily to determine whether a cache is reachable as quickly as possible. Data is aggregated and inserted into shared threadsafe objects.
 	* ``manager.go`` - Contains ``Start`` function to start all pollers, handlers, and managers.
 	* ``monitorconfig.go`` - Monitor config manager. Gets data from the monitor config poller, which polls Traffic Ops for changes to which caches are monitored and how.
@@ -45,82 +45,42 @@ Project Tree Overview
 	* ``peer.go`` - Peer manager. Gets data from the peer poller -> fetcher -> handler and aggregates it into the shared threadsafe objects.
 	* ``stat.go`` - Stat request manager. Processes stat results, from the stat poller -> fetcher -> manager. The stat poll is the large statistics poll, containing all stats (such as HTTP codes, transactions, delivery service statistics, and more). Data is aggregated and inserted into shared threadsafe objects.
 	* ``statecombiner.go`` - Manager for combining local and peer states, into a single combined states threadsafe object, for serving the CrStates endpoint.
+
 * ``datareq/`` - HTTP routing, which has threadsafe health and stat objects populated by stat and health managers.
 * ``peer/`` - Manager for getting and populating peer data from other Traffic Monitors
 * ``srvhttp/`` - HTTP service. Given a map of endpoint functions, which are lambda closures containing aggregated data objects.
-* ``static/`` - Web GUI HTML and javascript files
+* ``static/`` - Web interface files (markup, styling and scripting)
 * ``threadsafe/`` - Threadsafe objects for storing aggregated data needed by multiple goroutines (typically the aggregator and HTTP server)
 * ``trafficopsdata/`` - Struct for fetching and storing Traffic Ops data needed from the CRConfig. This is primarily mappings, such as delivery service servers, and server types.
 * ``trafficopswrapper/`` - Threadsafe wrapper around the Traffic Ops client. The client used to not be threadsafe, however, it mostly (possibly entirely) is now. But, the wrapper also serves to overwrite the Traffic Ops ``monitoring.json`` values, which are live, with snapshotted CRConfig values.
 
 Architecture
 ============
-At the highest level, Traffic Monitor polls caches, aggregates their data and availability, and serves it at HTTP JSON endpoints.
+At the highest level, Traffic Monitor polls caches, aggregates their data and availability, and serves it at HTTP endpoints in JSON format.
 
-In the code, the data flows thru microthread (goroutine) pipelines. All stages of the pipeline are independent running microthreads [#f1]_ . The pipelines are:
+In the code, the data flows through microthread (goroutine) pipelines. All stages of the pipeline are independently running microthreads [#f1]_ . The pipelines are:
 
-* **stat poll** - polls caches for all statistics data. This should be a slower poll, which gets a lot of data.
-* **health poll** - polls caches for a tiny amount of data, typically system information. This poll is designed to be a heartbeat, determining quickly whether the cache is reachable. Since it's a small amount of data, it should poll more frequently.
-* **peer poll** - polls Traffic Monitor peers for their availability data, and aggregates it with its own availability results and that of all other peers.
-* **monitor config** - polls Traffic Ops for the list of Traffic Monitors and their info.
-* **ops config** - polls for changes to the ops config file ``traffic_ops.cfg``, and sends updates to other pollers when the config file has changed.
+stat poll
+	Polls caches for all statistics data. This should be a slower poll, which gets a lot of data.
+health poll
+	Polls caches for a tiny amount of data, typically system information. This poll is designed to be a heartbeat, determining quickly whether the cache is reachable. Since it's a small amount of data, it should poll more frequently.
+peer poll
+	Polls Traffic Monitor peers for their availability data, and aggregates it with its own availability results and that of all other peers.
+monitor config
+	Polls Traffic Ops for the list of Traffic Monitors and their info.
+ops config
+	Polls for changes to the ops config file ``traffic_ops.cfg``, and sends updates to other pollers when the config file has changed.
 
-  * The ops config manager also updates the shared Traffic Ops client, since it's the actor which becomes notified of config changes requiring a new client.
-
-  * The ops config manager also manages, creates, and recreates the HTTP server, since ops config changes necessitate restarting the HTTP server.
+	* The ops config manager also updates the shared Traffic Ops client, since it's the actor which becomes notified of config changes requiring a new client.
+	* The ops config manager also manages, creates, and recreates the HTTP server, since ops config changes necessitate restarting the HTTP server.
 
 All microthreads in the pipeline are started by ``manager/manager.go:Start()``.
 
-::
+.. figure:: traffic_monitor/Pipeline.*
+	:align: center
+	:width: 70%
 
-  --------------------     --------------------     --------------------
-  | ops config poller |-->| ops config handler |-->| ops config manager |-->-restart HTTP server-------------------------
-   -------------------     --------------------     -------------------- |                                              |
-                                                                         -->-ops config change subscriber-------------  |
-                                                                         |                                           |  |
-                                                                         -->-Traffic Ops client change subscriber--  |  |
-                                                                                                                  |  |  |
-      -------------------------------------------------------------------------------------------------------------  |  |
-      |                                                                                                              |  |
-      |   ------------------------------------------------------------------------------------------------------------  |
-      |   |                                                                                                             |
-      \/  \/                                                                                                            |
-     -----------------------     ------------------------                                                               |
-    | monitor config poller |-->| monitor config manager |-->-stat subscriber--------             -----------------------
-     -----------------------     ------------------------ |                         |             |
-                                                          |->-health subscriber---  |             \/                           _
-                                                          |                      |  |       -------------                    _( )._
-                                                          -->-peer subscriber--  |  |      | HTTP server |->-HTTP request-> (____)_)
-                                                                              |  |  |       -------------
-  -----------------------------------------------------------------------------  |  |              ^
-  |                                                                              |  |              |
-  |  -----------------------------------------------------------------------------  |              ------------------------
-  |  |                                                                              |                                     |
-  |  |  -----------------------------------------------------------------------------                                     |
-  |  |  |                                                                                                                 ^
-  |  |  |   -------------     --------------     --------------     --------------                            -----------------------
-  |  |  -->| stat poller |-->| stat fetcher |-->| stat handler |-->| stat manager |->--------set shared data->| shared data         |
-  |  |      ------------- |   --------------     --------------  |  --------------                            -----------------------
-  |  |                    |   --------------     --------------  |                                            | events              |
-  |  |                    |->| stat fetcher |-->| stat handler |-|                                            | toData              |
-  |  |                    |   --------------     --------------  |                                            | errorCount          |
-  |  |                    ...                                    ...                                          | healthIteration     |
-  |  |                                                                                                        | fetchCount          |
-  |  |     ---------------     ----------------     ----------------     ----------------                     | localStates         |
-  |  ---->| health poller |-->| health fetcher |-->| health handler |-->| health manager |->-set shared data->| toSession           |
-  |        --------------- |   ----------------     ----------------  |  ----------------                     | peerStates          |
-  |                        |   ----------------     ----------------  |                                       | monitorConfig       |
-  |                        |->| health fetcher |-->| health handler |-|                                       | combinedStates      |
-  |                        |   ----------------     ----------------  |                                       | statInfoHistory     |
-  |                        ...                                        ...                                     | statResultHistory   |
-  |                                                                                                           | statMaxKbpses       |
-  |       -------------     --------------     --------------     --------------                              | lastKbpsStats       |
-  ------>| peer poller |-->| peer fetcher |-->| peer handler |-->| peer manager |->----------set shared data->| dsStats             |
-          ------------- |   --------------     --------------  |  --------------                              | localCacheStatus    |
-                        |   --------------     --------------  |                                              | lastHealthDurations |
-                        |->| peer fetcher |-->| peer handler |-|                                              | healthHistory       |
-                        |   --------------     --------------  |                                              -----------------------
-                        ...                                    ...
+	Pipeline Overview
 
 .. [#f1] Technically, some stages which are one-to-one simply call the next stage as a function. For example, the Fetcher calls the Handler as a function in the same microthread. But this isn't architecturally significant.
 
@@ -130,13 +90,13 @@ Stat Pipeline
 
 ::
 
-  ---------     ---------     ---------     ---------
-  | poller |-->| fetcher |-->| handler |-->| manager |
-   -------- |   ---------     ---------  |  ---------
-            |   ---------     ---------  |
-            |->| fetcher |-->| handler |-|
-            |   ---------     ---------  |
-            ...                          ...
+	---------     ---------     ---------     ---------
+	| poller |-->| fetcher |-->| handler |-->| manager |
+	 -------- |   ---------     ---------  |  ---------
+						|   ---------     ---------  |
+						|->| fetcher |-->| handler |-|
+						|   ---------     ---------  |
+						...                          ...
 
 * **poller** - ``common/poller/poller.go:HttpPoller.Poll()``. Listens for config changes (from the ops config manager), and starts its own internal microthreads, one for each cache to poll. These internal microthreads call the Fetcher at each cache's poll interval.
 
@@ -153,13 +113,13 @@ Health Pipeline
 
 ::
 
-  ---------     ---------     ---------     ---------
-  | poller |-->| fetcher |-->| handler |-->| manager |
-   -------- |   ---------     ---------  |  ---------
-            |   ---------     ---------  |
-            |->| fetcher |-->| handler |-|
-            |   ---------     ---------  |
-            ...                          ...
+	---------     ---------     ---------     ---------
+	| poller |-->| fetcher |-->| handler |-->| manager |
+	 -------- |   ---------     ---------  |  ---------
+						|   ---------     ---------  |
+						|->| fetcher |-->| handler |-|
+						|   ---------     ---------  |
+						...                          ...
 
 * **poller** - ``common/poller/poller.go:HttpPoller.Poll()``. Same poller type as the Stat Poller pipeline, with a different handler object.
 
@@ -175,13 +135,13 @@ Peer Pipeline
 
 ::
 
-  ---------     ---------     ---------     ---------
-  | poller |-->| fetcher |-->| handler |-->| manager |
-   -------- |   ---------     ---------  |  ---------
-            |   ---------     ---------  |
-            |->| fetcher |-->| handler |-|
-            |   ---------     ---------  |
-            ...                          ...
+	---------     ---------     ---------     ---------
+	| poller |-->| fetcher |-->| handler |-->| manager |
+	 -------- |   ---------     ---------  |  ---------
+						|   ---------     ---------  |
+						|->| fetcher |-->| handler |-|
+						|   ---------     ---------  |
+						...                          ...
 
 * **poller** - ``common/poller/poller.go:HttpPoller.Poll()``. Same poller type as the Stat and Health Poller pipelines, with a different handler object. Its config changes come from the Monitor Config Manager, and it starts an internal microthread for each peer to poll.
 
@@ -197,12 +157,12 @@ Monitor Config Pipeline
 
 ::
 
-  ---------     ---------
-  | poller |-->| manager |--> stat subscriber (Stat pipeline Poller)
-   --------     --------- |
-                          |-> health subscriber (Health pipeline Poller)
-                          |
-                          --> peer subscriber (Peer pipeline Poller)
+	---------     ---------
+	| poller |-->| manager |--> stat subscriber (Stat pipeline Poller)
+	 --------     --------- |
+													|-> health subscriber (Health pipeline Poller)
+													|
+													--> peer subscriber (Peer pipeline Poller)
 
 * **poller** - ``common/poller/poller.go:MonitorConfigPoller.Poll()``. The Monitor Config poller, on its interval, polls Traffic Ops for the Monitor configuration, and writes the polled value to its result channel, which is read by the Manager.
 
@@ -213,10 +173,10 @@ Ops Config Pipeline
 -------------------
 ::
 
-  ---------     ---------     ---------
-  | poller |-->| handler |-->| manager |--> ops config change subscriber (Monitor Config Poller)
-   --------     ---------     --------- |
-                                        --> Traffic ops client change subscriber (Monitor Config Poller)
+	---------     ---------     ---------
+	| poller |-->| handler |-->| manager |--> ops config change subscriber (Monitor Config Poller)
+	 --------     ---------     --------- |
+																				--> Traffic ops client change subscriber (Monitor Config Poller)
 
 * **poller** - ``common/poller/poller.go:FilePoller.Poll()``. Polls for changes to the Traffic Ops config file ``traffic_ops.cfg``, and writes the changed config to its result channel, which is read by the Handler.
 
@@ -295,7 +255,7 @@ API
 :ref:`tm-api`
 
 .. toctree::
-  :hidden:
-  :maxdepth: 1
+	:hidden:
+	:maxdepth: 1
 
-  traffic_monitor/traffic_monitor_api
+	traffic_monitor/traffic_monitor_api
diff --git a/docs/source/development/traffic_monitor/Pipeline.png b/docs/source/development/traffic_monitor/Pipeline.png
new file mode 100644
index 0000000..738fea8
Binary files /dev/null and b/docs/source/development/traffic_monitor/Pipeline.png differ
diff --git a/docs/source/development/traffic_monitor/Pipeline.svg b/docs/source/development/traffic_monitor/Pipeline.svg
new file mode 100644
index 0000000..df48dce
--- /dev/null
+++ b/docs/source/development/traffic_monitor/Pipeline.svg
@@ -0,0 +1,266 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="198.80087mm" width="355.67175mm" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 1260.2542 704.41254">
+	<defs>
+		<marker id="e" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="f" refY="0" refX="0" overflow="visible" orient="auto">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="g" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="h" refY="0" refX="0" overflow="visible" orient="auto">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="i" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="j" refY="0" refX="0" overflow="visible" orient="auto">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="k" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="l" refY="0" refX="0" overflow="visible" orient="auto">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="m" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="n" refY="0" refX="0" overflow="visible" orient="auto">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="o" refY="0" refX="0" overflow="visible" orient="auto">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="p" refY="0" refX="0" overflow="visible" orient="auto">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="d" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="b" refY="0" refX="0" overflow="visible" orient="auto">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="a" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="c" refY="0" refX="0" overflow="visible" orient="auto">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="q" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="r" refY="0" refX="0" overflow="visible" orient="auto">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="s" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="t" refY="0" refX="0" overflow="visible" orient="auto">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="u" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="v" refY="0" refX="0" overflow="visible" orient="auto">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="w" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="x" refY="0" refX="0" overflow="visible" orient="auto">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="y" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="z" refY="0" refX="0" overflow="visible" orient="auto">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="ab" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<clipPath id="aa" clipPathUnits="userSpaceOnUse">
+			<path stroke-linejoin="round" d="m1125.6855 353.07812a42.5 44.107143 0 0 0 -42.8261 43.72071 42.5 44.107143 0 0 0 0.055 2.19336 50.892857 36.964287 0 0 0 -0.8457 -0.0977 28.392857 22.5 0 0 0 0.072 -0.93359v-0.0899a28.392857 22.5 0 0 0 -28.1738 -22.65039 28.392857 22.5 0 0 0 -28.3399 19.54297 34.107143 30.178572 0 0 0 -13.043 -2.40039 34.107143 30.178572 0 0 0 -34.37106 29.91406 34.107143 30.178572 0 0 0 33.77346 30.44141 34.107143 30.178572 0 0 0 15.5254 -3.16016 50.892857 36.964287 0 [...]
+		</clipPath>
+	</defs>
+	<g transform="translate(19.048405,-58.882248)">
+		<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="40px" y="77.730484" x="44.94297" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan font-size="12.5px" y="77.730484" x="44.94297">Ops Config Poller</tspan></text>
+		<rect height="29.7995" width="148.9975" stroke="#000" y="59.382252" x="24.243662" fill="none"/>
+		<g transform="translate(30)">
+			<text style="word-spacing:0px;letter-spacing:0px" xml:space="preserve" font-size="40px" y="77.730484" x="197.58212" font-family="sans-serif" line-height="125%" fill="#000000"><tspan font-size="12.5px" y="77.730484" x="197.58212">Ops Config Handler</tspan></text>
+			<rect height="29.7995" width="148.9975" stroke="#000" y="59.382252" x="184.24365" fill="none"/>
+		</g>
+		<g transform="translate(60)">
+			<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="40px" y="77.730484" x="354.78671" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan font-size="12.5px" y="77.730484" x="354.78671">Ops Config Manager</tspan></text>
+			<rect height="29.7995" width="148.9975" stroke="#000" y="59.382252" x="344.24365" fill="none"/>
+		</g>
+		<g stroke="#000" fill="none">
+			<path marker-end="url(#ab)" d="m173.61997 74.299617h39.48186" stroke-width=".99316341px"/>
+			<path marker-end="url(#z)" d="m363.61997 74.299617h39.48186" stroke-width=".99316341px"/>
+			<path marker-end="url(#y)" d="m553.21429 74.299617h36.42857" stroke-width="1px"/>
+		</g>
+		<text style="word-spacing:0px;letter-spacing:0px" xml:space="preserve" font-size="40px" y="77.730484" x="602.05188" font-family="sans-serif" line-height="125%" fill="#000000"><tspan font-size="12.5px" y="77.730484" x="602.05188">Restart HTTP Server</tspan></text>
+		<rect height="29.7995" width="148.9975" stroke="#000" y="59.382248" x="591.13647" fill="none"/>
+		<g transform="translate(0,3.9508057)">
+			<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="40px" y="117.73048" x="598.15942" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan font-size="12.5px" y="117.73048" x="598.15942">Ops Config Change Subscriber</tspan></text>
+			<rect height="29.628658" width="205.43379" stroke="#000" y="99.467667" x="591.22192" stroke-width="1.1708411" fill="none"/>
+		</g>
+		<path stroke-linejoin="round" marker-end="url(#x)" d="m566.61657 74.30219v41.82935h23.40799" stroke="#000" stroke-width=".9859066px" fill="none"/>
+		<g transform="translate(-5.2920856)">
+			<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="12.5px" y="165.63211" x="603.62378" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="165.63211" x="603.62378">Traffic Ops Client Change Subscriber</tspan></text>
+			<rect stroke-linejoin="round" height="27.5" width="242.85715" stroke="#000" y="148.43362" x="596.42859" fill="none"/>
+		</g>
+		<g stroke-linejoin="round" stroke="#000" fill="none">
+			<path marker-end="url(#w)" d="m566.5792 115.79885v47.39757h23.37602" stroke-width=".98499495px"/>
+			<path d="m796.42857 117.00506h57.5v47.3793" stroke-width="1px"/>
+			<path marker-end="url(#v)" d="m833.88093 162.67035h19.95051v45.7094h-796.252745v30.80966" stroke-width="1px"/>
+		</g>
+		<g transform="translate(10.73731,-68.757614)">
+			<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="12.5px" y="327.23929" x="-18.897272" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="327.23929" x="-18.897272">Monitor Config Poller</tspan></text>
+			<rect stroke-linejoin="round" height="27.142857" width="152.14285" stroke="#000" y="310.21936" x="-29.285715" fill="none"/>
+		</g>
+		<g transform="translate(0,-1.614746)">
+			<text style="word-spacing:0px;letter-spacing:0px" xml:space="preserve" font-size="12.5px" y="259.73926" x="169.16077" font-family="sans-serif" line-height="125%" fill="#000000"><tspan x="169.16077" y="259.73926">Monitor Config Manager</tspan></text>
+			<rect stroke-linejoin="round" height="26.428572" width="158.57143" stroke="#000" y="243.07649" x="165.71428" fill="none"/>
+		</g>
+		<path marker-end="url(#u)" d="m133.71894 255.05079h30.80966" stroke="#000" stroke-width="1px" fill="none"/>
+		<g transform="translate(3.9908142,-4.0975532)">
+			<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="12.5px" y="263.43362" x="391.78571" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="263.43362" x="391.78571">Stat Subscriber</tspan></text>
+			<rect stroke-linejoin="round" height="23.214285" width="116.07143" stroke="#000" y="247.16644" x="382.15393" fill="none"/>
+		</g>
+		<g transform="translate(-1.35672,-2.0488281)">
+			<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="12.5px" y="298.04077" x="391.78571" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="298.04077" x="391.78571">Health Subscriber</tspan></text>
+			<rect stroke-linejoin="round" height="24.285715" width="121.42857" stroke="#000" y="281.23788" x="387.50146" fill="none"/>
+		</g>
+		<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="12.5px" y="332.64792" x="391.78571" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="332.64792" x="391.78571">Peer Subscriber</tspan></text>
+		<rect stroke-linejoin="round" height="22.142857" width="110.71429" stroke="#000" y="316.91644" x="386.14474" fill="none"/>
+		<g stroke-linejoin="round" stroke="#000" fill="none">
+			<path marker-end="url(#t)" d="m324.28571 254.69365h60.00001" stroke-width="1px"/>
+			<path marker-end="url(#s)" d="m348.81527 254.9709v36.89474h35.23079" stroke-width="1.03820264px"/>
+			<path marker-end="url(#r)" d="m348.69062 289.38519v38.97108h35.4721" stroke-width=".96524209px"/>
+			<path marker-end="url(#q)" d="m502.04582 254.84677h53.033v160.10918h-474.771693v39.90102h36.365493" stroke-width="1px"/>
+		</g>
+		<g transform="translate(-4.8207485 -.94701795)">
+			<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="12.5px" y="460.41281" x="131.82491" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="460.41281" x="131.82491">Stat Poller</tspan></text>
+			<rect stroke-linejoin="round" height="20.203051" width="80.812202" stroke="#000" y="445.65125" x="123.7827" fill="none"/>
+		</g>
+		<g transform="translate(1.4105835,-5.6070722)">
+			<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="12.5px" y="465.07285" x="239.04759" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="465.07285" x="239.04759">Stat Fetcher</tspan></text>
+			<rect stroke-linejoin="round" height="19.192898" width="90.408653" stroke="#000" y="450.81638" x="232.33508" fill="none"/>
+		</g>
+		<g transform="translate(20,-3.533337)">
+			<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="12.5px" y="462.99911" x="338.80719" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="462.99911" x="338.80719">Stat Handler</tspan></text>
+			<rect stroke-linejoin="round" height="18.687822" width="93.43911" stroke="#000" y="448.99518" x="331.81238" fill="none"/>
+		</g>
+		<path marker-end="url(#c)" d="m199.75767 454.82632h31.33815" stroke="#000" stroke-width="1.16775703px" fill="none"/>
+		<path marker-end="url(#a)" d="m324.13648 454.82438h25.68822" stroke="#000" stroke-width="1.05726266px" fill="none"/>
+		<g transform="translate(1.4105835,26.392928)">
+			<text style="word-spacing:0px;letter-spacing:0px" xml:space="preserve" font-size="12.5px" y="465.07285" x="239.04759" font-family="sans-serif" line-height="125%" fill="#000000"><tspan x="239.04759" y="465.07285">Stat Fetcher</tspan></text>
+			<rect stroke-linejoin="round" height="19.192898" width="90.408653" stroke="#000" y="450.81638" x="232.33508" fill="none"/>
+		</g>
+		<g transform="translate(20,28.466663)">
+			<text style="word-spacing:0px;letter-spacing:0px" xml:space="preserve" font-size="12.5px" y="462.99911" x="338.80719" font-family="sans-serif" line-height="125%" fill="#000000"><tspan x="338.80719" y="462.99911">Stat Handler</tspan></text>
+			<rect stroke-linejoin="round" height="18.687822" width="93.43911" stroke="#000" y="448.99518" x="331.81238" fill="none"/>
+		</g>
+		<g stroke="#000" fill="none">
+			<path marker-end="url(#a)" d="m324.13648 486.82438h25.68822" stroke-width="1.05726266px"/>
+			<path stroke-linejoin="round" marker-end="url(#b)" d="m209.29773 454.83146v32.19643h23.23275" stroke-width=".98251468px"/>
+			<path d="m209.30647 486.99245v23.61232" stroke-width="1px"/>
+		</g>
+		<text style="word-spacing:0px;letter-spacing:0px" xml:space="preserve" font-size="12.5px" y="523.2948" x="203.34639" font-family="sans-serif" line-height="125%" fill="#000000"><tspan x="203.34639" y="523.2948">...</tspan></text>
+		<path marker-end="url(#d)" d="m445.47727 455.36205h42.37241" stroke="#000" stroke-width="1.30847371px" fill="none"/>
+		<path d="m459.2406 455.48832v54.67451" stroke="#000" stroke-width="1px" fill="none"/>
+		<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="12.5px" y="523.2948" x="453.28052" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="523.2948" x="453.28052">...</tspan></text>
+		<path d="m445.17857 486.80575h13.92857" stroke="#000" stroke-width="1px" fill="none"/>
+		<g transform="translate(-11.368655,-8.30116)">
+			<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="12.5px" y="466.97879" x="509.62195" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="466.97879" x="509.62195">Stat Manager</tspan></text>
+			<rect stroke-linejoin="round" height="20.203051" width="101.01525" stroke="#000" y="453.53864" x="501.63446" fill="none"/>
+		</g>
+		<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="12.5px" y="579.46576" x="118.97804" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="579.46576" x="118.97804">Health Poller</tspan></text>
+		<rect stroke-linejoin="round" height="20.203051" width="80.812202" stroke="#000" y="564.70422" x="118.96195" fill="none"/>
+		<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="12.5px" y="579.46576" x="233.86063" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="579.46576" x="233.86063">Health Fetcher</tspan></text>
+		<rect stroke-linejoin="round" height="19.177704" width="93.250603" stroke="#000" y="565.21686" x="233.75327" stroke-width="1.01519358" fill="none"/>
+		<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="12.5px" y="579.47858" x="354.6954" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="579.47858" x="354.6954">Health Handler</tspan></text>
+		<g stroke="#000" fill="none">
+			<rect stroke-linejoin="round" height="18.672918" width="101.22736" y="565.48206" x="351.83258" stroke-width="1.04042637"/>
+			<path marker-end="url(#c)" d="m199.75767 574.82632h31.33815" stroke-width="1.16775703px"/>
+			<path marker-end="url(#p)" d="m326.63648 574.82438h23.34915" stroke-width="1.00797892px"/>
+		</g>
+		<text style="word-spacing:0px;letter-spacing:0px" xml:space="preserve" font-size="12.5px" y="611.46576" x="234.21776" font-family="sans-serif" line-height="125%" fill="#000000"><tspan x="234.21776" y="611.46576">Health Fetcher</tspan></text>
+		<rect stroke-linejoin="round" height="19.173944" width="93.961128" stroke="#000" y="597.21875" x="233.75514" stroke-width="1.01895392" fill="none"/>
+		<text style="word-spacing:0px;letter-spacing:0px" xml:space="preserve" font-size="12.5px" y="611.45306" x="354.6954" font-family="sans-serif" line-height="125%" fill="#000000"><tspan x="354.6954" y="611.45306">Health Handler</tspan></text>
+		<g stroke="#000" fill="none">
+			<rect stroke-linejoin="round" height="18.672918" width="101.22736" y="597.45654" x="351.83258" stroke-width="1.04042637"/>
+			<g>
+				<path marker-end="url(#o)" d="m327.52933 606.82438h22.50905" stroke-width=".98967898px"/>
+				<path stroke-linejoin="round" marker-end="url(#b)" d="m209.29773 574.83146v32.19643h23.23275" stroke-width=".98251468px"/>
+				<path d="m209.30647 606.99245v23.61232" stroke-width="1px"/>
+			</g>
+		</g>
+		<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="12.5px" y="643.2948" x="203.34639" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="643.2948" x="203.34639">...</tspan></text>
+		<path marker-end="url(#n)" d="m453.47727 575.36205h42.37241" stroke="#000" stroke-width="1.30847371px" fill="none"/>
+		<path d="m467.2406 575.48832v54.67451" stroke="#000" stroke-width="1px" fill="none"/>
+		<text style="word-spacing:0px;letter-spacing:0px" xml:space="preserve" font-size="12.5px" y="643.2948" x="461.28052" font-family="sans-serif" line-height="125%" fill="#000000"><tspan x="461.28052" y="643.2948">...</tspan></text>
+		<path d="m453.17857 606.80575h13.92857" stroke="#000" stroke-width="1px" fill="none"/>
+		<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="12.5px" y="578.78748" x="501.51016" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="578.78748" x="501.51016">Health Manager</tspan></text>
+		<rect stroke-linejoin="round" height="20.172005" width="107.55019" stroke="#000" y="565.25299" x="498.28134" stroke-width="1.03104627" fill="none"/>
+		<text style="word-spacing:0px;letter-spacing:0px" xml:space="preserve" font-size="12.5px" y="699.46576" x="125.69191" font-family="sans-serif" line-height="125%" fill="#000000"><tspan x="125.69191" y="699.46576">Peer Poller</tspan></text>
+		<rect stroke-linejoin="round" height="20.203051" width="80.812202" stroke="#000" y="684.70422" x="118.96195" fill="none"/>
+		<text style="word-spacing:0px;letter-spacing:0px" xml:space="preserve" font-size="12.5px" y="699.46576" x="239.14592" font-family="sans-serif" line-height="125%" fill="#000000"><tspan x="239.14592" y="699.46576">Peer Fetcher</tspan></text>
+		<rect stroke-linejoin="round" height="19.192898" width="90.408653" stroke="#000" y="685.20929" x="233.74567" fill="none"/>
+		<text style="word-spacing:0px;letter-spacing:0px" xml:space="preserve" font-size="12.5px" y="699.46582" x="357.49493" font-family="sans-serif" line-height="125%" fill="#000000"><tspan x="357.49493" y="699.46582">Peer Handler</tspan></text>
+		<rect stroke-linejoin="round" height="18.687822" width="93.43911" stroke="#000" y="685.46185" x="351.81238" fill="none"/>
+		<path marker-end="url(#c)" d="m199.75767 694.82632h31.33815" stroke="#000" stroke-width="1.16775703px" fill="none"/>
+		<path marker-end="url(#a)" d="m324.13648 694.82438h25.68822" stroke="#000" stroke-width="1.05726266px" fill="none"/>
+		<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="12.5px" y="731.46576" x="239.14592" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="731.46576" x="239.14592">Peer Fetcher</tspan></text>
+		<rect stroke-linejoin="round" height="19.192898" width="90.408653" stroke="#000" y="717.20929" x="233.74567" fill="none"/>
+		<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="12.5px" y="731.46582" x="357.49493" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="731.46582" x="357.49493">Peer Handler</tspan></text>
+		<rect stroke-linejoin="round" height="18.687822" width="93.43911" stroke="#000" y="717.46185" x="351.81238" fill="none"/>
+		<g stroke="#000" fill="none">
+			<path marker-end="url(#a)" d="m324.13648 726.82438h25.68822" stroke-width="1.05726266px"/>
+			<path stroke-linejoin="round" marker-end="url(#b)" d="m209.29773 694.83146v32.19643h23.23275" stroke-width=".98251468px"/>
+			<path d="m209.30647 726.99245v23.61232" stroke-width="1px"/>
+		</g>
+		<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="12.5px" y="763.2948" x="203.34639" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="763.2948" x="203.34639">...</tspan></text>
+		<path marker-end="url(#d)" d="m445.47727 695.36205h42.37241" stroke="#000" stroke-width="1.30847371px" fill="none"/>
+		<path d="m459.2406 695.48832v54.67451" stroke="#000" stroke-width="1px" fill="none"/>
+		<text style="word-spacing:0px;letter-spacing:0px" xml:space="preserve" font-size="12.5px" y="763.2948" x="453.28052" font-family="sans-serif" line-height="125%" fill="#000000"><tspan x="453.28052" y="763.2948">...</tspan></text>
+		<path d="m445.17857 726.80575h13.92857" stroke="#000" stroke-width="1px" fill="none"/>
+		<text style="word-spacing:0px;letter-spacing:0px" xml:space="preserve" font-size="12.5px" y="698.59521" x="496.94104" font-family="sans-serif" line-height="125%" fill="#000000"><tspan x="496.94104" y="698.59521">Peer Manager</tspan></text>
+		<rect stroke-linejoin="round" height="20.203051" width="101.01525" stroke="#000" y="685.23749" x="490.26581" fill="none"/>
+		<path stroke-linejoin="round" marker-end="url(#m)" d="m507.5 291.29077h27.14286v92.50001h-480.714288v190.35714h62.857138" stroke="#000" stroke-width="1px" fill="none"/>
+		<path stroke-linejoin="round" marker-end="url(#l)" d="m496.99505 328.58791h13.63706v34.34518h-490.429059v331.83511h97.459419" stroke="#000" stroke-width="1px" fill="none"/>
+		<g transform="translate(-20,-18)">
+			<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="20px" y="460.39252" x="756.67786" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="460.39252" x="756.67786">Shared Data</tspan></text>
+			<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="12.5px" y="483.46613" x="756.66199" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="483.46613" x="756.66199">events</tspan><tspan y="499.09113" x="756.66199">toData</tspan><tspan y="514.71613" x="756.66199">errorCount</tspan><tspan y="530.34113" x="756.66199">healthIteration</tspan><tspan y="545.96613" x="756.66199">fetchCount</tspan><tspan y="561.59113" x="756.66199">localStates</ts [...]
+			<rect stroke-linejoin="round" height="323.24881" width="161.6244" stroke="#000" y="440.71484" x="737.91644" fill="none"/>
+			<rect stroke-linejoin="round" height="26.974453" width="162.3349" stroke="#000" y="440.35959" x="737.56122" stroke-width=".99000001" fill="none"/>
+		</g>
+		<g stroke-width="1px" stroke="#000" fill="none">
+			<g>
+				<path marker-end="url(#k)" d="m590.93924 456.3722h125.74369"/>
+				<path marker-end="url(#j)" d="m605.58645 575.5702h110.08632"/>
+				<path marker-end="url(#i)" d="m590.93924 695.27328h125.25892"/>
+			</g>
+			<path stroke-linejoin="round" marker-end="url(#h)" d="m740 74.50506h162.85714v162.14286h-96.42857v35.35714"/>
+		</g>
+		<g transform="translate(-.35714286 -32.357143)">
+			<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="12.5px" y="323.51953" x="767.49884" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="323.51953" x="767.49884">HTTP Server</tspan></text>
+			<rect stroke-linejoin="round" height="23.134037" width="86.705467" stroke="#000" y="307.40234" x="763.25439" stroke-width="1.07024741" fill="none"/>
+		</g>
+		<path marker-end="url(#g)" d="m806.26765 422.00506v-121.77599" stroke="#000" stroke-width="1.00290549px" fill="none"/>
+		<g transform="translate(-10,-6.0651794)">
+			<text style="word-spacing:0px;letter-spacing:0px" line-height="125%" font-size="12.5px" y="295.93362" x="910.35712" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="295.93362" x="910.35712">HTTP Request</tspan></text>
+			<rect stroke-linejoin="round" height="25" width="100" stroke="#000" y="280.1774" x="904.21393" stroke-width=".99000001" fill="none"/>
+		</g>
+		<path marker-end="url(#f)" d="m849.64286 286.62983h42.5" stroke="#000" stroke-width="1px" fill="none"/>
+		<g transform="translate(71.071429,-135)">
+			<path d="m1110.4531 405.29883a35.457748 34.207745 0 0 0 -34.7324 26.27734 23.571428 16.964285 0 0 0 -14.1094 -3.5 23.571428 16.964285 0 0 0 -23.5332 14.75781 42.857143 20.714285 0 0 0 -11.3457 4.07227 23.928572 16.964285 0 0 0 0.053 -0.61133v-0.0684a23.928572 16.964285 0 0 0 -23.7422 -17.07812 23.928572 16.964285 0 0 0 -24.11331 16.8164 23.928572 16.964285 0 0 0 23.69331 17.11133 23.928572 16.964285 0 0 0 12.0547 -2.23828 42.857143 20.714285 0 0 0 -0.033 0.27149 42.857143 20.714285 0  [...]
+			<path stroke-linejoin="round" d="m1125.6855 353.07812a42.5 44.107143 0 0 0 -42.8261 43.72071 42.5 44.107143 0 0 0 0.055 2.19336 50.892857 36.964287 0 0 0 -0.8457 -0.0977 28.392857 22.5 0 0 0 0.072 -0.93359v-0.0899a28.392857 22.5 0 0 0 -28.1738 -22.65039 28.392857 22.5 0 0 0 -28.3399 19.54297 34.107143 30.178572 0 0 0 -13.043 -2.40039 34.107143 30.178572 0 0 0 -34.37106 29.91406 34.107143 30.178572 0 0 0 33.77346 30.44141 34.107143 30.178572 0 0 0 15.5254 -3.16016 50.892857 36.964287 0 [...]
+		</g>
+		<path marker-end="url(#e)" d="m993.92857 286.62983h50.00003" stroke="#000" stroke-width="1px" fill="none"/>
+	</g>
+</svg>


[trafficcontrol] 04/39: Fixed favicon and logo not linked

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 4dc9664bfc61a99e7106a890b475dde872bebb6f
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Tue Sep 18 08:33:25 2018 -0600

    Fixed favicon and logo not linked
---
 docs/source/_static/theme_overrides.css |  4 ----
 docs/source/conf.py                     | 10 ++++++++++
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/docs/source/_static/theme_overrides.css b/docs/source/_static/theme_overrides.css
index 2d48fce..bcdc720 100644
--- a/docs/source/_static/theme_overrides.css
+++ b/docs/source/_static/theme_overrides.css
@@ -54,10 +54,6 @@
   background: #404040;
 }
 
-.wy-side-nav-search img {
-	width: 33% !important;
-}
-
 .section {
   margin-top: 20px;
 }
diff --git a/docs/source/conf.py b/docs/source/conf.py
index d49c6a3..fe3d6ba 100755
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -115,6 +115,12 @@ html_static_path = ['_static']
 #
 # html_sidebars = {}
 
+# Sets the favicon for the HTML pages
+html_favicon="favicon.ico"
+
+# Sets the sidebar logo for HTML pages
+html_logo="../../misc/logos/Traffic-Control-Logo-FINAL-White-Text.png"
+
 
 # -- Options for HTMLHelp output ---------------------------------------------
 
@@ -171,3 +177,7 @@ texinfo_documents = [
 	 author, 'trafficcontrol', 'Traffic Control is an Open Source implementation of a Content Delivery Network.',
 	 'Miscellaneous'),
 ]
+
+# Hopefully this will cause tab expansion to use 4 spaces rather than the
+# (GNU-supported) default of 8.
+tab_width=4


[trafficcontrol] 23/39: Added missing commands/correcting existing commands for `admin.pl` docs

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 305dc1dfd3bea862410bfd8df2389fd6aac82df3
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Thu Sep 27 06:57:56 2018 -0600

    Added missing commands/correcting existing commands for `admin.pl` docs
    
    Also updated formatting - lists of key/value pairs -> actual key/value pairs, implicitly numbered lists etc.
---
 docs/source/development/traffic_ops.rst | 212 +++++++++++++++++---------------
 1 file changed, 114 insertions(+), 98 deletions(-)

diff --git a/docs/source/development/traffic_ops.rst b/docs/source/development/traffic_ops.rst
index 12a21c1..117c14c 100644
--- a/docs/source/development/traffic_ops.rst
+++ b/docs/source/development/traffic_ops.rst
@@ -106,13 +106,22 @@ traffic_ops/ - The root of the Traffic Ops project
 		- ats_config/ - an attempt to provide an easier method of obtaining and/or writing configuration files for Apache Trafficserver cache servers
 		- auth/ - a simple authentication server that mimics the authentication process of Traffic Ops, and provides a detailed view of a logged-in user's permissions and capabilities
 		- goto/ - an Angular (1.x) web page backed by a Go server that provides a ReST API interface for mySQL servers
-		- postgrest/ - originally probably going to be a web server that provides a ReST API for postgreSQL servers, this only contains a simple - albiet unfinished - Docker container specification for running postgreSQL client tools and/or server(s)
+		- postgrest/ - originally probably going to be a web server that provides a ReST API for postgreSQL servers, this only contains a simple - albeit unfinished - Docker container specification for running postgreSQL client tools and/or server(s)
 		- server/ - a living copy of the original attempt at re-writing Traffic Ops in Go
 		- traffic_ops_auth/ - proof-of-concept for authenticating, creating and deleting users in a Traffic Ops schema.
 		- url-rewriter-nginx/ - Docker container specification for a modification to the NginX web server, meant to make it suitable for use as a caching server at the Edge-tier or Mid-tier levels of the Traffic Control architecture
 		- webfront/ - a simple HTTP caching server written from the ground-up, meant to be suitable as a caching server at the Edge-tier or Mid-tier levels of the Traffic Control architecture
 
-	- install/
+	- install/ - contains all of the resources necessary for a full install of Traffic Ops
+
+		- bin/ - binaries related to installing Traffic Ops, as well as installing its prerequisites, certificates, and database
+		- data/ - almost nothing
+		- etc/ - this directory left empty; it's used to contain post-installation extensions and resources
+		- lib/ - contains libraries used by the various installation binaries
+
+	- testing/ - holds utilities for testing the Traffic Ops API, as well as comparing two separate API instances (for e.g. comparing a new build to a known-to-work build)
+	- traffic_ops_golang/ - has all of the functionality that has been re-written from Perl into Go
+	- vendor/ - contains "vendored" packages from third party sources
 
 Perl Formatting Conventions
 ===========================
@@ -144,137 +153,144 @@ Perl Formatting Conventions
 
 Database Management
 ===================
-..  Add db naming conventions
-
-The admin.pl script is for use in managing the Traffic Ops database tables. Below is an example of its usage.
-
-``$ db/admin.pl``
-
-Usage:  db/admin.pl [--env (development|test|production)] [arguments]
-
-Example: ``db/admin.pl --env=test reset``
-
-Purpose:  This script is used to manage the database. The environments are defined in the dbconf.yml, as well as the database names.
-
-- To use the ``admin.pl`` script, you may need to add ``traffic_ops/lib`` and ``traffic_ops/local/lib/perl5`` to your `PERL5LIB <http://modperlbook.org/html/3-9-2-2-Using-the-PERL5LIB-environment-variable.html>`_ environment variable.
-
-+-----------+--------------------------------------------------------------------+
-| Arguments | Description                                                        |
-+===========+====================================================================+
-| create    | Execute db 'create' the database for the current environment.      |
-+-----------+--------------------------------------------------------------------+
-| down      | Roll back a single migration from the current version.             |
-+-----------+--------------------------------------------------------------------+
-| drop      | Execute db 'drop' on the database for the current environment.     |
-+-----------+--------------------------------------------------------------------+
-| redo      | Roll back the most recently applied migration, then run it again.  |
-+-----------+--------------------------------------------------------------------+
-| reset     | Execute db drop, create, load_schema, migrate on the database for  |
-|           | the current environment.                                           |
-+-----------+--------------------------------------------------------------------+
-| seed      | Execute SQL from db/seeds.sql for loading static data.             |
-+-----------+--------------------------------------------------------------------+
-| setup     | Execute db drop, create, load_schema, migrate, seed on the         |
-|           | database for the current environment.                              |
-+-----------+--------------------------------------------------------------------+
-| status    | Print the status of all migrations.                                |
-+-----------+--------------------------------------------------------------------+
-| upgrade   | Execute migrate then seed on the database for the current          |
-|           | environment.                                                       |
-+-----------+--------------------------------------------------------------------+
+The ``app/db/admin.pl`` script is for use in managing the Traffic Ops database tables. This essentially serves as a front-end for `Goose <https://bitbucket.org/liamstask/goose/>`_ Below is an example of its usage.
+
+.. note:: For proper resolution of Perl library paths and SOL statement files, it's recommended that this script be run from the ``app`` directory
+
+``db/admin.pl [options] command``
+
+Options:
+
+--env     An environment specification. One of ``development``, ``integration``, ``production``, or ``test``. Default is ``development``.
+
+.. note:: The ``$MOJO_MODE`` environment variable is set to the value of the environment
+
+Commands:
+
+createdb
+	Creates the database for the current environment
+create_user
+	Creates the user defined for the current environment
+dbversion
+	Displays the database version that results from the current sequence of migrations
+down
+	Rolls back a single migration from the current version
+drop
+	Drops the database for the current environment
+drop_user
+	Drops the user defined for the current environment
+load_schema
+	Sets up the database for the current environment according to the SQL statements in ``app/db/create_tables.sql``
+migrate
+	Runs a migration on the database for the current environment
+patch
+	Patches the database for the current environment using the SQL statements from the ``app/db/patches.sql``
+redo
+	Rolls back the most recently applied migration, then run it again
+reset
+	Creates the user defined for the current environment, drops the database for the current environment, creates a new one, loads the schema into it, and runs a single migration on it
+reverse_schema
+	Reverse engineers the ``app/lib/Schema/Result/*`` files from the environment database
+seed
+	Executes the SQL statements from the ``app/db/seeds.sql`` file for loading static data
+show_users
+	Displays a list of all users registered with the PostgreSQL server
+status
+	Prints the status of all migrations
+upgrade
+	Performs a migration on the database for the current environment, then seeds it and patches it using the SQL statements from the ``app/db/patches.sql`` file
+
+.. code-block::bash
+	:caption: Example Usage
+
+	db/admin.pl --env=test reset
+
+The environments are defined in the ``app/db/dbconf.yml`` file, and the name of the database generated will be the name of the environment for which it was created. To use the ``admin.pl`` script, you may need to add ``traffic_ops/lib`` and ``traffic_ops/local/lib/perl5`` to your `PERL5LIB <http://modperlbook.org/html/3-9-2-2-Using-the-PERL5LIB-environment-variable.html>`_ environment variable.
+
+
 
 Installing The Developer Environment
 ====================================
 To install the Traffic Ops Developer environment:
 
-1. Clone the trafficcontrol repository from `github.com <https://github.com/apache/trafficcontrol>`_.
-2. Install the local dependencies using Carton (cpanfile).
-
-	::
-
-	 $ cd traffic_ops/app
-	 $ carton
-
-3. Set up a role (user) in Postgres
-
-	 See Postgres instructions on initdb https://wiki.postgresql.org/wiki/First_steps
-
+#. Clone the `Traffic Control repository <https://github.com/apache/trafficcontrol>`_ from GitHub.
+#. Install the local dependencies using `Carton <https://metacpan.org/release/Carton>`_.
 
-4. Enter ``db/admin.pl --env=<enviroment name> setup`` to set up the traffic_ops database(s).
+	.. code-block::shell
+		:caption: Install Development Dependencies
 
-	 - Unit test database: ``$ db/admin.pl --env=test setup``
-	 - Development database: ``$ db/admin.pl --env=development setup``
-	 - Integration database: ``$ db/admin.pl --env=integration setup``
+		cd traffic_ops/app
+		carton
 
-	 |
+#. Set up a role (user) in PostgreSQL
 
-	 Running the the admin.pl script in setup mode should look like this: ::
+	.. seealso:: `PostgreSQL instructions on setting up a database <https://wiki.postgresql.org/wiki/First_steps>`_.
 
-			 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 'drop database to_development'
-			 Executing 'create database to_development'
-			 Creating database tables...
-			 Warning: Using a password on the command line interface can be insecure.
-			 Migrating database...
-			 goose: migrating db environment 'development', 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.
 
-5. (Optional) To load temporary data into the tables: ``$ perl bin/db/setup_kabletown.pl``
+#. Use the ``setup`` command of the ``admin.pl`` script (see `Database Management`_ for usage) to set up the traffic_ops database(s).
 
-6. Run the postinstall script: ``traffic_ops/install/bin/postinstall``
+	 Example Output::
 
-7. To start Traffic Ops, enter ``$ bin/start.pl``
+		$ 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 'drop database to_development'
+		Executing 'create database to_development'
+		Creating database tables...
+		Warning: Using a password on the command line interface can be insecure.
+		Migrating database...
+		goose: migrating db environment 'development', 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.
 
-	 The local Traffic Ops instance uses an open source framework called morbo, starting following the start command execution.
+#. (Optional) To load the 'KableTown' example/testing data set into the tables, use the ``setup_kabletown.pl`` script located in ``app/bin/db/``.
 
-	 Start up success includes the following:
+	.. note:: To ensure proper paths to Perl libraries and resource files, the ``setup_kabletown.pl`` should be run from within the ``app/`` directory.
 
-	::
+#. Run the ``postinstall`` script, located in ``install/bin/``
 
+#. To start Traffic Ops, use the ``start.pl`` script located in the ``app/bin`` directory. If the server starts successfully, the STDOUT of the process should contain the line ``[<date and time>] [INFO] Listening at "http://*:3000"``, followed by the line ``Server available at http://127.0.0.1:3000`` (using default settings for port number and listening address, and where ``<date and time>`` is an actual date and time in ISO format).
 
-	 [2015-02-24 10:44:34,991] [INFO] Listening at "http://*:3000".
+	.. note:: To ensure proper paths to Perl libraries and resource files, the ``start.pl`` script should be run from within the ``app/`` directory.
 
-	 Server available at http://127.0.0.1:3000.
 
+#. Using a web browser, navigate to the given address: ``http://127.0.0.1:3000``
+#. A prompt for login credentials should appear. Assuming default settings are used, the initial login credentials will be
 
-8. Using a browser, navigate to the given address: ``http://127.0.0.1:3000``
-9. For the initial log in:
+	:User name: ``admin``
+	:Password:  ``password``
 
-	- User name: admin
-	- Password: password
+#. Change the login credentials.
 
-10. Change the log in information.
+	.. seealso:: :ref:`to-using`
 
 Test Cases
 ==========
 Use prove to execute test cases. Execute after a carton install:
 
 - To run the Unit Tests: ``$ local/bin/prove -qrp  t/``
-* To run the Integration Tests: ``$ local/bin/prove -qrp t_integration/``
+- To run the Integration Tests: ``$ local/bin/prove -qrp t_integration/``
 
 The KableTown CDN example
 -------------------------
 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:
 
-1. Run the integration tests
-2. Start morbo against the integration database: ``export MOJO_MODE=integration; ./bin/start.pl``
-3. Using a browser, navigate to the given address: ``http://127.0.0.1:3000``
-4. For the initial log in:
+#. Run the integration tests
+#. Start morbo against the integration database: ``export MOJO_MODE=integration; ./bin/start.pl``
+#. Using a browser, navigate to the given address: ``http://127.0.0.1:3000``
+#. For the initial log in:
 
-	- User name: admin
-	- Password: password
+	:User name: ``admin``
+	:Password: ``password``
 
 
 Extensions


[trafficcontrol] 25/39: Fixed missing reference

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 31c54835f640f3f96ae910b95d5ce071f8567f02
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Thu Sep 27 07:38:38 2018 -0600

    Fixed missing reference
---
 docs/source/admin/traffic_ops/using.rst | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/docs/source/admin/traffic_ops/using.rst b/docs/source/admin/traffic_ops/using.rst
index f6b2ef1..ca075e3 100644
--- a/docs/source/admin/traffic_ops/using.rst
+++ b/docs/source/admin/traffic_ops/using.rst
@@ -19,6 +19,8 @@
 .. |X| image:: images/bad.png
 .. |clock| image:: images/clock-black.png
 
+.. _to-using:
+
 *******************
 Traffic Ops - Using
 *******************


[trafficcontrol] 15/39: Formatting

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit da4cc35eb18c1a7dbfa7a1c8f9e8029cde883dad
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Wed Sep 19 09:07:09 2018 -0600

    Formatting
---
 docs/source/admin/quick_howto/regionalgeo.rst | 75 ++++++++++++++-------------
 1 file changed, 38 insertions(+), 37 deletions(-)

diff --git a/docs/source/admin/quick_howto/regionalgeo.rst b/docs/source/admin/quick_howto/regionalgeo.rst
index 30d9ba4..e2859f7 100644
--- a/docs/source/admin/quick_howto/regionalgeo.rst
+++ b/docs/source/admin/quick_howto/regionalgeo.rst
@@ -47,56 +47,57 @@ Configure Regional Geo-blocking (RGB)
 	``deliveryServiceId``
 		Should be equal to the ``ID`` or ``xml_id`` field of the intended Delivery Service as configured in Traffic Portal
 	``urlRegex``
-		A regular expression to be used to determine
+		A regular expression to be used to determine to what URLs the rule shall apply; a URL that matches it is subject to the rule
+	``geoLocation``
+		An object that currently supports only the keys ``includePostalCode`` and ``excludePostalCode`` (mutually exclusive). When the ``includePostalCode`` key is used, only the clients whose Forward Sortation Areas (FSA)s - the first three postal characters of Canadian postal codes - are in the ``includePostalCode`` list are able to view the content at URLs matched by the ``urlRegex``. When ``excludePostalCode`` is used, any client whose FSA is not in the ``excludePostalCode`` list will be a [...]
+	``redirectUrl``
+		The URL that will be returned to the blocked clients. Without a domain name in the URL, the URL will still be served in the same Delivery Service. Thus Traffic Router will redirect the client to a chosen cache server assigned to the Delivery Service. If the URL includes a domain name, Traffic Router simply redirects the client to the defined URL. In the later case, the redirect URL must not match the ``urlRegex`` value, or an infinite loop of  HTTP ``302 Found`` responses will occur at [...]
+	``ipWhiteList``
+		An optional element that is an array of CIDR (Classless Inter-Domain Routing) blocks indicating the IPv4 subnets that are allowed by the rule. If this list exists and the value is not empty, client IP will be matched against the CIDR list, bypassing the value of ``geoLocation``. If there is no match in the white list, Traffic Router defers to the value of ``geoLocation`` to determine if content ought to be blocked.
 
-* “geoLocation” currently supports “includePostalCode” and “excludePostalCode” attribute. When “includePostalCode” attribute is used, only the clients whose FSAs are in the “includePostalCode” list are able to view the content represented by “urlRegex”. When “excludePostalCode” is used, any client whose FSA are not in the “excludePostalCode” list are allowed to view the content. “includePostalCode” and “excludePostalCode” are mutually exclusive in one rule. (FSA: Forward Sortation Area,  [...]
 
-* “redirectUrl” is the URL that will be responded to the blocked clients. Without a domain name in the URL, the URL will still be served in the same delivery service. Thus Traffic Router will redirect the client to a chosen cache server assigned to the delivery service. If the URL includes a domain name, Traffic Router simply redirects the client to the defined URL. In the later case, the redirect URL must not match the “urlRegex” part to avoid HTTP 302 loop on Traffic Router.
+#. Add RGB parameters in Traffic Portal to the Delivery Service's Traffic Router(s)'s profile(s). The ``configFile`` field should be set to ``CRConfig.json``, and the following two parameter name/values need to be specified:
 
-* “ipWhiteList” is an optional element. It includes a list of CIDR (Classless Inter-Domain Routing) blocks indicating the IPv4 subnets that are allowed by the rule. If this list exists and the value is not empty, client IP will be matched against the CIDR list, and if there is any match, the request will be allowed and no postal code matching logic is needed. If there is no match in the white list, postal code matching logic will be processed further.
+	``regional_geoblocking.polling.url``
+		The URL of the RGB configuration file. Traffic Router will fetch the file from this URL using an HTTP ``GET`` request.
+	``regional_geoblocking.polling.interval``
+		The interval on which Traffic Router polls the RGB configuration file.
 
+	.. figure:: regionalgeo/01.png
+		:scale: 100%
+		:align: center
 
-2)	Add RGB parameters on Traffic Ops
+#. Enable RGB for a delivery service
 
-The two new parameters in following table are required to be added into CRConfig.json:
+	.. figure:: regionalgeo/02.png
+		:scale: 100%
+		:align: center
 
-* "regional_geoblocking.polling.url": the HTTP URL of RGB configuration file. Traffic Router will fetch the file from this URL.
-* "regional_geoblocking.polling.interval": the interval that Traffic Router polls the RGB configuration file.
+#. Go to Tools->Snapshot CRConfig, perform “Diff CRConfig” and click "Write CRConfig".
 
-.. image:: regionalgeo/01.png
-	:scale: 100%
-	:align: center
+	.. figure:: regionalgeo/03.png
+		:scale: 70%
+		:align: center
 
-3)	Enable RGB for a delivery service
+Traffic Router Access Log
+=========================
+.. seealso:: :ref:`tr-logs`
 
-.. image:: regionalgeo/02.png
-	:scale: 100%
-	:align: center
+RGB extends the ``rtype`` field and adds a new field ``rgb`` in Traffic Router access.log to help to monitor this feature. A value of ``RGALT`` in the ``rtype`` field indicates that a request is redirected to an alternate URL by RGB; a value of ``RGDENY`` indicates that a request is denied by RGB because there is no matching rule in the RGB configuration file for this request. When RGB is enabled, the ``RGB`` field will be non-empty with following format::
 
-4)	Make configuration effective
+	{FSA}:{allowed/disallowed}:{include/exclude postal}:{fallback config}:{allowed by whitelist}
 
-Go to Tools->Snapshot CRConfig, perform “Diff CRConfig” and click "Write CRConfig".
 
-.. image:: regionalgeo/03.png
-	:scale: 70%
-	:align: center
-
-5)	Traffic Router access log with RGB
-
-RGB extends the field of "rtype" and adds a new field "rgb" in Traffic Router access.log to help to monitor the working of this feature.
-
-For "rtype", RGALT indicates that a request is redirected to an alternate URL by RGB; RGDENY indicates that a request is denied by RGB because there is no matching rule in JSON for this request.
-
-For "rgb", when RGB is enabled, it will be non-empty with following format::
-
-	{FSA}:{allowed/disallowed}:{include/exclude postal}:{fallback config/current config}:{allowed by whitelist/otherwise}
-
-
-* {FSA}: It is the client’s FSA part of its postal code, which is retrieved from geo-location database. If FSA is empty, dash (“-“) is filled in.
-* {allowed/disallowed}: This flag shows if a request is allowed or disallowed by RGB (1 for yes, and 0 for no).
-* {include/exclude postal}: It shows that when a rule in JSON is matched for a request, it is an include or exclude list of postal codes (i.e. FSAs). “I” for include, and “X” for exclude. If no rule matches, dash (“-“) is filled in.
-* {fallback config/current config}: when TR fails to parse an RGB JSON, TR will handle requests with latest valid JSON configuration, but will set {fallback config} flag to 1. If the new JSON is valid, then the flag is set to 0.
-* {allowed by whitelist/otherwise}: If a request is allowed by whitelist, this flag is set to 1; for all other cases, it is 0.
+FSA
+	FSA part of the client’s postal code, which is retrieved from a geographic location database. If this field is empty, a dash (“-“) is filled in.
+allowed/disallowed
+	This flag shows if a request was allowed or disallowed by RGB (1 for yes, and 0 for no).
+include/exclude postal
+	This shows that when a rule in JSON is matched for a request, it's value is "I" if the rule matched because of an ``includePostalCode`` rule, "X" if the rule matched because of an ``excludePostalCode`` rule, or "-" if no rule matched.
+fallback config
+	When Traffic Router fails to parse an RGB configuration file as JSON, Traffic Router will handle requests with latest valid configuration that it had, but will set the ``fallback config`` flag to 1. If no fall-back occurred, then the flag is set to 0.
+allowed by whitelist
+	If a request is allowed by a ``whitelist`` field in the configuration, this flag is set to 1; for all other cases, it is 0.
 
 
 Example::


[trafficcontrol] 35/39: Added license headers

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 2bb53b9891e349189a5cdb11c4e763edc06d27fa
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Thu Oct 4 13:37:11 2018 -0600

    Added license headers
---
 .../development/traffic_monitor/Health_Pipeline.svg      | 16 ++++++++++++++++
 .../development/traffic_monitor/Monitor_Pipeline.svg     | 16 ++++++++++++++++
 .../development/traffic_monitor/Ops-Config_Pipeline.svg  | 16 ++++++++++++++++
 .../source/development/traffic_monitor/Peer_Pipeline.svg | 16 ++++++++++++++++
 docs/source/development/traffic_monitor/Pipeline.svg     | 16 ++++++++++++++++
 .../source/development/traffic_monitor/Stat_Pipeline.svg | 16 ++++++++++++++++
 6 files changed, 96 insertions(+)

diff --git a/docs/source/development/traffic_monitor/Health_Pipeline.svg b/docs/source/development/traffic_monitor/Health_Pipeline.svg
index 542284a..148ce75 100644
--- a/docs/source/development/traffic_monitor/Health_Pipeline.svg
+++ b/docs/source/development/traffic_monitor/Health_Pipeline.svg
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- 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. -->
 <svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="22.321117mm" width="137.69202mm" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 487.8851 79.090573">
 	<defs>
 		<marker id="d" refY="0" refX="0" orient="auto" overflow="visible">
diff --git a/docs/source/development/traffic_monitor/Monitor_Pipeline.svg b/docs/source/development/traffic_monitor/Monitor_Pipeline.svg
index a403031..08f0c52 100644
--- a/docs/source/development/traffic_monitor/Monitor_Pipeline.svg
+++ b/docs/source/development/traffic_monitor/Monitor_Pipeline.svg
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- 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. -->
 <svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="27.826416mm" width="148.76547mm" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 527.12175 98.597537">
 	<defs>
 		<marker id="a" refY="0" refX="0" orient="auto" overflow="visible">
diff --git a/docs/source/development/traffic_monitor/Ops-Config_Pipeline.svg b/docs/source/development/traffic_monitor/Ops-Config_Pipeline.svg
index 39cb3e0..53cb71d 100644
--- a/docs/source/development/traffic_monitor/Ops-Config_Pipeline.svg
+++ b/docs/source/development/traffic_monitor/Ops-Config_Pipeline.svg
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- 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. -->
 <svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="33.17561mm" width="228.81166mm" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 810.74995 117.55137">
 	<defs>
 		<marker id="d" refY="0" refX="0" orient="auto" overflow="visible">
diff --git a/docs/source/development/traffic_monitor/Peer_Pipeline.svg b/docs/source/development/traffic_monitor/Peer_Pipeline.svg
index 0bf36cf..c5c1118 100644
--- a/docs/source/development/traffic_monitor/Peer_Pipeline.svg
+++ b/docs/source/development/traffic_monitor/Peer_Pipeline.svg
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- 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. -->
 <svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="22.321117mm" width="133.58116mm" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 473.31906 79.090573">
 	<defs>
 		<marker id="e" refY="0" refX="0" orient="auto" overflow="visible">
diff --git a/docs/source/development/traffic_monitor/Pipeline.svg b/docs/source/development/traffic_monitor/Pipeline.svg
index df48dce..21b59c5 100644
--- a/docs/source/development/traffic_monitor/Pipeline.svg
+++ b/docs/source/development/traffic_monitor/Pipeline.svg
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- 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. -->
 <svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="198.80087mm" width="355.67175mm" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 1260.2542 704.41254">
 	<defs>
 		<marker id="e" refY="0" refX="0" orient="auto" overflow="visible">
diff --git a/docs/source/development/traffic_monitor/Stat_Pipeline.svg b/docs/source/development/traffic_monitor/Stat_Pipeline.svg
index 904d7a5..ca2b570 100644
--- a/docs/source/development/traffic_monitor/Stat_Pipeline.svg
+++ b/docs/source/development/traffic_monitor/Stat_Pipeline.svg
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- 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. -->
 <svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="22.321115mm" width="133.58116mm" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 473.31908 79.090566">
 	<defs>
 		<marker id="d" refY="0" refX="0" orient="auto" overflow="visible">


[trafficcontrol] 10/39: Formatting changes, links between anonymous blocking rtype and tr logs

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 689fbba6b5498aeb0bebb0067533c591f3a0a12a
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Wed Sep 19 06:16:32 2018 -0600

    Formatting changes, links between anonymous blocking rtype and tr logs
---
 .../admin/quick_howto/anonymous_blocking.rst       |  96 +++++++++---------
 docs/source/admin/traffic_router.rst               | 112 ++++++++++-----------
 2 files changed, 102 insertions(+), 106 deletions(-)

diff --git a/docs/source/admin/quick_howto/anonymous_blocking.rst b/docs/source/admin/quick_howto/anonymous_blocking.rst
index a78cc6e..2abc3f2 100644
--- a/docs/source/admin/quick_howto/anonymous_blocking.rst
+++ b/docs/source/admin/quick_howto/anonymous_blocking.rst
@@ -15,73 +15,69 @@
 
 .. _anonymous_blocking-qht:
 
-**************************************
+****************************
 Configure Anonymous Blocking
-**************************************
+****************************
 
 .. Note:: Anonymous Blocking is only supported for HTTP delivery services.
 
-1)  Prepare the Anonymous Blocking configuration file
+#. Prepare the Anonymous Blocking configuration file. Anonymous Blocking uses a configuration file in JSON format to define blocking rules for Delivery Services. The file needs to be put on an HTTP server accessible to Traffic Router.
 
-Anonymous Blocking uses a configuration file in JSON format to define blocking rules for delivery services. The file needs to be put on an HTTP server accessible to Traffic Router. An example of the JSON is as follows::
+	.. code-block:: json
+		:caption: Example Configuration JSON
 
-    {
+		{
+			"customer": "YourCompany",
+			"version": "1",
+			"date" : "2017-05-23 03:28:25",
+			"name": "Anonymous IP Blocking Policy",
 
-       "customer": "YourCompany",
-       "version": "1",
-       "date" : "2017-05-23 03:28:25",
-       "name": "Anonymous IP Blocking Policy",
+			"anonymousIp": { "blockAnonymousVPN": true,
+			                 "blockHostingProvider": true,
+			                 "blockPublicProxy": true,
+			                 "blockTorExitNode": true},
 
-       "anonymousIp": { "blockAnonymousVPN": true,
-                        "blockHostingProvider": true,
-                        "blockPublicProxy": true,
-                        "blockTorExitNode": true},
+			"ip4Whitelist": ["192.168.30.0/24", "10.0.2.0/24", "10.1.1.1/32"],
+			"ip6Whitelist": ["2001:550:90a::/48", "::1/128"],
+			"redirectUrl": "http://youvebeenblocked.com"
+		}
 
-       "ip4Whitelist": ["192.168.30.0/24", "10.0.2.0/24", "10.1.1.1/32"],
+	anonymousIp
+		Contains the types of IPs which can be checked against the Anonymous IP Database. There are 4 types of IPs which can be checked: VPNs, Hosting Providers, Public Proxies, and Tor Exit Nodes. Each type of IP can be enabled or disabled. If the value is true, IPs matching this type will be blocked when the feature is enabled in the Delivery Service. If the value is false, IPs which match this type will not be blocked. If an IP matches more than 1 type and any type is enabled, the IP will b [...]
+	redirectUrl
+		The URL that will be returned to the blocked clients. Without a redirectUrl, the clients will receive an HTTP response code ``403 Forbidden``. With a redirectUrl, the clients will be redirected with an HTTP response code ``302 Found``.
+	ipWhiteList
+		An optional element. It includes a list of Classless Inter-Domain Routing (CIDR) blocks indicating the IPv4 and IPv6 subnets that are allowed by the rule. If this list exists and the value is not ``null``, client IPs will be matched against the CIDR list, and if there is any match, the request will be allowed. If there is no match in the white list, further anonymous blocking logic will continue.
 
-       "ip6Whitelist": ["2001:550:90a::/48", "::1/128"],
 
-       "redirectUrl": "http://youvebeenblocked.com"
-    }
+#. Add the following three Anonymous Blocking parameters in Traffic Portal into CRConfig.json:
 
-* “anonymousIp” contains the types of IPs which can be checked against the Anonymous IP Database. There are 4 types of IPs which can be checked: VPNs, Hosting Providers, Public Proxies, and Tor Exit Nodes. Each type of IP can be enabled or disabled. If the value is true, IPs which match this type will be blocked when the feature is enabled in the delivery service. If the value is false, IPs which match this type will not be blocked. If an IP matches more than 1 type and any type is enabl [...]
+	``anonymousip.policy.configuration``
+		The HTTP URL of the Anonymous Blocking configuration file. Traffic Router will fetch the file from this URL.
+	``anonymousip.polling.url``
+		The HTTP URL of the Anonymous IP Database. Traffic Router will fetch the file from this URL.
+	``anonymousip.polling.interval``
+		The interval that Traffic Router polls the Anonymous Blocking configuration file and Anonymous IP Database.
 
-* “redirectUrl” is the URL that will be returned to the blocked clients. Without a redirectUrl, the clients will receive an HTTP response code 403. With a redirectUrl, the clients will be redirected with an HTTP response code 302.
+	.. figure:: anonymous_blocking/01.png
+		:scale: 100%
+		:align: center
 
-* “ipWhiteList” is an optional element. It includes a list of CIDR (Classless Inter-Domain Routing) blocks indicating the IPv4 and IPv6 subnets that are allowed by the rule. If this list exists and the value is not empty, client IP will be matched against the CIDR list, and if there is any match, the request will be allowed. If there is no match in the white list, further anonymous blocking logic will continue.
+#. Enable Anonmyous Blocking for a Delivery Service
 
+	.. figure:: anonymous_blocking/02.png
+		:scale: 100%
+		:align: center
 
-2)  Add Anonymous Blocking parameters on Traffic Ops
+#. Go to Tools->Snapshot CRConfig, perform “Diff CRConfig” and click "Write CRConfig".
 
-The following three new parameters are required to be added into CRConfig.json:
-
-* "anonymousip.policy.configuration": the HTTP URL of the Anonymous Blocking configuration file. Traffic Router will fetch the file from this URL.
-* "anonymousip.polling.url": the HTTP URL of the Anonymous IP Database. Traffic Router will fetch the file from this URL.
-* "anonymousip.polling.interval": the interval that Traffic Router polls the Anonymous Blocking configuration file and Anonymous IP Database.
-
-.. image:: anonymous_blocking/01.png
-  :scale: 100%
-  :align: center
-
-3)  Enable Anonmyous Blocking for a delivery service
-
-.. image:: anonymous_blocking/02.png
-  :scale: 100%
-  :align: center
-
-4)  Make configuration effective
-
-Go to Tools->Snapshot CRConfig, perform “Diff CRConfig” and click "Write CRConfig".
-
-.. image:: regionalgeo/03.png
-  :scale: 70%
-  :align: center
-
-5)  Traffic Router access log with Anonymous Blocking
-
-Anonymous Blocking extends the field of "rtype" and adds a new field "ANON_BLOCK" in Traffic Router access.log to help to monitor the working of this feature.
-
-If rtype=ANON_BLOCK then the client's IP was found in the Anonymous IP Database and was blocked.
+	.. figure:: regionalgeo/03.png
+		:scale: 70%
+		:align: center
 
 
+Traffic Router Access Log
+=========================
+Anonymous Blocking extends the field of ``rtype`` and adds a new field ``ANON_BLOCK`` in the Traffic Router ``access.log`` file to help monitor this feature. If the ``rtype`` in an access log is ``ANON_BLOCK`` then the client's IP was found in the Anonymous IP Database and was blocked.
 
+.. seealso:: :ref:`tr-logs`
diff --git a/docs/source/admin/traffic_router.rst b/docs/source/admin/traffic_router.rst
index 8f7d173..03c7818 100644
--- a/docs/source/admin/traffic_router.rst
+++ b/docs/source/admin/traffic_router.rst
@@ -45,10 +45,10 @@ The following are requirements to ensure an accurate set up:
 
 #. Edit ``/opt/traffic_router/conf/traffic_monitor.properties`` and specify the correct online Traffic Monitor(s) for your CDN. See :ref:`tr-config-files`
 
-	:traffic_monitor.properties: URL that should normally point to this file. e.x. ``traffic_monitor.properties=file:/opt/traffic_router/conf/traffic_monitor.properties``
-
-	:traffic_monitor.properties.reload.period: Period to wait (in milliseconds) between reloading this file. e.x. ``traffic_monitor.properties.reload.period=60000``
-
+	``traffic_monitor.properties``
+		URL that should normally point to this file. e.x. ``traffic_monitor.properties=file:/opt/traffic_router/conf/traffic_monitor.properties``
+	``traffic_monitor.properties.reload.period``
+		Period to wait (in milliseconds) between reloading this file. e.x. ``traffic_monitor.properties.reload.period=60000``
 
 #. Start Traffic Router. This can be done by running ``systemctl start traffic_router`` as the root user (or with ``sudo``), and test DNS lookups against that server with e.g. ``dig`` or ``curl``. To restart Traffic Router, run ``systemctl restart traffic_router`` as the root user (or with ``sudo``). Also, because previously received CRConfigs will be cached, they need to be removed manually to actually be reloaded. This file should be located at ``/opt/traffic_router/db/cr-config.json``.
 
@@ -169,6 +169,8 @@ Traffic Router currently follows the zone signing key pre-publishing operational
 
 .. _section 4.1.1.1 of RFC 6781: https://tools.ietf.org/html/rfc6781#section-4.1.1.1
 
+.. _tr-logs:
+
 Troubleshooting and Log Files
 =============================
 Traffic Router log files can be found under ``/opt/traffic_router/var/log`` and ``/opt/tomcat/logs``. Initialization and shutdown logs are in ``/opt/tomcat/logs/catalina[date].out``. Application related logging is in ``/opt/traffic_router/var/log/traffic_router.log``, while access logs are written to ``/opt/traffic_router/var/log/access.log``.
@@ -230,61 +232,60 @@ Fields Always Present
 
 ``rtype`` Meanings
 ^^^^^^^^^^^^^^^^^^
-
-:"-":          The request was not redirected. This is usually a result of a DNS request to the Traffic Router or an explicit denial for that request
-
-:CZ:           The result was derived from Coverage Zone data based on the address in the ``chi`` field
-
-:DEEP_CZ:      The result was derived from Deep Coverage Zone data based on the address in the ``chi`` field
-
-:DS_MISS:      _*HTTP Only*_ No HTTP Delivery Service supports either this request's URL path or headers
-
-:DS_REDIRECT:  The result is using the Bypass Destination configured for the matched Delivery Service when that Delivery Service is unavailable or does not have the requested resource
-
-:ERROR:        An internal error occurred within Traffic Router, more details may be found in the ``rerr`` field
-
-:FED:          _*DNS Only*_ The result was obtained through federated coverage zone data outside of any Delivery Service
-
-:GEO:          The result was derived from geolocation service based on the address in the ``chi`` field
-
-:GEO_REDIRECT: The request was redirected (302) based on the National Geo blocking (Geo Limit Redirect URL) configured on the Delivery Service
-
-:MISS:         Traffic Router was unable to resolve a DNS request or find a cache for the requested resource
-
-:RGALT:        The request was redirected (302) to the Regional Geo blocking URL. Regional Geo blocking is enabled on the Delivery Service and is configured through the ``regional_geoblock.polling.url`` setting for the Traffic Router profile
-
-:RGDENY:       _*DNS Only*_ The result was obtained through federated coverage zone data outside of any Delivery Service The request was regionally blocked because there was no rule for the request made
-
-:STATIC_ROUTE: _*DNS Only*_ No DNS Delivery Service supports the hostname portion of the requested url
-
-
+``-``
+	The request was not redirected. This is usually a result of a DNS request to the Traffic Router or an explicit denial for that request
+ANON_BLOCK
+	The client's IP matched an `Anonymous Blocking <anonymous_blocking-qht>`_ rule and was blocked
+CZ
+	The result was derived from Coverage Zone data based on the address in the ``chi`` field
+DEEP_CZ
+	The result was derived from Deep Coverage Zone data based on the address in the ``chi`` field
+DS_MISS
+	_*HTTP Only*_ No HTTP Delivery Service supports either this request's URL path or headers
+DS_REDIRECT
+	The result is using the Bypass Destination configured for the matched Delivery Service when that Delivery Service is unavailable or does not have the requested resource
+ERROR
+	An internal error occurred within Traffic Router, more details may be found in the ``rerr`` field
+FED
+	_*DNS Only*_ The result was obtained through federated coverage zone data outside of any Delivery Service
+GEO
+	The result was derived from geolocation service based on the address in the ``chi`` field
+GEO_REDIRECT
+	The request was redirected (302) based on the National Geo blocking (Geo Limit Redirect URL) configured on the Delivery Service
+MISS
+	Traffic Router was unable to resolve a DNS request or find a cache for the requested resource
+RGALT
+	The request was redirected (302) to the Regional Geo blocking URL. Regional Geo blocking is enabled on the Delivery Service and is configured through the ``regional_geoblock.polling.url`` setting for the Traffic Router profile
+RGDENY
+	_*DNS Only*_ The result was obtained through federated coverage zone data outside of any Delivery Service The request was regionally blocked because there was no rule for the request made
+STATIC_ROUTE
+	_*DNS Only*_ No DNS Delivery Service supports the hostname portion of the requested url
 
 
 ``rdtl`` Meanings
 ^^^^^^^^^^^^^^^^^
-
-:"-":                                  The request was not redirected. This is usually a result of a DNS request to the Traffic Router or an explicit denial for that request
-
-:DS_BYPASS:                            Used Bypass Destination for Redirect of Delivery Service
-
-:DS_CLIENT_GEO_UNSUPPORTED:            Traffic Router did not find a resource supported by coverage zone data and was unable to determine the geographic location of the requesting client
-
-:DS_CZ_BACKUP_CG:                      Traffic Router found a backup cache via fall-back (CRconfig's ``edgeLocation``)  or via coordinates (CZF) configuration
-
-:DS_CZ_ONLY:                           The selected Delivery Service only supports resource lookup based on Coverage Zone data
-
-:DS_NO_BYPASS:                         No valid Bypass Destination is configured for the matched Delivery Service and the Delivery Service does not have the requested resource
-
-:DS_NOT_FOUND:                         Always goes with ``rtypes`` STATIC_ROUTE and DS_MISS
-
-:GEO_NO_CACHE_FOUND:                   Traffic Router could not find a resource via geographic location data based on the requesting client's location
-
-:NO_DETAILS:                           This entry is for a standard request
-
-:REGIONAL_GEO_ALTERNATE_WITHOUT_CACHE: This goes with the ``rtype`` RGDENY. The URL is being regionally blocked
-
-:REGIONAL_GEO_NO_RULE:                 The request was blocked because there was no rule in the Delivery Service for the request
-
+``-``
+	The request was not redirected. This is usually a result of a DNS request to the Traffic Router or an explicit denial for that request
+DS_BYPASS
+	Used Bypass Destination for Redirect of Delivery Service
+DS_CLIENT_GEO_UNSUPPORTED
+	Traffic Router did not find a resource supported by coverage zone data and was unable to determine the geographic location of the requesting client
+DS_CZ_BACKUP_CG
+	Traffic Router found a backup cache via fall-back (CRconfig's ``edgeLocation``)  or via coordinates (CZF) configuration
+DS_CZ_ONLY
+	The selected Delivery Service only supports resource lookup based on Coverage Zone data
+DS_NO_BYPASS
+	No valid Bypass Destination is configured for the matched Delivery Service and the Delivery Service does not have the requested resource
+DS_NOT_FOUND
+	Always goes with ``rtypes`` STATIC_ROUTE and DS_MISS
+GEO_NO_CACHE_FOUND
+	Traffic Router could not find a resource via geographic location data based on the requesting client's location
+NO_DETAILS
+	This entry is for a standard request
+REGIONAL_GEO_ALTERNATE_WITHOUT_CACHE
+	This goes with the ``rtype`` RGDENY. The URL is being regionally blocked
+REGIONAL_GEO_NO_RULE
+	The request was blocked because there was no rule in the Delivery Service for the request
 
 HTTP Specifics
 --------------
@@ -316,7 +317,6 @@ Sample Message
 	|rurl |The resulting URL of the resource requested by the client |A URL String|
 	+-----+----------------------------------------------------------+------------+
 
-------------
 
 DNS Specifics
 -------------


[trafficcontrol] 30/39: Removed unnecessary `ref` roles on local section headings

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 533262433c9dd7315e2503f51e26b5ddf776da51
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Mon Oct 1 12:01:18 2018 -0600

    Removed unnecessary `ref` roles on local section headings
---
 docs/source/development/traffic_monitor.rst | 23 +++++------------------
 1 file changed, 5 insertions(+), 18 deletions(-)

diff --git a/docs/source/development/traffic_monitor.rst b/docs/source/development/traffic_monitor.rst
index db9e0c4..561ffc1 100644
--- a/docs/source/development/traffic_monitor.rst
+++ b/docs/source/development/traffic_monitor.rst
@@ -98,9 +98,9 @@ poller
 fetcher
 	``common/fetcher/fetcher.go:HttpFetcher.Fetch()``. Fetches the given URL, and passes the returned data to the Handler, along with any errors.
 handler
-	``traffic_monitor/cache/cache.go:Handler.Handle()``. Takes the given result and does all data computation possible with the single result. Currently, this computation primarily involves processing the de-normalized Apache Trafficserver (ATS) data into Go ``struct``s, and processing System data into 'OutBytes', 'Kbps', etc. Precomputed data is then passed to its result channel, which is picked up by the Manager.
+	``traffic_monitor/cache/cache.go:Handler.Handle()``\ . Takes the given result and does all data computation possible with the single result. Currently, this computation primarily involves processing the de-normalized Apache Trafficserver (ATS) data into Go ``struct``\ s, and processing System data into 'OutBytes', 'Kbps', etc. Precomputed data is then passed to its result channel, which is picked up by the Manager.
 manager
-	``traffic_monitor/manager/stat.go:StartStatHistoryManager()``. Takes preprocessed results, and aggregates them. Aggregated results are then placed in shared data structures. The major data aggregated are delivery service statistics, and cache availability data. See :ref:`Aggregated Stat Data <agg-stat-data>` and :ref:`Aggregated Availability Data <agg-avail-data>`.
+	``traffic_monitor/manager/stat.go:StartStatHistoryManager()``. Takes preprocessed results, and aggregates them. Aggregated results are then placed in shared data structures. The major data aggregated are delivery service statistics, and cache availability data. See `Aggregated Stat Data`_ and `Aggregated Availability Data`_.
 
 
 Health Pipeline
@@ -118,7 +118,7 @@ fetcher
 handler
 	``traffic_monitor/cache/cache.go:Handler.Handle()``. Same handler type as the Stat Poller pipeline, but constructed with a flag to not pre-compute anything. The health endpoint is of the same form as the stat endpoint, but doesn't return all stat data. So, it doesn't pre-compute like the Stat Handler, but only processes the system data, and passes the processed result to its result channel, which is picked up by the Manager.
 manager
-	``traffic_monitor/manager/health.go:StartHealthResultManager()``. Takes preprocessed results, and aggregates them. For the Health pipeline, only health availability data is aggregated. Aggregated results are then placed in shared data structures (lastHealthDurationsThreadsafe, lastHealthEndTimes, etc). See :ref:`Aggregated Availability Data <agg-avail-data>`.
+	``traffic_monitor/manager/health.go:StartHealthResultManager()``. Takes preprocessed results, and aggregates them. For the Health pipeline, only health availability data is aggregated. Aggregated results are then placed in shared data structures (lastHealthDurationsThreadsafe, lastHealthEndTimes, etc). See `Aggregated Availability Data`_.
 
 
 Peer Pipeline
@@ -136,7 +136,7 @@ fetcher
 handler
 	``traffic_monitor/cache/peer.go:Handler.Handle()``. Decodes the JSON result into an object, and without further processing passes to its result channel, which is picked up by the Manager.
 manager
-	``traffic_monitor/manager/peer.go:StartPeerManager()``. Takes JSON peer Traffic Monitor results, and aggregates them. The availability of the Peer Traffic Monitor itself, as well as all cache availability from the given peer result, is stored in the shared ``peerStates`` object. Results are then aggregated via a call to the ``combineState()`` lambda, which signals the State Combiner microthread (which stores the combined availability in the shared object ``combinedStates``; See :ref:`St [...]
+	``traffic_monitor/manager/peer.go:StartPeerManager()``. Takes JSON peer Traffic Monitor results, and aggregates them. The availability of the Peer Traffic Monitor itself, as well as all cache availability from the given peer result, is stored in the shared ``peerStates`` object. Results are then aggregated via a call to the ``combineState()`` lambda, which signals the State Combiner microthread (which stores the combined availability in the shared object ``combinedStates``; See `State C [...]
 
 
 Monitor Config Pipeline
@@ -173,39 +173,26 @@ Events
 ------
 The ``events`` shared data object is passed to each pipeline microthread which needs to signal events. Most of them do. Events are then logged, and visible in the UI as well as an HTTP JSON endpoint. Most events are caches becoming available or unavailable, but include other things such as peer availability changes.
 
-
-.. _state-combiner:
-
 State Combiner
 --------------
 The State Combiner is a microthread started in ``traffic_monitor/manager/manager.go:Start()`` via ``traffic_monitor/manager/statecombiner.go:StartStateCombiner()``, which listens for signals to combine states. It should be signaled by any pipeline which updates the local or peer availability shared data objects, ``localStates`` and ``peerStates``. It holds the threadsafe shared data objects for local states and peer states, so no data is passed or returned, only a signal.
 
 When a signal is received, it combines the local and peer states optimistically. That is, if a cache is marked available locally or by any peer, that cache is marked available in the combined states. There exists a variable to combine pessimistically, which may be set at compile time (it's unusual for a CDN to operate well with pessimistic cache availability). Combined data is stored in the threadsafe shared data object ``combinedStates``.
 
-
-.. _agg-stat-data:
-
 Aggregated Stat Data
 --------------------
 The Stat pipeline Manager is responsible for aggregating stats from all caches, into delivery services statistics. This is done via a call to ``traffic_monitor/deliveryservice/stat.go:CreateStats()``.
 
-
-.. _agg-avail-data:
-
 Aggregated Availability Data
 ----------------------------
 Both the Stat and Health pipelines aggregate availability data received from caches. This is done via a call to ``traffic_monitor/deliveryservice/health.go:CalcAvailability()`` followed by a call to ``combineState()``. The ``CalcAvailability`` function calculates the availability of each cache from the result of polling it, that is, local availability. The ``combineState()`` function is a lambda passed to the Manager, which signals the State Combiner microthread, which will combine the l [...]
 
-
 HTTP Data Requests
 ------------------
-Data is provided to HTTP requests via the threadsafe shared data objects (see :ref:`Shared Data <shared-data>`). These objects are closed in lambdas created via ``traffic_monitor/datareq/datareq.go:MakeDispatchMap()``. This is called by the Ops Config Manager when it recreates the HTTP server.
+Data is provided to HTTP requests via the threadsafe shared data objects (see `Shared Data`_). These objects are closed in lambdas created via ``traffic_monitor/datareq/datareq.go:MakeDispatchMap()``. This is called by the Ops Config Manager when it recreates the HTTP server.
 
 Each HTTP endpoint is mapped to a function which closes around the shared data objects it needs, and takes the request data it needs (such as query parameters). Each endpoint function resides in its own file in ``traffic_monitor/datareq/``. Because each Go HTTP routing function must be a ``http.HandlerFunc``, wrapper functions take the endpoint functions and return ``http.HandlerFunc`` functions which call them, and which are stored in the dispatch map, to be registered with the HTTP server.
 
-
-.. _shared-data:
-
 Shared Data
 -----------
 Processed and aggregated data must be shared between the end of the stat and health processing pipelines, and HTTP requests. The CSP paradigm of idiomatic Go does not work efficiently with storing and sharing state. While not idiomatic Go, shared mutexed data structures are faster and simpler than CSP manager microthreads for each data object.


[trafficcontrol] 24/39: Finished test case and example fixups

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit e91962f80c8ce55ccba10d5d1a52a7c45432ebe0
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Thu Sep 27 07:13:56 2018 -0600

    Finished test case and example fixups
---
 docs/source/development/traffic_ops.rst | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/docs/source/development/traffic_ops.rst b/docs/source/development/traffic_ops.rst
index 117c14c..4e59046 100644
--- a/docs/source/development/traffic_ops.rst
+++ b/docs/source/development/traffic_ops.rst
@@ -275,18 +275,26 @@ To install the Traffic Ops Developer environment:
 
 Test Cases
 ==========
-Use prove to execute test cases. Execute after a carton install:
+Use `prove <http://perldoc.perl.org/prove.html>`_ (should be installed with Perl) to execute test cases. Execute after a ``carton install`` of all required dependencies:
 
-- To run the Unit Tests: ``$ local/bin/prove -qrp  t/``
-- To run the Integration Tests: ``$ local/bin/prove -qrp t_integration/``
+- To run the Unit Tests: ``prove -qrp  app/t/``
+- To run the Integration Tests: ``prove -qrp app/t_integration/``
 
 The KableTown CDN example
 -------------------------
 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:
 
-#. Run the integration tests
-#. Start morbo against the integration database: ``export MOJO_MODE=integration; ./bin/start.pl``
-#. Using a browser, navigate to the given address: ``http://127.0.0.1:3000``
+#. Be sure the integration tests have been run
+#. Start the Traffic Ops server. The ``MOJO_MODE`` environment variable should be set to the name of the environment that has been loaded.
+
+	.. code-block::bash
+		:caption: Example Startup
+
+		export MOJO_MODE=integration
+		cd app/
+		bin/start.pl
+
+#. Using a web browser, navigate to the address Traffic Ops is serving, e.g. ``http://127.0.0.1:3000`` for default settings
 #. For the initial log in:
 
 	:User name: ``admin``


[trafficcontrol] 19/39: Title level consistency

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit c9397bdb8645572cbdc0510205761036a061644e
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Thu Sep 20 06:12:36 2018 -0600

    Title level consistency
---
 docs/source/development/index.rst | 1 +
 1 file changed, 1 insertion(+)

diff --git a/docs/source/development/index.rst b/docs/source/development/index.rst
index e91447d..3fb0f2d 100644
--- a/docs/source/development/index.rst
+++ b/docs/source/development/index.rst
@@ -13,6 +13,7 @@
 .. limitations under the License.
 ..
 
+*****************
 Developer's Guide
 *****************
 Use this guide to start developing applications that consume the Traffic Control APIs, to create extensions to Traffic Ops, or work on Traffic Control itself.


[trafficcontrol] 07/39: Formatting consitency

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 3a710e7ab7da07fb834b9e13fad67bfa7a6e1cd4
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Tue Sep 18 18:11:33 2018 -0600

    Formatting consitency
---
 docs/source/basics/caching_proxies.rst | 80 ++++++++++++++--------------------
 1 file changed, 32 insertions(+), 48 deletions(-)

diff --git a/docs/source/basics/caching_proxies.rst b/docs/source/basics/caching_proxies.rst
index b6570ea..e469f7c 100644
--- a/docs/source/basics/caching_proxies.rst
+++ b/docs/source/basics/caching_proxies.rst
@@ -13,34 +13,24 @@
 .. limitations under the License.
 ..
 
-
-.. |arrow| image:: fwda.png
-
 .. _caching_proxy:
 
+***************
 Caching Proxies
-===============
-The main function of a CDN is to proxy requests from clients to origin servers
-and cache the results.
-To proxy, in the CDN context, is to obtain content using HTTP from an origin
-server on behalf of a client. To cache is to store the results so they can be
-reused when other clients are requesting the same content. There are three
-types of proxies in use on the Internet today:
-
-- Reverse Proxy
+***************
+The main function of a CDN is to proxy requests from clients to origin servers and cache the results. To proxy, in the CDN context, is to obtain content using HTTP from an origin server on behalf of a client. To cache is to store the results so they can be reused when other clients are requesting the same content. There are three types of proxies in use on the Internet today:
+
+Reverse Proxy
 	Used by Traffic Control for EDGE caches.
-- Forward Proxy
+Forward Proxy
 	Used by Traffic Control for MID caches.
-- Transparent Proxy
+Transparent Proxy
 	These are not used by Traffic Control. If you are interested you can learn more about transparent proxies on `wikipedia <http://en.wikipedia.org/wiki/Proxy_server#Transparent_proxy>`_.
 
-.. index::
-	Reverse Proxy
-
 .. _rev-proxy:
 
-|arrow| Reverse Proxy
----------------------
+Reverse Proxy
+=============
 A reverse proxy acts on behalf of the origin server. The client is mostly unaware it is communicating with a proxy and not the actual origin. All EDGE caches in a Traffic Control CDN are reverse proxies. To the end user a Traffic Control based CDN appears as a reverse proxy since it retrieves content from the origin server, acting on behalf of that origin server. The client requests a URL that has a hostname which resolves to the reverse proxy's IP address and, in compliance with the HTT [...]
 
 .. seealso:: `ATS documentation on reverse proxy <https://docs.trafficserver.apache.org/en/latest/admin/reverse-proxy-http-redirects.en.html#http-reverse-proxy>`_.
@@ -68,29 +58,31 @@ cache is: ``http://www-origin-cache.cdn.com http://www.origin.com``.
 
 The client is given the URL ``http://www-origin-cache.cdn.com/foo/bar/fun.html`` (note the different hostname) and when attempting to obtain that URL, the following occurs:
 
-1. The client sends a request to the Local Domain Name Server (LDNS) server to resolve the name ``www-origin-cache.cdn.com`` to an IPv4 address.
+#. The client sends a request to the Local Domain Name Server (LDNS) server to resolve the name ``www-origin-cache.cdn.com`` to an IPv4 address.
+
+#. Similar to the previous case, the LDNS server resolves the name ``www-origin-cache.cdn.com`` to an IPv4 address, in this example, this address is 55.44.33.22.
 
-2. Similar to the previous case, the LDNS server resolves the name ``www-origin-cache.cdn.com`` to an IPv4 address, in this example, this address is 55.44.33.22.
+#. The client opens a TCP connection from a random port locally, to port 80 (the HTTP default) on 55.44.33.22, and sends the following:
 
-3. The client opens a TCP connection from a random port locally, to port 80 (the HTTP default) on 55.44.33.22, and sends the following: ::
+	.. code-block:: http
 
 		GET /foo/bar/fun.html HTTP/1.1
 		Host: www-origin-cache.cdn.com
 
-4. The reverse proxy looks up ``www-origin-cache.cdn.com`` in its remap rules, and finds the origin is ``www.origin.com``.
+#. The reverse proxy looks up ``www-origin-cache.cdn.com`` in its remap rules, and finds the origin is ``www.origin.com``.
 
-5. The proxy checks its cache to see if the response for ``http://www.origin.com/foo/bar/fun.html`` is already in the cache.
+#. The proxy checks its cache to see if the response for ``http://www.origin.com/foo/bar/fun.html`` is already in the cache.
 
-6a. If the response is not in the cache:
+#. If the response is not in the cache:
 
-	1. The proxy uses DNS to get the IPv4 address for ``www.origin.com``, connect to it on port 80, and sends:
+	#. The proxy uses DNS to get the IPv4 address for ``www.origin.com``, connect to it on port 80, and sends:
 
 		.. code-block:: http
 
 			GET /foo/bar/fun.html HTTP/1.1
 			Host: www.origin.com
 
-	2. The origin server responds with the headers and content as shown:
+	#. The origin server responds with the headers and content as shown:
 
 		.. code-block:: http
 
@@ -105,7 +97,7 @@ The client is given the URL ``http://www-origin-cache.cdn.com/foo/bar/fun.html``
 
 			<!DOCTYPE html><html><body>This is a fun file</body></html>
 
-	3. The proxy sends the origin response on to the client adding a ``Via:`` header (and maybe others):
+	#. The proxy sends the origin response on to the client adding a ``Via:`` header (and maybe others):
 
 		.. code-block:: http
 
@@ -122,9 +114,7 @@ The client is given the URL ``http://www-origin-cache.cdn.com/foo/bar/fun.html``
 
 			<!DOCTYPE html><html><body>This is a fun file</body></html>
 
-6b. If it *is* in the cache:
-
-	The proxy responds to the client with the previously retrieved result:
+	If it *is* in the cache the proxy responds to the client with the previously retrieved result:
 
 	.. code-block:: http
 
@@ -141,23 +131,19 @@ The client is given the URL ``http://www-origin-cache.cdn.com/foo/bar/fun.html``
 
 		<!DOCTYPE html><html><body>This is a fun file</body></html>
 
-
-.. index::
-	Forward Proxy
-
 .. _fwd-proxy:
 
-|arrow| Forward Proxy
----------------------
+Forward Proxy
+=============
 A forward proxy acts on behalf of the client. The origin server is mostly unaware of the proxy, the client requests the proxy to retrieve content from a particular origin server. All MID caches in a Traffic Control based CDN are forward proxies. In a forward proxy scenario, the client is explicitly configured to use the the proxy's IP address and port as a forward proxy. The client always connects to the forward proxy for content. The content provider does not have to change the URL the  [...]
 
 ..  seealso:: `ATS documentation on forward proxy <https://docs.trafficserver.apache.org/en/latest/admin/forward-proxy.en.html>`_.
 
 Below is an example of the client retrieving the URL ``http://www.origin.com/foo/bar/fun.html`` through a forward proxy:
 
-1. The client requires configuration to use the proxy, as opposed to the reverse proxy example. Assume the client configuration is through preferences entries or other to use the proxy IP address 99.88.77.66 and proxy port 8080.
+#. The client requires configuration to use the proxy, as opposed to the reverse proxy example. Assume the client configuration is through preferences entries or other to use the proxy IP address 99.88.77.66 and proxy port 8080.
 
-2. To retrieve ``http://www.origin.com/foo/bar/fun.html`` URL, the client connects to 99.88.77.66 on port 8080 and sends:
+#. To retrieve ``http://www.origin.com/foo/bar/fun.html`` URL, the client connects to 99.88.77.66 on port 8080 and sends:
 
 	.. code-block:: http
 
@@ -165,13 +151,13 @@ Below is an example of the client retrieving the URL ``http://www.origin.com/foo
 		Host: www.origin.com
 
 
-..  Note:: In this case, the client places the entire URL after ``GET``, including protocol and hostname (``http://www.origin.com``), but in the reverse proxy and direct-to-origin case it puts only the path portion of the URL (``/foo/bar/fun.html``) after the ``GET``.
+	..  Note:: In this case, the client places the entire URL after ``GET``, including protocol and hostname (``http://www.origin.com``), but in the reverse proxy and direct-to-origin case it puts only the path portion of the URL (``/foo/bar/fun.html``) after the ``GET``.
 
-3. The proxy verifies whether the response for ``http://www-origin-cache.cdn.com/foo/bar/fun.html`` is already in the cache.
+#. The proxy verifies whether the response for ``http://www-origin-cache.cdn.com/foo/bar/fun.html`` is already in the cache.
 
-4a. If it is not in the cache:
+#. If it is not in the cache:
 
-	1. The proxy uses DNS to obtain the IPv4 address for ``www.origin.com``, connects to it on port 80, and sends:
+	#. The proxy uses DNS to obtain the IPv4 address for ``www.origin.com``, connects to it on port 80, and sends:
 
 		.. code-block:: http
 
@@ -179,7 +165,7 @@ Below is an example of the client retrieving the URL ``http://www.origin.com/foo
 			Host: www.origin.com
 
 
-	2. The origin server responds with the headers and content as shown below:
+	#. The origin server responds with the headers and content as shown below:
 
 		.. code-block:: http
 
@@ -195,7 +181,7 @@ Below is an example of the client retrieving the URL ``http://www.origin.com/foo
 			<!DOCTYPE html><html><body>This is a fun file</body></html>
 
 
-	3. The proxy sends this on to the client adding a ``Via:`` header (and maybe others):
+	#. The proxy sends this on to the client adding a ``Via:`` header (and maybe others):
 
 		.. code-block:: http
 
@@ -213,9 +199,7 @@ Below is an example of the client retrieving the URL ``http://www.origin.com/foo
 			<!DOCTYPE html><html><body>This is a fun file</body></html>
 
 
-4b. If it *is* in the cache:
-
-	The proxy responds to the client with the previously retrieved result:
+	If it *is* in the cache the proxy responds to the client with the previously retrieved result:
 
 	.. code-block:: http
 


[trafficcontrol] 11/39: added DNS response parser

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 1d5256fee0c4dd4a1a7710dd5dc398ca5f69bd7c
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Wed Sep 19 07:51:26 2018 -0600

    added DNS response parser
---
 docs/source/admin/quick_howto/federations.rst | 92 ++++++++++++++-------------
 docs/source/conf.py                           | 37 +++++++++++
 2 files changed, 85 insertions(+), 44 deletions(-)

diff --git a/docs/source/admin/quick_howto/federations.rst b/docs/source/admin/quick_howto/federations.rst
index 87f6e6a..abcfaca 100644
--- a/docs/source/admin/quick_howto/federations.rst
+++ b/docs/source/admin/quick_howto/federations.rst
@@ -19,43 +19,40 @@
 Configure Federations
 *********************
 
-1)  Create a user with a federations role (Misc -> Users -> Add User).  This user will have the ability to perform the following actions:
+#. Create a user with a federations role ('User Admin' -> 'Users' -> '+' button).  This user will have the ability to perform the following actions:
 
-		- Edit the federation
-		- Delete the federation
-		- Add IPV4 resolvers
-		- Add IPV6 resolvers
+	- Edit the federation
+	- Delete the federation
+	- Add IPV4 resolvers
+	- Add IPV6 resolvers
 
-.. image:: federations/01.png
-	:scale: 100%
-	:align: center
+	.. figure:: federations/01.png
+		:scale: 100%
+		:align: center
 
-2) 	As a user with admin priveleges, create a Federation Mapping by going to Delivery Services -> Federations and then clicking 'Add Federation Mapping'
+#. As a user with admin priveleges, create a Federation Mapping by going to 'Services' -> 'Delivery Services' -> 'Federations' under 'More' and then clicking 'Add Federation Mapping'
 
-3)	Choose the Delivery Service for the federation to be mapped to and assign it to the Federation User; click Add.
+#. Choose the Delivery Service to which the federation will be mapped and assign it to the Federation-role user; click Add.
 
-.. image:: federations/02.png
-	:scale: 100%
-	:align: center
+	.. figure:: federations/02.png
+		:scale: 100%
+		:align: center
 
-4) 	After the Federation is added, Traffic Ops will display the Federation.
+#. After the Federation is added, Traffic Ops will display the Federation. Changes can be made at this time or the Federation can be deleted. Notice that no resolvers have been added to the fedeation yet. This can only be done by the Federation-role user to whom the Fedarated Delivery Service was assigned. If no further action is necessary, the Close button will close the window and display the list of all Federations.
 
-	Changes can be made at this time or the Federation can be deleted.  Notice that no resolvers have been added to the fedeation yet.  This can only be done by the federation user created in step 1.
+	.. figure:: federations/03.png
+		:scale: 100%
+		:align: center
 
-	If no further action is necessary, the Close button will close the window and display the list of all Federations.
+#. The federation user logs into either the Traffic Ops API or the Traffic Portal UI and stores the Mojolicious cookie.  The Mojolicious cookie can be obtained manually using the debug tools on a web browser or via a command line utility like cURL.
 
-.. image:: federations/03.png
-	:scale: 100%
-	:align: center
+	.. code-block:: shell
+		:caption: Example cURL Command
 
+		curl -i -XPOST "http://localhost:3000/api/1.1/user/login" -H "Content-Type: application/json" -d '{ "u": "federation_user1", "p": "password" }'
 
-**The Federation user can now add resolvers to the Federation Mapping in Traffic Ops.**
-
-5)	The federation user logs to traffic ops and stores the mojolicious cookie.  The mojolicious cookie can be obtained manually using the debug tools on a web browser or via curl.
-
-	Example::
-
-		$ curl -i -XPOST "http://localhost:3000/api/1.1/user/login" -H "Content-Type: application/json" -d '{ "u": "federation_user1", "p": "password" }'
+	.. code-block:: http
+		:caption: Example API Response
 
 		HTTP/1.1 200 OK
 		Date: Wed, 02 Dec 2015 21:12:06 GMT
@@ -72,21 +69,24 @@ Configure Federations
 
 		{"alerts":[{"level":"success","text":"Successfully logged in."}]}
 
-6) The federation user sends a request to Traffic Ops to add IPV4 and/or IPV6 resolvers
+#. The federation user sends a request to Traffic Ops to add IPV4 and/or IPV6 resolvers
 
 
-	Example::
+	.. code-block:: shell
+		:caption: Example cURL Command
 
-		$ curl -ki -H "Cookie: mojolicious=eyJleHBpcmVzIjoxNDQ5MTA1MTI2LCJhdXRoX2RhdGEiOiJmZWRlcmF0aW9uX3VzZXIxIn0---06b4f870d809d82a91433e92eae8320875c3e8b0;" -XPUT 'http://localhost:3000/api/1.2/federations' -d '
-			{"federations": [
-				{   "deliveryService": "images-c1",
-					"mappings":
-						{ "resolve4": [ "8.8.8.8/32", "8.8.4.4/32" ],
-						  "resolve6": ["2001:4860:4860::8888/128", "2001:4860:4860::8844"]
-						}
+		curl -ki -H "Cookie: mojolicious=eyJleHBpcmVzIjoxNDQ5MTA1MTI2LCJhdXRoX2RhdGEiOiJmZWRlcmF0aW9uX3VzZXIxIn0---06b4f870d809d82a91433e92eae8320875c3e8b0;" -XPUT 'http://localhost:3000/api/1.2/federations' -d '
+		{"federations": [
+			{ "deliveryService": "images-c1",
+			  "mappings":
+				{ "resolve4": [ "8.8.8.8/32", "8.8.4.4/32" ],
+				  "resolve6": ["2001:4860:4860::8888/128", "2001:4860:4860::8844"]
 				}
-			  ]
-			}'
+			}
+		]}'
+
+	.. code-block:: http
+		:caption: Example API Response
 
 		HTTP/1.1 200 OK
 		Set-Cookie: mojolicious=eyJleHBpcmVzIjoxNDQ5MTA1OTQyLCJhdXRoX2RhdGEiOiJmZWRlcmF0aW9uX3VzZXIxIn0---b42be0749415cefd1d14e1a91bb214845b4de556; expires=Thu, 03 Dec 2015 01:25:42 GMT; path=/; HttpOnly
@@ -103,17 +103,21 @@ Configure Federations
 
 		{"response":"federation_user1 successfully created federation resolvers."}
 
-7) The resolvers added by the federation user will now visible in Traffic Ops.
+#. The resolvers added by the Federation-user will now visible in Traffic Portal.
+
+	.. figure:: federations/04.png
+		:scale: 100%
+		:align: center
 
-.. image:: federations/04.png
-	:scale: 100%
-	:align: center
+Any requests made from a client that resolves to one of the federation resolvers will now be given a CNAME from Traffic Router.
 
-8) Any requests made from a client that resolves to one of the federation resolvers will now be given a CNAME from Traffic Router.
+	.. code-block:: shell
+		:caption: Example DNS request (via ``dig``)
 
-	Example::
+		dig @tr.kabletown.net foo.images-c1.kabletown.net
 
-		$ dig @tr.kabletown.net foo.images-c1.kabletown.net
+	.. code-block:: DNS
+		:caption: Example Resolver Response
 
 		; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> @tr.kabletown.net foo.images-c1.kabletown.net
 		; (1 server found)
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 93ab591..08b1403 100755
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -32,6 +32,43 @@ ortPath = os.path.join(ortPath, '..', '..', 'infrastructure', 'cdn-in-a-box', 'e
 ortPath = os.path.abspath(ortPath)
 print("Looking for Python-based ORT in '", ortPath, ",", sep="")
 sys.path.insert(0, ortPath)
+# import os
+# import sys
+# sys.path.insert(0, os.path.abspath('.'))
+
+# -- Custom Lexical Analyzer for DNS -----------------------------------------
+
+from pygments.lexer import RegexLexer, bygroups
+from pygments.token import *
+from sphinx.highlighting import lexers
+
+class DNSLexer(RegexLexer):
+    name = 'DNS'
+    aliases = ['dns', 'dig']
+
+    tokens = {
+        'root': [
+            (r"^;( <<>> .*?| \((\d+|no) server(s)? found\)\s*|; global options:.*?|; Got answer:\s*)$", Comment.Singleline),
+            (r"^;;", Operator),
+            (r"^;\w.*?$", String),
+            (r"->>HEADER<<-", Keyword),
+            (r"(WARNING)(:)( )(.*?)$", bygroups(Generic.Subheading, Operator, Text, Error)),
+            (r"(WHEN)(:)( )(.*?)$", bygroups(Generic.Subheading, Operator, Text, Literal.Date)),
+            (r"(\w+)(:)(\s*)(\w+)(,)?", bygroups(Name.Variable, Operator, Text, String, Text)),
+            (r"(flags:)( )(?=(\w+)( )?)+", bygroups(Name.Entity, Text, String, Text)),
+            (r";", Keyword),
+            (r"[a-zA-Z]+ SECTION:", Generic.Heading),
+            (r"(\d+\.){3}\d+", String.Other),
+            (r"\d", Number),
+            (r"[\w\.\-#\(\)]+", String),
+            (r'\s', Text)
+        ]
+    }
+
+lexers['DNS'] = DNSLexer(startinline=True)
+
+
+
 
 # -- Project information -----------------------------------------------------
 


[trafficcontrol] 18/39: formatting and consistency

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit d0d77402aeea11fcce213cca2dd2456cd16b41c7
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Thu Sep 20 06:12:00 2018 -0600

    formatting and consistency
---
 docs/source/development/building.rst | 96 ++++++++++++------------------------
 1 file changed, 31 insertions(+), 65 deletions(-)

diff --git a/docs/source/development/building.rst b/docs/source/development/building.rst
index f74b4a1..4d20ddd 100644
--- a/docs/source/development/building.rst
+++ b/docs/source/development/building.rst
@@ -1,94 +1,60 @@
-.. 
-.. 
+..
+..
 .. Licensed under the Apache License, Version 2.0 (the "License");
 .. you may not use this file except in compliance with the License.
 .. You may obtain a copy of the License 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.
-.. 
+..
 
 .. _dev-building:
 
+************************
 Building Traffic Control
-========================
+************************
+The build steps for Traffic Control components are all pretty much the same, despite that they are written in a variety of different languages and frameworks. This is accomplished by using Docker.
 
+.. note:: Currently, both listed methods of building Traffic Control components will produce ``*.rpm`` files, meaning that the support of these components is limited to RedHat-based distributions - and none of them are currently tested (or guaranteed to work) outside of CentOS7, specifically.
 
-Build using pkg
----------------
-
-This is the easiest way to build all the components of Traffic Control;
-all requirements are automatically loaded into the image used to build
-each component.
+Build using ``pkg``
+===================
+This is the easiest way to build all the components of Traffic Control; all requirements are automatically loaded into the image used to build each component.
 
 Requirements
-~~~~~~~~~~~~
-
+------------
 -  ``docker`` (https://docs.docker.com/engine/installation/)
 -  ``docker-compose`` (https://docs.docker.com/compose/install/)
    (optional, but recommended)
 
-If ``docker-compose`` is not available, the ``pkg`` script will
-automatically download and run it in a container. This is noticeably
-slower than running it natively.
+If ``docker-compose`` is not available, the ``pkg`` script will automatically download and run it in a container. This is noticeably slower than running it natively.
 
 Usage
-~~~~~
-
-::
-
-    $ ./pkg -?
-    Usage: ./pkg [options] [projects]
-        -q      Quiet mode. Supresses output.
-        -v      Verbose mode. Lists all build output.
-        -l      List available projects.
-
-        If no projects are listed, all projects will be packaged.
-        Valid projects:
-                - traffic_portal_build
-                - traffic_router_build
-                - traffic_monitor_build
-                - source
-                - traffic_ops_build
-                - traffic_stats_build
-
+-----
+``./pkg [options] [projects]``
 
-If any project names are provided on the command line, only those will be built.
-Otherwise, all projects are built.
+Options:
 
-All artifacts (rpms, logs, source tar ball) are copied to ``dist`` at the top level of the
-``trafficcontrol`` directory.
+-q      Quiet mode. Suppresses output.
+-v      Verbose mode. Lists all build output.
+-l      List available projects.
 
-Example
-~~~~~~~
+If the ``projects`` argument is given, it should be one or more project names. If it is not given, all projects will be built. Valid projects:
 
-::
-
-    $ ./pkg -v source traffic_ops_build
-    Building source.
-    Building traffic_ops_build.
-
-Build using docker-compose
---------------------------
-
-If the ``pkg`` script fails, ``docker-compose`` can still be used directly.
-
-Usage
-~~~~~
+- traffic_portal_build
+- traffic_router_build
+- traffic_monitor_build
+- source
+- traffic_ops_build
+- traffic_stats_build
 
-::
+Output ``*.rpm`` files, build logs and source tarballs will be output to the ``dist`` directory at the root of the Traffic Control repository directory.
 
-    $ docker-compose -f ./infrastructure/docker/build/docker-compose.yml down -v
-    $ docker-compose -f ./infrastructure/docker/build/docker-compose.yml up --build source traffic_ops_build
-    $ ls -1 dist/
-    build-traffic_ops.log
-    traffic_ops-2.1.0-6396.07033d6d.el7.src.rpm
-    traffic_ops-2.1.0-6396.07033d6d.el7.x86_64.rpm
-    traffic_ops_ort-2.1.0-6396.07033d6d.el7.src.rpm
-    traffic_ops_ort-2.1.0-6396.07033d6d.el7.x86_64.rpm
-    apache-trafficcontrol-2.1.0.tar.gz
+Build Using ``docker-compose``
+==============================
+If the ``pkg`` script fails, ``docker-compose`` can still be used to build the projects directly. The compose file can be found at ``infrastructure/docker/build/docker-compose.yml`` under the repository's root directory. It is recommended that between builds ``docker-compose down -v`` is run to prevent caching of old build steps. The service names are the same as the project names described above in `Usage`_, and similar to the ``pkg`` script, the build results, logs and source tarballs  [...]


[trafficcontrol] 22/39: List format consistency, adding to directory listing

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 0102c21b9db1542391c05f38ac8522fa380bfdf6
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Wed Sep 26 07:00:28 2018 -0600

    List format consistency, adding to directory listing
---
 docs/source/development/traffic_ops.rst | 147 +++++++++++++++++---------------
 1 file changed, 80 insertions(+), 67 deletions(-)

diff --git a/docs/source/development/traffic_ops.rst b/docs/source/development/traffic_ops.rst
index 1bd1dad..12a21c1 100644
--- a/docs/source/development/traffic_ops.rst
+++ b/docs/source/development/traffic_ops.rst
@@ -13,7 +13,7 @@
 .. limitations under the License.
 ..
 
-***********
+-**********
 Traffic Ops
 ***********
 
@@ -25,81 +25,94 @@ Software Requirements
 =====================
 To work on Traffic Ops you need a CentOS 7+ environment that has the following installed:
 
-* `Carton 1.0.12 <http://search.cpan.org/~miyagawa/Carton-v1.0.12/lib/Carton.pm>`_
+- `Carton 1.0.12 <http://search.cpan.org/~miyagawa/Carton-v1.0.12/lib/Carton.pm>`_
 
-	* cpan JSON
-	* cpan JSON\:\:PP
+	- cpan JSON
+	- cpan JSON\:\:PP
 
-* `Go 1.8.3 <http://golang.org/doc/install>`_
-* Perl 5.10.1
-* Git
-* Postgres 9.6.6
-* `Goose <https://bitbucket.org/liamstask/goose/>`_
+- `Go 1.8.3 <http://golang.org/doc/install>`_
+- Perl 5.10.1
+- Git
+- Postgres 9.6.6
+- `Goose <https://bitbucket.org/liamstask/goose/>`_
 
 Traffic Ops Project Tree Overview
 =================================
 traffic_ops/ - The root of the Traffic Ops project
 
-	* app/ - Holds most of the Perl code base
+	- app/ - Holds most of the Perl code base
+
+		- bin/ - Directory for scripts, cronjobs, etc
+		- conf/
+
+			- development/ - Development (local) specific configuration files.
+			- misc/ - Miscellaneous configuration files.
+			- production/ - Production specific configuration files.
+			- test/ - Test (unit test) specific configuration files.
+
+		- db/ - Database related area.
 
-		* bin/ - Directory for scripts, cronjobs, etc
-		* conf/
+			- migrations/ - Database Migration files.
 
-			* development/ - Development (local) specific configuration files.
-			* misc/ - Miscellaneous configuration files.
-			* production/ - Production specific configuration files.
-			* test/ - Test (unit test) specific configuration files.
+		- lib/
 
-		* db/ - Database related area.
+			- API/ - Mojo Controllers for the /API area of the application.
+			- Common/ - Common Code between both the API and UI areas.
+			- Extensions/ - Contains Data Source Extensions
+			- Fixtures/ - Test Case fixture data for the 'to_test' database.
 
-			* migrations/ - Database Migration files.
+				- Integration/ - Integration Tests.
 
-		* lib/
+			- MojoPlugins/ - Mojolicious Plugins for Common Controller Code.
+			- Schema/ - Database Schema area.
 
-			* API/ - Mojo Controllers for the /API area of the application.
-			* Common/ - Common Code between both the API and UI areas.
-			* Extensions/ - Contains Data Source Extensions
-			* Fixtures/ - Test Case fixture data for the 'to_test' database.
+				- /Result - DBIx ORM related files.
 
-				* Integration/ - Integration Tests.
+			- /Test - Common Test.
+			- UI/ - Mojolicious Controllers for the Traffic Ops UI itself.
+			- Utils/
 
-			* MojoPlugins/ - Mojolicious Plugins for Common Controller Code.
-			* Schema/ - Database Schema area.
+				- Helper/ - Common utilities for the Traffic Ops application.
 
-				* /Result - DBIx ORM related files.
+		- log/ - Log directory where the development and test files are written
+		- public/
 
-			* /Test - Common Test.
-			* UI/ - Mojolicious Controllers for the Traffic Ops UI itself.
-			* Utils/
+		 - css/ - Stylesheets
+		 - images/ - Images
+		 - js/ - Javascripts
 
-				* Helper/ - Common utilities for the Traffic Ops application.
+		- script/ - Mojo Bootstrap scripts.
+		- t/ - Unit Tests for the UI.
 
-		* log/ - Log directory where the development and test files are written
-		* public/
+		 - api/ - Unit Tests for the API.
 
-		 * css/ - Stylesheets
-		 * images/ - Images
-		 * js/ - Javascripts
+		- t_integration/ - High level tests for Integration level testing.
+		- templates/ - Mojo Embedded Perl (``*.ep``) files for the UI.
 
-		* script/ - Mojo Bootstrap scripts.
-		* t/ - Unit Tests for the UI.
+	- bin/ - holds executables related to Traffic Ops, but not actually a part of the Traffic Ops server's operation
+	- build/ - contains files that are responsible for packaging Traffic Ops into an RPM file
+	- client/ - API endpoints handled by Go
+	- client_tests/ - lol
+	- doc/ - contains only a coverage-zone.json example (?) file
+	- etc/ - configuration files needed for the Traffic Ops server
 
-		 * api/ - Unit Tests for the API.
+		- cron.d/ - holds specifications for Cron jobs that need to be run periodically on Traffic Ops servers
+		- init.d/ - contains the old initscripts-based job control for traffic ops
+		- logrotate.d/ - specifications for the Linux ``logrotate`` utility for Traffic Ops log files
+		- profile.d/traffic_ops.sh - sets up common environment variables for working with Traffic Ops
 
-		* t_integration/ - High level tests for Integration level testing.
-		* templates/ - Mojo Embedded Perl (``*.ep``) files for the UI.
+	- experimental/ - includes all kinds of prototype and/or abandoned tools and extensions
 
-	* bin/ - holds executables related to Traffic Ops, but not actually a part of the Traffic Ops server's operation
-	* build/ - contains files that are responsible for packaging Traffic Ops into an RPM file
-	* client/ - API endpoints handled by Go
-	* client_tests/ - lol
-	* doc/ - contains only a coverage-zone.json example (?) file
-	* etc/ - configuration files needed for the Traffic Ops server
+		- ats_config/ - an attempt to provide an easier method of obtaining and/or writing configuration files for Apache Trafficserver cache servers
+		- auth/ - a simple authentication server that mimics the authentication process of Traffic Ops, and provides a detailed view of a logged-in user's permissions and capabilities
+		- goto/ - an Angular (1.x) web page backed by a Go server that provides a ReST API interface for mySQL servers
+		- postgrest/ - originally probably going to be a web server that provides a ReST API for postgreSQL servers, this only contains a simple - albiet unfinished - Docker container specification for running postgreSQL client tools and/or server(s)
+		- server/ - a living copy of the original attempt at re-writing Traffic Ops in Go
+		- traffic_ops_auth/ - proof-of-concept for authenticating, creating and deleting users in a Traffic Ops schema.
+		- url-rewriter-nginx/ - Docker container specification for a modification to the NginX web server, meant to make it suitable for use as a caching server at the Edge-tier or Mid-tier levels of the Traffic Control architecture
+		- webfront/ - a simple HTTP caching server written from the ground-up, meant to be suitable as a caching server at the Edge-tier or Mid-tier levels of the Traffic Control architecture
 
-		* cron.d/ - holds specifications for Cron jobs that need to be run periodically on Traffic Ops servers
-		* init.d/ - contains the old initscripts-based job control for traffic ops
-		* logrotate.d/ - specifications for the Linux ``logrotate`` utility for Traffic Ops log files
-		* profile.d/traffic_ops.sh - sets up common environment variables for working with Traffic Ops
+	- install/
 
 Perl Formatting Conventions
 ===========================
@@ -143,7 +156,7 @@ Example: ``db/admin.pl --env=test reset``
 
 Purpose:  This script is used to manage the database. The environments are defined in the dbconf.yml, as well as the database names.
 
-* To use the ``admin.pl`` script, you may need to add ``traffic_ops/lib`` and ``traffic_ops/local/lib/perl5`` to your `PERL5LIB <http://modperlbook.org/html/3-9-2-2-Using-the-PERL5LIB-environment-variable.html>`_ environment variable.
+- To use the ``admin.pl`` script, you may need to add ``traffic_ops/lib`` and ``traffic_ops/local/lib/perl5`` to your `PERL5LIB <http://modperlbook.org/html/3-9-2-2-Using-the-PERL5LIB-environment-variable.html>`_ environment variable.
 
 +-----------+--------------------------------------------------------------------+
 | Arguments | Description                                                        |
@@ -189,9 +202,9 @@ To install the Traffic Ops Developer environment:
 
 4. Enter ``db/admin.pl --env=<enviroment name> setup`` to set up the traffic_ops database(s).
 
-	 * Unit test database: ``$ db/admin.pl --env=test setup``
-	 * Development database: ``$ db/admin.pl --env=development setup``
-	 * Integration database: ``$ db/admin.pl --env=integration setup``
+	 - Unit test database: ``$ db/admin.pl --env=test setup``
+	 - Development database: ``$ db/admin.pl --env=development setup``
+	 - Integration database: ``$ db/admin.pl --env=integration setup``
 
 	 |
 
@@ -239,8 +252,8 @@ To install the Traffic Ops Developer environment:
 8. Using a browser, navigate to the given address: ``http://127.0.0.1:3000``
 9. For the initial log in:
 
-	* User name: admin
-	* Password: password
+	- User name: admin
+	- Password: password
 
 10. Change the log in information.
 
@@ -248,7 +261,7 @@ Test Cases
 ==========
 Use prove to execute test cases. Execute after a carton install:
 
-* To run the Unit Tests: ``$ local/bin/prove -qrp  t/``
+- To run the Unit Tests: ``$ local/bin/prove -qrp  t/``
 * To run the Integration Tests: ``$ local/bin/prove -qrp t_integration/``
 
 The KableTown CDN example
@@ -260,8 +273,8 @@ The integration tests will load an example CDN with most of the features of Traf
 3. Using a browser, navigate to the given address: ``http://127.0.0.1:3000``
 4. For the initial log in:
 
-	* User name: admin
-	* Password: password
+	- User name: admin
+	- Password: password
 
 
 Extensions
@@ -305,22 +318,22 @@ Check Extension scripts are located in the $TO_HOME/bin/checks directory.
 
 Currently, the following Check Extensions are available and installed by default:
 
-**Cache Disk Usage Check - CDU**
+-*Cache Disk Usage Check - CDU**
 	This check shows how much of the available total cache disk is in use. A "warm" cache should show 100.00.
 
-**Cache Hit Ratio Check - CHR**
+-*Cache Hit Ratio Check - CHR**
 	The cache hit ratio for the cache in the last 15 minutes (the interval is determined by the cron entry).
 
-**DiffServe CodePoint Check - DSCP**
+-*DiffServe CodePoint Check - DSCP**
 	Checks if the returning traffic from the cache has the correct DSCP value as assigned in the delivery service. (Some routers will overwrite DSCP)
 
-**Maximum Transmission Check - MTU**
+-*Maximum Transmission Check - MTU**
 	Checks if the Traffic Ops host (if that is the one running the check) can send and receive 8192 size packets to the ``ip_address`` of the server in the server table.
 
-**Operational Readiness Check - ORT**
+-*Operational Readiness Check - ORT**
 	See :ref:`traffic-ops-ort` 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.
 
-**Ping Check - 10G, ILO, 10G6, FQDN**
+-*Ping Check - 10G, ILO, 10G6, FQDN**
 	The bin/checks/ToPingCheck.pl is to check basic IP connectivity, and in the default setup it checks IP connectivity to the following:
 
 	10G
@@ -332,7 +345,7 @@ Currently, the following Check Extensions are available and installed by default
 	FQDN
 		Is the Fully Qualified Domain name (the concatenation of ``host_name`` and ``.`` and ``domain_name`` from the server table) pingable?
 
-**Traffic Router Check - RTR**
+-*Traffic Router Check - RTR**
 	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, "the optimistic approach")
 
 


[trafficcontrol] 01/39: finished adding 1.3 routes

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 25c43b701351af2b3c57acbdb887e5e463e35f4c
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Mon Sep 17 10:37:07 2018 -0600

    finished adding 1.3 routes
---
 docs/source/api/routes.rst | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/docs/source/api/routes.rst b/docs/source/api/routes.rst
index 98caabf..03ffdc7 100644
--- a/docs/source/api/routes.rst
+++ b/docs/source/api/routes.rst
@@ -92,5 +92,7 @@ API Routes
 +------------------------------------+----------------------------------------------------+----------------------------------------------------+----------------------------------------------------+
 | *Not Implemented*                  |   *Not Implemented*                                |   :ref:`to-api-v12-configfiles_ats-route`          |   *Not Implemented*                                |
 +------------------------------------+----------------------------------------------------+----------------------------------------------------+----------------------------------------------------+
+| *Not Implemented*                  |   *Not Implemented*                                |   *Not Implemented*                                |   :ref:`to-api-v13-static-dns-entry-route`         |
++------------------------------------+----------------------------------------------------+----------------------------------------------------+----------------------------------------------------+
 | *Not Implemented*                  |   *Not Implemented*                                |   *Not Implemented*                                |   :ref:`to-api-v13-origin-route`                   |
 +------------------------------------+----------------------------------------------------+----------------------------------------------------+----------------------------------------------------+


[trafficcontrol] 14/39: trivial whitespace change

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 56024fec56acf78fa7b62076d2beb9ee36d25da1
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Wed Sep 19 07:53:19 2018 -0600

    trivial whitespace change
---
 docs/source/admin/traffic_router.rst | 1 -
 1 file changed, 1 deletion(-)

diff --git a/docs/source/admin/traffic_router.rst b/docs/source/admin/traffic_router.rst
index 03c7818..4a5c160 100644
--- a/docs/source/admin/traffic_router.rst
+++ b/docs/source/admin/traffic_router.rst
@@ -210,7 +210,6 @@ Items within brackets below are detailed under the HTTP and DNS sections::
 
 Fields Always Present
 """""""""""""""""""""
-
 +------+---------------------------------------------------------------------------------+------------------------------------------------------------------------------------+
 |Name  |Description                                                                      |Data                                                                                |
 +======+=================================================================================+====================================================================================+


[trafficcontrol] 33/39: Formatting overhaul to TM API docs

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit bfa0f25223b5d03d457d5b4404fc983c27895471
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Tue Oct 2 08:23:52 2018 -0600

    Formatting overhaul to TM API docs
    
    It's not done yet - still missing information and examples - but a marked improvement now with the ability to link directly to endpoints/methods/request/response
---
 docs/source/development/traffic_monitor.rst        |   8 +-
 .../traffic_monitor/traffic_monitor_api.rst        | 378 +++++++++++++++------
 2 files changed, 272 insertions(+), 114 deletions(-)

diff --git a/docs/source/development/traffic_monitor.rst b/docs/source/development/traffic_monitor.rst
index 87dd25d..4be0fdb 100644
--- a/docs/source/development/traffic_monitor.rst
+++ b/docs/source/development/traffic_monitor.rst
@@ -200,14 +200,14 @@ Installing The Developer Environment
 ====================================
 To install the Traffic Monitor Developer environment:
 
-#. Install `go` version 1.7 or greater, from https://golang.org/doc/install and https://golang.org/doc/code.html
-#. Clone the trafficcontrol repository using Git, into ``$GOPATH/src/github.com/apache/trafficcontrol``
-#. Change directories into ``$GOPATH/src/github.com/apache/trafficcontrol/traffic_monitor_golang/traffic_monitor``
+#. Install `Go <https://golang.org/doc/install>`_ version 1.7 or greater
+#. Clone the `Traffic Control repository <https://github.com/apache/trafficcontrol>`_ using ``git``, into ``$GOPATH/src/github.com/apache/trafficcontrol``
+#. Change directories into ``$GOPATH/src/github.com/apache/trafficcontrol/traffic_monitor``
 #. Run ``./build.sh``
 
 Test Cases
 ==========
-Tests can be executed by running ``go test ./...`` at the root of the ``traffic_monitor_golang`` project.
+Tests can be executed by running ``go test ./...`` at the root of the ``traffic_monitor`` project.
 
 API
 ===
diff --git a/docs/source/development/traffic_monitor/traffic_monitor_api.rst b/docs/source/development/traffic_monitor/traffic_monitor_api.rst
index 7287081..fbcc780 100644
--- a/docs/source/development/traffic_monitor/traffic_monitor_api.rst
+++ b/docs/source/development/traffic_monitor/traffic_monitor_api.rst
@@ -15,164 +15,322 @@
 
 .. _tm-api:
 
+********************
 Traffic Monitor APIs
-====================
-The Traffic Monitor URLs below allow certain query parameters for use in controlling the data returned. The optional query parameters are the *tabbed* in values under each URL, if they exist.
-
-|
+********************
+The Traffic Monitor URLs below allow certain query parameters for use in controlling the data returned.
+
+.. note:: Unlike :ref:`Traffic Ops API endpoints <to-api>`\ , no authentication is required for any of these, and as such there can be no special role requirements for a user.
+
+``/publish/EventLog``
+=========================
+Gets a log of recent changes in the availability of polled caches.
+
+``GET``
+-------
+:Response Type: Array (key 'events' contains an array of all data)
+
+Response Structure
+""""""""""""""""""
+:event: an entry in the top-level ``events`` array
+
+	:description: A string containing short description of the event
+	:hostname:    A string containing the server's full hostname
+	:index:       A serial integer that is incremented for each sequential  event
+	:isAvailable: A boolean value indicating whether the server is available following this event
+	:name:        The server's short hostname as a string
+	:time:        A UNIX timestamp as an integer
+	:type:        The type of the server as a string
+
+.. code-block:: json
+	:caption: Example Response
+
+	{ "events": [
+		{
+			"time": 1538417713,
+			"index": 67848,
+			"description": "REPORTED - loadavg too high (36.37 \u003e 25.00) (health)",
+			"name": "edge",
+			"hostname": "edge",
+			"type":"EDGE",
+			"isAvailable":false
+		}
+	]}
+
+``/publish/CacheStats``
+=======================
+Statistics gathered for each cache.
 
-**/publish/EventLog**
+``GET``
+-------
+:Response Type: Object
 
-Log of recent events.
+Request Structure
+"""""""""""""""""
+.. table:: Request Query Parameters
 
-|
+	+--------------+---------+------------------------------------------------+
+	|  Parameter   | Type    |                  Description                   |
+	+==============+=========+================================================+
+	| ``hc``       | integer | The history count, number of items to display. |
+	+--------------+---------+------------------------------------------------+
+	| ``stats``    | string  | A comma separated list of stats to display.    |
+	+--------------+---------+------------------------------------------------+
+	| ``wildcard`` | boolean | Controls whether specified stats should be     |
+	|              |         | treated as partial strings.                    |
+	+--------------+---------+------------------------------------------------+
 
-**/publish/CacheStats**
+Response Structure
+""""""""""""""""""
+:pp: Stores any provided request parameters provided as a string
+:date: A ``ctime``-like string representation of the time at which the response was served
+:caches: An object with keys that are the names of monitored cache servers
 
-Statistics gathered for each cache.
+	:<server name>: Each server's object is a collection of keys that are the names of statistics
 
-**Query Parameters**
+		:<statistic name>: The name of the statistic which this array represents. Each value in the array is one (and usually only one) object with the following structure:
 
-+--------------+---------+------------------------------------------------+
-|  Parameter   | Type    |                  Description                   |
-+==============+=========+================================================+
-| ``hc``       | int     | The history count, number of items to display. |
-+--------------+---------+------------------------------------------------+
-| ``stats``    | string  | A comma separated list of stats to display.    |
-+--------------+---------+------------------------------------------------+
-| ``wildcard`` | boolean | Controls whether specified stats should be     |
-|              |         | treated as partial strings.                    |
-+--------------+---------+------------------------------------------------+
+			:value: The statistic's value. This is *always* a string, even if that string only contains a number.
+			:time: An integer UNIX timestamp indicating the start time for this value of this statistic
+			:span: The span of time - in milliseconds - for which this value is valid. This is determined by the polling interval for the statistic
 
-|
+.. code-block:: json
+	:caption: Example Response
 
-**/publish/CacheStats/:cache**
+	{}
 
-Statistics gathered for only this cache.
+``publish/CacheStats/{{cache}}``
+================================
+Statistics gathered for only a single cache.
 
-**Query Parameters**
+``GET``
+-------
+:Response Type: Object
 
-+--------------+---------+------------------------------------------------+
-|  Parameter   | Type    |                  Description                   |
-+==============+=========+================================================+
-| ``hc``       | int     | The history count, number of items to display. |
-+--------------+---------+------------------------------------------------+
-| ``stats``    | string  | A comma separated list of stats to display.    |
-+--------------+---------+------------------------------------------------+
-| ``wildcard`` | boolean | Controls whether specified stats should be     |
-|              |         | treated as partial strings.                    |
-+--------------+---------+------------------------------------------------+
+Request Structure
+"""""""""""""""""
+.. table:: Request Path Parameters
 
-|
+	+-----------+--------+----------------------------------+
+	| Parameter | Type   |           Description            |
+	+===========+========+==================================+
+	| ``cache`` | string | The name of the cache to inspect |
+	+-----------+--------+----------------------------------+
 
-**/publish/DsStats**
+.. table:: Request Query Parameters
 
-Statistics gathered for delivery services.
+	+--------------+---------+------------------------------------------------+
+	|  Parameter   | Type    |                  Description                   |
+	+==============+=========+================================================+
+	| ``hc``       | integer | The history count, number of items to display. |
+	+--------------+---------+------------------------------------------------+
+	| ``stats``    | string  | A comma separated list of stats to display.    |
+	+--------------+---------+------------------------------------------------+
+	| ``wildcard`` | boolean | Controls whether specified stats should be     |
+	|              |         | treated as partial strings.                    |
+	+--------------+---------+------------------------------------------------+
 
-**Query Parameters**
+Response Structure
+""""""""""""""""""
+:pp: Stores any provided request parameters provided as a string
+:date: A ``ctime``-like string representation of the time at which the response was served
+:caches: An object with keys that are the names of monitored cache servers - only the cache named by the ``cache`` request path parameter will be shown
 
-+--------------+---------+------------------------------------------------+
-|  Parameter   | Type    |                  Description                   |
-+==============+=========+================================================+
-| ``hc``       | int     | The history count, number of items to display. |
-+--------------+---------+------------------------------------------------+
-| ``stats``    | string  | A comma separated list of stats to display.    |
-+--------------+---------+------------------------------------------------+
-| ``wildcard`` | boolean | Controls whether specified stats should be     |
-|              |         | treated as partial strings.                    |
-+--------------+---------+------------------------------------------------+
+	:<server name>: The requested server's object is a collection of keys that are the names of statistics
 
-|
+		:<statistic name>: The name of the statistic which this array represents. Each value in the array is one (and usually only one) object with the following structure:
 
-**/publish/DsStats/:deliveryService**
+			:value: The statistic's value. This is *always* a string, even if that string only contains a number.
+			:time: An integer UNIX timestamp indicating the start time for this value of this statistic
+			:span: The span of time - in milliseconds - for which this value is valid. This is determined by the polling interval for the statistic
 
-Statistics gathered for this delivery service only.
+.. code-block:: json
+	:caption: Example Response
 
-**Query Parameters**
+	{}
 
-+--------------+---------+------------------------------------------------+
-|  Parameter   | Type    |                  Description                   |
-+==============+=========+================================================+
-| ``hc``       | int     | The history count, number of items to display. |
-+--------------+---------+------------------------------------------------+
-| ``stats``    | string  | A comma separated list of stats to display.    |
-+--------------+---------+------------------------------------------------+
-| ``wildcard`` | boolean | Controls whether specified stats should be     |
-|              |         | treated as partial strings.                    |
-+--------------+---------+------------------------------------------------+
+``/publish/DsStats``
+====================
+Statistics gathered for Delivery Services
+
+``GET``
+-------
+:Response Type: ?
+
+Request Structure
+"""""""""""""""""
+.. table:: Request Query Parameters
+
+	+--------------+---------+------------------------------------------------+
+	|  Parameter   | Type    |                  Description                   |
+	+==============+=========+================================================+
+	| ``hc``       | int     | The history count, number of items to display. |
+	+--------------+---------+------------------------------------------------+
+	| ``stats``    | string  | A comma separated list of stats to display.    |
+	+--------------+---------+------------------------------------------------+
+	| ``wildcard`` | boolean | Controls whether specified stats should be     |
+	|              |         | treated as partial strings.                    |
+	+--------------+---------+------------------------------------------------+
+
+Response Structure
+""""""""""""""""""
+
+TODO
+
+``/publish/DsStats/{{deliveryService}}``
+========================================
+Statistics gathered for this Delivery Service only.
+
+``GET``
+-------
+:Response Type: ?
+
+Request Structure
+"""""""""""""""""
+.. table:: Request Path Parameters
+
+	+---------------------+--------+---------------------------------------------+
+	| Parameter           | Type   |                Description                  |
+	+=====================+========+=============================================+
+	| ``deliveryService`` | string | The name of the Delivery Service to inspect |
+	+---------------------+--------+---------------------------------------------+
+
+
+.. table:: Request Query Parameters
+
+	+--------------+---------+------------------------------------------------+
+	|  Parameter   | Type    |                  Description                   |
+	+==============+=========+================================================+
+	| ``hc``       | integer | The history count, number of items to display. |
+	+--------------+---------+------------------------------------------------+
+	| ``stats``    | string  | A comma separated list of stats to display.    |
+	+--------------+---------+------------------------------------------------+
+	| ``wildcard`` | boolean | Controls whether specified stats should be     |
+	|              |         | treated as partial strings.                    |
+	+--------------+---------+------------------------------------------------+
+
+Response Structure
+""""""""""""""""""
+
+TODO
+
+``/publish/CrStates``
+=====================
+The current state of this CDN per the health protocol.
 
-|
+``GET``
+-------
+:Response Type: ?
 
-**/publish/CrStates**
+Response Structure
+""""""""""""""""""
 
-The current state of this CDN per the health protocol.
+TODO
 
-|
 
+..????
 **raw**
 
 The current state of this CDN per this Traffic Monitor only.
 
-|
-
-**/publish/CrConfig**
-
+``/publish/CrConfig``
+=====================
 The CrConfig served to and consumed by Traffic Router.
 
-|
+``GET``
+-------
+:Response Type: ?
+
+Response Structure
+""""""""""""""""""
 
-**/publish/PeerStates**
+TODO
 
+``/publish/PeerStates``
+=======================
 The health state information from all peer Traffic Monitors.
 
-**Query Parameters**
+``GET``
+-------
+:Response Type: ?
+
+Request Structure
+"""""""""""""""""
+.. table:: Request Query Parameters
+
+	+--------------+---------+------------------------------------------------+
+	|  Parameter   | Type    |                  Description                   |
+	+==============+=========+================================================+
+	| ``hc``       | integer | The history count, number of items to display. |
+	+--------------+---------+------------------------------------------------+
+	| ``stats``    | string  | A comma separated list of stats to display.    |
+	+--------------+---------+------------------------------------------------+
+	| ``wildcard`` | boolean | Controls whether specified stats should be     |
+	|              |         | treated as partial strings.                    |
+	+--------------+---------+------------------------------------------------+
 
-+--------------+---------+------------------------------------------------+
-|  Parameter   | Type    |                  Description                   |
-+==============+=========+================================================+
-| ``hc``       | int     | The history count, number of items to display. |
-+--------------+---------+------------------------------------------------+
-| ``stats``    | string  | A comma separated list of stats to display.    |
-+--------------+---------+------------------------------------------------+
-| ``wildcard`` | boolean | Controls whether specified stats should be     |
-|              |         | treated as partial strings.                    |
-+--------------+---------+------------------------------------------------+
+Response Structure
+""""""""""""""""""
 
-|
+TODO
 
-**/publish/Stats**
 
+``/publish/Stats``
+==================
 The general statistics about Traffic Monitor.
 
-|
+``GET``
+-------
+:Response Type: ?
 
-**/publish/StatSummary**
+Response Structure
+""""""""""""""""""
 
-The summary of cache statistics.
+TODO
 
-**Query Parameters**
-
-+---------------+---------+-----------------------------------------------------------+
-|   Parameter   |   Type  |                        Description                        |
-+===============+=========+===========================================================+
-| ``startTime`` | number  | Window start. The number of milliseconds since the epoch. |
-+---------------+---------+-----------------------------------------------------------+
-| ``endTime``   | number  | Window end. The number of milliseconds since the epoch.   |
-+---------------+---------+-----------------------------------------------------------+
-| ``hc``        | int     | The history count, number of items to display.            |
-+---------------+---------+-----------------------------------------------------------+
-| ``stats``     | string  | A comma separated list of stats to display.               |
-+---------------+---------+-----------------------------------------------------------+
-| ``wildcard``  | boolean | Controls whether specified stats should be                |
-|               |         | treated as partial strings.                               |
-+---------------+---------+-----------------------------------------------------------+
-| ``cache``     | string  | Summary statistics for just this cache.                   |
-+---------------+---------+-----------------------------------------------------------+
-
-|
-
-**/publish/ConfigDoc**
+``/publish/StatSummary``
+========================
+The summary of cache statistics.
 
+``GET``
+-------
+:Response Type: ?
+
+Request Structure
+"""""""""""""""""
+.. table:: Request Query Parameters
+
+	+---------------+---------+-----------------------------------------------------------+
+	|   Parameter   |   Type  |                        Description                        |
+	+===============+=========+===========================================================+
+	| ``startTime`` | number  | Window start. The number of milliseconds since the epoch. |
+	+---------------+---------+-----------------------------------------------------------+
+	| ``endTime``   | number  | Window end. The number of milliseconds since the epoch.   |
+	+---------------+---------+-----------------------------------------------------------+
+	| ``hc``        | integer | The history count, number of items to display.            |
+	+---------------+---------+-----------------------------------------------------------+
+	| ``stats``     | string  | A comma separated list of stats to display.               |
+	+---------------+---------+-----------------------------------------------------------+
+	| ``wildcard``  | boolean | Controls whether specified stats should be                |
+	|               |         | treated as partial strings.                               |
+	+---------------+---------+-----------------------------------------------------------+
+	| ``cache``     | string  | Summary statistics for just this cache.                   |
+	+---------------+---------+-----------------------------------------------------------+
+
+Response Structure
+""""""""""""""""""
+
+TODO
+
+``/publish/ConfigDoc``
+======================
 The overview of configuration options.
 
+``GET``
+-------
+:Response Type: ?
+
+Response Structure
+""""""""""""""""""
 
+TODO


[trafficcontrol] 21/39: Formatting consistency

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit cefa1dd73a59faa41b9dc7e6e384f21416fc0cd9
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Tue Sep 25 07:00:09 2018 -0600

    Formatting consistency
---
 docs/source/development/traffic_ops.rst | 261 ++++++++++++++++----------------
 1 file changed, 134 insertions(+), 127 deletions(-)

diff --git a/docs/source/development/traffic_ops.rst b/docs/source/development/traffic_ops.rst
index 47848af..1bd1dad 100644
--- a/docs/source/development/traffic_ops.rst
+++ b/docs/source/development/traffic_ops.rst
@@ -13,6 +13,7 @@
 .. limitations under the License.
 ..
 
+***********
 Traffic Ops
 ***********
 
@@ -22,12 +23,12 @@ Traffic Ops uses a Postgres database to store the configuration information, and
 
 Software Requirements
 =====================
-To work on Traffic Ops you need a \*nix (MacOS and Linux are most commonly used) environment that has the following installed:
+To work on Traffic Ops you need a CentOS 7+ environment that has the following installed:
 
 * `Carton 1.0.12 <http://search.cpan.org/~miyagawa/Carton-v1.0.12/lib/Carton.pm>`_
 
-  * cpan JSON
-  * cpan JSON::PP
+	* cpan JSON
+	* cpan JSON\:\:PP
 
 * `Go 1.8.3 <http://golang.org/doc/install>`_
 * Perl 5.10.1
@@ -35,91 +36,97 @@ To work on Traffic Ops you need a \*nix (MacOS and Linux are most commonly used)
 * Postgres 9.6.6
 * `Goose <https://bitbucket.org/liamstask/goose/>`_
 
-Addionally, the installation of the following RPMs (or equivalent) is required:
-
-* All RPMs listed in :ref:`ps`
-
 Traffic Ops Project Tree Overview
-=======================================
+=================================
+traffic_ops/ - The root of the Traffic Ops project
+
+	* app/ - Holds most of the Perl code base
 
-**/opt/traffic_ops/app**
+		* bin/ - Directory for scripts, cronjobs, etc
+		* conf/
 
-* bin/ - Directory for scripts, cronjobs, etc
+			* development/ - Development (local) specific configuration files.
+			* misc/ - Miscellaneous configuration files.
+			* production/ - Production specific configuration files.
+			* test/ - Test (unit test) specific configuration files.
 
-* conf/
+		* db/ - Database related area.
 
-  * /development - Development (local) specific config files.
-  * /misc - Miscellaneous config files.
-  * /production - Production specific config files.
-  * /test - Test (unit test) specific config files.
+			* migrations/ - Database Migration files.
 
-* db/ - Database related area.
+		* lib/
 
-  * /migrations - Database Migration files.
+			* API/ - Mojo Controllers for the /API area of the application.
+			* Common/ - Common Code between both the API and UI areas.
+			* Extensions/ - Contains Data Source Extensions
+			* Fixtures/ - Test Case fixture data for the 'to_test' database.
 
-* lib/
+				* Integration/ - Integration Tests.
 
-  * /API - Mojo Controllers for the /API area of the application.
-  * /Common - Common Code between both the API and UI areas.
-  * /Extensions
-  * Fixtures/ - Test Case fixture data for the 'to_test' database.
-    * /Integration - Integration Tests.
-  * /MojoPlugins - Mojolicious Plugins for Common Controller Code.
-  * Schema/ - Database Schema area.
-    * /Result - DBIx ORM related files.
-  * /Test - Common Test.
-  * /UI - Mojo Controllers for the Traffic Ops UI itself.
-  * Utils/
-    * /Helper - Common utilities for the Traffic Ops application.
+			* MojoPlugins/ - Mojolicious Plugins for Common Controller Code.
+			* Schema/ - Database Schema area.
 
-* log/ - Log directory where the development and test files are written by the app.
+				* /Result - DBIx ORM related files.
 
-* public/
+			* /Test - Common Test.
+			* UI/ - Mojolicious Controllers for the Traffic Ops UI itself.
+			* Utils/
 
- * css/ - Stylesheets.
- * images/ - Images.
- * js/ - Javascripts
+				* Helper/ - Common utilities for the Traffic Ops application.
 
-* script/ - Mojo Bootstrap scripts.
+		* log/ - Log directory where the development and test files are written
+		* public/
 
-* t/ - Unit Tests for the UI.
+		 * css/ - Stylesheets
+		 * images/ - Images
+		 * js/ - Javascripts
 
- * api/ - Unit Tests for the API.
+		* script/ - Mojo Bootstrap scripts.
+		* t/ - Unit Tests for the UI.
 
-* t_integration/ - High level tests for Integration level testing.
+		 * api/ - Unit Tests for the API.
 
-* templates/ - Mojo Embedded Perl (.ep) files for the UI.
+		* t_integration/ - High level tests for Integration level testing.
+		* templates/ - Mojo Embedded Perl (``*.ep``) files for the UI.
 
+	* bin/ - holds executables related to Traffic Ops, but not actually a part of the Traffic Ops server's operation
+	* build/ - contains files that are responsible for packaging Traffic Ops into an RPM file
+	* client/ - API endpoints handled by Go
+	* client_tests/ - lol
+	* doc/ - contains only a coverage-zone.json example (?) file
+	* etc/ - configuration files needed for the Traffic Ops server
 
+		* cron.d/ - holds specifications for Cron jobs that need to be run periodically on Traffic Ops servers
+		* init.d/ - contains the old initscripts-based job control for traffic ops
+		* logrotate.d/ - specifications for the Linux ``logrotate`` utility for Traffic Ops log files
+		* profile.d/traffic_ops.sh - sets up common environment variables for working with Traffic Ops
 
 Perl Formatting Conventions
 ===========================
-Perl tidy is for use in code formatting. See the following config file for formatting conventions.
-
-::
-
-
-  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="= + - / * ."
-  -wrs=\"= + - / * .\"
-  -wbb="% + - * / x != == >= <= =~ < > | & **= += *= &= <<= &&= -= /= |= + >>= ||= .= %= ^= x="
+`Perltidy <http://perltidy.sourceforge.net/>`_ is for use in code formatting.
+
+.. code-block::perl
+	:caption: Example Perltidy Configuration (usually in ``~/.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="= + - / * ."
+	-wrs=\"= + - / * .\"
+	-wbb="% + - * / x != == >= <= =~ < > | & **= += *= &= <<= &&= -= /= |= + >>= ||= .= %= ^= x="
 
 
 Database Management
@@ -170,46 +177,46 @@ To install the Traffic Ops Developer environment:
 1. Clone the trafficcontrol repository from `github.com <https://github.com/apache/trafficcontrol>`_.
 2. Install the local dependencies using Carton (cpanfile).
 
-  ::
+	::
 
-   $ cd traffic_ops/app
-   $ carton
+	 $ cd traffic_ops/app
+	 $ carton
 
 3. Set up a role (user) in Postgres
 
-   See Postgres instructions on initdb https://wiki.postgresql.org/wiki/First_steps
+	 See Postgres instructions on initdb https://wiki.postgresql.org/wiki/First_steps
 
 
 4. Enter ``db/admin.pl --env=<enviroment name> setup`` to set up the traffic_ops database(s).
 
-   * Unit test database: ``$ db/admin.pl --env=test setup``
-   * Development database: ``$ db/admin.pl --env=development setup``
-   * Integration database: ``$ db/admin.pl --env=integration setup``
-
-   |
-
-   Running the the admin.pl script in setup mode should look like this: ::
-
-       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 'drop database to_development'
-       Executing 'create database to_development'
-       Creating database tables...
-       Warning: Using a password on the command line interface can be insecure.
-       Migrating database...
-       goose: migrating db environment 'development', 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.
+	 * Unit test database: ``$ db/admin.pl --env=test setup``
+	 * Development database: ``$ db/admin.pl --env=development setup``
+	 * Integration database: ``$ db/admin.pl --env=integration setup``
+
+	 |
+
+	 Running the the admin.pl script in setup mode should look like this: ::
+
+			 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 'drop database to_development'
+			 Executing 'create database to_development'
+			 Creating database tables...
+			 Warning: Using a password on the command line interface can be insecure.
+			 Migrating database...
+			 goose: migrating db environment 'development', 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.
 
 5. (Optional) To load temporary data into the tables: ``$ perl bin/db/setup_kabletown.pl``
 
@@ -217,23 +224,23 @@ To install the Traffic Ops Developer environment:
 
 7. To start Traffic Ops, enter ``$ bin/start.pl``
 
-   The local Traffic Ops instance uses an open source framework called morbo, starting following the start command execution.
+	 The local Traffic Ops instance uses an open source framework called morbo, starting following the start command execution.
 
-   Start up success includes the following:
+	 Start up success includes the following:
 
-  ::
+	::
 
 
-   [2015-02-24 10:44:34,991] [INFO] Listening at "http://*:3000".
+	 [2015-02-24 10:44:34,991] [INFO] Listening at "http://*:3000".
 
-   Server available at http://127.0.0.1:3000.
+	 Server available at http://127.0.0.1:3000.
 
 
 8. Using a browser, navigate to the given address: ``http://127.0.0.1:3000``
 9. For the initial log in:
 
-  * User name: admin
-  * Password: password
+	* User name: admin
+	* Password: password
 
 10. Change the log in information.
 
@@ -253,8 +260,8 @@ The integration tests will load an example CDN with most of the features of Traf
 3. Using a browser, navigate to the given address: ``http://127.0.0.1:3000``
 4. For the initial log in:
 
-  * User name: admin
-  * Password: password
+	* User name: admin
+	* Password: password
 
 
 Extensions
@@ -263,15 +270,15 @@ Traffic Ops Extensions are a way to enhance the basic functionality of Traffic O
 
 1. Check Extensions
 
-  These allow you to add custom checks to the "Health->Server Checks" view.
+	These allow you to add custom checks to the "Health->Server Checks" view.
 
 2. Configuration Extensions
 
-  These allow you to add custom configuration file generators.
+	These allow you to add custom configuration file generators.
 
 3. Data source Extensions
 
-  These allow you to add statistic sources for the graph views and APIs.
+	These allow you to add statistic sources for the graph views and APIs.
 
 Extensions are managed using the $TO_HOME/bin/extensions command line script. For more information see :ref:`admin-to-ext-script`.
 
@@ -292,41 +299,41 @@ An example script might proceed by logging into the Traffic Ops server using the
 A check extension can have a column of |checkmark|'s and |X|'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: ::
 
 
-  Script here.
+	Script here.
 
 Check Extension scripts are located in the $TO_HOME/bin/checks directory.
 
 Currently, the following Check Extensions are available and installed by default:
 
 **Cache Disk Usage Check - CDU**
-  This check shows how much of the available total cache disk is in use. A "warm" cache should show 100.00.
+	This check shows how much of the available total cache disk is in use. A "warm" cache should show 100.00.
 
 **Cache Hit Ratio Check - CHR**
-  The cache hit ratio for the cache in the last 15 minutes (the interval is determined by the cron entry).
+	The cache hit ratio for the cache in the last 15 minutes (the interval is determined by the cron entry).
 
 **DiffServe CodePoint Check - DSCP**
-  Checks if the returning traffic from the cache has the correct DSCP value as assigned in the delivery service. (Some routers will overwrite DSCP)
+	Checks if the returning traffic from the cache has the correct DSCP value as assigned in the delivery service. (Some routers will overwrite DSCP)
 
 **Maximum Transmission Check - MTU**
-  Checks if the Traffic Ops host (if that is the one running the check) can send and receive 8192 size packets to the ``ip_address`` of the server in the server table.
+	Checks if the Traffic Ops host (if that is the one running the check) can send and receive 8192 size packets to the ``ip_address`` of the server in the server table.
 
 **Operational Readiness Check - ORT**
-  See :ref:`traffic-ops-ort` 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.
+	See :ref:`traffic-ops-ort` 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.
 
 **Ping Check - 10G, ILO, 10G6, FQDN**
-  The bin/checks/ToPingCheck.pl is to check basic IP connectivity, and in the default setup it checks IP connectivity to the following:
+	The bin/checks/ToPingCheck.pl is to check basic IP connectivity, and in the default setup it checks IP connectivity to the following:
 
-  10G
-    Is the ``ip_address`` (the main IPv4 address) from the server table pingable?
-  ILO
-    Is the ``ilo_ip_address`` (the lights-out-mangement IPv4 address) from the server table pingable?
-  10G6
-    Is the ``ip6_address`` (the main IPv6 address) from the server table pingable?
-  FQDN
-    Is the Fully Qualified Domain name (the concatenation of ``host_name`` and ``.`` and ``domain_name`` from the server table) pingable?
+	10G
+		Is the ``ip_address`` (the main IPv4 address) from the server table pingable?
+	ILO
+		Is the ``ilo_ip_address`` (the lights-out-mangement IPv4 address) from the server table pingable?
+	10G6
+		Is the ``ip6_address`` (the main IPv6 address) from the server table pingable?
+	FQDN
+		Is the Fully Qualified Domain name (the concatenation of ``host_name`` and ``.`` and ``domain_name`` from the server table) pingable?
 
 **Traffic Router Check - RTR**
-  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, "the optimistic approach")
+	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, "the optimistic approach")
 
 
 Configuration Extensions
@@ -347,7 +354,7 @@ Extension Directories
 ---------------------
 PERL5LIB Example Configuration: ::
 
-   export PERL5LIB=/opt/traffic_ops_extensions/private/lib/Extensions:/opt/traffic_ops/app/lib/Extensions/TrafficStats
+	 export PERL5LIB=/opt/traffic_ops_extensions/private/lib/Extensions:/opt/traffic_ops/app/lib/Extensions/TrafficStats
 
 Perl Package Naming Convention
 ------------------------------


[trafficcontrol] 09/39: Moved non-static files out of _static

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit f55bb40b416a02acabc829d001c79bdc78dcb14d
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Tue Sep 18 18:20:07 2018 -0600

    Moved non-static files out of _static
---
 docs/source/_static/warning.png                           | Bin 595 -> 0 bytes
 docs/source/{_static => admin/traffic_ops/images}/bad.png | Bin
 .../{_static => admin/traffic_ops/images}/clock-black.png | Bin
 .../{_static => admin/traffic_ops/images}/clock.png       | Bin
 .../source/{_static => admin/traffic_ops/images}/good.png | Bin
 .../{_static => admin/traffic_ops/images}/graph.png       | Bin
 .../source/{_static => admin/traffic_ops/images}/info.png | Bin
 docs/source/admin/traffic_ops/using.rst                   |  10 +++++-----
 docs/source/development/traffic_ops.rst                   |   4 ++--
 9 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/docs/source/_static/warning.png b/docs/source/_static/warning.png
deleted file mode 100644
index 57cccda..0000000
Binary files a/docs/source/_static/warning.png and /dev/null differ
diff --git a/docs/source/_static/bad.png b/docs/source/admin/traffic_ops/images/bad.png
similarity index 100%
rename from docs/source/_static/bad.png
rename to docs/source/admin/traffic_ops/images/bad.png
diff --git a/docs/source/_static/clock-black.png b/docs/source/admin/traffic_ops/images/clock-black.png
similarity index 100%
rename from docs/source/_static/clock-black.png
rename to docs/source/admin/traffic_ops/images/clock-black.png
diff --git a/docs/source/_static/clock.png b/docs/source/admin/traffic_ops/images/clock.png
similarity index 100%
rename from docs/source/_static/clock.png
rename to docs/source/admin/traffic_ops/images/clock.png
diff --git a/docs/source/_static/good.png b/docs/source/admin/traffic_ops/images/good.png
similarity index 100%
rename from docs/source/_static/good.png
rename to docs/source/admin/traffic_ops/images/good.png
diff --git a/docs/source/_static/graph.png b/docs/source/admin/traffic_ops/images/graph.png
similarity index 100%
rename from docs/source/_static/graph.png
rename to docs/source/admin/traffic_ops/images/graph.png
diff --git a/docs/source/_static/info.png b/docs/source/admin/traffic_ops/images/info.png
similarity index 100%
rename from docs/source/_static/info.png
rename to docs/source/admin/traffic_ops/images/info.png
diff --git a/docs/source/admin/traffic_ops/using.rst b/docs/source/admin/traffic_ops/using.rst
index f75d146..f6b2ef1 100644
--- a/docs/source/admin/traffic_ops/using.rst
+++ b/docs/source/admin/traffic_ops/using.rst
@@ -13,11 +13,11 @@
 .. limitations under the License.
 ..
 
-.. |graph| image:: ../../_static/graph.png
-.. |info| image:: ../../_static//info.png
-.. |checkmark| image:: ../../_static/good.png
-.. |X| image:: ../../_static/bad.png
-.. |clock| image:: ../../_static/clock-black.png
+.. |graph| image:: images/graph.png
+.. |info| image:: images/info.png
+.. |checkmark| image:: images/good.png
+.. |X| image:: images/bad.png
+.. |clock| image:: images/clock-black.png
 
 *******************
 Traffic Ops - Using
diff --git a/docs/source/development/traffic_ops.rst b/docs/source/development/traffic_ops.rst
index 91f18f1..47848af 100644
--- a/docs/source/development/traffic_ops.rst
+++ b/docs/source/development/traffic_ops.rst
@@ -280,9 +280,9 @@ Check Extensions
 
 In other words, check extensions are scripts that, after registering with Traffic Ops, have a column reserved in the "Health->Server Checks" view and that usually run periodically out of cron.
 
-.. |checkmark| image:: ../_static/good.png
+.. |checkmark| image:: ../admin/traffic_ops/images/good.png
 
-.. |X| image:: ../_static/bad.png
+.. |X| image:: ../admin/traffic_ops/images/bad.png
 
 
 It is the responsibility of the check extension script to iterate over the servers it wants to check and post the results.


[trafficcontrol] 31/39: Fixed broken logo spec/switched to new, *real* SVG logo for HTML

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 05a1f4e3b6b9e5eeaaaf6adcc29702822fe9b98f
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Mon Oct 1 12:49:05 2018 -0600

    Fixed broken logo spec/switched to new, *real* SVG logo for HTML
---
 docs/source/conf.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/source/conf.py b/docs/source/conf.py
index 08b1403..3bbc874 100755
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -156,7 +156,7 @@ html_static_path = ['_static']
 html_favicon="favicon.ico"
 
 # Sets the sidebar logo for HTML pages
-html_logo="../../misc/logos/Traffic-Control-Logo-FINAL-White-Text.png"
+html_logo="../../misc/logos/ATC-SVG-FULL-WHITE.svg"
 
 
 # -- Options for HTMLHelp output ---------------------------------------------
@@ -193,7 +193,7 @@ latex_documents = [
 	 'Apache Traffic Control', 'manual'),
 ]
 
-latex_logo = "../../Traffic-Control-Logo-FINAL-White-Text.png"
+latex_logo = "../../misc/logos/ATC-PNG-FULL-BLACK-LARGE.png"
 
 
 # -- Options for manual page output ------------------------------------------


[trafficcontrol] 03/39: More API updates

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit f0003a047454cbc6b652935adf69171e47527b95
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Mon Sep 17 14:13:08 2018 -0600

    More API updates
---
 docs/source/api/v11/asn.rst        |   64 +-
 docs/source/api/v11/cachegroup.rst |  657 +++++++------
 docs/source/api/v11/cdn.rst        | 1913 ++++++++++++++++++------------------
 3 files changed, 1359 insertions(+), 1275 deletions(-)

diff --git a/docs/source/api/v11/asn.rst b/docs/source/api/v11/asn.rst
index dd31b3e..408dfc8 100644
--- a/docs/source/api/v11/asn.rst
+++ b/docs/source/api/v11/asn.rst
@@ -16,57 +16,65 @@
 
 .. _to-api-v11-asn:
 
-***
-ASN
-***
+****
+ASNS
+****
 
 .. _to-api-v11-asns-route:
 
 ``/api/1.1/asns``
 =================
+List all ASNS
 
 ``GET``
 -------
+:Auth. Required: Yes
+:Roles Required: None
+:Response Type:  Object
 
-:Authentication Required: Yes
+.. table:: Response Properties
 
-:Role(s) Required: None
+	+------------------+---------------------------+----------------------+
+	|        Key       |             Type          |     Description      |
+	+==================+===========================+======================+
+	| ``asns``         | array of ``asn`` objects  | A collection of asns |
+	+------------------+---------------------------+----------------------+
 
-.. table:: Response Properties
+.. table:: ``asn`` Properties
 
-	+------------------+--------+-------------------------------------------------------------------------+
-	|    Parameter     |  Type  |                               Description                               |
-	+==================+========+=========================================================================+
-	| ``asns``         | array  | A collection of asns                                                    |
-	+------------------+--------+-------------------------------------------------------------------------+
-	| ``>lastUpdated`` | string | The Time / Date this server entry was last updated                      |
-	+------------------+--------+-------------------------------------------------------------------------+
-	| ``>id``          | string | Local unique identifier for the ASN                                     |
-	+------------------+--------+-------------------------------------------------------------------------+
-	| ``>asn``         | string | Autonomous System Numbers per APNIC for identifying a service provider. |
-	+------------------+--------+-------------------------------------------------------------------------+
-	| ``>cachegroup``  | string | Related cachegroup name                                                 |
-	+------------------+--------+-------------------------------------------------------------------------+
+	+------------------+---------+-------------------------------------------------------------------------+
+	|       Key        |  Type   |                           Description                                   |
+	+==================+=========+=========================================================================+
+	| ``lastUpdated``  | string  | The Time / Date this server entry was last updated                      |
+	+------------------+---------+-------------------------------------------------------------------------+
+	| ``id``           | integer | Local unique identifier for the ASN                                     |
+	+------------------+---------+-------------------------------------------------------------------------+
+	| ``asn``          | integer | Autonomous System Numbers per APNIC for identifying a service provider  |
+	+------------------+---------+-------------------------------------------------------------------------+
+	| ``cachegroup``   | string  | Related cachegroup name                                                 |
+	+------------------+---------+-------------------------------------------------------------------------+
+	| ``cachegroupId`` | integer | Related cachegroup name                                                 |
+	+------------------+---------+-------------------------------------------------------------------------+
 
-Response Example
-""""""""""""""""
 .. code-block:: json
-	:tab-width: 4
+	:caption: Response Example
 
 	{
 	 "response": {
 			"asns": [
 				 {
 						"lastUpdated": "2012-09-17 21:41:22",
-						"id": "27",
-						"asn": "7015",
-						"cachegroup": "us-ma-woburn"
+						"id": 27,
+						"asn": 7015,
+						"cachegroup": "us-ma-woburn",
+						"cachegroupId": 2
 				 },
 				 {
 						"lastUpdated": "2012-09-17 21:41:22",
-						"id": "28",
-						"asn": "7016",
-						"cachegroup": "us-pa-pittsburgh"
+						"id": 28,
+						"asn": 7016,
+						"cachegroup": "us-pa-pittsburgh",
+						"cachegroupID": 3
 				 }
 			]
 	 },
diff --git a/docs/source/api/v11/cachegroup.rst b/docs/source/api/v11/cachegroup.rst
index 5278645..dffc024 100644
--- a/docs/source/api/v11/cachegroup.rst
+++ b/docs/source/api/v11/cachegroup.rst
@@ -1,317 +1,372 @@
-.. 
-.. 
+..
+..
 .. Licensed under the Apache License, Version 2.0 (the "License");
 .. you may not use this file except in compliance with the License.
 .. You may obtain a copy of the License 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.
-.. 
+..
 
 .. _to-api-v11-cachegroup:
 
+***********
 Cache Group
-===========
+***********
 
 .. _to-api-v11-cachegroups-route:
 
-/api/1.1/cachegroups
-++++++++++++++++++++
-
-**GET /api/1.1/cachegroups**
-
-  Authentication Required: Yes
-
-  Role(s) Required: None
-
-  **Response Properties**
-
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | Parameter                         | Type   | Description                                                              |
-  +===================================+========+==========================================================================+
-  | ``id``                            | string | Local unique identifier for the Cache Group                              |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | ``lastUpdated``                   | string | The Time / Date this entry was last updated                              |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | ``latitude``                      | string | Latitude for the Cache Group                                             |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | ``longitude``                     | string | Longitude for the Cache Group                                            |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | ``name``                          | string | The name of the Cache Group entry                                        |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | ``parentCachegroupId``            | string | Parent cachegroup ID.                                                    |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | ``parentCachegroupName``          | string | Parent cachegroup name.                                                  |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | ``secondaryParentCachegroupId``   | string | Secondary parent cachegroup ID.                                          |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | ``secondaryParentCachegroupName`` | string | Secondary parent cachegroup name.                                        |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | ``shortName``                     | string | Abbreviation of the Cache Group Name                                     |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | ``typeId``                        | string | Unique identifier for the 'Type' of Cache Group entry                    |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | ``typeName``                      | string | The name of the type of Cache Group entry                                |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-
-  **Response Example** ::
-
-    {
-     "response": [
-        {
-           "id": "21",
-           "lastUpdated": "2012-09-25 20:27:28",
-           "latitude": "0",
-           "longitude": "0",
-           "name": "dc-chicago",
-           "parentCachegroupId": null,
-           "parentCachegroupName": null,
-           "secondaryParentCachegroupId": null,
-           "secondaryParentCachegroupName": null,
-           "shortName": "dcchi",
-           "typeName": "MID_LOC",
-           "typeId": "4"
-        },
-        {
-           "id": "22",
-           "lastUpdated": "2012-09-25 20:27:28",
-           "latitude": "0",
-           "longitude": "0",
-           "name": "dc-chicago-1",
-           "parentCachegroupId": null,
-           "parentCachegroupName": null,
-           "secondaryParentCachegroupId": null,
-           "secondaryParentCachegroupName": null,
-           "shortName": "dcchi",
-           "typeName": "MID_LOC",
-           "typeId": "4"
-        }
-     ],
-    }
-
-|
-
-**GET /api/1.1/cachegroups/trimmed**
-
-  Authentication Required: Yes
-
-  Role(s) Required: None
-
-  **Response Properties**
-
-  +----------------------+--------+------------------------------------------------+
-  | Parameter            | Type   | Description                                    |
-  +======================+========+================================================+
-  |``name``              | string |                                                |
-  +----------------------+--------+------------------------------------------------+
-
-  **Response Example** ::
-
-      {
-       "response": [
-          {
-             "name": "dc-chicago"
-          },
-          {
-             "name": "dc-cmc"
-          }
-       ],
-     }
-
-|
-
-**GET /api/1.1/cachegroups/:id**
-
-  Authentication Required: Yes
-
-  Role(s) Required: None
-
-  **Response Properties**
-
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | Parameter                         | Type   | Description                                                              |
-  +===================================+========+==========================================================================+
-  | ``id``                            | string | Local unique identifier for the Cache Group                              |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | ``lastUpdated``                   | string | The Time / Date this entry was last updated                              |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | ``latitude``                      | string | Latitude for the Cache Group                                             |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | ``longitude``                     | string | Longitude for the Cache Group                                            |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | ``name``                          | string | The name of the Cache Group entry                                        |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | ``parentCachegroupId``            | string | Parent cachegroup ID.                                                    |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | ``parentCachegroupName``          | string | Parent cachegroup name.                                                  |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | ``secondaryParentCachegroupId``   | string | Secondary parent cachegroup ID.                                          |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | ``secondaryParentCachegroupName`` | string | Secondary parent cachegroup name.                                        |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | ``shortName``                     | string | Abbreviation of the Cache Group Name                                     |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | ``typeId``                        | string | Unique identifier for the 'Type' of Cache Group entry                    |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-  | ``typeName``                      | string | The name of the type of Cache Group entry                                |
-  +-----------------------------------+--------+--------------------------------------------------------------------------+
-
-  **Response Example** ::
-
-    {
-     "response": [
-        {
-           "id": "21",
-           "lastUpdated": "2012-09-25 20:27:28",
-           "latitude": "0",
-           "longitude": "0",
-           "name": "dc-chicago",
-           "parentCachegroupId": null,
-           "parentCachegroupName": null,
-           "secondaryParentCachegroupId": null,
-           "secondaryParentCachegroupName": null,
-           "shortName": "dcchi",
-           "typeName": "MID_LOC",
-           "typeId": "4"
-        }
-     ],
-    }
-
-|
-
-
-**GET /api/1.1/cachegroup/:parameter_id/parameter**
-
-  Authentication Required: Yes
-
-  Role(s) Required: None
-
-  **Request Route Parameters**
-
-  +------------------+----------+-------------+
-  |       Name       | Required | Description |
-  +==================+==========+=============+
-  | ``parameter_id`` | yes      |             |
-  +------------------+----------+-------------+
-
-  **Response Properties**
-
-  +-----------------+--------+-------------+
-  |    Parameter    |  Type  | Description |
-  +=================+========+=============+
-  | ``cachegroups`` | array  |             |
-  +-----------------+--------+-------------+
-  | ``>name``       | string |             |
-  +-----------------+--------+-------------+
-  | ``>id``         | string |             |
-  +-----------------+--------+-------------+
-
-  **Response Example** ::
-
-    {
-     "response": {
-        "cachegroups": [
-           {
-              "name": "dc-chicago",
-              "id": "21"
-           },
-           {
-              "name": "dc-cmc",
-              "id": "22"
-           }
-        ]
-     },
-    }
-
-
-**GET /api/1.1/cachegroupparameters**
-
-  Authentication Required: Yes
-
-  Role(s) Required: None
-
-  **Response Properties**
-
-  +--------------------------+--------+-----------------------------------------+
-  |        Parameter         |  Type  |               Description               |
-  +==========================+========+=========================================+
-  | ``cachegroupParameters`` | array  | A collection of cache group parameters. |
-  +--------------------------+--------+-----------------------------------------+
-  | ``>parameter``           | string |                                         |
-  +--------------------------+--------+-----------------------------------------+
-  | ``>last_updated``        | string |                                         |
-  +--------------------------+--------+-----------------------------------------+
-  | ``>cachegroup``          | string |                                         |
-  +--------------------------+--------+-----------------------------------------+
-
-  **Response Example** ::
-
-    {
-     "response": {
-        "cachegroupParameters": [
-           {
-              "parameter": "379",
-              "last_updated": "2013-08-05 18:49:37",
-              "cachegroup": "us-ca-sanjose"
-           },
-           {
-              "parameter": "380",
-              "last_updated": "2013-08-05 18:49:37",
-              "cachegroup": "us-ca-sanjose"
-           },
-           {
-              "parameter": "379",
-              "last_updated": "2013-08-05 18:49:37",
-              "cachegroup": "us-ma-woburn"
-           }
-        ]
-     },
-    }
-
-
-|
-
-**GET /api/1.1/cachegroups/:parameter_id/parameter/available**
-
-  Authentication Required: Yes
-
-  Role(s) Required: None
-
-  **Request Route Parameters**
-
-  +------------------+----------+-------------+
-  |       Name       | Required | Description |
-  +==================+==========+=============+
-  | ``parameter_id`` | yes      |             |
-  +------------------+----------+-------------+
-
-  **Response Properties**
-
-  +----------------------+--------+------------------------------------------------+
-  | Parameter            | Type   | Description                                    |
-  +======================+========+================================================+
-  |``name``              |        |                                                |
-  +----------------------+--------+------------------------------------------------+
-  |``id``                |        |                                                |
-  +----------------------+--------+------------------------------------------------+
-
-  **Response Example** ::
-
-    {
-     "response": [
-        {
-           "name": "dc-chicago",
-           "id": "21"
-        },
-        {
-           "name": "dc-cmc",
-           "id": "22"
-        }
-     ],
-    }
-
+``/api/1.1/cachegroups``
+========================
+Extract information about all Cache Groups.
+
+``GET``
+-------
+:Auth. Required: Yes
+:Roles Required: None
+:Response Type:  Array
+
+.. table:: Response Properties
+
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| Parameter                         | Type    | Description                                                              |
+	+===================================+=========+==========================================================================+
+	| ``id``                            | integer | Local unique identifier for the Cache Group                              |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``lastUpdated``                   | string  | The Time / Date this entry was last updated                              |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``latitude``                      | float   | Latitude for the Cache Group                                             |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``longitude``                     | float   | Longitude for the Cache Group                                            |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``name``                          | string  | The name of the Cache Group entry                                        |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``parentCachegroupId``            | integer | Parent cachegroup ID.                                                    |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``parentCachegroupName``          | string  | Parent cachegroup name.                                                  |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``secondaryParentCachegroupId``   | string  | Secondary parent cachegroup ID.                                          |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``secondaryParentCachegroupName`` | string  | Secondary parent cachegroup name.                                        |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``shortName``                     | string  | Abbreviation of the Cache Group Name                                     |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``typeId``                        | integer | Unique identifier for the 'Type' of Cache Group entry                    |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``typeName``                      | string  | The name of the type of Cache Group entry                                |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``fallbackToClosest``             | boolean | If 'true', Traffic Router will direct clients to peers of this Cache     |
+	|                                   |         | Group in the event that it becomes unavailable.                          |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+
+.. note:: The default value of ``fallbackToClosest`` is 'true', and if it is 'null' Traffic Control components will still interpret it as 'true'.
+
+.. code-block:: json
+	:caption: Response Example
+
+	{
+		"response": [
+			{
+				"id": "21",
+				"lastUpdated": "2012-09-25 20:27:28",
+				"latitude": "0",
+				"longitude": "0",
+				"name": "dc-chicago",
+				"parentCachegroupId": null,
+				"parentCachegroupName": null,
+				"secondaryParentCachegroupId": null,
+				"secondaryParentCachegroupName": null,
+				"shortName": "dcchi",
+				"typeName": "MID_LOC",
+				"typeId": "4",
+				"fallbackToClosest": null,
+				"localizationMethods": null
+			},
+			{
+				"id": "22",
+				"lastUpdated": "2012-09-25 20:27:28",
+				"latitude": "0",
+				"longitude": "0",
+				"name": "dc-chicago-1",
+				"parentCachegroupId": null,
+				"parentCachegroupName": null,
+				"secondaryParentCachegroupId": null,
+				"secondaryParentCachegroupName": null,
+				"shortName": "dcchi",
+				"typeName": "MID_LOC",
+				"typeId": "4",
+				"fallbackToClosest": null,
+				"localizationMethods": null
+			}
+		],
+	}
+
+``/api/1.1/cachegroups/trimmed``
+================================
+Extract just the names of all Cache Groups.
+
+``GET``
+-------
+:Auth. Required: Yes
+:Roles Required: None
+:Response Type:  Array
+
+.. table:: Response Properties
+
+	+----------------------+--------+------------------------------------------------+
+	| Parameter            | Type   | Description                                    |
+	+======================+========+================================================+
+	|``name``              | string | The name of the cache group                    |
+	+----------------------+--------+------------------------------------------------+
+
+.. code-block:: json
+	:caption: Response Example
+
+	{
+		"response": [
+			{
+				"name": "dc-chicago"
+			},
+			{
+				"name": "dc-cmc"
+			}
+		],
+	}
+
+``/api/1.1/cachegroups/:id``
+============================
+Extract information about a single Cache Group.
+
+``GET``
+-------
+
+:Auth. Required: Yes
+:Roles Required: None
+:Response Type:  Array
+
+.. table:: Request Path Parameters
+
+	+------------------+---------+---------------------------------------------------------------+
+	| Parameter        | Type    | Description                                                   |
+	+==================+=========+===============================================================+
+	| ``id``           | integer | The ID of a Cache Group                                       |
+	+------------------+---------+---------------------------------------------------------------+
+
+.. table:: Response Properties
+
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| Parameter                         | Type    | Description                                                              |
+	+===================================+=========+==========================================================================+
+	| ``id``                            | integer | Local unique identifier for the Cache Group                              |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``lastUpdated``                   | string  | The Time / Date this entry was last updated                              |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``latitude``                      | float   | Latitude for the Cache Group                                             |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``longitude``                     | float   | Longitude for the Cache Group                                            |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``name``                          | string  | The name of the Cache Group entry                                        |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``parentCachegroupId``            | integer | Parent cachegroup ID.                                                    |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``parentCachegroupName``          | string  | Parent cachegroup name.                                                  |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``secondaryParentCachegroupId``   | integer | Secondary parent cachegroup ID.                                          |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``secondaryParentCachegroupName`` | string  | Secondary parent cachegroup name.                                        |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``shortName``                     | string  | Abbreviation of the Cache Group Name                                     |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``typeId``                        | integer | Unique identifier for the 'Type' of Cache Group entry                    |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``typeName``                      | string  | The name of the type of Cache Group entry                                |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+	| ``fallbackToClosest``             | boolean | If 'true', Traffic Router will direct clients to peers of this Cache     |
+	|                                   |         | Group in the event that it becomes unavailable.                          |
+	+-----------------------------------+---------+--------------------------------------------------------------------------+
+
+.. note:: The default value of ``fallbackToClosest`` is 'true', and if it is 'null' Traffic Control components will still interpret it as 'true'.
+
+.. code-block:: json
+	:caption: Response Example
+
+	{
+		"response": [
+			{
+				"id": 21,
+				"lastUpdated": "2012-09-25 20:27:28",
+				"latitude": 0,
+				"longitude": 0,
+				"name": "dc-chicago",
+				"parentCachegroupId": null,
+				"parentCachegroupName": null,
+				"secondaryParentCachegroupId": null,
+				"secondaryParentCachegroupName": null,
+				"shortName": "dcchi",
+				"typeName": "MID_LOC",
+				"typeId": 4,
+				"fallbackToClosest": null,
+				"localizationMethods": null
+			}
+		],
+	}
+
+``/api/1.1/cachegroup/:parameter_id/parameter``
+===============================================
+Extract identifying information about all cachegroups with a specific parameter
+
+``GET``
+-------
+:Auth. Required: Yes
+:Roles Required: None
+:Response Type:  Object
+
+.. table:: Request Path Parameters
+
+	+------------------+----------+-----------------------+
+	|       Name       | Required | Description           |
+	+==================+==========+=======================+
+	| ``parameter_id`` | yes      | the ID of a parameter |
+	+------------------+----------+-----------------------+
+
+.. table:: Response Properties
+
+	+-----------------+---------------------------------+--------------------------------------------------------------------------------------------------------------------+
+	|    Parameter    |  Type                           | Description                                                                                                        |
+	+=================+=================================+====================================================================================================================+
+	| ``cachegroups`` | array of ``cachegroup`` objects | A list of all cachegroups with an associated parameter identifiable by the ``parameter_id`` request path parameter |
+	+-----------------+---------------------------------+--------------------------------------------------------------------------------------------------------------------+
+
+.. table:: ``cachegroup`` Properties
+
+	+----------------+---------+-----------------------------+
+	|    Parameter   |  Type   | Description                 |
+	+================+=========+=============================+
+	| ``name``       | string  | The name of the Cache Group |
+	+----------------+---------+-----------------------------+
+	| ``id``         | integer | The ID of the Cache Group   |
+	+----------------+---------+-----------------------------+
+
+.. code-block:: json
+	:caption: Response Example
+
+	{
+		"response": {
+			"cachegroups": [
+				{
+						"name": "dc-chicago",
+						"id": 21
+				},
+				{
+						"name": "dc-cmc",
+						"id": 22
+				}
+			]
+		},
+	}
+
+
+``/api/1.1/cachegroupparameters``
+=================================
+Extract information about parameters associated with cachegroups
+
+``GET``
+-------
+:Auth. Required: Yes
+:Roles Required: None
+:Response Type:  Object
+
+.. table:: Response Properties
+
+	+--------------------------+-------------------------------------------+-----------------------------------------+
+	|        Parameter         |  Type                                     |               Description               |
+	+==========================+===========================================+=========================================+
+	| ``cachegroupParameters`` | array of ``cachegroupParameter`` objects  | A collection of cache group parameters. |
+	+--------------------------+-------------------------------------------+-----------------------------------------+
+
+.. table:: ``cachegroupParameter`` Properties
+
+	+-------------------------+---------+-----------------------------------------+
+	| Parameter               | Type    | Description                             |
+	+=========================+=========+=========================================+
+	| ``parameter``           | integer | ID of the parameter                     |
+	+-------------------------+---------+-----------------------------------------+
+	| ``last_updated``        | string  | Date and time of last modification      |
+	+-------------------------+---------+-----------------------------------------+
+	| ``cachegroup``          | string  | Name of the Cache Group                 |
+	+-------------------------+---------+-----------------------------------------+
+
+.. code-block:: json
+	:caption: Response Example
+
+	{
+		"response": {
+			"cachegroupParameters": [
+				{
+						"parameter": "379",
+						"last_updated": "2013-08-05 18:49:37",
+						"cachegroup": "us-ca-sanjose"
+				},
+				{
+						"parameter": "380",
+						"last_updated": "2013-08-05 18:49:37",
+						"cachegroup": "us-ca-sanjose"
+				},
+				{
+						"parameter": "379",
+						"last_updated": "2013-08-05 18:49:37",
+						"cachegroup": "us-ma-woburn"
+				}
+			]
+		},
+	}
+
+
+``/api/1.1/cachegroups/:parameter_id/parameter/available``
+==========================================================
+Extract information about what Cache Groups are available to be assigned a specific parameter.
+
+``GET``
+-------
+:Auth. Required: Yes
+:Roles Required: None
+:Response Type:  Array
+
+.. table:: Request Route Parameters
+
+	+------------------+----------+-----------------------------------------------------------------+
+	|       Name       | Required | Description                                                     |
+	+==================+==========+=================================================================+
+	| ``parameter_id`` | yes      | The ID of the parameter for which availability is being checked |
+	+------------------+----------+-----------------------------------------------------------------+
+
+.. table:: Response Properties
+
+	+----------------------+---------+------------------------------------------------+
+	| Parameter            | Type    | Description                                    |
+	+======================+=========+================================================+
+	|``name``              | string  | The name of the Cache Group                    |
+	+----------------------+---------+------------------------------------------------+
+	|``id``                | integer | The ID of the Cache Group                      |
+	+----------------------+---------+------------------------------------------------+
+
+.. code-block:: json
+	:caption: Response Example
+
+	{
+		"response": [
+			{
+				"name": "dc-chicago",
+				"id": 21
+			},
+			{
+				"name": "dc-cmc",
+				"id": 22
+			}
+		],
+	}
diff --git a/docs/source/api/v11/cdn.rst b/docs/source/api/v11/cdn.rst
index f1fd2b4..6c3822d 100644
--- a/docs/source/api/v11/cdn.rst
+++ b/docs/source/api/v11/cdn.rst
@@ -1,333 +1,354 @@
-.. 
-.. 
+..
+..
 .. Licensed under the Apache License, Version 2.0 (the "License");
 .. you may not use this file except in compliance with the License.
 .. You may obtain a copy of the License 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.
-.. 
+..
 
 .. _to-api-v11-cdn-health:
 
-CDN 
-===
+***
+CDN
+***
 
 .. _to-api-v11-cdn-health-route:
 
-/api/1.1/cdns
-+++++++++++++
-
-**GET /api/1.1/cdns**
-
-  Authentication Required: Yes
-
-  Role(s) Required: None
-
-  **Response Properties**
-
-  +-------------------+--------+-------------------------------------------------+
-  |    Parameter      |  Type  |                   Description                   |
-  +===================+========+=================================================+
-  | ``id``            | string | CDN id.                                         |
-  +-------------------+--------+-------------------------------------------------+
-  | ``name``          | string | CDN name.                                       |
-  +-------------------+--------+-------------------------------------------------+
-  | ``dnssecEnabled`` |  bool  | DNSSEC enabled.                                 |
-  +-------------------+--------+-------------------------------------------------+
-  | ``lastUpdated``   | string |                                                 |
-  +-------------------+--------+-------------------------------------------------+
-
-  **Response Example** ::
-
-    {
-     "response": [
-           {
-              "id": "1"
-              "name": "over-the-top",
-              "dnssecEnabled": false,
-              "lastUpdated": "2014-10-02 08:22:43"
-           },
-           {
-              "id": "2"
-              "name": "cdn2",
-              "dnssecEnabled": true,
-              "lastUpdated": "2014-10-02 08:22:43"
-           }
-        ]
-    }
-
-|
-
-**GET /api/1.1/cdns/:id**
-
-  Authentication Required: Yes
-
-  Role(s) Required: None
-
-  **Request Route Parameters**
-
-  +-----------+----------+---------------------------------------------+
-  |   Name    | Required |                Description                  |
-  +===========+==========+=============================================+
-  |   ``id``  |   yes    | CDN id.                                     |
-  +-----------+----------+---------------------------------------------+
-
-  **Response Properties**
-
-  +-------------------+--------+-------------------------------------------------+
-  |    Parameter      |  Type  |                   Description                   |
-  +===================+========+=================================================+
-  | ``id``            | string | CDN id.                                         |
-  +-------------------+--------+-------------------------------------------------+
-  | ``name``          | string | CDN name.                                       |
-  +-------------------+--------+-------------------------------------------------+
-  | ``dnssecEnabled`` |  bool  | DNSSEC enabled.                                 |
-  +-------------------+--------+-------------------------------------------------+
-  | ``lastUpdated``   | string |                                                 |
-  +-------------------+--------+-------------------------------------------------+
-
-  **Response Example** ::
-
-    {
-     "response": [
-           {
-              "id": "2"
-              "name": "cdn2",
-              "dnssecEnabled": false,
-              "lastUpdated": "2014-10-02 08:22:43"
-           }
-        ]
-    }
-
-|
-
-**GET /api/1.1/cdns/name/:name**
-
-  Authentication Required: Yes
-
-  Role(s) Required: None
-
-  **Request Route Parameters**
-
-  +-----------+----------+---------------------------------------------+
-  |   Name    | Required |                Description                  |
-  +===========+==========+=============================================+
-  |  ``name`` |   yes    | CDN name.                                   |
-  +-----------+----------+---------------------------------------------+
-
-  **Response Properties**
-
-  +-------------------+--------+-------------------------------------------------+
-  |    Parameter      |  Type  |                   Description                   |
-  +===================+========+=================================================+
-  | ``id``            | string | CDN id.                                         |
-  +-------------------+--------+-------------------------------------------------+
-  | ``name``          | string | CDN name.                                       |
-  +-------------------+--------+-------------------------------------------------+
-  | ``dnssecEnabled`` |  bool  | DNSSEC enabled.                                 |
-  +-------------------+--------+-------------------------------------------------+
-  | ``lastUpdated``   | string |                                                 |
-  +-------------------+--------+-------------------------------------------------+
-
-  **Response Example** ::
-
-    {
-     "response": [
-           {
-              "id": "2"
-              "name": "cdn2",
-              "dnssecEnabled": false,
-              "lastUpdated": "2014-10-02 08:22:43"
-           }
-        ]
-    }
-
-|
-
-Health
-++++++
-
-**GET /api/1.1/cdns/health**
-
-  Retrieves the health of all locations (cache groups) for all CDNs.
-
-  Authentication Required: Yes
-
-  Role(s) Required: None
-
-  **Response Properties**
-
-  +------------------+--------+-------------------------------------------------+
-  |    Parameter     |  Type  |                   Description                   |
-  +==================+========+=================================================+
-  | ``totalOnline``  | int    | Total number of online caches across all CDNs.  |
-  +------------------+--------+-------------------------------------------------+
-  | ``totalOffline`` | int    | Total number of offline caches across all CDNs. |
-  +------------------+--------+-------------------------------------------------+
-  | ``cachegroups``  | array  | A collection of cache groups.                   |
-  +------------------+--------+-------------------------------------------------+
-  | ``>online``      | int    | The number of online caches for the cache group |
-  +------------------+--------+-------------------------------------------------+
-  | ``>offline``     | int    | The number of offline caches for the cache      |
-  |                  |        | group.                                          |
-  +------------------+--------+-------------------------------------------------+
-  | ``>name``        | string | Cache group name.                               |
-  +------------------+--------+-------------------------------------------------+
-
-  **Response Example** ::
-
-    {
-     "response": {
-        "totalOnline": 148,
-        "totalOffline": 0,
-        "cachegroups": [
-           {
-              "online": 8,
-              "offline": 0,
-              "name": "us-co-denver"
-           },
-           {
-              "online": 7,
-              "offline": 0,
-              "name": "us-de-newcastle"
-           }
-        ]
-     },
-    }
-
-
-|
+``/api/1.1/cdns``
+=================
+Extract information about all CDNs
+
+``GET``
+-------
+:Auth. Required: Yes
+:Roles Required: None
+:Response Type:  Array
+
+.. table:: Response Properties
+
+	+-------------------+---------+------------------------------------------------------------+
+	|    Parameter      |  Type   |                         Description                        |
+	+===================+=========+============================================================+
+	| ``id``            | integer | The ID of the CDN                                          |
+	+-------------------+---------+------------------------------------------------------------+
+	| ``name``          | string  | The name of the CDN                                        |
+	+-------------------+---------+------------------------------------------------------------+
+	| ``dnssecEnabled`` | boolean | 'true' if DNSSEC is enabled on this CDN, otherwise 'false' |
+	+-------------------+---------+------------------------------------------------------------+
+	| ``lastUpdated``   | string  | Date and time when the CDN was last modified               |
+	+-------------------+---------+------------------------------------------------------------+
+	| ``domainName``    | string  | Top Level Domain name within which this CDN operates       |
+	+-------------------+---------+------------------------------------------------------------+
+
+.. code-block:: json
+	:caption: Response Example
+
+	{
+		"response": [
+			{
+				"id": 1,
+				"name": "over-the-top",
+				"dnssecEnabled": false,
+				"lastUpdated": "2014-10-02 08:22:43",
+				"domainName": "top.comcast.net"
+			},
+			{
+				"id": 2,
+				"name": "cdn2",
+				"dnssecEnabled": true,
+				"lastUpdated": "2014-10-02 08:22:43",
+				"domainName": "2.comcast.net"
+			}
+		]
+	}
+
+``/api/1.1/cdns/:id``
+=====================
+Extract information about a specific CDN.
+
+``GET``
+-------
+:Auth. Required: Yes
+:Roles Required: None
+:Response Type:  Array
+
+.. table:: Request Path Parameters
+
+	+-----------+----------+---------------------------------------------+
+	|   Name    | Required |                Description                  |
+	+===========+==========+=============================================+
+	|   ``id``  |   yes    | ID of the CDN to inspect                    |
+	+-----------+----------+---------------------------------------------+
+
+.. table:: Response Properties
+
+	+-------------------+---------+------------------------------------------------------------+
+	|    Parameter      |  Type   |                         Description                        |
+	+===================+=========+============================================================+
+	| ``id``            | integer | The ID of the CDN                                          |
+	+-------------------+---------+------------------------------------------------------------+
+	| ``name``          | string  | The name of the CDN                                        |
+	+-------------------+---------+------------------------------------------------------------+
+	| ``dnssecEnabled`` | boolean | 'true' if DNSSEC is enabled on this CDN, otherwise 'false' |
+	+-------------------+---------+------------------------------------------------------------+
+	| ``lastUpdated``   | string  | Date and time when the CDN was last modified               |
+	+-------------------+---------+------------------------------------------------------------+
+	| ``domainName``    | string  | Top Level Domain name within which this CDN operates       |
+	+-------------------+---------+------------------------------------------------------------+
+
+.. code-block::
+	:caption: Response Example
+
+	{
+		"response": [
+			{
+				"id": 2,
+				"name": "cdn2",
+				"dnssecEnabled": false,
+				"lastUpdated": "2014-10-02 08:22:43",
+				"domainName": "2.comcast.net"
+			}
+		]
+	}
+
+``/api/1.1/cdns/name/:name``
+============================
+Extract information about one or more CDNs, identified by name.
+
+``GET``
+-------
+:Auth. Required: Yes
+:Roles Required: None
+:Response Type:  Array
+
+.. table:: Request Path Parameters
+
+	+-----------+----------+---------------------------------------------+
+	|   Name    | Required |                Description                  |
+	+===========+==========+=============================================+
+	|  ``name`` |   yes    | The name of the CDN(s) to be inspected      |
+	+-----------+----------+---------------------------------------------+
+
+.. table:: Response Properties
+
+	+-------------------+---------+------------------------------------------------------------+
+	|    Parameter      |  Type   |                         Description                        |
+	+===================+=========+============================================================+
+	| ``id``            | integer | The ID of the CDN                                          |
+	+-------------------+---------+------------------------------------------------------------+
+	| ``name``          | string  | The name of the CDN                                        |
+	+-------------------+---------+------------------------------------------------------------+
+	| ``dnssecEnabled`` | boolean | 'true' if DNSSEC is enabled on this CDN, otherwise 'false' |
+	+-------------------+---------+------------------------------------------------------------+
+	| ``lastUpdated``   | string  | Date and time when the CDN was last modified               |
+	+-------------------+---------+------------------------------------------------------------+
+	| ``domainName``    | string  | Top Level Domain name within which this CDN operates       |
+	+-------------------+---------+------------------------------------------------------------+
+
+.. code-block:: json
+	:caption: Response Example
+
+	{
+		"response": [
+			{
+				"id": 2,
+				"name": "cdn2",
+				"dnssecEnabled": false,
+				"lastUpdated": "2014-10-02 08:22:43",
+				"domainName": "2.comcast.net"
+			}
+		]
+	}
+
+``/api/1.1/cdns/health``
+========================
+Extract health information from all Cache Groups across all CDNs
+
+.. seealso:: :ref:`health-proto`
+
+``GET``
+-------
+:Auth. Required: Yes
+:Roles Required: None
+:Response Type:  Object
+
+.. table:: Response Properties
+
+	+------------------+---------------------------------+-------------------------------------------------+
+	|    Parameter     |  Type                           |                   Description                   |
+	+==================+=================================+=================================================+
+	| ``totalOnline``  | integer                         | Total number of ONLINE caches across all CDNs   |
+	+------------------+---------------------------------+-------------------------------------------------+
+	| ``totalOffline`` | integer                         | Total number of OFFLINE caches across all CDNs  |
+	+------------------+---------------------------------+-------------------------------------------------+
+	| ``cachegroups``  | array of ``cachegroup`` objects | A breakdown of health by Cache Group            |
+	+------------------+---------------------------------+-------------------------------------------------+
+
+.. table:: ``cachegroup`` Properties
+
+	+------------------+---------+---------------------------------------------------+
+	|     Parameter    | Type    |                  Description                      |
+	+==================+=========+===================================================+
+	| ``online``       | integer | The number of ONLINE caches in the Cache Group    |
+	+------------------+---------+---------------------------------------------------+
+	| ``offline``      | integer | The number of OFFLINE caches in the Cache Group   |
+	+------------------+---------+---------------------------------------------------+
+	| ``name``         | string  | The name of the Cache Group                       |
+	+------------------+---------+---------------------------------------------------+
+
+.. code-block:: json
+	:caption: Response Example
+
+	{
+		"response": {
+			"totalOnline": 148,
+			"totalOffline": 0,
+			"cachegroups": [
+				{
+					"online": 8,
+					"offline": 0,
+					"name": "us-co-denver"
+				},
+				{
+					"online": 7,
+					"offline": 0,
+					"name": "us-de-newcastle"
+				}
+			]
+		},
+	}
 
 **GET /api/1.1/cdns/:name/health**
 
-  Retrieves the health of all locations (cache groups) for a given CDN.
-
-  Authentication Required: Yes
-
-  Role(s) Required: None
-
-  **Request Route Parameters**
-
-  +-----------------+----------+---------------------------------------------------+
-  | Name            | Required | Description                                       |
-  +=================+==========+===================================================+
-  |``name``         | yes      |                                                   |
-  +-----------------+----------+---------------------------------------------------+
-
-  **Response Properties**
-
-  +------------------+--------+-------------------------------------------------+
-  |    Parameter     |  Type  |                   Description                   |
-  +==================+========+=================================================+
-  | ``totalOnline``  | int    | Total number of online caches across the        |
-  |                  |        | specified CDN.                                  |
-  +------------------+--------+-------------------------------------------------+
-  | ``totalOffline`` | int    | Total number of offline caches across the       |
-  |                  |        | specified CDN.                                  |
-  +------------------+--------+-------------------------------------------------+
-  | ``cachegroups``  | array  | A collection of cache groups.                   |
-  +------------------+--------+-------------------------------------------------+
-  | ``>online``      | int    | The number of online caches for the cache group |
-  +------------------+--------+-------------------------------------------------+
-  | ``>offline``     | int    | The number of offline caches for the cache      |
-  |                  |        | group.                                          |
-  +------------------+--------+-------------------------------------------------+
-  | ``>name``        | string | Cache group name.                               |
-  +------------------+--------+-------------------------------------------------+
-
-  **Response Example** ::
-
-    {
-     "response": {
-        "totalOnline": 148,
-        "totalOffline": 0,
-        "cachegroups": [
-           {
-              "online": 8,
-              "offline": 0,
-              "name": "us-co-denver"
-           },
-           {
-              "online": 7,
-              "offline": 0,
-              "name": "us-de-newcastle"
-           }
-        ]
-     },
-    }
+	Retrieves the health of all locations (cache groups) for a given CDN.
+
+	Authentication Required: Yes
+
+	Role(s) Required: None
+
+	**Request Path Parameters**
+
+	+-----------------+----------+---------------------------------------------------+
+	| Name            | Required | Description                                       |
+	+=================+==========+===================================================+
+	|``name``         | yes      |                                                   |
+	+-----------------+----------+---------------------------------------------------+
+
+	**Response Properties**
+
+	+------------------+--------+-------------------------------------------------+
+	|    Parameter     |  Type  |                   Description                   |
+	+==================+========+=================================================+
+	| ``totalOnline``  | int    | Total number of online caches across the        |
+	|                  |        | specified CDN.                                  |
+	+------------------+--------+-------------------------------------------------+
+	| ``totalOffline`` | int    | Total number of offline caches across the       |
+	|                  |        | specified CDN.                                  |
+	+------------------+--------+-------------------------------------------------+
+	| ``cachegroups``  | array  | A collection of cache groups.                   |
+	+------------------+--------+-------------------------------------------------+
+	| ``>online``      | int    | The number of online caches for the cache group |
+	+------------------+--------+-------------------------------------------------+
+	| ``>offline``     | int    | The number of offline caches for the cache      |
+	|                  |        | group.                                          |
+	+------------------+--------+-------------------------------------------------+
+	| ``>name``        | string | Cache group name.                               |
+	+------------------+--------+-------------------------------------------------+
+
+	**Response Example** ::
+
+		{
+		 "response": {
+				"totalOnline": 148,
+				"totalOffline": 0,
+				"cachegroups": [
+					 {
+							"online": 8,
+							"offline": 0,
+							"name": "us-co-denver"
+					 },
+					 {
+							"online": 7,
+							"offline": 0,
+							"name": "us-de-newcastle"
+					 }
+				]
+		 },
+		}
 
 |
 
 **GET /api/1.1/cdns/usage/overview**
 
-  Retrieves the high-level CDN usage metrics.
+	Retrieves the high-level CDN usage metrics.
 
-  Authentication Required: Yes
+	Authentication Required: Yes
 
-  Role(s) Required: None
+	Role(s) Required: None
 
-  **Response Properties**
+	**Response Properties**
 
-  +----------------------+--------+------------------------------------------------+
-  | Parameter            | Type   | Description                                    |
-  +======================+========+================================================+
-  |``currentGbps``       | number |                                                |
-  +----------------------+--------+------------------------------------------------+
-  |``tps``               | int    |                                                |
-  +----------------------+--------+------------------------------------------------+
-  |``maxGbps``           | int    |                                                |
-  +----------------------+--------+------------------------------------------------+
+	+----------------------+--------+------------------------------------------------+
+	| Parameter            | Type   | Description                                    |
+	+======================+========+================================================+
+	|``currentGbps``       | number |                                                |
+	+----------------------+--------+------------------------------------------------+
+	|``tps``               | int    |                                                |
+	+----------------------+--------+------------------------------------------------+
+	|``maxGbps``           | int    |                                                |
+	+----------------------+--------+------------------------------------------------+
 
 
-  **Response Example** ::
+	**Response Example** ::
 
-    {
-         "response": {
-            "currentGbps": 149.368167,
-            "tps": 36805,
-            "maxGbps": 3961
-         }
-    }
+		{
+				 "response": {
+						"currentGbps": 149.368167,
+						"tps": 36805,
+						"maxGbps": 3961
+				 }
+		}
 
 
 **GET /api/1.1/cdns/capacity**
 
-  Retrieves the aggregate capacity percentages of all locations (cache groups) for a given CDN.
+	Retrieves the aggregate capacity percentages of all locations (cache groups) for a given CDN.
 
-  Authentication Required: Yes
+	Authentication Required: Yes
 
-  Role(s) Required: None
+	Role(s) Required: None
 
-  **Response Properties**
+	**Response Properties**
 
-  +----------------------+--------+------------------------------------------------+
-  | Parameter            | Type   | Description                                    |
-  +======================+========+================================================+
-  |``availablePercent``  | number |                                                |
-  +----------------------+--------+------------------------------------------------+
-  |``unavailablePercent``| number |                                                |
-  +----------------------+--------+------------------------------------------------+
-  |``utilizedPercent``   | number |                                                |
-  +----------------------+--------+------------------------------------------------+
-  |``maintenancePercent``| number |                                                |
-  +----------------------+--------+------------------------------------------------+
+	+----------------------+--------+------------------------------------------------+
+	| Parameter            | Type   | Description                                    |
+	+======================+========+================================================+
+	|``availablePercent``  | number |                                                |
+	+----------------------+--------+------------------------------------------------+
+	|``unavailablePercent``| number |                                                |
+	+----------------------+--------+------------------------------------------------+
+	|``utilizedPercent``   | number |                                                |
+	+----------------------+--------+------------------------------------------------+
+	|``maintenancePercent``| number |                                                |
+	+----------------------+--------+------------------------------------------------+
 
-  **Response Example** ::
+	**Response Example** ::
 
-    {
-         "response": {
-            "availablePercent": 89.0939840205533,
-            "unavailablePercent": 0,
-            "utilizedPercent": 10.9060020300395,
-            "maintenancePercent": 0.0000139494071146245
-         }
-    }
+		{
+				 "response": {
+						"availablePercent": 89.0939840205533,
+						"unavailablePercent": 0,
+						"utilizedPercent": 10.9060020300395,
+						"maintenancePercent": 0.0000139494071146245
+				 }
+		}
 
 |
 
@@ -338,42 +359,42 @@ Routing
 
 **GET /api/1.1/cdns/routing**
 
-  Retrieves the aggregate routing percentages of all locations (cache groups) for a given CDN.
-
-  Authentication Required: Yes
-
-  Role(s) Required: None
-
-  **Response Properties**
-
-  +-----------------+--------+-----------------------------------------+
-  |    Parameter    |  Type  |               Description               |
-  +=================+========+=========================================+
-  | ``staticRoute`` | number | Used pre-configured DNS entries.        |
-  +-----------------+--------+-----------------------------------------+
-  | ``miss``        | number | No location available for client IP.    |
-  +-----------------+--------+-----------------------------------------+
-  | ``geo``         | number | Used 3rd party geo-IP mapping.          |
-  +-----------------+--------+-----------------------------------------+
-  | ``err``         | number | Error localizing client IP.             |
-  +-----------------+--------+-----------------------------------------+
-  | ``cz``          | number | Used Coverage Zone   geo-IP mapping.    |
-  +-----------------+--------+-----------------------------------------+
-  | ``dsr``         | number | Overflow traffic sent to secondary CDN. |
-  +-----------------+--------+-----------------------------------------+
-
-  **Response Example** ::
-
-   {
-         "response": {
-            "staticRoute": 0,
-            "miss": 0,
-            "geo": 37.8855391018869,
-            "err": 0,
-            "cz": 62.1144608981131,
-            "dsr": 0
-         }
-    }
+	Retrieves the aggregate routing percentages of all locations (cache groups) for a given CDN.
+
+	Authentication Required: Yes
+
+	Role(s) Required: None
+
+	**Response Properties**
+
+	+-----------------+--------+-----------------------------------------+
+	|    Parameter    |  Type  |               Description               |
+	+=================+========+=========================================+
+	| ``staticRoute`` | number | Used pre-configured DNS entries.        |
+	+-----------------+--------+-----------------------------------------+
+	| ``miss``        | number | No location available for client IP.    |
+	+-----------------+--------+-----------------------------------------+
+	| ``geo``         | number | Used 3rd party geo-IP mapping.          |
+	+-----------------+--------+-----------------------------------------+
+	| ``err``         | number | Error localizing client IP.             |
+	+-----------------+--------+-----------------------------------------+
+	| ``cz``          | number | Used Coverage Zone   geo-IP mapping.    |
+	+-----------------+--------+-----------------------------------------+
+	| ``dsr``         | number | Overflow traffic sent to secondary CDN. |
+	+-----------------+--------+-----------------------------------------+
+
+	**Response Example** ::
+
+	 {
+				 "response": {
+						"staticRoute": 0,
+						"miss": 0,
+						"geo": 37.8855391018869,
+						"err": 0,
+						"cz": 62.1144608981131,
+						"dsr": 0
+				 }
+		}
 
 |
 
@@ -386,85 +407,85 @@ Metrics
 
 *Note: this route is not currently implemented in Traffic Ops. See https://github.com/apache/trafficcontrol/issues/2309*
 
-  Retrieves edge metrics of one or all locations (cache groups).
-
-  Authentication Required: Yes
-
-  Role(s) Required: None
-
-  **Request Route Parameters**
-
-  +-----------------+----------+---------------------------+
-  |       Name      | Required |        Description        |
-  +=================+==========+===========================+
-  | ``metric_type`` | yes      | ooff, origin_tps          |
-  +-----------------+----------+---------------------------+
-  | ``start``       | yes      | UNIX time, yesterday, now |
-  +-----------------+----------+---------------------------+
-  | ``end``         | yes      | UNIX time, yesterday, now |
-  +-----------------+----------+---------------------------+
-
-  **Response Properties**
-
-  +---------------------+--------+-------------+
-  |      Parameter      |  Type  | Description |
-  +=====================+========+=============+
-  | ``stats``           | hash   |             |
-  +---------------------+--------+-------------+
-  | ``>count``          | string |             |
-  +---------------------+--------+-------------+
-  | ``>98thPercentile`` | string |             |
-  +---------------------+--------+-------------+
-  | ``>min``            | string |             |
-  +---------------------+--------+-------------+
-  | ``>max``            | string |             |
-  +---------------------+--------+-------------+
-  | ``>5thPercentile``  | string |             |
-  +---------------------+--------+-------------+
-  | ``>95thPercentile`` | string |             |
-  +---------------------+--------+-------------+
-  | ``>mean``           | string |             |
-  +---------------------+--------+-------------+
-  | ``>sum``            | string |             |
-  +---------------------+--------+-------------+
-  | ``data``            | array  |             |
-  +---------------------+--------+-------------+
-  | ``>time``           | int    |             |
-  +---------------------+--------+-------------+
-  | ``>value``          | number |             |
-  +---------------------+--------+-------------+
-  | ``label``           | string |             |
-  +---------------------+--------+-------------+
-
-  **Response Example** ::
-
-    {
-     "response": [
-        {
-           "stats": {
-              "count": 1,
-              "98thPercentile": 1668.03,
-              "min": 1668.03,
-              "max": 1668.03,
-              "5thPercentile": 1668.03,
-              "95thPercentile": 1668.03,
-              "mean": 1668.03,
-              "sum": 1668.03
-           },
-           "data": [
-              [
-                 1425135900000,
-                 1668.03
-              ],
-              [
-                 1425136200000,
-                 null
-              ]
-           ],
-           "label": "Origin TPS"
-        }
-     ],
-    }
+	Retrieves edge metrics of one or all locations (cache groups).
+
+	Authentication Required: Yes
+
+	Role(s) Required: None
+
+	**Request Path Parameters**
+
+	+-----------------+----------+---------------------------+
+	|       Name      | Required |        Description        |
+	+=================+==========+===========================+
+	| ``metric_type`` | yes      | ooff, origin_tps          |
+	+-----------------+----------+---------------------------+
+	| ``start``       | yes      | UNIX time, yesterday, now |
+	+-----------------+----------+---------------------------+
+	| ``end``         | yes      | UNIX time, yesterday, now |
+	+-----------------+----------+---------------------------+
+
+	**Response Properties**
+
+	+---------------------+--------+-------------+
+	|      Parameter      |  Type  | Description |
+	+=====================+========+=============+
+	| ``stats``           | hash   |             |
+	+---------------------+--------+-------------+
+	| ``>count``          | string |             |
+	+---------------------+--------+-------------+
+	| ``>98thPercentile`` | string |             |
+	+---------------------+--------+-------------+
+	| ``>min``            | string |             |
+	+---------------------+--------+-------------+
+	| ``>max``            | string |             |
+	+---------------------+--------+-------------+
+	| ``>5thPercentile``  | string |             |
+	+---------------------+--------+-------------+
+	| ``>95thPercentile`` | string |             |
+	+---------------------+--------+-------------+
+	| ``>mean``           | string |             |
+	+---------------------+--------+-------------+
+	| ``>sum``            | string |             |
+	+---------------------+--------+-------------+
+	| ``data``            | array  |             |
+	+---------------------+--------+-------------+
+	| ``>time``           | int    |             |
+	+---------------------+--------+-------------+
+	| ``>value``          | number |             |
+	+---------------------+--------+-------------+
+	| ``label``           | string |             |
+	+---------------------+--------+-------------+
+
+	**Response Example** ::
+
+		{
+		 "response": [
+				{
+					 "stats": {
+							"count": 1,
+							"98thPercentile": 1668.03,
+							"min": 1668.03,
+							"max": 1668.03,
+							"5thPercentile": 1668.03,
+							"95thPercentile": 1668.03,
+							"mean": 1668.03,
+							"sum": 1668.03
+					 },
+					 "data": [
+							[
+								 1425135900000,
+								 1668.03
+							],
+							[
+								 1425136200000,
+								 null
+							]
+					 ],
+					 "label": "Origin TPS"
+				}
+		 ],
+		}
 
 |
 
@@ -475,46 +496,46 @@ Domains
 
 **GET /api/1.1/cdns/domains**
 
-  Authentication Required: Yes
-
-  Role(s) Required: None
-
-  **Response Properties**
-
-  +----------------------+--------+------------------------------------------------+
-  | Parameter            | Type   | Description                                    |
-  +======================+========+================================================+
-  |``profileId``         | string |                                                |
-  +----------------------+--------+------------------------------------------------+
-  |``parameterId``       | string |                                                |
-  +----------------------+--------+------------------------------------------------+
-  |``profileName``       | string |                                                |
-  +----------------------+--------+------------------------------------------------+
-  |``profileDescription``| string |                                                |
-  +----------------------+--------+------------------------------------------------+
-  |``domainName``        | string |                                                |
-  +----------------------+--------+------------------------------------------------+
-
-  **Response Example** ::
-
-    {
-     "response": [
-        {
-           "profileId": "5",
-           "parameterId": "404",
-           "profileName": "CR_FOO",
-           "profileDescription": "Content Router for foo.domain.net",
-           "domainName": "foo.domain.net"
-        },
-        {
-           "profileId": "8",
-           "parameterId": "405",
-           "profileName": "CR_BAR",
-           "profileDescription": "Content Router for bar.domain.net",
-           "domainName": "bar.domain.net"
-        }
-     ],
-    }
+	Authentication Required: Yes
+
+	Role(s) Required: None
+
+	**Response Properties**
+
+	+----------------------+--------+------------------------------------------------+
+	| Parameter            | Type   | Description                                    |
+	+======================+========+================================================+
+	|``profileId``         | string |                                                |
+	+----------------------+--------+------------------------------------------------+
+	|``parameterId``       | string |                                                |
+	+----------------------+--------+------------------------------------------------+
+	|``profileName``       | string |                                                |
+	+----------------------+--------+------------------------------------------------+
+	|``profileDescription``| string |                                                |
+	+----------------------+--------+------------------------------------------------+
+	|``domainName``        | string |                                                |
+	+----------------------+--------+------------------------------------------------+
+
+	**Response Example** ::
+
+		{
+		 "response": [
+				{
+					 "profileId": "5",
+					 "parameterId": "404",
+					 "profileName": "CR_FOO",
+					 "profileDescription": "Content Router for foo.domain.net",
+					 "domainName": "foo.domain.net"
+				},
+				{
+					 "profileId": "8",
+					 "parameterId": "405",
+					 "profileName": "CR_BAR",
+					 "profileDescription": "Content Router for bar.domain.net",
+					 "domainName": "bar.domain.net"
+				}
+		 ],
+		}
 
 |
 
@@ -525,390 +546,390 @@ Topology
 
 **GET /api/1.1/cdns/:cdn_name/configs**
 
-  Retrieves CDN config information based upon the provided cdn name.
+	Retrieves CDN config information based upon the provided cdn name.
 
-  Authentication Required: Yes
+	Authentication Required: Yes
 
-  Role(s) Required: None
+	Role(s) Required: None
 
-  **Request Route Parameters**
+	**Request Path Parameters**
 
-  +--------------+----------+-----------------------+
-  |     Name     | Required |      Description      |
-  +==============+==========+=======================+
-  | ``cdn_name`` | yes      | Your cdn name or, all |
-  +--------------+----------+-----------------------+
+	+--------------+----------+-----------------------+
+	|     Name     | Required |      Description      |
+	+==============+==========+=======================+
+	| ``cdn_name`` | yes      | Your cdn name or, all |
+	+--------------+----------+-----------------------+
 
-  **Response Properties**
+	**Response Properties**
 
-  +-----------------------+--------+-----------------------------------------------+
-  | Parameter             | Type   | Description                                   |
-  +=======================+========+===============================================+
-  |``id``                 | string |                                               |
-  +-----------------------+--------+-----------------------------------------------+
-  |``value``              | string |                                               |
-  +-----------------------+--------+-----------------------------------------------+
-  |``name``               | string |                                               |
-  +-----------------------+--------+-----------------------------------------------+
-  |``config_file``        | string |                                               |
-  +-----------------------+--------+-----------------------------------------------+
+	+-----------------------+--------+-----------------------------------------------+
+	| Parameter             | Type   | Description                                   |
+	+=======================+========+===============================================+
+	|``id``                 | string |                                               |
+	+-----------------------+--------+-----------------------------------------------+
+	|``value``              | string |                                               |
+	+-----------------------+--------+-----------------------------------------------+
+	|``name``               | string |                                               |
+	+-----------------------+--------+-----------------------------------------------+
+	|``config_file``        | string |                                               |
+	+-----------------------+--------+-----------------------------------------------+
 
-  **Response Example** ::
+	**Response Example** ::
 
-    TBD
+		TBD
 
 |
 
 **GET /api/1.1/cdns/:name/configs/monitoring**
 
-  Retrieves CDN monitoring information.
-
-  Authentication Required: Yes
-
-  Role(s) Required: None
-
-  **Request Route Parameters**
-
-  +----------+----------+-------------+
-  |   Name   | Required | Description |
-  +==========+==========+=============+
-  | ``name`` | yes      |  CDN name   |
-  +----------+----------+-------------+
-
-  **Response Properties**
-
-  +-------------------------------------------------+--------+--------------------+
-  |                    Parameter                    |  Type  |    Description     |
-  +=================================================+========+====================+
-  | ``trafficServers``                              | array  | A collection of    |
-  |                                                 |        | Traffic Servers.   |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>profile``                                    | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>ip``                                         | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>status``                                     | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>cacheGroup``                                 | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>ip6``                                        | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>port``                                       | int    |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>hostName``                                   | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>fqdn``                                       | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>interfaceName``                              | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>type``                                       | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>hashId``                                     | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``cacheGroups``                                 | array  | A collection of    |
-  |                                                 |        | cache groups.      |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>coordinates``                                | hash   |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>>longitude``                                 | number |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>>latitude``                                  | number |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>name``                                       | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``config``                                      | hash   |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>hack.ttl``                                   | int    |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>tm.healthParams.polling.url``                | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>tm.dataServer.polling.url``                  | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>health.timepad``                             | int    |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>tm.polling.interval``                        | int    |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>health.threadPool``                          | int    |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>health.polling.interval``                    | int    |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>health.event-count``                         | int    |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>tm.crConfig.polling.url``                    | number |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>CDN_name``                                   | number |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``trafficMonitors``                             | array  | A collection of    |
-  |                                                 |        | Traffic Monitors.  |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>profile``                                    | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>location``                                   | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>ip``                                         | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>status``                                     | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>ip6``                                        | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>port``                                       | int    |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>hostName``                                   | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>fqdn``                                       | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``deliveryServices``                            | array  | A collection of    |
-  |                                                 |        | delivery services. |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>xmlId``                                      | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>totalTpsThreshold``                          | int    |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>status``                                     | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>totalKbpsThreshold``                         | int    |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``profiles``                                    | array  | A collection of    |
-  |                                                 |        | profiles.          |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>parameters``                                 | hash   |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>>health.connection.timeout``                 | int    |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>>health.polling.url``                        | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>>health.threshold.queryTime``                | int    |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>>history.count``                             | int    |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>>health.threshold.availableBandwidthInKbps`` | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>>health.threshold.loadavg``                  | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>name``                                       | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-  | ``>type``                                       | string |                    |
-  +-------------------------------------------------+--------+--------------------+
-
-  **Response Example**
-  ::
-
-    TBD
+	Retrieves CDN monitoring information.
+
+	Authentication Required: Yes
+
+	Role(s) Required: None
+
+	**Request Path Parameters**
+
+	+----------+----------+-------------+
+	|   Name   | Required | Description |
+	+==========+==========+=============+
+	| ``name`` | yes      |  CDN name   |
+	+----------+----------+-------------+
+
+	**Response Properties**
+
+	+-------------------------------------------------+--------+--------------------+
+	|                    Parameter                    |  Type  |    Description     |
+	+=================================================+========+====================+
+	| ``trafficServers``                              | array  | A collection of    |
+	|                                                 |        | Traffic Servers.   |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>profile``                                    | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>ip``                                         | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>status``                                     | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>cacheGroup``                                 | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>ip6``                                        | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>port``                                       | int    |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>hostName``                                   | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>fqdn``                                       | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>interfaceName``                              | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>type``                                       | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>hashId``                                     | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``cacheGroups``                                 | array  | A collection of    |
+	|                                                 |        | cache groups.      |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>coordinates``                                | hash   |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>>longitude``                                 | number |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>>latitude``                                  | number |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>name``                                       | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``config``                                      | hash   |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>hack.ttl``                                   | int    |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>tm.healthParams.polling.url``                | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>tm.dataServer.polling.url``                  | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>health.timepad``                             | int    |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>tm.polling.interval``                        | int    |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>health.threadPool``                          | int    |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>health.polling.interval``                    | int    |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>health.event-count``                         | int    |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>tm.crConfig.polling.url``                    | number |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>CDN_name``                                   | number |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``trafficMonitors``                             | array  | A collection of    |
+	|                                                 |        | Traffic Monitors.  |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>profile``                                    | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>location``                                   | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>ip``                                         | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>status``                                     | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>ip6``                                        | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>port``                                       | int    |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>hostName``                                   | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>fqdn``                                       | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``deliveryServices``                            | array  | A collection of    |
+	|                                                 |        | delivery services. |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>xmlId``                                      | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>totalTpsThreshold``                          | int    |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>status``                                     | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>totalKbpsThreshold``                         | int    |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``profiles``                                    | array  | A collection of    |
+	|                                                 |        | profiles.          |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>parameters``                                 | hash   |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>>health.connection.timeout``                 | int    |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>>health.polling.url``                        | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>>health.threshold.queryTime``                | int    |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>>history.count``                             | int    |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>>health.threshold.availableBandwidthInKbps`` | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>>health.threshold.loadavg``                  | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>name``                                       | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+	| ``>type``                                       | string |                    |
+	+-------------------------------------------------+--------+--------------------+
+
+	**Response Example**
+	::
+
+		TBD
 
 |
 
 **GET /api/1.1/cdns/:name/configs/routing**
 
-  Retrieves CDN routing information.
-
-  Authentication Required: Yes
-
-  Role(s) Required: None
-
-  **Request Route Parameters**
-
-  +----------+----------+-------------+
-  |   Name   | Required | Description |
-  +==========+==========+=============+
-  | ``name`` | yes      |             |
-  +----------+----------+-------------+
-
-  **Response Properties**
-
-  +-------------------------------------+---------+-----------------------------------+
-  |              Parameter              |   Type  |            Description            |
-  +=====================================+=========+===================================+
-  | ``trafficServers``                  | array   | A collection of Traffic Servers.  |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>profile``                        | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>ip``                             | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>status``                         | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>cacheGroup``                     | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>ip6``                            | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>port``                           | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>deliveryServices``               | array   |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>>xmlId``                         | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>>remaps``                        | array   |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>>hostName``                      | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>fqdn``                           | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>interfaceName``                  | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>type``                           | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>hashId``                         | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``stats``                           | hash    |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>trafficOpsPath``                 | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>cdnName``                        | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>trafficOpsVersion``              | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>trafficOpsUser``                 | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>date``                           | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>trafficOpsHost``                 | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``cacheGroups``                     | array   | A collection of cache groups.     |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>coordinates``                    | hash    |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>>longitude``                     | number  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>>latitude``                      | number  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>name``                           | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``config``                          | hash    |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>tld.soa.admin``                  | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>tcoveragezone.polling.interval`` | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>geolocation.polling.interval``   | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>tld.soa.expire``                 | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>coveragezone.polling.url``       | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>tld.soa.minimum``                | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>geolocation.polling.url``        | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>domain_name``                    | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>tld.ttls.AAAA``                  | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>tld.soa.refresh``                | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>tld.ttls.NS``                    | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>tld.ttls.SOA``                   | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>geolocation6.polling.interval``  | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>tld.ttls.A``                     | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>tld.soa.retry``                  | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>geolocation6.polling.url``       | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``trafficMonitors``                 | array   | A collection of Traffic Monitors. |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>profile``                        | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>location``                       | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>ip``                             | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>status``                         | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>ip6``                            | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>port``                           | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>hostName``                       | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>fqdn``                           | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``deliveryServices``                | array   | A collection of delivery          |
-  |                                     |         | services.                         |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>xmlId``                          | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>ttl``                            | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>geoEnabled``                     | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>coverageZoneOnly``               | boolean |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>matchSets``                      | array   |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>>protocol``                      | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>>matchList``                     | array   |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>>>regex``                        | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>>>matchType``                    | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>bypassDestination``              | hash    |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>>maxDnsIpsForLocation``          | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>>ttl``                           | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>>type``                          | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>ttls``                           | hash    |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>>A``                             | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>>SOA``                           | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>>NS``                            | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>>AAAA``                          | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>missCoordinates``                | hash    |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>>longitude``                     | number  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>>latitude``                      | number  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>soa``                            | hash    |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>>admin``                         | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>>retry``                         | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>>minimum``                       | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>>refresh``                       | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>>expire``                        | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``trafficRouters``                  | hash    |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>profile``                        | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>location``                       | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>ip``                             | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>status``                         | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>ip6``                            | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>port``                           | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>hostName``                       | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>fqdn``                           | string  |                                   |
-  +-------------------------------------+---------+-----------------------------------+
-  | ``>apiPort``                        | int     |                                   |
-  +-------------------------------------+---------+-----------------------------------+
+	Retrieves CDN routing information.
+
+	Authentication Required: Yes
+
+	Role(s) Required: None
+
+	**Request Path Parameters**
+
+	+----------+----------+-------------+
+	|   Name   | Required | Description |
+	+==========+==========+=============+
+	| ``name`` | yes      |             |
+	+----------+----------+-------------+
+
+	**Response Properties**
+
+	+-------------------------------------+---------+-----------------------------------+
+	|              Parameter              |   Type  |            Description            |
+	+=====================================+=========+===================================+
+	| ``trafficServers``                  | array   | A collection of Traffic Servers.  |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>profile``                        | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>ip``                             | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>status``                         | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>cacheGroup``                     | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>ip6``                            | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>port``                           | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>deliveryServices``               | array   |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>>xmlId``                         | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>>remaps``                        | array   |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>>hostName``                      | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>fqdn``                           | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>interfaceName``                  | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>type``                           | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>hashId``                         | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``stats``                           | hash    |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>trafficOpsPath``                 | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>cdnName``                        | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>trafficOpsVersion``              | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>trafficOpsUser``                 | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>date``                           | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>trafficOpsHost``                 | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``cacheGroups``                     | array   | A collection of cache groups.     |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>coordinates``                    | hash    |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>>longitude``                     | number  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>>latitude``                      | number  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>name``                           | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``config``                          | hash    |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>tld.soa.admin``                  | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>tcoveragezone.polling.interval`` | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>geolocation.polling.interval``   | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>tld.soa.expire``                 | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>coveragezone.polling.url``       | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>tld.soa.minimum``                | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>geolocation.polling.url``        | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>domain_name``                    | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>tld.ttls.AAAA``                  | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>tld.soa.refresh``                | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>tld.ttls.NS``                    | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>tld.ttls.SOA``                   | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>geolocation6.polling.interval``  | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>tld.ttls.A``                     | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>tld.soa.retry``                  | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>geolocation6.polling.url``       | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``trafficMonitors``                 | array   | A collection of Traffic Monitors. |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>profile``                        | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>location``                       | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>ip``                             | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>status``                         | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>ip6``                            | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>port``                           | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>hostName``                       | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>fqdn``                           | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``deliveryServices``                | array   | A collection of delivery          |
+	|                                     |         | services.                         |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>xmlId``                          | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>ttl``                            | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>geoEnabled``                     | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>coverageZoneOnly``               | boolean |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>matchSets``                      | array   |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>>protocol``                      | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>>matchList``                     | array   |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>>>regex``                        | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>>>matchType``                    | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>bypassDestination``              | hash    |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>>maxDnsIpsForLocation``          | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>>ttl``                           | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>>type``                          | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>ttls``                           | hash    |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>>A``                             | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>>SOA``                           | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>>NS``                            | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>>AAAA``                          | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>missCoordinates``                | hash    |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>>longitude``                     | number  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>>latitude``                      | number  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>soa``                            | hash    |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>>admin``                         | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>>retry``                         | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>>minimum``                       | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>>refresh``                       | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>>expire``                        | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``trafficRouters``                  | hash    |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>profile``                        | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>location``                       | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>ip``                             | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>status``                         | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>ip6``                            | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>port``                           | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>hostName``                       | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>fqdn``                           | string  |                                   |
+	+-------------------------------------+---------+-----------------------------------+
+	| ``>apiPort``                        | int     |                                   |
+	+-------------------------------------+---------+-----------------------------------+
 
 
 **Response Example**
 
 ::
-  TBD
+	TBD
+
 
- 
 .. _to-api-v11-cdn-dnsseckeys:
 
 DNSSEC Keys
@@ -916,173 +937,173 @@ DNSSEC Keys
 
 **GET /api/1.1/cdns/name/:name/dnsseckeys**
 
-  Gets a list of dnsseckeys for CDN and all associated Delivery Services.
-  Before returning response to user, check to make sure keys aren't expired.  If they are expired, generate new ones.
-  Before returning response to user, make sure dnssec keys for all delivery services exist.  If they don't exist, create them.
-
-  Authentication Required: Yes
-
-  Role(s) Required: Admin
-
-  **Request Route Parameters**
-
-  +----------+----------+-------------+
-  |   Name   | Required | Description |
-  +==========+==========+=============+
-  | ``name`` | yes      |             |
-  +----------+----------+-------------+
-
-  **Response Properties**
-
-  +------------------------+--------+---------------------------------------------------------+
-  |       Parameter        |  Type  |                       Description                       |
-  +========================+========+=========================================================+
-  | ``cdn name/ds xml_id`` | string | identifier for ds or cdn                                |
-  +------------------------+--------+---------------------------------------------------------+
-  | ``>zsk/ksk``           | array  | collection of zsk/ksk data                              |
-  +------------------------+--------+---------------------------------------------------------+
-  | ``>>ttl``              | string | time-to-live for dnssec requests                        |
-  +------------------------+--------+---------------------------------------------------------+
-  | ``>>inceptionDate``    | string | epoch timestamp for when the keys were created          |
-  +------------------------+--------+---------------------------------------------------------+
-  | ``>>expirationDate``   | string | epoch timestamp representing the expiration of the keys |
-  +------------------------+--------+---------------------------------------------------------+
-  | ``>>private``          | string | encoded private key                                     |
-  +------------------------+--------+---------------------------------------------------------+
-  | ``>>public``           | string | encoded public key                                      |
-  +------------------------+--------+---------------------------------------------------------+
-  | ``>>name``             | string | domain name                                             |
-  +------------------------+--------+---------------------------------------------------------+
-  | ``version``            | string | API version                                             |
-  +------------------------+--------+---------------------------------------------------------+
-
-
-  **Response Example** ::
-
-    {
-      "response": {
-        "cdn1": {
-          "zsk": {
-            "ttl": "60",
-            "inceptionDate": "1426196750",
-            "private": "zsk private key",
-            "public": "zsk public key",
-            "expirationDate": "1428788750",
-            "name": "foo.kabletown.com."
-          },
-          "ksk": {
-            "name": "foo.kabletown.com.",
-            "expirationDate": "1457732750",
-            "public": "ksk public key",
-            "private": "ksk private key",
-            "inceptionDate": "1426196750",
-            "ttl": "60"
-          }
-        },
-        "ds-01": {
-          "zsk": {
-            "ttl": "60",
-            "inceptionDate": "1426196750",
-            "private": "zsk private key",
-            "public": "zsk public key",
-            "expirationDate": "1428788750",
-            "name": "ds-01.foo.kabletown.com."
-          },
-          "ksk": {
-            "name": "ds-01.foo.kabletown.com.",
-            "expirationDate": "1457732750",
-            "public": "ksk public key",
-            "private": "ksk private key",
-            "inceptionDate": "1426196750"
-          }
-        },
-        ... repeated for each ds in the cdn
-      },
-    }
+	Gets a list of dnsseckeys for CDN and all associated Delivery Services.
+	Before returning response to user, check to make sure keys aren't expired.  If they are expired, generate new ones.
+	Before returning response to user, make sure dnssec keys for all delivery services exist.  If they don't exist, create them.
+
+	Authentication Required: Yes
+
+	Role(s) Required: Admin
+
+	**Request Path Parameters**
+
+	+----------+----------+-------------+
+	|   Name   | Required | Description |
+	+==========+==========+=============+
+	| ``name`` | yes      |             |
+	+----------+----------+-------------+
+
+	**Response Properties**
+
+	+------------------------+--------+---------------------------------------------------------+
+	|       Parameter        |  Type  |                       Description                       |
+	+========================+========+=========================================================+
+	| ``cdn name/ds xml_id`` | string | identifier for ds or cdn                                |
+	+------------------------+--------+---------------------------------------------------------+
+	| ``>zsk/ksk``           | array  | collection of zsk/ksk data                              |
+	+------------------------+--------+---------------------------------------------------------+
+	| ``>>ttl``              | string | time-to-live for dnssec requests                        |
+	+------------------------+--------+---------------------------------------------------------+
+	| ``>>inceptionDate``    | string | epoch timestamp for when the keys were created          |
+	+------------------------+--------+---------------------------------------------------------+
+	| ``>>expirationDate``   | string | epoch timestamp representing the expiration of the keys |
+	+------------------------+--------+---------------------------------------------------------+
+	| ``>>private``          | string | encoded private key                                     |
+	+------------------------+--------+---------------------------------------------------------+
+	| ``>>public``           | string | encoded public key                                      |
+	+------------------------+--------+---------------------------------------------------------+
+	| ``>>name``             | string | domain name                                             |
+	+------------------------+--------+---------------------------------------------------------+
+	| ``version``            | string | API version                                             |
+	+------------------------+--------+---------------------------------------------------------+
+
+
+	**Response Example** ::
+
+		{
+			"response": {
+				"cdn1": {
+					"zsk": {
+						"ttl": "60",
+						"inceptionDate": "1426196750",
+						"private": "zsk private key",
+						"public": "zsk public key",
+						"expirationDate": "1428788750",
+						"name": "foo.kabletown.com."
+					},
+					"ksk": {
+						"name": "foo.kabletown.com.",
+						"expirationDate": "1457732750",
+						"public": "ksk public key",
+						"private": "ksk private key",
+						"inceptionDate": "1426196750",
+						"ttl": "60"
+					}
+				},
+				"ds-01": {
+					"zsk": {
+						"ttl": "60",
+						"inceptionDate": "1426196750",
+						"private": "zsk private key",
+						"public": "zsk public key",
+						"expirationDate": "1428788750",
+						"name": "ds-01.foo.kabletown.com."
+					},
+					"ksk": {
+						"name": "ds-01.foo.kabletown.com.",
+						"expirationDate": "1457732750",
+						"public": "ksk public key",
+						"private": "ksk private key",
+						"inceptionDate": "1426196750"
+					}
+				},
+				... repeated for each ds in the cdn
+			},
+		}
 
 |
 
 **GET /api/1.1/cdns/name/:name/dnsseckeys/delete**
 
-  Delete dnssec keys for a cdn and all associated delivery services.
+	Delete dnssec keys for a cdn and all associated delivery services.
 
-  Authentication Required: Yes
+	Authentication Required: Yes
 
-  Role(s) Required: Admin
+	Role(s) Required: Admin
 
-  **Request Route Parameters**
+	**Request Path Parameters**
 
-  +----------+----------+----------------------------------------------------------+
-  |   Name   | Required |                       Description                        |
-  +==========+==========+==========================================================+
-  | ``name`` | yes      | name of the CDN for which you want to delete dnssec keys |
-  +----------+----------+----------------------------------------------------------+
+	+----------+----------+----------------------------------------------------------+
+	|   Name   | Required |                       Description                        |
+	+==========+==========+==========================================================+
+	| ``name`` | yes      | name of the CDN for which you want to delete dnssec keys |
+	+----------+----------+----------------------------------------------------------+
 
-  **Response Properties**
+	**Response Properties**
 
-  +--------------+--------+------------------+
-  |  Parameter   |  Type  |   Description    |
-  +==============+========+==================+
-  | ``response`` | string | success response |
-  +--------------+--------+------------------+
+	+--------------+--------+------------------+
+	|  Parameter   |  Type  |   Description    |
+	+==============+========+==================+
+	| ``response`` | string | success response |
+	+--------------+--------+------------------+
 
-  **Response Example**
-  ::
+	**Response Example**
+	::
 
-    {  
-      "response": "Successfully deleted dnssec keys for <cdn>"
-    }
+		{
+			"response": "Successfully deleted dnssec keys for <cdn>"
+		}
 
 |
-  
+
 **POST /api/1.1/deliveryservices/dnsseckeys/generate**
 
-  Generates zsk and ksk keypairs for a cdn and all associated delivery services.
+	Generates zsk and ksk keypairs for a cdn and all associated delivery services.
 
-  Authentication Required: Yes
+	Authentication Required: Yes
 
-  Role(s) Required: Admin
+	Role(s) Required: Admin
 
-  **Request Properties**
+	**Request Properties**
 
-  +-----------------------+---------+------------------------------------------------+
-  |       Parameter       |   Type  |                  Description                   |
-  +=======================+=========+================================================+
-  | ``key``               | string  | name of the cdn                                |
-  +-----------------------+---------+------------------------------------------------+
-  | ``name``              | string  | domain name of the cdn                         |
-  +-----------------------+---------+------------------------------------------------+
-  | ``ttl``               | string  | time to live                                   |
-  +-----------------------+---------+------------------------------------------------+
-  | ``kskExpirationDays`` | string  | Expiration (in days) for the key signing keys  |
-  +-----------------------+---------+------------------------------------------------+
-  | ``zskExpirationDays`` | string  | Expiration (in days) for the zone signing keys |
-  +-----------------------+---------+------------------------------------------------+
+	+-----------------------+---------+------------------------------------------------+
+	|       Parameter       |   Type  |                  Description                   |
+	+=======================+=========+================================================+
+	| ``key``               | string  | name of the cdn                                |
+	+-----------------------+---------+------------------------------------------------+
+	| ``name``              | string  | domain name of the cdn                         |
+	+-----------------------+---------+------------------------------------------------+
+	| ``ttl``               | string  | time to live                                   |
+	+-----------------------+---------+------------------------------------------------+
+	| ``kskExpirationDays`` | string  | Expiration (in days) for the key signing keys  |
+	+-----------------------+---------+------------------------------------------------+
+	| ``zskExpirationDays`` | string  | Expiration (in days) for the zone signing keys |
+	+-----------------------+---------+------------------------------------------------+
 
-  **Request Example** ::
+	**Request Example** ::
 
-    {
-      "key": "cdn1",
-      "name" "ott.kabletown.com",
-      "ttl": "60",
-      "kskExpirationDays": "365",
-      "zskExpirationDays": "90"
-    }
+		{
+			"key": "cdn1",
+			"name" "ott.kabletown.com",
+			"ttl": "60",
+			"kskExpirationDays": "365",
+			"zskExpirationDays": "90"
+		}
 
-  **Response Properties**
+	**Response Properties**
 
-  +--------------+--------+-----------------+
-  |  Parameter   |  Type  |   Description   |
-  +==============+========+=================+
-  | ``response`` | string | response string |
-  +--------------+--------+-----------------+
-  | ``version``  | string | API version     |
-  +--------------+--------+-----------------+
+	+--------------+--------+-----------------+
+	|  Parameter   |  Type  |   Description   |
+	+==============+========+=================+
+	| ``response`` | string | response string |
+	+--------------+--------+-----------------+
+	| ``version``  | string | API version     |
+	+--------------+--------+-----------------+
 
-  **Response Example** ::
+	**Response Example** ::
 
 
-    {  
-      "response": "Successfully created dnssec keys for cdn1"
-    }
+		{
+			"response": "Successfully created dnssec keys for cdn1"
+		}
 


[trafficcontrol] 06/39: added logo to LaTeX output

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 260d154242d1f3ea8cf68a5f81b643fb6e424abd
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Tue Sep 18 18:11:01 2018 -0600

    added logo to LaTeX output
---
 docs/source/conf.py | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/docs/source/conf.py b/docs/source/conf.py
index fe3d6ba..93ab591 100755
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -156,6 +156,8 @@ latex_documents = [
 	 'Apache Traffic Control', 'manual'),
 ]
 
+latex_logo = "../../Traffic-Control-Logo-FINAL-White-Text.png"
+
 
 # -- Options for manual page output ------------------------------------------
 


[trafficcontrol] 32/39: Converting examples to syntax-highlighted examples

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 362095bb845c8fe79bfa593d4881376c5b899b0f
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Tue Oct 2 08:21:37 2018 -0600

    Converting examples to syntax-highlighted examples
    
    Also edited for format consistency
---
 docs/source/admin/quick_howto/federations.rst |   7 +-
 docs/source/api/traffic_ops_api.rst           | 376 +++++++++++++++-----------
 docs/source/development/traffic_monitor.rst   |  17 +-
 3 files changed, 219 insertions(+), 181 deletions(-)

diff --git a/docs/source/admin/quick_howto/federations.rst b/docs/source/admin/quick_howto/federations.rst
index abcfaca..2e1191e 100644
--- a/docs/source/admin/quick_howto/federations.rst
+++ b/docs/source/admin/quick_howto/federations.rst
@@ -19,10 +19,9 @@
 Configure Federations
 *********************
 
-#. Create a user with a federations role ('User Admin' -> 'Users' -> '+' button).  This user will have the ability to perform the following actions:
+#. Create a user with a federations role ('User Admin' -> 'Users' -> '+' button).  This user will need the ability to:
 
-	- Edit the federation
-	- Delete the federation
+	- Create/edit/delete federations
 	- Add IPV4 resolvers
 	- Add IPV6 resolvers
 
@@ -30,7 +29,7 @@ Configure Federations
 		:scale: 100%
 		:align: center
 
-#. As a user with admin priveleges, create a Federation Mapping by going to 'Services' -> 'Delivery Services' -> 'Federations' under 'More' and then clicking 'Add Federation Mapping'
+#. As a user with administrative priveleges, create a Federation Mapping by going to 'Services' -> 'Delivery Services' -> 'Federations' under 'More' and then clicking 'Add Federation Mapping'
 
 #. Choose the Delivery Service to which the federation will be mapped and assign it to the Federation-role user; click Add.
 
diff --git a/docs/source/api/traffic_ops_api.rst b/docs/source/api/traffic_ops_api.rst
index 74649a5..481a5df 100644
--- a/docs/source/api/traffic_ops_api.rst
+++ b/docs/source/api/traffic_ops_api.rst
@@ -1,11 +1,11 @@
-.. 
-.. 
+..
+..
 .. Licensed under the Apache License, Version 2.0 (the "License");
 .. you may not use this file except in compliance with the License.
 .. You may obtain a copy of the License 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.
@@ -13,184 +13,234 @@
 .. limitations under the License.
 ..
 
+.. _to-api:
+
+************
 API Overview
 ************
-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.
+The Traffic Ops API provides programmatic access to read and write Traffic Control data which allows for the monitoring of CDN performance and configuration of Traffic Control settings and parameters.
 
 Response Structure
-------------------
-All successful responses have the following structure: ::
+==================
+All successful responses have the following structure:
 
-    {
-      "response": <JSON object with main response>,
-    }
+.. code-block:: json
 
-To make the documentation easier to read, only the ``<JSON object with main response>`` is documented, even though the response and version fields are always present. 
+	{
+		"response": "<JSON object with main response>",
+	}
+
+To make the documentation easier to read, only the ``<JSON object with main response>`` is documented, even though the response endpoints may return other top-level objects (most commonly the ``"alerts"`` object.
 
 Using API Endpoints
--------------------
-1. Authenticate with your Traffic Portal or Traffic Ops user account credentials.
-2. Upon successful user authentication, note the mojolicious cookie value in the response headers. 
-3. Pass the mojolicious cookie value, along with any subsequent calls to an authenticated API endpoint.
-
-Example: ::
-  
-    [jvd@laika ~]$ curl -H "Accept: application/json" http://localhost:3000/api/1.1/usage/asns.json
-    {"alerts":[{"level":"error","text":"Unauthorized, please log in."}]}
-    [jvd@laika ~]$
-    [jvd@laika ~]$ curl -v -H "Accept: application/json" -v -X POST --data '{ "u":"admin", "p":"secret_passwd" }' 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)
-    > POST /api/1.1/user/login HTTP/1.1
-    > User-Agent: curl/7.37.1
-    > Host: localhost:3000
-    > Accept: application/json
-    > Content-Length: 32
-    > Content-Type: application/x-www-form-urlencoded
-    >
-    * upload completely sent off: 32 out of 32 bytes
-    < HTTP/1.1 200 OK
-    < Connection: keep-alive
-    < Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE
-    < Access-Control-Allow-Origin: http://localhost:8080
-    < Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept
-    < Set-Cookie: mojolicious=eyJleHBpcmVzIjoxNDI5NDAyMjAxLCJhdXRoX2RhdGEiOiJhZG1pbiJ9--f990d03b7180b1ece97c3bb5ca69803cd6a79862; expires=Sun, 19 Apr 2015 00:10:01 GMT; path=/; HttpOnly
-    < Content-Type: application/json
-    < Date: Sat, 18 Apr 2015 20:10:01 GMT
-    < Access-Control-Allow-Credentials: true
-    < Content-Length: 81
-    < Cache-Control: no-cache, no-store, max-age=0, must-revalidate
-    * Server Mojolicious (Perl) is not blacklisted
-    < Server: Mojolicious (Perl)
-    <
-    * Connection #0 to host localhost left intact
-    {"alerts":[{"level":"success","text":"Successfully logged in."}]}
-    [jvd@laika ~]$
-
-    [jvd@laika ~]$ curl -H'Cookie: mojolicious=eyJleHBpcmVzIjoxNDI5NDAyMjAxLCJhdXRoX2RhdGEiOiJhZG1pbiJ9--f990d03b7180b1ece97c3bb5ca69803cd6a79862;' -H "Accept: application/json" http://localhost:3000/api/1.1/asns.json
-    {"response":{"asns":[{"lastUpdated":"2012-09-17 15:41:22", .. asn data deleted ..   ,}
-    [jvd@laika ~]$
+===================
+#. Authenticate with valid Traffic Control user account credentials (the same used by Traffic Portal).
+#. Upon successful user authentication, note the Mojolicious cookie value in the response headers\ [1]_.
+
+	.. note:: Many tools have methods for doing this without manual intervention - a web browser for instance will automatically remember and properly handle cookies. Another common tool, cURL, has command line switches that will also accomplish this. Most high-level programming language libraries will implement a cookie-handling method as well.
+
+#. Pass the Mojolicious cookie value, along with any subsequent calls to an authenticated API endpoint.
+
+Example Session
+---------------
+A user makes a request to the ``/api/1.1/asns`` endpoint.
+
+.. code-block:: http
+
+	GET /api/1.1/asns HTTP/1.1
+	Accept: application/json
+	Host: trafficops.infra.ciab.test
+	User-Agent: example
+
+The response JSON indicates an authentication error.
+
+.. code-block:: http
+
+	HTTP/1.1 401 UNAUTHORIZED
+	Content-Length: 68
+	Content-Type: application/json
+	Date: Tue, 02 Oct 2018 13:12:30 GMT
+
+	{ "alerts": [
+		{
+			"level":"error",
+			"text":"Unauthorized, please log in."
+		}
+	]}
+
+To authenticate, the user sends a POST request containing their login information to the ``/api/1.3/user/login`` endpoint.
+
+.. code-block:: http
+
+	POST /api/1.1/user/login HTTP/1.1
+	User-Agent: example
+	Host: trafficops.infra.ciab.test
+	Accept: application/json
+	Content-Length: 32
+	Content-Type: application/x-www-form-urlencoded
+
+Traffic Ops responds with a Mojolicious cookie to be used for future requests, and a message indicating the success or failure (in this case success) of the login operation.
+
+.. code-block:: http
+
+	HTTP/1.1 200 OK
+	Connection: keep-alive
+	Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE
+	Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept
+	Set-Cookie: mojolicious=eyJhdXRoX2RhdGEiOiJhZG1pbiIsImV4cGlyZXMiOjE1Mzg1MDY5OTgsImJ5IjoidHJhZmZpY2NvbnRyb2wtZ28tdG9jb29raWUifQ--bcc9aade79b6de436cb4962ef5cec397f7ac5bd2; Path=/; Expires=Tue, 02 Oct 2018 19:03:18 GMT; HttpOnly
+	Content-Type: application/json
+	Date: Tue, 02 Oct 2018 12:53:32 GMT
+	Access-Control-Allow-Credentials: true
+	Content-Length: 81
+	X-Server-Name: traffic_ops_golang/
+
+	{ "alerts": [
+		{
+			"level": "success",
+			"text": "Successfully logged in."
+		}
+	]}
+
+Using this cookie, the user can now access their original target - the ``/api/1.1/asns`` endpoint...
+
+.. code-block:: http
+
+	GET /api/1.1/asns HTTP/1.1
+	Accept: application/json
+	Cookie: mojolicious=eyJleHBpcmVzIjoxNDI5NDAyMjAxLCJhdXRoX2RhdGEiOiJhZG1pbiJ9--f990d03b7180b1ece97c3bb5ca69803cd6a79862;
+	Host: trafficops.infra.ciab.test
+	User-Agent: Example
+
+\... and the Traffic Ops server will now happily service this request.
+
+.. code-block:: http
+
+	HTTP/1.1 200 OK
+	Access-Control-Allow-Credentials: true
+	Access-Control-Allow-Headers: Origin, X-Requested-With, Content Type, Accept, Set-Cookie, Cookie
+	Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE
+	Access-Control-Allow-Origin: *
+	Connection: keep-alive
+	Content-Encoding: gzip
+	Content-Length: 48
+	Content-Type: application/json
+	Date: Tue, 02 Oct 2018 12:55:57 GMT
+	Set-Cookie: mojolicious=eyJhdXRoX2RhdGEiOi…ccd4eae46c6; Path=/; HttpOnly
+	Whole-Content-SHA512: u+Q5X7z/DMTc/VzRGaFlJBA8btA8EC…dnA85HCYTm8vVwsQCvle+uVc1nA==
+	X-Server-Name: traffic_ops_golang/
+
+	{ "response": {
+		"asns": [
+			{
+				"lastUpdated": "2012-09-17 21:41:22",
+				"id": 27,
+				"asn": 7015,
+				"cachegroup": "us-ma-woburn",
+				"cachegroupId": 2
+			},
+			{
+				"lastUpdated": "2012-09-17 21:41:22",
+				"id": 28,
+				"asn": 7016,
+				"cachegroup": "us-pa-pittsburgh",
+				"cachegroupID": 3
+			}
+		]
+	}}
 
 API Errors
-----------
-
-**Response Properties**
+==========
+If an API endpoint has something to say besides the actual response (usually an error message), it will add a top-level object to the response JSON with the key ``"alerts"``. This will be an array of objects that represent messages from the server, each with the following string fields:
 
-+----------------------+--------+------------------------------------------------+
-| Parameter            | Type   | Description                                    |
-+======================+========+================================================+
-|``alerts``            | array  | A collection of alert messages.                |
-+----------------------+--------+------------------------------------------------+
-| ``>level``           | string | Success, info, warning or error.               |
-+----------------------+--------+------------------------------------------------+
-| ``>text``            | string | Alert message.                                 |
-+----------------------+--------+------------------------------------------------+
+:``level``: ``"success"``, "``info``", "``warning``" or ``"error"`` as appropriate
+:``text``: The alert's actual message
 
 The 3 most common errors returned by Traffic Ops are:
 
 401 Unauthorized
-  When you don't supply the right cookie, this is the response. :: 
-
-    [jvd@laika ~]$ curl -v -H "Accept: application/json" 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)
-    > GET /api/1.1/usage/asns.json HTTP/1.1
-    > User-Agent: curl/7.37.1
-    > Host: localhost:3000
-    > Accept: application/json
-    >
-    < HTTP/1.1 401 Unauthorized
-    < Cache-Control: no-cache, no-store, max-age=0, must-revalidate
-    < Content-Length: 84
-    * Server Mojolicious (Perl) is not blacklisted
-    < Server: Mojolicious (Perl)
-    < Connection: keep-alive
-    < Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE
-    < Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept
-    < Access-Control-Allow-Origin: http://localhost:8080
-    < Date: Sat, 18 Apr 2015 20:36:12 GMT
-    < Content-Type: application/json
-    < Access-Control-Allow-Credentials: true
-    <
-    * Connection #0 to host localhost left intact
-    {"alerts":[{"level":"error","text":"Unauthorized, please log in."}]}
-    [jvd@laika ~]$
+	When a Mojolicious cookie is supplied that is invalid or expired, or the login credentials are incorrect the server responds with a ``401 UNAUTHORIZED`` response code.
+
+	.. code-block:: http
+		:caption: Example of a Response to a Login Request with Bad Credentials
+
+		HTTP/1.1 401 Unauthorized
+		Access-Control-Allow-Credentials: true
+		Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Set-Cookie, Cookie
+		Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE
+		Access-Control-Allow-Origin: *
+		Content-Type: application/json
+		Whole-Content-Sha512: xRKu2Q7Yj07UA6A6SyxMNmcBpuBcW2/bzuKO5eTZ2y4V27rXfP/5bSkNPesomJbiOO+xSmiybDsHlcL3P+pzpg==
+		X-Server-Name: traffic_ops_golang/
+		Date: Tue, 02 Oct 2018 13:28:30 GMT
+		Content-Length: 69
+
+		{ "alerts": [
+			{
+				"text": "Invalid username or password.",
+				"level": "error"
+			}
+		]}
 
 404 Not Found
-  When the resource (path) is non existent Traffic Ops returns a 404::
-
-    [jvd@laika ~]$ curl -v -H'Cookie: mojolicious=eyJleHBpcmVzIjoxNDI5NDAyMjAxLCJhdXRoX2RhdGEiOiJhZG1pbiJ9--f990d03b7180b1ece97c3bb5ca69803cd6a79862;' -H "Accept: application/json" 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)
-    > GET /api/1.1/asnsjj.json HTTP/1.1
-    > User-Agent: curl/7.37.1
-    > Host: localhost:3000
-    > Cookie: mojolicious=eyJleHBpcmVzIjoxNDI5NDAyMjAxLCJhdXRoX2RhdGEiOiJhZG1pbiJ9--f990d03b7180b1ece97c3bb5ca69803cd6a79862;
-    > Accept: application/json
-    >
-    < HTTP/1.1 404 Not Found
-    * Server Mojolicious (Perl) is not blacklisted
-    < Server: Mojolicious (Perl)
-    < Content-Length: 75
-    < Cache-Control: no-cache, no-store, max-age=0, must-revalidate
-    < Content-Type: application/json
-    < Date: Sat, 18 Apr 2015 20:37:43 GMT
-    < Access-Control-Allow-Credentials: true
-    < Set-Cookie: mojolicious=eyJleHBpcmVzIjoxNDI5NDAzODYzLCJhdXRoX2RhdGEiOiJhZG1pbiJ9--8a5a61b91473bc785d4073fe711de8d2c63f02dd; expires=Sun, 19 Apr 2015 00:37:43 GMT; path=/; HttpOnly
-    < Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE
-    < Connection: keep-alive
-    < Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept
-    < Access-Control-Allow-Origin: http://localhost:8080
-    <
-    * Connection #0 to host localhost left intact
-    {"alerts":[{"text":"Resource not found.","level":"error"}]}
-    [jvd@laika ~]$
+	When the resource (path) doesn't exist, Traffic Ops returns a ``404 NOT FOUND`` response code.
+
+	.. code-block:: http
+		:caption: Example Response to ``GET /not/an/api/path HTTP/1.1`` with Proper Cookies
+
+		HTTP/1.1 404 Not Found
+		Access-Control-Allow-Credentials: true
+		Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept
+		Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE
+		Access-Control-Allow-Origin: *
+		Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+		Content-Type: text/html;charset=UTF-8
+		Date: Tue, 02 Oct 2018 13:58:56 GMT
+		Server: Mojolicious (Perl)
+		Set-Cookie: mojolicious=eyJhdXRoX2RhdGEiOiJhZG1pbiIsImV4cGlyZXMiOjE1Mzg1MDMxMzYsImJ5IjoidHJhZmZpY2NvbnRyb2wtZ28tdG9jb29raWUifQ----9b144306f8bb6020eadb950647b3dc0eebeb7eae; expires=Tue, 02 Oct 2018 17:58:56 GMT; path=/; HttpOnly
+		Vary: Accept-Encoding
+		Whole-Content-Sha512: Ff5hO8ZUNUMbwCW0mBuUlsvrSmm/Giijpq7O3uLivLZ6VOu6eGom4Jag6UqlBbbDBnP6AG7l1Szdt74TT6NidA==
+		Transfer-Encoding: chunked
+
+		The content of this response will be the Legacy UI login page (which is omitted because it's huge)
+
 
 500 Internal Server Error
-  When you are asking for a correct path, but the database doesn't match, it returns a 500:: 
-
-    [jvd@laika ~]$ curl -v -H'Cookie: mojolicious=eyJleHBpcmVzIjoxNDI5NDAyMjAxLCJhdXRoX2RhdGEiOiJhZG1pbiJ9--f990d03b7180b1ece97c3bb5ca69803cd6a79862;' -H "Accept: application/json" 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)
-    > GET /api/1.1/servers/hostname/jj/details.json HTTP/1.1
-    > User-Agent: curl/7.37.1
-    > Host: localhost:3000
-    > Cookie: mojolicious=eyJleHBpcmVzIjoxNDI5NDAyMjAxLCJhdXRoX2RhdGEiOiJhZG1pbiJ9--f990d03b7180b1ece97c3bb5ca69803cd6a79862;
-    > Accept: application/json
-    >
-    < HTTP/1.1 500 Internal Server Error
-    * Server Mojolicious (Perl) is not blacklisted
-    < Server: Mojolicious (Perl)
-    < Cache-Control: no-cache, no-store, max-age=0, must-revalidate
-    < Content-Length: 93
-    < Set-Cookie: mojolicious=eyJhdXRoX2RhdGEiOiJhZG1pbiIsImV4cGlyZXMiOjE0Mjk0MDQzMDZ9--1b08977e91f8f68b0ff5d5e5f6481c76ddfd0853; expires=Sun, 19 Apr 2015 00:45:06 GMT; path=/; HttpOnly
-    < Content-Type: application/json
-    < Date: Sat, 18 Apr 2015 20:45:06 GMT
-    < Access-Control-Allow-Credentials: true
-    < Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE
-    < Connection: keep-alive
-    < Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept
-    < Access-Control-Allow-Origin: http://localhost:8080
-    <
-    * Connection #0 to host localhost left intact
-    {"alerts":[{"level":"error","text":"An error occurred. Please contact your administrator."}]}
-    [jvd@laika ~]$
-
-  The rest of the API documentation will only document the ``200 OK`` case, where no errors have occured.
+	When you are asking for a correct path, but the database doesn't match, it returns a 500::
+
+	[jvd@laika ~]$ curl -v -H'Cookie: mojolicious=eyJleHBpcmVzIjoxNDI5NDAyMjAxLCJhdXRoX2RhdGEiOiJhZG1pbiJ9--f990d03b7180b1ece97c3bb5ca69803cd6a79862;' -H "Accept: application/json" 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)
+	> GET /api/1.1/servers/hostname/jj/details.json HTTP/1.1
+	> User-Agent: curl/7.37.1
+	> Host: localhost:3000
+	> Cookie: mojolicious=eyJleHBpcmVzIjoxNDI5NDAyMjAxLCJhdXRoX2RhdGEiOiJhZG1pbiJ9--f990d03b7180b1ece97c3bb5ca69803cd6a79862;
+	> Accept: application/json
+	>
+	< HTTP/1.1 500 Internal Server Error
+	* Server Mojolicious (Perl) is not blacklisted
+	< Server: Mojolicious (Perl)
+	< Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+	< Content-Length: 93
+	< Set-Cookie: mojolicious=eyJhdXRoX2RhdGEiOiJhZG1pbiIsImV4cGlyZXMiOjE0Mjk0MDQzMDZ9--1b08977e91f8f68b0ff5d5e5f6481c76ddfd0853; expires=Sun, 19 Apr 2015 00:45:06 GMT; path=/; HttpOnly
+	< Content-Type: application/json
+	< Date: Sat, 18 Apr 2015 20:45:06 GMT
+	< Access-Control-Allow-Credentials: true
+	< Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE
+	< Connection: keep-alive
+	< Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept
+	< Access-Control-Allow-Origin: http://localhost:8080
+	<
+	* Connection #0 to host localhost left intact
+	{"alerts":[{"level":"error","text":"An error occurred. Please contact your administrator."}]}
+	[jvd@laika ~]$
+
+The rest of the API documentation will only document the ``200 OK`` case, where no errors have occurred.
 
 TrafficOps Native Client Libraries
-----------------------------------
+==================================
+TrafficOps client libraries are available in Java, Go and Python. You can read (very little) more about them in `the client README <https://github.com/apache/trafficcontrol/tree/master/traffic_control/clients>`_.
 
-TrafficOps client libraries are available in both Golang and Python.  You can read more about them at https://github.com/apache/trafficcontrol/tree/master/traffic_control/clients
+.. [1] A cookie obtained by logging in through Traffic Portal can be used to access API endpoints under the Traffic Portal domain name - since it will proxy such requests back to Traffic Ops. This is not recommended in actual deployments, however, because it will involve an extra network connection which could be avoided by simply using the Traffic Ops domain itself.
diff --git a/docs/source/development/traffic_monitor.rst b/docs/source/development/traffic_monitor.rst
index 561ffc1..87dd25d 100644
--- a/docs/source/development/traffic_monitor.rst
+++ b/docs/source/development/traffic_monitor.rst
@@ -168,16 +168,13 @@ handler
 manager
 	``traffic_monitor/manager/monitorconfig.go:StartMonitorConfigManager()``. Listens for new configurations, and processes them. When a new configuration is received, a new HTTP dispatch map is created via ``traffic_monitor/datareq/datareq.go:MakeDispatchMap()``, and the HTTP server is restarted with the new dispatch map. The Traffic Ops client is also recreated, and stored in its shared data object. The Ops Configuration change subscribers and Traffic Ops Client change subscribers (the Mo [...]
 
-
 Events
 ------
 The ``events`` shared data object is passed to each pipeline microthread which needs to signal events. Most of them do. Events are then logged, and visible in the UI as well as an HTTP JSON endpoint. Most events are caches becoming available or unavailable, but include other things such as peer availability changes.
 
 State Combiner
 --------------
-The State Combiner is a microthread started in ``traffic_monitor/manager/manager.go:Start()`` via ``traffic_monitor/manager/statecombiner.go:StartStateCombiner()``, which listens for signals to combine states. It should be signaled by any pipeline which updates the local or peer availability shared data objects, ``localStates`` and ``peerStates``. It holds the threadsafe shared data objects for local states and peer states, so no data is passed or returned, only a signal.
-
-When a signal is received, it combines the local and peer states optimistically. That is, if a cache is marked available locally or by any peer, that cache is marked available in the combined states. There exists a variable to combine pessimistically, which may be set at compile time (it's unusual for a CDN to operate well with pessimistic cache availability). Combined data is stored in the threadsafe shared data object ``combinedStates``.
+The State Combiner is a microthread started in ``traffic_monitor/manager/manager.go:Start()`` via ``traffic_monitor/manager/statecombiner.go:StartStateCombiner()``, which listens for signals to combine states. It should be signaled by any pipeline which updates the local or peer availability shared data objects, ``localStates`` and ``peerStates``. It holds the thread-safe shared data objects for local states and peer states, so no data is passed or returned, only a signal. When a signal  [...]
 
 Aggregated Stat Data
 --------------------
@@ -189,19 +186,11 @@ Both the Stat and Health pipelines aggregate availability data received from cac
 
 HTTP Data Requests
 ------------------
-Data is provided to HTTP requests via the threadsafe shared data objects (see `Shared Data`_). These objects are closed in lambdas created via ``traffic_monitor/datareq/datareq.go:MakeDispatchMap()``. This is called by the Ops Config Manager when it recreates the HTTP server.
-
-Each HTTP endpoint is mapped to a function which closes around the shared data objects it needs, and takes the request data it needs (such as query parameters). Each endpoint function resides in its own file in ``traffic_monitor/datareq/``. Because each Go HTTP routing function must be a ``http.HandlerFunc``, wrapper functions take the endpoint functions and return ``http.HandlerFunc`` functions which call them, and which are stored in the dispatch map, to be registered with the HTTP server.
+Data is provided to HTTP requests via the thread-safe shared data objects (see `Shared Data`_). These objects are closed in lambdas created via ``traffic_monitor/datareq/datareq.go:MakeDispatchMap()``. This is called by the Ops Configuration Manager when it recreates the HTTP server. Each HTTP endpoint is mapped to a function which closes around the shared data objects it needs, and takes the request data it needs (such as query parameters). Each endpoint function resides in its own file [...]
 
 Shared Data
 -----------
-Processed and aggregated data must be shared between the end of the stat and health processing pipelines, and HTTP requests. The CSP paradigm of idiomatic Go does not work efficiently with storing and sharing state. While not idiomatic Go, shared mutexed data structures are faster and simpler than CSP manager microthreads for each data object.
-
-Traffic Monitor has many threadsafe shared data types and objects. All shared data objects can be seen in ``manager/manager.go:Start()``, where they are created and passed to the various pipeline stage microthreads that need them. Their respective types all include the word ``Threadsafe``, and can be found in ``traffic_monitor/threadsafe/`` as well as, for dependency reasons, various appropriate directories.
-
-Currently, all Threadsafe shared data types use mutexes. In the future, these could be changed to lock-free or wait-free structures, if the performance needs outweighed the readability and correctness costs. They could also easily be changed to internally be manager microthreads and channels, if being idiomatic were deemed more important than readability or performance.
-
-
+Processed and aggregated data must be shared between the end of the stat and health processing pipelines, and HTTP requests. The CSP paradigm of idiomatic Go does not work efficiently with storing and sharing state. While not idiomatic Go, shared mutexed data structures are faster and simpler than CSP manager microthreads for each data object. Traffic Monitor has many thread-safe shared data types and objects. All shared data objects can be seen in ``manager/manager.go:Start()``, where t [...]
 
 Formatting Conventions
 ======================


[trafficcontrol] 28/39: Replaced Remaining ASCII diagrams

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 34e3ece6da5aa67424b2ed18a386eb6f6e54b2c8
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Mon Oct 1 11:05:03 2018 -0600

    Replaced Remaining ASCII diagrams
---
 docs/source/development/traffic_monitor.rst        |  20 ++++-----
 .../traffic_monitor/Monitor_Pipeline.png           | Bin 0 -> 30199 bytes
 .../traffic_monitor/Monitor_Pipeline.svg           |  37 ++++++++++++++++
 .../traffic_monitor/Ops-Config_Pipeline.png        | Bin 0 -> 45045 bytes
 .../traffic_monitor/Ops-Config_Pipeline.svg        |  47 +++++++++++++++++++++
 5 files changed, 92 insertions(+), 12 deletions(-)

diff --git a/docs/source/development/traffic_monitor.rst b/docs/source/development/traffic_monitor.rst
index b35c5fb..6979a2b 100644
--- a/docs/source/development/traffic_monitor.rst
+++ b/docs/source/development/traffic_monitor.rst
@@ -143,14 +143,11 @@ Peer Pipeline
 Monitor Config Pipeline
 -----------------------
 
-::
+.. figure:: traffic_monitor/Monitor_Pipeline.*
+	:align: center
+	:width: 70%
 
-	---------     ---------
-	| poller |-->| manager |--> stat subscriber (Stat pipeline Poller)
-	 --------     --------- |
-													|-> health subscriber (Health pipeline Poller)
-													|
-													--> peer subscriber (Peer pipeline Poller)
+	The Monitor Config Pipeline
 
 * **poller** - ``common/poller/poller.go:MonitorConfigPoller.Poll()``. The Monitor Config poller, on its interval, polls Traffic Ops for the Monitor configuration, and writes the polled value to its result channel, which is read by the Manager.
 
@@ -159,12 +156,11 @@ Monitor Config Pipeline
 
 Ops Config Pipeline
 -------------------
-::
+.. figure:: traffic_monitor/Ops-Config_Pipeline.*
+	:align: center
+	:width: 70%
 
-	---------     ---------     ---------
-	| poller |-->| handler |-->| manager |--> ops config change subscriber (Monitor Config Poller)
-	 --------     ---------     --------- |
-																				--> Traffic ops client change subscriber (Monitor Config Poller)
+	The Ops Config Pipeline
 
 * **poller** - ``common/poller/poller.go:FilePoller.Poll()``. Polls for changes to the Traffic Ops config file ``traffic_ops.cfg``, and writes the changed config to its result channel, which is read by the Handler.
 
diff --git a/docs/source/development/traffic_monitor/Monitor_Pipeline.png b/docs/source/development/traffic_monitor/Monitor_Pipeline.png
new file mode 100644
index 0000000..c540216
Binary files /dev/null and b/docs/source/development/traffic_monitor/Monitor_Pipeline.png differ
diff --git a/docs/source/development/traffic_monitor/Monitor_Pipeline.svg b/docs/source/development/traffic_monitor/Monitor_Pipeline.svg
new file mode 100644
index 0000000..a403031
--- /dev/null
+++ b/docs/source/development/traffic_monitor/Monitor_Pipeline.svg
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="27.826416mm" width="148.76547mm" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 527.12175 98.597537">
+	<defs>
+		<marker id="a" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="b" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+	</defs>
+	<g transform="translate(2192.1323,79.79371)">
+		<g transform="translate(-2162.3466,-389.51307)">
+			<text font-size="12.5px" line-height="125%" style="word-spacing:0px;letter-spacing:0px" y="327.23929" x="-18.897272" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="327.23929" x="-18.897272">Monitor Config Poller</tspan></text>
+			<rect stroke-linejoin="round" height="27.142857" width="152.14285" stroke="#000" y="310.21936" x="-29.285715" fill="none"/>
+		</g>
+		<g transform="translate(-2173.0839,-322.3702)">
+			<text font-size="12.5px" style="word-spacing:0px;letter-spacing:0px" line-height="125%" xml:space="preserve" y="259.73926" x="169.16077" font-family="sans-serif" fill="#000000"><tspan y="259.73926" x="169.16077">Monitor Config Manager</tspan></text>
+			<rect stroke-linejoin="round" height="26.428572" width="158.57143" stroke="#000" y="243.07649" x="165.71428" fill="none"/>
+		</g>
+		<path marker-end="url(#b)" d="m-2039.365-65.704665h30.8097" stroke="#000" stroke-width="1px" fill="none"/>
+		<g transform="translate(-2169.0931,-324.85301)">
+			<text font-size="12.5px" line-height="125%" style="word-spacing:0px;letter-spacing:0px" y="263.43362" x="391.78571" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="263.43362" x="391.78571">Stat Subscriber</tspan></text>
+			<rect stroke-linejoin="round" height="23.214285" width="116.07143" stroke="#000" y="247.16644" x="382.15393" fill="none"/>
+		</g>
+		<g transform="translate(-2174.4406,-322.80428)">
+			<text font-size="12.5px" line-height="125%" style="word-spacing:0px;letter-spacing:0px" y="298.04077" x="391.78571" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="298.04077" x="391.78571">Health Subscriber</tspan></text>
+			<rect stroke-linejoin="round" height="24.285715" width="121.42857" stroke="#000" y="281.23788" x="387.50146" fill="none"/>
+		</g>
+		<text font-size="12.5px" line-height="125%" style="word-spacing:0px;letter-spacing:0px" y="11.89245" x="-1781.2982" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="11.89245" x="-1781.2982">Peer Subscriber</tspan></text>
+		<g stroke-linejoin="round" stroke="#000" fill="none">
+			<rect height="22.142857" width="110.71429" y="-3.839026" x="-1786.9391"/>
+			<path marker-end="url(#a)" d="m-1848.7982-66.061805h60" stroke-width="1px"/>
+			<path marker-end="url(#a)" d="m-1824.2686-65.784555v36.89474h35.2308" stroke-width="1.03820264px"/>
+			<path marker-end="url(#a)" d="m-1824.3933-31.370265v38.9710797h35.4721" stroke-width=".96524209px"/>
+		</g>
+	</g>
+</svg>
diff --git a/docs/source/development/traffic_monitor/Ops-Config_Pipeline.png b/docs/source/development/traffic_monitor/Ops-Config_Pipeline.png
new file mode 100644
index 0000000..885d9ad
Binary files /dev/null and b/docs/source/development/traffic_monitor/Ops-Config_Pipeline.png differ
diff --git a/docs/source/development/traffic_monitor/Ops-Config_Pipeline.svg b/docs/source/development/traffic_monitor/Ops-Config_Pipeline.svg
new file mode 100644
index 0000000..39cb3e0
--- /dev/null
+++ b/docs/source/development/traffic_monitor/Ops-Config_Pipeline.svg
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="33.17561mm" width="228.81166mm" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 810.74995 117.55137">
+	<defs>
+		<marker id="d" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="c" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="b" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="a" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+		<marker id="e" refY="0" refX="0" orient="auto" overflow="visible">
+			<path stroke-linejoin="round" d="m8.7185878 4.0337352-10.9258773-4.01772194 10.9258779-4.01772106c-1.7454984 2.3720609-1.7354408 5.6174519-6e-7 8.035443z" fill-rule="evenodd" transform="matrix(-1.1,0,0,-1.1,-1.1,0)" stroke="#000" stroke-width=".625"/>
+		</marker>
+	</defs>
+	<text font-size="40px" line-height="125%" style="word-spacing:0px;letter-spacing:0px" y="18.848236" x="21.199245" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="18.848236" x="21.199245" font-size="12.5px">Ops Config Poller</tspan></text>
+	<rect height="29.7995" width="148.9975" stroke="#000" y=".50000381" x=".49993896" fill="none"/>
+	<g transform="translate(6.2562755,-58.882248)">
+		<text font-size="40px" style="word-spacing:0px;letter-spacing:0px" line-height="125%" xml:space="preserve" y="77.730484" x="197.58212" font-family="sans-serif" fill="#000000"><tspan y="77.730484" x="197.58212" font-size="12.5px">Ops Config Handler</tspan></text>
+		<rect height="29.7995" width="148.9975" stroke="#000" y="59.382252" x="184.24365" fill="none"/>
+	</g>
+	<g transform="translate(36.256275,-58.882248)">
+		<text font-size="40px" line-height="125%" style="word-spacing:0px;letter-spacing:0px" y="77.730484" x="354.78671" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="77.730484" x="354.78671" font-size="12.5px">Ops Config Manager</tspan></text>
+		<rect height="29.7995" width="148.9975" stroke="#000" y="59.382252" x="344.24365" fill="none"/>
+	</g>
+	<g fill="none" stroke="#000" transform="translate(-23.743725,-58.882248)">
+		<path marker-end="url(#e)" d="m173.61997 74.299617h39.48186" stroke-width=".99316341px"/>
+		<path marker-end="url(#a)" d="m363.61997 74.299617h39.48186" stroke-width=".99316341px"/>
+		<path marker-end="url(#b)" d="m553.21429 74.299617h36.42857" stroke-width="1px"/>
+	</g>
+	<text font-size="40px" style="word-spacing:0px;letter-spacing:0px" line-height="125%" xml:space="preserve" y="18.848236" x="578.30817" font-family="sans-serif" fill="#000000"><tspan y="18.848236" x="578.30817" font-size="12.5px">Restart HTTP Server</tspan></text>
+	<rect height="29.7995" width="148.9975" stroke="#000" y=".5" x="567.39276" fill="none"/>
+	<g transform="translate(-23.743725,-54.931442)">
+		<text font-size="40px" line-height="125%" style="word-spacing:0px;letter-spacing:0px" y="117.73048" x="598.15942" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="117.73048" x="598.15942" font-size="12.5px">Ops Config Change Subscriber</tspan></text>
+		<rect height="29.628658" width="205.43379" stroke="#000" y="99.467667" x="591.22192" stroke-width="1.1708411" fill="none"/>
+	</g>
+	<path stroke-linejoin="round" marker-end="url(#c)" d="m542.87285 15.419942v41.82935h23.40799" stroke="#000" stroke-width=".9859066px" fill="none"/>
+	<g transform="translate(-29.035811,-58.882248)">
+		<text font-size="12.5px" line-height="125%" style="word-spacing:0px;letter-spacing:0px" y="165.63211" x="603.62378" font-family="sans-serif" xml:space="preserve" fill="#000000"><tspan y="165.63211" x="603.62378">Traffic Ops Client Change Subscriber</tspan></text>
+		<rect stroke-linejoin="round" height="27.5" width="242.85715" stroke="#000" y="148.43362" x="596.42859" fill="none"/>
+	</g>
+	<path stroke-linejoin="round" marker-end="url(#d)" d="m542.83548 56.916602v47.397568h23.37602" stroke="#000" stroke-width=".98499495px" fill="none"/>
+</svg>


[trafficcontrol] 29/39: Converted decorated lists to definition lists

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 5842d3873613efede38a4ce79ee5e3c3e47861ba
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Mon Oct 1 11:36:42 2018 -0600

    Converted decorated lists to definition lists
---
 docs/source/development/traffic_monitor.rst | 80 ++++++++++++++---------------
 1 file changed, 40 insertions(+), 40 deletions(-)

diff --git a/docs/source/development/traffic_monitor.rst b/docs/source/development/traffic_monitor.rst
index 6979a2b..db9e0c4 100644
--- a/docs/source/development/traffic_monitor.rst
+++ b/docs/source/development/traffic_monitor.rst
@@ -87,71 +87,70 @@ All microthreads in the pipeline are started by ``manager/manager.go:Start()``.
 
 Stat Pipeline
 -------------
-
 .. figure:: traffic_monitor/Stat_Pipeline.*
 	:align: center
 	:width: 70%
 
 	The Stats Pipeline
 
-* **poller** - ``common/poller/poller.go:HttpPoller.Poll()``. Listens for config changes (from the ops config manager), and starts its own internal microthreads, one for each cache to poll. These internal microthreads call the Fetcher at each cache's poll interval.
-
-* **fetcher** - ``common/fetcher/fetcher.go:HttpFetcher.Fetch()``. Fetches the given URL, and passes the returned data to the Handler, along with any errors.
-
-
-* **handler** - ``traffic_monitor/cache/cache.go:Handler.Handle()``. Takes the given result and does all data computation possible with the single result. Currently, this computation primarily involves processing the denormalized ATS data into Go structs, and processing System data into OutBytes, Kbps, etc. Precomputed data is then passed to its result channel, which is picked up by the Manager.
-
-* **manager** - ``traffic_monitor/manager/stat.go:StartStatHistoryManager()``. Takes preprocessed results, and aggregates them. Aggregated results are then placed in shared data structures. The major data aggregated are delivery service statistics, and cache availability data. See :ref:`Aggregated Stat Data <agg-stat-data>` and :ref:`Aggregated Availability Data <agg-avail-data>`.
+poller
+	``common/poller/poller.go:HttpPoller.Poll()``. Listens for configuration changes (from the Ops Configuration Manager), and starts its own, internal microthreads - one for each cache to poll. These internal microthreads call the Fetcher at each cache's poll interval.
+fetcher
+	``common/fetcher/fetcher.go:HttpFetcher.Fetch()``. Fetches the given URL, and passes the returned data to the Handler, along with any errors.
+handler
+	``traffic_monitor/cache/cache.go:Handler.Handle()``. Takes the given result and does all data computation possible with the single result. Currently, this computation primarily involves processing the de-normalized Apache Trafficserver (ATS) data into Go ``struct``s, and processing System data into 'OutBytes', 'Kbps', etc. Precomputed data is then passed to its result channel, which is picked up by the Manager.
+manager
+	``traffic_monitor/manager/stat.go:StartStatHistoryManager()``. Takes preprocessed results, and aggregates them. Aggregated results are then placed in shared data structures. The major data aggregated are delivery service statistics, and cache availability data. See :ref:`Aggregated Stat Data <agg-stat-data>` and :ref:`Aggregated Availability Data <agg-avail-data>`.
 
 
 Health Pipeline
 ---------------
-
 .. figure:: traffic_monitor/Health_Pipeline.*
 	:align: center
 	:width: 70%
 
 	The Health Pipeline
 
-* **poller** - ``common/poller/poller.go:HttpPoller.Poll()``. Same poller type as the Stat Poller pipeline, with a different handler object.
-
-* **fetcher** - ``common/fetcher/fetcher.go:HttpFetcher.Fetch()``. Same fetcher type as the Stat Poller pipeline, with a different handler object.
-
-* **handler** - ``traffic_monitor/cache/cache.go:Handler.Handle()``. Same handler type as the Stat Poller pipeline, but constructed with a flag to not precompute. The health endpoint is of the same form as the stat endpoint, but doesn't return all stat data. So, it doesn't precompute like the Stat Handler, but only processes the system data, and passes the processed result to its result channel, which is picked up by the Manager.
-
-* **manager** - ``traffic_monitor/manager/health.go:StartHealthResultManager()``. Takes preprocessed results, and aggregates them. For the Health pipeline, only health availability data is aggregated. Aggregated results are then placed in shared data structures (lastHealthDurationsThreadsafe, lastHealthEndTimes, etc). See :ref:`Aggregated Availability Data <agg-avail-data>`.
+poller
+	``common/poller/poller.go:HttpPoller.Poll()``. Same poller type as the Stat Poller pipeline, with a different handler object.
+fetcher
+	``common/fetcher/fetcher.go:HttpFetcher.Fetch()``. Same fetcher type as the Stat Poller pipeline, with a different handler object.
+handler
+	``traffic_monitor/cache/cache.go:Handler.Handle()``. Same handler type as the Stat Poller pipeline, but constructed with a flag to not pre-compute anything. The health endpoint is of the same form as the stat endpoint, but doesn't return all stat data. So, it doesn't pre-compute like the Stat Handler, but only processes the system data, and passes the processed result to its result channel, which is picked up by the Manager.
+manager
+	``traffic_monitor/manager/health.go:StartHealthResultManager()``. Takes preprocessed results, and aggregates them. For the Health pipeline, only health availability data is aggregated. Aggregated results are then placed in shared data structures (lastHealthDurationsThreadsafe, lastHealthEndTimes, etc). See :ref:`Aggregated Availability Data <agg-avail-data>`.
 
 
 Peer Pipeline
 -------------
-
 .. figure:: traffic_monitor/Peer_Pipeline.*
 	:align: center
 	:width: 70%
 
 	The Peers Pipeline
 
-* **poller** - ``common/poller/poller.go:HttpPoller.Poll()``. Same poller type as the Stat and Health Poller pipelines, with a different handler object. Its config changes come from the Monitor Config Manager, and it starts an internal microthread for each peer to poll.
-
-* **fetcher** - ``common/fetcher/fetcher.go:HttpFetcher.Fetch()``. Same fetcher type as the Stat and Health Poller pipeline, with a different handler object.
-
-* **handler** - ``traffic_monitor/cache/peer.go:Handler.Handle()``. Decodes the JSON result into an object, and without further processing passes to its result channel, which is picked up by the Manager.
-
-* **manager** - ``traffic_monitor/manager/peer.go:StartPeerManager()``. Takes JSON peer Traffic Monitor results, and aggregates them. The availability of the Peer Traffic Monitor itself, as well as all cache availability from the given peer result, is stored in the shared ``peerStates`` object. Results are then aggregated via a call to the ``combineState()`` lambda, which signals the State Combiner microthread (which stores the combined availability in the shared object ``combinedStates` [...]
+poller
+	``common/poller/poller.go:HttpPoller.Poll()``. Same poller type as the Stat and Health Poller pipelines, with a different handler object. Its configuration changes come from the Monitor Configuration Manager, and it starts an internal microthread for each peer to poll.
+fetcher
+	``common/fetcher/fetcher.go:HttpFetcher.Fetch()``. Same fetcher type as the Stat and Health Poller pipeline, with a different handler object.
+handler
+	``traffic_monitor/cache/peer.go:Handler.Handle()``. Decodes the JSON result into an object, and without further processing passes to its result channel, which is picked up by the Manager.
+manager
+	``traffic_monitor/manager/peer.go:StartPeerManager()``. Takes JSON peer Traffic Monitor results, and aggregates them. The availability of the Peer Traffic Monitor itself, as well as all cache availability from the given peer result, is stored in the shared ``peerStates`` object. Results are then aggregated via a call to the ``combineState()`` lambda, which signals the State Combiner microthread (which stores the combined availability in the shared object ``combinedStates``; See :ref:`St [...]
 
 
 Monitor Config Pipeline
 -----------------------
-
 .. figure:: traffic_monitor/Monitor_Pipeline.*
 	:align: center
 	:width: 70%
 
-	The Monitor Config Pipeline
-
-* **poller** - ``common/poller/poller.go:MonitorConfigPoller.Poll()``. The Monitor Config poller, on its interval, polls Traffic Ops for the Monitor configuration, and writes the polled value to its result channel, which is read by the Manager.
+	The Monitor Configuration Pipeline
 
-* **manager** - ``traffic_monitor/manager/monitorconfig.go:StartMonitorConfigManager()``. Listens for results from the poller, and processes them. Cache changes are written to channels read by the Health, Stat, and Peer pollers. In the Shared Data objects, this also sets the list of new delivery services and removes ones which no longer exist, and sets the list of peer Traffic Monitors.
+poller
+	``common/poller/poller.go:MonitorConfigPoller.Poll()``. The Monitor Configuration poller, on its interval, polls Traffic Ops for the Monitor configuration, and writes the polled value to its result channel, which is read by the Manager.
+manager
+	``traffic_monitor/manager/monitorconfig.go:StartMonitorConfigManager()``. Listens for results from the poller, and processes them. Cache changes are written to channels read by the Health, Stat, and Peer pollers. In the Shared Data objects, this also sets the list of new Delivery Services and removes ones which no longer exist, and sets the list of peer Traffic Monitors.
 
 
 Ops Config Pipeline
@@ -160,13 +159,14 @@ Ops Config Pipeline
 	:align: center
 	:width: 70%
 
-	The Ops Config Pipeline
-
-* **poller** - ``common/poller/poller.go:FilePoller.Poll()``. Polls for changes to the Traffic Ops config file ``traffic_ops.cfg``, and writes the changed config to its result channel, which is read by the Handler.
-
-* **handler** - ``common/handler/handler.go:OpsConfigFileHandler.Listen()``. Takes the given raw config, unmarshalls the JSON into an object, and writes the object to its channel, which is read by the Manager, along with any error.
+	The Ops Configuration Pipeline
 
-* **manager** - ``traffic_monitor/manager/monitorconfig.go:StartMonitorConfigManager()``. Listens for new configs, and processes them. When a new config is received, a new HTTP dispatch map is created via ``traffic_monitor/datareq/datareq.go:MakeDispatchMap()``, and the HTTP server is restarted with the new dispatch map. The Traffic Ops client is also recreated, and stored in its shared data object. The Ops Config change subscribers and Traffic Ops Client change subscribers (the Monitor  [...]
+poller
+	``common/poller/poller.go:FilePoller.Poll()``. Polls for changes to the Traffic Ops configuration file ``traffic_ops.cfg``, and writes the changed configuration to its result channel, which is read by the Handler.
+handler
+	``common/handler/handler.go:OpsConfigFileHandler.Listen()``. Takes the given raw configuration, un-marshals the JSON into an object, and writes the object to its channel, which is read by the Manager, along with any error.
+manager
+	``traffic_monitor/manager/monitorconfig.go:StartMonitorConfigManager()``. Listens for new configurations, and processes them. When a new configuration is received, a new HTTP dispatch map is created via ``traffic_monitor/datareq/datareq.go:MakeDispatchMap()``, and the HTTP server is restarted with the new dispatch map. The Traffic Ops client is also recreated, and stored in its shared data object. The Ops Configuration change subscribers and Traffic Ops Client change subscribers (the Mo [...]
 
 
 Events
@@ -224,10 +224,10 @@ Installing The Developer Environment
 ====================================
 To install the Traffic Monitor Developer environment:
 
-1. Install `go` version 1.7 or greater, from https://golang.org/doc/install and https://golang.org/doc/code.html
-2. Clone the trafficcontrol repository using Git, into ``$GOPATH/src/github.com/apache/trafficcontrol``
-3. Change directories into ``$GOPATH/src/github.com/apache/trafficcontrol/traffic_monitor_golang/traffic_monitor``
-4. Run ``./build.sh``
+#. Install `go` version 1.7 or greater, from https://golang.org/doc/install and https://golang.org/doc/code.html
+#. Clone the trafficcontrol repository using Git, into ``$GOPATH/src/github.com/apache/trafficcontrol``
+#. Change directories into ``$GOPATH/src/github.com/apache/trafficcontrol/traffic_monitor_golang/traffic_monitor``
+#. Run ``./build.sh``
 
 Test Cases
 ==========


[trafficcontrol] 26/39: Moving Extension documentation to one place

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 3216defdde8dc636d80079a3cb1c1158e984f4ad
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Mon Oct 1 09:32:19 2018 -0600

    Moving Extension documentation to one place
---
 docs/source/admin/traffic_ops/extensions.rst |  44 ++++++++++-
 docs/source/development/traffic_ops.rst      | 108 ++++-----------------------
 2 files changed, 58 insertions(+), 94 deletions(-)

diff --git a/docs/source/admin/traffic_ops/extensions.rst b/docs/source/admin/traffic_ops/extensions.rst
index 559ac85..6135cd8 100644
--- a/docs/source/admin/traffic_ops/extensions.rst
+++ b/docs/source/admin/traffic_ops/extensions.rst
@@ -21,20 +21,60 @@ Managing Traffic Ops Extensions
 
 Traffic Ops supports two types of extensions. 'Check Extensions' are analytics scripts that collect and display information as columns in the table under 'Monitor' -> 'Cache Checks' in Traffic Portal. 'Data Source Extensions' provide ways to add data to the graph views and usage APIs.
 
+.. |checkmark| image:: images/good.png
+.. |X| image:: images/bad.png
+
 .. _to-check-ext:
 
 Check Extensions
 ================
-Each extension is a separate bash script located in ``$TO_HOME/bin/checks/`` on the Traffic Ops server (though practically, they can be any executable). The extensions must be registered with Traffic Ops in order to display a column on the Cache Checks page. The currently registered extensions can be listed by running ``/opt/traffic_ops/app/bin/extensions -a``. Some extensions automatically registered with the Traffic Ops database (``to_extension`` table) at install time (see ``traffic_o [...]
+Check Extensions are scripts that, after registering with Traffic Ops, have a column reserved in the "Monitor"->"Cache Checks" view ("Health"->"Server Checks" in the legacy UI) and usually run periodically using ``cron``. Each extension is a separate executable located in ``$TO_HOME/bin/checks/`` on the Traffic Ops server (though all of the default extensions are written in Perl, this is in *no way* a requirement; they can be any valid executable). The currently registered extensions can [...]
 
 .. code-block:: shell
+	:caption: Example Check Extension Call
 
 	$TO_HOME/bin/checks/<name>  -c "{\"base_url\": \",https://\"<traffic_ops_ip>\", \"check_name\": \"<check_name>\"}" -l <log level>
 
 :name: The basename of the extension executable
 :traffic_ops_ip: The IP address or Fully Qualified Domain Name (FQDN) of the Traffic Ops server
 :check_name: The name of the check e.g. ``CDU``, ``CHR``, ``DSCP``, ``MTU``, etc...
-:log_level: A whole number between 1 and 4 (inclusive), with 4 being the most verbose. This field is optional
+:log_level: A whole number between 1 and 4 (inclusive), with 4 being the most verbose. Implementation of this field is optional
+
+It is the responsibility of the check extension script to iterate over the servers it wants to check and post the results. 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 hard-coded with an authentication 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 [...]
+
+	Script here.
+
+Currently, the following Check Extensions are available and installed by default:
+
+Cache Disk Usage Check (CDU)
+	This check shows how much of the available total cache disk is in use. A "warm" cache should show 100.00.
+
+Cache Hit Ratio Check (CHR)
+	The cache hit ratio for the cache in the last 15 minutes (the interval is determined by the ``cron`` entry).
+
+Differential Services CodePoint Check (DSCP)
+	Checks if the returning traffic from the cache has the correct DSCP value as assigned in the delivery service. (Some routers will overwrite DSCP)
+
+Maximum Transmission Unit Check (MTU)
+	Checks if the Traffic Ops host (if that is the one running the check) can send and receive 8192B packets to the ``ip_address`` of the server in the server table.
+
+Operational Readiness Check (ORT)
+	See :ref:`traffic-ops-ort` 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 for caches that do not have updates pending.
+
+Ping Check - 10G, ILO, 10G6, FQDN
+	The ``bin/checks/ToPingCheck.pl`` script checks basic IP connectivity, and in the default setup it checks IP connectivity to the following:
+
+	10G
+		Is the ``ip_address`` (the main IPv4 address) from the server table ping-able?
+	ILO
+		Is the ``ilo_ip_address`` (the lights-out-management IPv4 address) from the server table ping-able?
+	10G6
+		Is the ``ip6_address`` (the main IPv6 address) from the server table ping-able?
+	FQDN
+		Is the Fully Qualified Domain name (the concatenation of ``host_name`` and ``.`` and ``domain_name`` from the server table) ping-able?
+
+Traffic Router Check (RTR)
+	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, "the optimistic approach")
 
 .. _to-datasource-ext:
 
diff --git a/docs/source/development/traffic_ops.rst b/docs/source/development/traffic_ops.rst
index 4e59046..45ec56d 100644
--- a/docs/source/development/traffic_ops.rst
+++ b/docs/source/development/traffic_ops.rst
@@ -13,13 +13,13 @@
 .. limitations under the License.
 ..
 
--**********
+***********
 Traffic Ops
 ***********
 
 Introduction
 ============
-Traffic Ops uses a Postgres database to store the configuration information, and the `Mojolicious framework <http://mojolicio.us/>`_ to generate the user interface and REST APIs.
+Traffic Ops uses a PostgreSQL database to store the configuration information, and the `Mojolicious framework <http://mojolicio.us/>`_ to generate the user interface and REST APIs.
 
 Software Requirements
 =====================
@@ -305,109 +305,33 @@ Extensions
 ==========
 Traffic Ops Extensions are a way to enhance the basic functionality of Traffic Ops in a custom manner. There are three types of extensions:
 
-1. Check Extensions
-
-	These allow you to add custom checks to the "Health->Server Checks" view.
-
-2. Configuration Extensions
-
-	These allow you to add custom configuration file generators.
-
-3. Data source Extensions
-
-	These allow you to add statistic sources for the graph views and APIs.
-
-Extensions are managed using the $TO_HOME/bin/extensions command line script. For more information see :ref:`admin-to-ext-script`.
-
 Check Extensions
-----------------
-
-In other words, check extensions are scripts that, after registering with Traffic Ops, have a column reserved in the "Health->Server Checks" view and that usually run periodically out of cron.
-
-.. |checkmark| image:: ../admin/traffic_ops/images/good.png
-
-.. |X| image:: ../admin/traffic_ops/images/bad.png
-
-
-It is the responsibility of the check extension script to iterate over the servers it wants to check and post the results.
-
-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' ``/api/1.1/servers.json`` REST target. This list is walked, running a command [...]
-
-A check extension can have a column of |checkmark|'s and |X|'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: ::
-
-
-	Script here.
+	These allow you to add custom checks to the "Monitor"->"Cache Checks" view.
 
-Check Extension scripts are located in the $TO_HOME/bin/checks directory.
-
-Currently, the following Check Extensions are available and installed by default:
-
--*Cache Disk Usage Check - CDU**
-	This check shows how much of the available total cache disk is in use. A "warm" cache should show 100.00.
-
--*Cache Hit Ratio Check - CHR**
-	The cache hit ratio for the cache in the last 15 minutes (the interval is determined by the cron entry).
-
--*DiffServe CodePoint Check - DSCP**
-	Checks if the returning traffic from the cache has the correct DSCP value as assigned in the delivery service. (Some routers will overwrite DSCP)
-
--*Maximum Transmission Check - MTU**
-	Checks if the Traffic Ops host (if that is the one running the check) can send and receive 8192 size packets to the ``ip_address`` of the server in the server table.
-
--*Operational Readiness Check - ORT**
-	See :ref:`traffic-ops-ort` 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.
-
--*Ping Check - 10G, ILO, 10G6, FQDN**
-	The bin/checks/ToPingCheck.pl is to check basic IP connectivity, and in the default setup it checks IP connectivity to the following:
-
-	10G
-		Is the ``ip_address`` (the main IPv4 address) from the server table pingable?
-	ILO
-		Is the ``ilo_ip_address`` (the lights-out-mangement IPv4 address) from the server table pingable?
-	10G6
-		Is the ``ip6_address`` (the main IPv6 address) from the server table pingable?
-	FQDN
-		Is the Fully Qualified Domain name (the concatenation of ``host_name`` and ``.`` and ``domain_name`` from the server table) pingable?
-
--*Traffic Router Check - RTR**
-	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, "the optimistic approach")
-
-
-Configuration Extensions
-------------------------
-NOTE: Config Extensions are Beta at this time.
+Data Source Extensions
+	These allow you to add statistic sources for the graph views and APIs.
 
+Extensions are managed using the ``$TO_HOME/bin/extensions`` command line script
 
-Data Source Extensions
-----------------------
-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 t [...]
+.. seealso:: For more information see :ref:`admin-to-ext-script`.
 
 
 Extensions at Runtime
 ---------------------
-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.
-
-Extension Directories
----------------------
-PERL5LIB Example Configuration: ::
-
-	 export PERL5LIB=/opt/traffic_ops_extensions/private/lib/Extensions:/opt/traffic_ops/app/lib/Extensions/TrafficStats
+The search path for Data Source Extensions depends on the configuration of the ``PERL5LIB`` environment variable, which is pre-configured in the Traffic Ops start scripts. All Check Extensions must be located in ``$TO_HOME/bin/checks``
 
-Perl Package Naming Convention
-------------------------------
-To prevent Extension namespace collisions within Traffic Ops all Extensions should follow the package naming convention below:
+	.. code-block:: bash
+		:caption: Example ``PERL5LIB`` Configuration
 
-Extensions::<ExtensionName>
+		export PERL5LIB=/opt/traffic_ops_extensions/private/lib/Extensions:/opt/traffic_ops/app/lib/Extensions/TrafficStats
 
-Data Source Extension Perl package name example
-Extensions::TrafficStats
-Extensions::YourCustomExtension
+To prevent Data Source Extension namespace collisions within Traffic Ops all Data Source Extensions should follow the package naming convention '``Extensions::<ExtensionName>``'
 
-TrafficOpsRoutes.pm
--------------------
-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.
+``TrafficOpsRoutes.pm``
+-----------------------
+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 be present in the top directory of your Extension. The routes that are defined should follow the `Mojolicious route conventions <https://mojolicious.org/perldoc/Mojolicious/Guides/Routing#Routes>`_.
 
 
 Development Configuration
 --------------------------
-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 'pins' on that class or Mojo Route and doesn't look any further, which allows for the developer to *override* Traffic Ops functionality.
+To incorporate any custom Data Source Extensions during development set your ``PERL5LIB`` environment variable with any number of colon-separated directories with the understanding that the ``PERL5LIB`` search order is from left to right through this list. Once Perl locates your custom route or Perl package/class it 'pins' on that class or Mojolicious Route and doesn't look any further, which allows for the developer to override Traffic Ops functionality.


[trafficcontrol] 05/39: No, seriously, what's with the arrow?

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 0f94d63c1402c7f44e8723751f0694097d33e951
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Tue Sep 18 18:10:35 2018 -0600

    No, seriously, what's with the arrow?
---
 docs/source/overview/fwda.png            | Bin 206 -> 0 bytes
 docs/source/overview/traffic_monitor.rst |  40 ++++----------
 docs/source/overview/traffic_router.rst  |  89 +++++++++++++------------------
 docs/source/overview/traffic_stats.rst   |  31 +++++------
 4 files changed, 60 insertions(+), 100 deletions(-)

diff --git a/docs/source/overview/fwda.png b/docs/source/overview/fwda.png
deleted file mode 100644
index ba63bee..0000000
Binary files a/docs/source/overview/fwda.png and /dev/null differ
diff --git a/docs/source/overview/traffic_monitor.rst b/docs/source/overview/traffic_monitor.rst
index eefb67c..05b4dcc 100644
--- a/docs/source/overview/traffic_monitor.rst
+++ b/docs/source/overview/traffic_monitor.rst
@@ -15,27 +15,17 @@
 
 .. _tc-tm:
 
-.. index::
-	Traffic Monitor - Overview
-
-.. |arrow| image:: fwda.png
-
+***************
 Traffic Monitor
-===============
-Traffic Monitor is an HTTP service that monitors the caches in a CDN for a variety of metrics. These metrics are for use in determining the overall health of a given cache and the related delivery services. A given CDN can operate a number of Traffic Monitors, from a number of geographically diverse locations, to prevent false positives caused by network problems at a given site.
-
-Traffic Monitors operate independently, but use the state of other Traffic Monitors in conjunction with their own state, to provide a consistent view of CDN cache health to upstream applications such as Traffic Router. Health Protocol governs the cache and Delivery Service availability.
-
-Traffic Monitor provides a view into CDN health using several RESTful JSON endpoints, which are consumed by other Traffic Monitors and upstream components such as Traffic Router. Traffic Monitor is also responsible for serving the overall CDN configuration to Traffic Router, which ensures that the configuration of these two critical components remain synchronized as operational and health related changes propagate through the CDN.
+***************
+Traffic Monitor is an HTTP service that monitors the caches in a CDN for a variety of metrics. These metrics are for use in determining the overall health of a given cache and the related delivery services. A given CDN can operate a number of Traffic Monitors, from a number of geographically diverse locations, to prevent false positives caused by network problems at a given site. Traffic Monitors operate independently, but use the state of other Traffic Monitors in conjunction with their [...]
 
 
 .. _astats:
 
-|arrow| Cache Monitoring
--------------------------
-Traffic Monitor polls all caches configured with a status of ``REPORTED`` or ``ADMIN_DOWN`` at an interval specified as a configuration parameter in Traffic Ops. If the cache is set to ``ADMIN_DOWN`` it is marked as unavailable but still polled for availability and statistics. If the cache is explicitly configured with a status of ``ONLINE`` or ``OFFLINE``, it is not polled by Traffic Monitor and presented to Traffic Router as configured, regardless of actual availability.
-
-Traffic Monitor makes HTTP requests at regular intervals to a special URL on each EDGE cache and consumes the JSON output. The special URL is a plugin running on the Apache Traffic Server (ATS) caches called astats, which is restricted to Traffic Monitor only. The astats plugin provides insight into application and system performance, such as:
+Cache Monitoring
+================
+Traffic Monitor polls all caches configured with a status of ``REPORTED`` or ``ADMIN_DOWN`` at an interval specified as a configuration parameter in Traffic Ops. If the cache is set to ``ADMIN_DOWN`` it is marked as unavailable but still polled for availability and statistics. If the cache is explicitly configured with a status of ``ONLINE`` or ``OFFLINE``, it is not polled by Traffic Monitor and presented to Traffic Router as configured, regardless of actual availability. Traffic Monito [...]
 
 - Throughput (e.g. bytes in, bytes out, etc).
 - Transactions (e.g. number of 2xx, 3xx, 4xx responses, etc).
@@ -44,23 +34,13 @@ Traffic Monitor makes HTTP requests at regular intervals to a special URL on eac
 - Storage performance (e.g.: writes, reads, frags, directories, etc).
 - System performance (e.g: load average, network interface throughput, etc).
 
-Many of the application-level statistics are available at the global or aggregate level, some at the Delivery Service (remap rule) level. Traffic Monitor uses the system level performance to determine the overall health of the cache by evaluating network throughput and load against values configured in Traffic Ops. Traffic Monitor also uses throughput and transaction statistics at the remap rule level to determine Delivery Service health.
-
-If astats is unavailable due to a network related issue or the system statistics have exceeded the configured thresholds, Traffic Monitor will mark the cache as unavailable. If the delivery service statistics exceed the configured thresholds, the delivery service is marked as unavailable, and Traffic Router will start sending clients to the overflow destinations for that delivery service, but the cache remains available to serve other content,
+Many of the application-level statistics are available at the global or aggregate level, some at the Delivery Service (remap rule) level. Traffic Monitor uses the system level performance to determine the overall health of the cache by evaluating network throughput and load against values configured in Traffic Ops. Traffic Monitor also uses throughput and transaction statistics at the remap rule level to determine Delivery Service health. If astats is unavailable due to a network related [...]
 
 .. seealso:: For more information on ATS Statistics, see the `ATS documentation <https://docs.trafficserver.apache.org/en/latest/index.html>`_
 
 .. _health-proto:
 
-|arrow| Health Protocol
------------------------
-Redundant Traffic Monitor servers operate independently from each other but take the state of other Traffic Monitors into account when asked for health state information. In the above overview of cache monitoring, the behavior of Traffic Monitor pertains only to how an individual instance detects and handles failures. The Health Protocol adds another dimension to the health state of the CDN by merging the states of all Traffic Monitors into one, and then taking the *optimistic* approach  [...]
-
-Upon startup or configuration change in Traffic Ops, in addition to caches, Traffic Monitor begins polling its peer Traffic Monitors whose state is set to ``ONLINE``. Each ``ONLINE`` Traffic Monitor polls all of its peers at a configurable interval and saves the peer's state for later use. When polling its peers, Traffic Monitor asks for the raw health state from each respective peer, which is strictly that instance's view of the CDN's health. When any ``ONLINE`` Traffic Monitor is asked [...]
-
-In operation of the health protocol, Traffic Monitor takes all health states from all peers, including the locally known health state, and serves an optimistic outlook to the requesting client. This means that, for example, if three of the four Traffic Monitors see a given cache or Delivery Service as exceeding its thresholds and unavailable, it is still considered available. Only if all Traffic Monitors agree that the given object is unavailable is that state propagated to upstream comp [...]
-
-It is not uncommon for a cache to be marked unavailable by Traffic Monitor - in fact, it is business as usual for many CDNs. Should a widely requested video asset cause a single cache to get close to its interface capacity, the Health Protocol will "kicks in", and Traffic Monitor marks cache-03 as unavailable. New clients want to see the same asset, and now, Traffic Router will send these customers to another cache (say cache-01) in the same Cache Group. The load is now shared between ca [...]
-
-It is less common for a delivery service to be marked unavailable by Traffic Monitor, the delivery service thresholds are usually used for overflow situations at extreme peaks to protect other delivery services in the CDN from getting impacted.
+Health Protocol
+===============
+Redundant Traffic Monitor servers operate independently from each other but take the state of other Traffic Monitors into account when asked for health state information. In the above overview of cache monitoring, the behavior of Traffic Monitor pertains only to how an individual instance detects and handles failures. The Health Protocol adds another dimension to the health state of the CDN by merging the states of all Traffic Monitors into one, and then taking the *optimistic* approach  [...]
 
diff --git a/docs/source/overview/traffic_router.rst b/docs/source/overview/traffic_router.rst
index d466e8a..4b310d7 100644
--- a/docs/source/overview/traffic_router.rst
+++ b/docs/source/overview/traffic_router.rst
@@ -15,13 +15,9 @@
 
 .. _tc-tr:
 
-.. |arrow| image:: fwda.png
-
-.. index::
-	Traffic Router - Overview
-
+**************
 Traffic Router
-==============
+**************
 Traffic Router's function is to send clients to the most optimal cache. 'Optimal' in this case is based on a number of factors:
 
 * Distance between the cache and the client (not necessarily measured in meters, but quite often in layer 3 network hops). Less network distance between the client and cache yields better performance, and lower network load. Traffic Router helps clients connect to the best performing cache for their location at the lowest network cost.
@@ -34,69 +30,56 @@ Traffic routing options are often configured at the Delivery Service level.
 
 .. _ds:
 
-|arrow| Delivery Service
-------------------------
-	As discussed in the basic concepts section, the EDGE caches are configured as reverse proxies, and the Traffic Control CDN looks from the outside as a very large reverse proxy. Delivery Services are often referred to a reverse proxy remap rule. In most cases, a Delivery Service is a one to one mapping to a FQDN that is used as a hostname to deliver the content. Many options and settings regarding how to optimize the content delivery, which is configurable on a Delivery Service basis. So [...]
+Delivery Service
+================
+As discussed in the basic concepts section, the EDGE caches are configured as reverse proxies, and the Traffic Control CDN looks from the outside as a very large reverse proxy. Delivery Services are often referred to a reverse proxy remap rule. In most cases, a Delivery Service is a one to one mapping to a FQDN that is used as a hostname to deliver the content. Many options and settings regarding how to optimize the content delivery, which is configurable on a Delivery Service basis. Som [...]
 
-	* Cache in RAM, cache on disk, or do not cache at all.
-	* Use DNS or HTTP Content routing (see below).
-	* Limits on transactions per second and bandwidth.
-	* Protocol (HTTP or HTTPS).
-	* Token based authentication settings.
-	* Header rewrite rules.
+* Cache in RAM, cache on disk, or do not cache at all.
+* Use DNS or HTTP Content routing (see below).
+* Limits on transactions per second and bandwidth.
+* Protocol (HTTP or HTTPS).
+* Token based authentication settings.
+* Header rewrite rules.
 
-	Since Traffic Control version 2.1 Delivery Services can optionally be linked to a :ref:`profile`, and have parameters associated with them. The first feature that uses Delivery Service parameters is the :ref:`multi-site-origin` configuration.
-	Delivery Services are also for use in allowing multi-tenants to coexist in the Traffic Control CDN without interfering with each other, and to keep information about their content separated.
+Since Traffic Control version 2.1 Delivery Services can optionally be linked to a :ref:`profile`, and have parameters associated with them. The first feature that uses Delivery Service parameters is the :ref:`multi-site-origin` configuration. Delivery Services are also for use in allowing multi-tenants to coexist in the Traffic Control CDN without interfering with each other, and to keep information about their content separated.
 
 .. _localization:
 
-|arrow| Localization
---------------------
-	Traffic Router uses a JSON input file called the *coverage zone map* to determine what *Cache Group* is closest to the client. If the client IP address is not in this coverage zone map, it falls back to geographic mapping, using a GeoIP2 database to find the client's location, and the geographic coordinates from Traffic Ops for the Cache Group.
-
-Traffic Router is inserted into the HTTP retrieval process by making it DNS authoritative for the domain of the CDN delivery service. In the example of the reverse proxy, the client was given the ``http://www-origin-cache.cdn.com/foo/bar/fun.html`` URL. In a Traffic Control CDN, URLs start with a routing name, which is configurable per-Delivery Service, e.g. ``http://foo.mydeliveryservice.cdn.com/fun/example.html`` with the chosen routing name ``foo``.
-
-.. index::
-	Content Routing
+Localization
+============
+Traffic Router uses a JSON input file called the *coverage zone map* to determine what *Cache Group* is closest to the client. If the client IP address is not in this coverage zone map, it falls back to geographic mapping, using a GeoIP2 database to find the client's location, and the geographic coordinates from Traffic Ops for the Cache Group. Traffic Router is inserted into the HTTP retrieval process by making it DNS authoritative for the domain of the CDN delivery service. In the exam [...]
 
 .. _dns-cr:
 
-|arrow| DNS Content Routing
----------------------------
-	For a DNS Delivery Service the client might receive a URL such as ``http://foo.dsname.cdn.com/fun/example.html``. When the Local Domain Name Server (LDNS) server is resolving this ``foo.dsname.cdn.com`` hostname to an IP address, it ends at Traffic Router because it is the authoritative DNS server for ``cdn.com`` and the domains below it, and subsequently responds with a list of IP addresses from the eligible caches based on the location of the LDNS server. When responding, Traffic Rout [...]
+DNS Content Routing
+===================
+For a DNS Delivery Service the client might receive a URL such as ``http://foo.dsname.cdn.com/fun/example.html``. When the Local Domain Name Server (LDNS) server is resolving this ``foo.dsname.cdn.com`` hostname to an IP address, it ends at Traffic Router because it is the authoritative DNS server for ``cdn.com`` and the domains below it, and subsequently responds with a list of IP addresses from the eligible caches based on the location of the LDNS server. When responding, Traffic Route [...]
 
 .. _http-cr:
 
-|arrow| HTTP Content Routing
-----------------------------
-	For an HTTP Delivery Service the client might receive a URL such as ``http://bar.dsname.cdn.com/fun/example.html``. The LDNS server resolves this ``bar.dsname.cdn.com`` to an IP address, but in this case Traffic Router returns its own IP address. The client opens a connection to port 80 on the Traffic Router's IP address, and sends:
-
-	.. code-block:: http
-
-		GET /fun/example.html HTTP/1.1
-		Host: bar.dsname.cdn.com
-
-	Traffic Router uses an HTTP 302 to redirect the client to the best cache. For example:
-
-	.. code-block:: http
+HTTP Content Routing
+====================
+For an HTTP Delivery Service the client might receive a URL such as ``http://bar.dsname.cdn.com/fun/example.html``. The LDNS server resolves this ``bar.dsname.cdn.com`` to an IP address, but in this case Traffic Router returns its own IP address. The client opens a connection to port 80 on the Traffic Router's IP address, and sends:
 
-		HTTP/1.1 302 Moved Temporarily
-		Server: Apache-Coyote/1.1
-		Location: http://atsec-nyc-02.dsname.cdn.com/fun/example.html
-		Content-Length: 0
-		Date: Tue, 13 Jan 2015 20:01:41 GMT
+.. code-block:: http
 
-	The information Traffic Router can consider when selecting a cache in this case is much better:
+	GET /fun/example.html HTTP/1.1
+	Host: bar.dsname.cdn.com
 
-	* The client's IP address (the other side of the socket).
-	* The URL path the client is requesting, excluding query string.
-	* All HTTP 1.1 headers.
+Traffic Router uses an HTTP ``302 FOUND`` response to redirect the client to the best cache. For example:
 
-	The client follows the redirect and performs a DNS request for the IP address for ``atsec-nyc-02.dsname.cdn.com``, and normal HTTP steps follow, except the sending of the Host: header when connected to the cache is ``Host: atsec-nyc-02.dsname.cdn``, and the configuration of the cache includes the remap rule (e.g.``http://atsec-nyc-02.dsname.cdn http://origin.dsname.com``).
+.. code-block:: http
 
-	Traffic Router sends all requests for the same path in a delivery service to the same cache in a cache group using consistent hashing, in this case all caches in a cache group are not carrying the same content, and there is a much larger combined cache in the cache group.
+	HTTP/1.1 302 Moved Temporarily
+	Server: Apache-Coyote/1.1
+	Location: http://atsec-nyc-02.dsname.cdn.com/fun/example.html
+	Content-Length: 0
+	Date: Tue, 13 Jan 2015 20:01:41 GMT
 
-In many cases DNS content routing is the best possible option, especially in cases where the client is receiving small objects from the CDN like images and web pages.
+The information Traffic Router can consider when selecting a cache in this case is much better:
 
-Traffic Router is redundant and horizontally scalable by adding more instances into the DNS hierarchy using NS records.
+* The client's IP address (the other side of the socket).
+* The URL path the client is requesting, excluding query string.
+* All HTTP 1.1 headers.
 
+The client follows the redirect and performs a DNS request for the IP address for ``atsec-nyc-02.dsname.cdn.com``, and normal HTTP steps follow, except the sending of the Host: header when connected to the cache is ``Host: atsec-nyc-02.dsname.cdn``, and the configuration of the cache includes the remap rule (e.g.``http://atsec-nyc-02.dsname.cdn http://origin.dsname.com``). Traffic Router sends all requests for the same path in a delivery service to the same cache in a cache group using c [...]
diff --git a/docs/source/overview/traffic_stats.rst b/docs/source/overview/traffic_stats.rst
index debf5a0..2242f35 100644
--- a/docs/source/overview/traffic_stats.rst
+++ b/docs/source/overview/traffic_stats.rst
@@ -14,11 +14,10 @@
 ..
 
 .. _tc-ts:
-.. |arrow| image:: fwda.png
-
 
+*************
 Traffic Stats
-=============
+*************
 Traffic Stats is a program written in `Go <http://golang.org>`_ that is used to acquire and store statistics about CDNs controlled by Traffic Control. Traffic Stats mines metrics from Traffic Monitor's JSON APIs and stores the data in `InfluxDB <http://influxdb.com>`_. Data is typically stored in InfluxDB on a short-term basis (30 days or less). The data from InfluxDB is then used to drive graphs created by `Grafana <http://grafana.org>`_ - which are linked to from Traffic Ops - as well  [...]
 
 - Gathers stat data for Edge Caches and Delivery Services at a configurable interval (10 second default) from the Traffic Monitor API's and stores the data in InfluxDB
@@ -26,23 +25,21 @@ Traffic Stats is a program written in `Go <http://golang.org>`_ that is used to
 
 Stat data is stored in three different databases:
 
-	- ``cache_stats``: Stores data gathered from edge caches. The `measurements <https://influxdb.com/docs/v0.9/concepts/glossary.html#measurement>`_ stored by cache are: bandwidth, maxKbps, and ``client_connections`` (``ats.proxy.process.http.current_client_connections``). Cache Data is stored with `tags <https://influxdb.com/docs/v0.9/concepts/glossary.html#tag>`_ for hostname, Cache Group, and CDN. Data can be queried using tags.
-
-	- ``deliveryservice_stats``: Stores data for Delivery Services. The measurements stored by delivery service are:
+- ``cache_stats``: Stores data gathered from edge caches. The `measurements <https://influxdb.com/docs/v0.9/concepts/glossary.html#measurement>`_ stored by cache are: bandwidth, maxKbps, and ``client_connections`` (``ats.proxy.process.http.current_client_connections``). Cache Data is stored with `tags <https://influxdb.com/docs/v0.9/concepts/glossary.html#tag>`_ for hostname, Cache Group, and CDN. Data can be queried using tags.
 
-		- ``kbps``
-		- ``status_4xx``
-		- ``status_5xx``
-		- ``tps_2xx``
-		- ``tps_3xx``
-		- ``tps_4xx``
-		- ``tps_5xx``
-		- ``tps_total``
+- ``deliveryservice_stats``: Stores data for Delivery Services. The measurements stored by delivery service are:
 
-		Delivery Service statistics are stored with tags for Cache Group, CDN, and Delivery Service ``xml_id``.
+	- ``kbps``
+	- ``status_4xx``
+	- ``status_5xx``
+	- ``tps_2xx``
+	- ``tps_3xx``
+	- ``tps_4xx``
+	- ``tps_5xx``
+	- ``tps_total``
 
-	- ``daily_stats``: Stores summary data for daily activities. The statistics that are currently summarized are Max Bandwidth and Bytes Served and they are stored by CDN.
+	Delivery Service statistics are stored with tags for Cache Group, CDN, and Delivery Service ``xml_id``.
 
-------------
+- ``daily_stats``: Stores summary data for daily activities. The statistics that are currently summarized are Max Bandwidth and Bytes Served and they are stored by CDN.
 
 Traffic Stats does not influence overall CDN operation, but is required in order to display charts in Traffic Portal and the legacy Traffic Ops UI.


[trafficcontrol] 02/39: updated an api route

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 4a20e54ba970b795d953ab7557d1347b02029d60
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Mon Sep 17 10:55:17 2018 -0600

    updated an api route
---
 docs/source/api/v11/asn.rst | 93 ++++++++++++++++++++++++---------------------
 1 file changed, 49 insertions(+), 44 deletions(-)

diff --git a/docs/source/api/v11/asn.rst b/docs/source/api/v11/asn.rst
index b6960d7..dd31b3e 100644
--- a/docs/source/api/v11/asn.rst
+++ b/docs/source/api/v11/asn.rst
@@ -1,69 +1,74 @@
-.. 
-.. 
+..
+..
 .. Licensed under the Apache License, Version 2.0 (the "License");
 .. you may not use this file except in compliance with the License.
 .. You may obtain a copy of the License 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.
-.. 
+..
 
 
 .. _to-api-v11-asn:
 
+***
 ASN
-===
+***
 
 .. _to-api-v11-asns-route:
 
-/api/1.1/asns
-+++++++++++++
+``/api/1.1/asns``
+=================
 
-**GET /api/1.1/asns**
+``GET``
+-------
 
-  Authentication Required: Yes
+:Authentication Required: Yes
 
-  Role(s) Required: None
+:Role(s) Required: None
 
-  **Response Properties**
+.. table:: Response Properties
 
-  +------------------+--------+-------------------------------------------------------------------------+
-  |    Parameter     |  Type  |                               Description                               |
-  +==================+========+=========================================================================+
-  | ``asns``         | array  | A collection of asns                                                    |
-  +------------------+--------+-------------------------------------------------------------------------+
-  | ``>lastUpdated`` | string | The Time / Date this server entry was last updated                      |
-  +------------------+--------+-------------------------------------------------------------------------+
-  | ``>id``          | string | Local unique identifier for the ASN                                     |
-  +------------------+--------+-------------------------------------------------------------------------+
-  | ``>asn``         | string | Autonomous System Numbers per APNIC for identifying a service provider. |
-  +------------------+--------+-------------------------------------------------------------------------+
-  | ``>cachegroup``  | string | Related cachegroup name                                                 |
-  +------------------+--------+-------------------------------------------------------------------------+
+	+------------------+--------+-------------------------------------------------------------------------+
+	|    Parameter     |  Type  |                               Description                               |
+	+==================+========+=========================================================================+
+	| ``asns``         | array  | A collection of asns                                                    |
+	+------------------+--------+-------------------------------------------------------------------------+
+	| ``>lastUpdated`` | string | The Time / Date this server entry was last updated                      |
+	+------------------+--------+-------------------------------------------------------------------------+
+	| ``>id``          | string | Local unique identifier for the ASN                                     |
+	+------------------+--------+-------------------------------------------------------------------------+
+	| ``>asn``         | string | Autonomous System Numbers per APNIC for identifying a service provider. |
+	+------------------+--------+-------------------------------------------------------------------------+
+	| ``>cachegroup``  | string | Related cachegroup name                                                 |
+	+------------------+--------+-------------------------------------------------------------------------+
 
-  **Response Example** ::
+Response Example
+""""""""""""""""
+.. code-block:: json
+	:tab-width: 4
 
-    {
-     "response": {
-        "asns": [
-           {
-              "lastUpdated": "2012-09-17 21:41:22",
-              "id": "27",
-              "asn": "7015",
-              "cachegroup": "us-ma-woburn"
-           },
-           {
-              "lastUpdated": "2012-09-17 21:41:22",
-              "id": "28",
-              "asn": "7016",
-              "cachegroup": "us-pa-pittsburgh"
-           }
-        ]
-     },
-    }
+	{
+	 "response": {
+			"asns": [
+				 {
+						"lastUpdated": "2012-09-17 21:41:22",
+						"id": "27",
+						"asn": "7015",
+						"cachegroup": "us-ma-woburn"
+				 },
+				 {
+						"lastUpdated": "2012-09-17 21:41:22",
+						"id": "28",
+						"asn": "7016",
+						"cachegroup": "us-pa-pittsburgh"
+				 }
+			]
+	 },
+	}
 


[trafficcontrol] 38/39: Added libpcap dependency listing

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit e55f4f6de3a8d9b82a3fe9c0ef2568d02360ae7e
Author: ocket8888 <oc...@gmail.com>
AuthorDate: Mon Oct 8 07:25:12 2018 -0600

    Added libpcap dependency listing
---
 docs/source/development/traffic_ops.rst | 1 +
 1 file changed, 1 insertion(+)

diff --git a/docs/source/development/traffic_ops.rst b/docs/source/development/traffic_ops.rst
index 8a0a545..d856cc5 100644
--- a/docs/source/development/traffic_ops.rst
+++ b/docs/source/development/traffic_ops.rst
@@ -27,6 +27,7 @@ To work on Traffic Ops you need a CentOS 7+ environment that has the following i
 
 - `Carton 1.0.12 <http://search.cpan.org/~miyagawa/Carton-v1.0.12/lib/Carton.pm>`_
 
+	- libpcap (plus development library - usually "libpcap-dev" or "libpcap-devel")
 	- cpan JSON
 	- cpan JSON\:\:PP