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

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


The following commit(s) were added to refs/heads/master by this push:
     new 1e5d658  Static dns entry example documentation (#3379)
1e5d658 is described below

commit 1e5d6582b1225e9bf686953704d1f91cdf65a480
Author: ocket8888 <[email protected]>
AuthorDate: Mon Mar 11 12:29:47 2019 -0600

    Static dns entry example documentation (#3379)
    
    * Added a quick-how-to guide for Delivery Service static dns entries
    
    * Quality of life improvements to static dns entry forms
    
    Also changes "View" in Delivery Service details pages' "More" dropdown
    (except for "View Charts") to the more accurate "Manage".
    
    * 'Fixed' docs compilation warnings due to Pygments not being able to 
handle missing HTTP reason phrases
    
    * Fixed incorrect DNS names and bad example
    
    * Changed example IP address to one that's reserved for documentation
    
    * prefer 'record' to 'entry' (mostly)
    
    * Rewording the '.. note'
    
    * Changed example address 192.0.2.0 -> 192.0.2.1
    
    * moved docs for static DNS on DSes from TO to TP
    
    * reword opening statement
    
    * Replaced s on required field labels
---
 docs/source/admin/quick_howto/index.rst            |  11 +--
 docs/source/admin/quick_howto/static_dns.rst       |  77 +++++++++++++++++++++
 docs/source/admin/quick_howto/static_dns/00.png    | Bin 0 -> 39724 bytes
 docs/source/admin/quick_howto/static_dns/01.png    | Bin 0 -> 37201 bytes
 docs/source/admin/traffic_ops/using.rst            |   9 ---
 .../admin/traffic_portal/usingtrafficportal.rst    |   5 ++
 .../traffic_router/traffic_router_api.rst          |   6 +-
 .../form.deliveryService.DNS.tpl.html              |  10 +--
 .../form.deliveryService.HTTP.tpl.html             |  10 +--
 .../form.deliveryService.Steering.tpl.html         |   8 +--
 .../form.deliveryService.anyMap.tpl.html           |   8 +--
 .../form.deliveryServiceStaticDnsEntry.tpl.html    |  26 +++----
 12 files changed, 122 insertions(+), 48 deletions(-)

diff --git a/docs/source/admin/quick_howto/index.rst 
b/docs/source/admin/quick_howto/index.rst
index 171779d..01a46c8 100644
--- a/docs/source/admin/quick_howto/index.rst
+++ b/docs/source/admin/quick_howto/index.rst
@@ -20,12 +20,13 @@ Traffic Control is a complicated system, and documenting it 
is not trivial. Some
 
 .. toctree::
 
-       multi_site
-       federations
-       regionalgeo
        anonymous_blocking
+       cachegroup_fallback
+       ciab
        dnssec
        ds_requests
+       federations
+       multi_site
+       regionalgeo
+       static_dns
        steering
-       ciab
-       cachegroup_fallback
\ No newline at end of file
diff --git a/docs/source/admin/quick_howto/static_dns.rst 
b/docs/source/admin/quick_howto/static_dns.rst
new file mode 100644
index 0000000..6f6df8f
--- /dev/null
+++ b/docs/source/admin/quick_howto/static_dns.rst
@@ -0,0 +1,77 @@
+..
+..
+.. 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.
+..
+
+.. _static-dns-qht:
+
+******************************
+Configuring Static DNS Entries
+******************************
+Static DNS records (historically "entries") can be configured within the DNS 
subdomain of a given :term:`Delivery Service`. In a typical scenario, the 
:term:`Delivery Service` will have DNS records automatically generated based on 
its "xml_id" and "routing name", and the name and subdomain of the CDN to which 
it belongs. For example, in the :ref:`ciab` default environment, the "demo1" 
:term:`Delivery Service` has an automatically generated DNS record for 
``video.demo1.mycdn.ciab.test``.  [...]
+
+.. note:: It's only possible to create static DNS records within a 
:term:`Delivery Service`'s subdomain. That is, one could not create an ``A`` 
record for ``foo.bar.mycdn.ciab.test`` on the :ref:`ciab` :term:`Delivery 
Service` "demo1", since "demo1"'s subdomain is ``demo1.mycdn.ciab.test``.
+
+.. seealso:: This guide covers how to set up static DNS records using Traffic 
Portal. It's also possible to do so directly using the :ref:`to-api` endpoint 
:ref:`to-api-staticdnsentries`.
+
+Example
+=======
+To set up the aforementioned rule, follow these steps.
+
+#. In Traffic Portal, expand the :ref:`tp-services` sidebar menu and select 
:guilabel:`Delivery Services`.
+#. From the now-displayed table of :term:`Delivery Service`\ s, select the 
desired one for static DNS record configuration.
+#. From the :guilabel:`More` drop-down menu, select :guilabel:`Static DNS 
Entries`. The displayed table will probably be empty.
+
+       .. figure:: static_dns/00.png
+               :alt: The static DNS entries table page
+               :align: center
+
+               The Static DNS Entries Table Page
+
+#. Click on the blue :guilabel:`+` button to add a new static DNS Entry
+#. Fill in all of the fields.
+
+       Host
+               This is the lowest-level DNS label that will be used in the DNS 
record. In the :ref:`ciab` scenario, for example, entering ``foo`` here will 
result in a full DNS name of ``foo.demo1.mycdn.ciab.test``.
+       Type
+               Indicates the type of DNS record that will be created. The 
available types are
+
+                       * A
+                       * AAAA
+                       * CNAME
+                       * TXT
+
+       TTL
+               The :abbr:`TTL (Time To Live)` of the DNS record, after which 
clients will be expected to re-request name resolution.
+       Address
+               The meaning of this field depends on the value of the "Type" 
field.
+
+                       * If the "Type" is ``A``, this must be a valid IPv4 
address
+                       * If the "Type" is ``AAAA``, this must be a valid IPv6 
address
+                       * If the "Type" is ``CNAME``, this must be a valid DNS 
name - **not** an IP address at all
+                       * If the "Type" is ``TXT``, no restrictions are placed 
on the content whatsoever
+
+       .. figure:: static_dns/01.png
+               :alt: An example static DNS entry form
+               :align: center
+
+               An Example Static DNS Entry Form
+
+#. Click on the green :guilabel:`Create` button to finalize the changes.
+#. At this point, although the static DNS record has been created, it will 
have no effect until a new CDN :term:`Snapshot` is taken. Once that is done 
(and enough time has passed for Traffic Router to poll for the changes), the 
new DNS record should be usable through the CDN's designated Traffic Router.
+
+       .. code-block:: console
+               :caption: Example DNS Query to Test a New Static DNS Entry 
within :ref:`ciab`
+
+               $ docker exec cdninabox_enroller_1 dig +noall +answer 
foo.demo1.mycdn.ciab.test
+               foo.demo1.mycdn.ciab.test. 42   IN      A       192.0.2.1
diff --git a/docs/source/admin/quick_howto/static_dns/00.png 
b/docs/source/admin/quick_howto/static_dns/00.png
new file mode 100644
index 0000000..6773d8f
Binary files /dev/null and b/docs/source/admin/quick_howto/static_dns/00.png 
differ
diff --git a/docs/source/admin/quick_howto/static_dns/01.png 
b/docs/source/admin/quick_howto/static_dns/01.png
new file mode 100644
index 0000000..37b4b79
Binary files /dev/null and b/docs/source/admin/quick_howto/static_dns/01.png 
differ
diff --git a/docs/source/admin/traffic_ops/using.rst 
b/docs/source/admin/traffic_ops/using.rst
index 8fd38c4..20cdaf4 100644
--- a/docs/source/admin/traffic_ops/using.rst
+++ b/docs/source/admin/traffic_ops/using.rst
@@ -905,15 +905,6 @@ The **Order** entry defines the order in which the regular 
expressions get evalu
 .. Note:: In most cases is is sufficient to have just one entry in this table 
that has a ``HOST_REGEXP`` Type, and Order ``0``. For the *movies* delivery 
service in the Kabletown CDN, the entry is simply single ``HOST_REGEXP`` set to 
``.*\.movies\..*``. This will match every url that has a hostname that ends 
with ``movies.cdn1.kabletown.net``, since ``cdn1.kabletown.net`` is the 
Kabletown CDN's DNS domain.
 
 .. index::
-       Static DNS Entries
-
-.. _static-dns:
-
-Static DNS Entries
-------------------
-Static DNS entries allow you to create other names *under* the delivery 
service domain. You can enter any valid hostname, and create a CNAME, A or AAAA 
record for it by clicking the **Static DNS** button at the bottom of the 
delivery service details screen.
-
-.. index::
        Server Assignments
 
 .. _assign-edges:
diff --git a/docs/source/admin/traffic_portal/usingtrafficportal.rst 
b/docs/source/admin/traffic_portal/usingtrafficportal.rst
index 692b573..bfd883d 100644
--- a/docs/source/admin/traffic_portal/usingtrafficportal.rst
+++ b/docs/source/admin/traffic_portal/usingtrafficportal.rst
@@ -131,6 +131,8 @@ A table showing the results of the periodic 
:ref:`to-check-ext` that are run. Th
 :Connections: Number of connections to this :term:`cache server` or 
:term:`Cache Group`
 :MbpsOut:     Data flow rate outward from the CDN (toward client) in Megabits 
per second
 
+.. _tp-services:
+
 Services
 ========
 :guilabel:`Services` groups the functionality to modify :term:`Delivery 
Service`\ s - for those users with the necessary permissions - or make Requests 
for such changes - for uses without necessary permissions.
@@ -195,6 +197,9 @@ This page contains a table displaying all :term:`Delivery 
Service`\ s visible to
 - create, update and delete :term:`Delivery Service` regular expressions
 - view and create :term:`Delivery Service` invalidate content jobs
 - manage steering targets
+- view and manage static DNS records within a :term:`Delivery Service` 
subdomain
+
+       .. seealso:: :ref:`static-dns-qht`
 
 Delivery Service Requests
 -------------------------
diff --git a/docs/source/development/traffic_router/traffic_router_api.rst 
b/docs/source/development/traffic_router/traffic_router_api.rst
index ab11d63..bbf0378 100644
--- a/docs/source/development/traffic_router/traffic_router_api.rst
+++ b/docs/source/development/traffic_router/traffic_router_api.rst
@@ -501,7 +501,7 @@ Response Structure
 .. code-block:: http
        :caption: Response Example
 
-       HTTP/1.1 200
+       HTTP/1.1 200 OK
        Content-Type: application/json;charset=UTF-8
        Transfer-Encoding: chunked
        Date: Fri, 15 Feb 2019 22:06:53 GMT
@@ -541,7 +541,7 @@ Response Structure
 .. code-block:: http
        :caption: Response Example
 
-       HTTP/1.1 200
+       HTTP/1.1 200 OK
        Content-Type: application/json;charset=UTF-8
        Transfer-Encoding: chunked
        Date: Fri, 15 Feb 2019 22:12:38 GMT
@@ -572,4 +572,4 @@ Request Structure
 
 Response Structure
 ------------------
-TBD
\ No newline at end of file
+TBD
diff --git 
a/traffic_portal/app/src/common/modules/form/deliveryService/form.deliveryService.DNS.tpl.html
 
b/traffic_portal/app/src/common/modules/form/deliveryService/form.deliveryService.DNS.tpl.html
index b4b4a8e..257acab 100644
--- 
a/traffic_portal/app/src/common/modules/form/deliveryService/form.deliveryService.DNS.tpl.html
+++ 
b/traffic_portal/app/src/common/modules/form/deliveryService/form.deliveryService.DNS.tpl.html
@@ -53,11 +53,11 @@ under the License.
                     <li role="menuitem"><a 
ng-click="manageUrlSigKeys()">Manage URL Sig Keys</a></li>
                     <li role="menuitem"><a 
ng-click="manageUriSigningKeys()">Manage URI Signing Keys</a></li>
                     <hr class="divider"/>
-                    <li role="menuitem"><a ng-click="viewOrigins()">View 
Origins</a></li>
-                    <li role="menuitem"><a ng-click="viewServers()">View 
Servers</a></li>
-                    <li role="menuitem"><a ng-click="viewRegexes()">View 
Regexes</a></li>
-                    <li role="menuitem"><a ng-click="viewJobs()">View 
Invalidation Requests</a></li>
-                    <li role="menuitem"><a 
ng-click="viewStaticDnsEntries()">View Static DNS Entries</a></li>
+                    <li role="menuitem"><a ng-click="viewOrigins()">Manage 
Origins</a></li>
+                    <li role="menuitem"><a ng-click="viewServers()">Manage 
Servers</a></li>
+                    <li role="menuitem"><a ng-click="viewRegexes()">Manage 
Regexes</a></li>
+                    <li role="menuitem"><a ng-click="viewJobs()">Manage 
Invalidation Requests</a></li>
+                    <li role="menuitem"><a 
ng-click="viewStaticDnsEntries()">Manage Static DNS Entries</a></li>
                 </ul>
             </div>
         </div>
diff --git 
a/traffic_portal/app/src/common/modules/form/deliveryService/form.deliveryService.HTTP.tpl.html
 
b/traffic_portal/app/src/common/modules/form/deliveryService/form.deliveryService.HTTP.tpl.html
index 2a10d0f..82c0d5f 100644
--- 
a/traffic_portal/app/src/common/modules/form/deliveryService/form.deliveryService.HTTP.tpl.html
+++ 
b/traffic_portal/app/src/common/modules/form/deliveryService/form.deliveryService.HTTP.tpl.html
@@ -53,11 +53,11 @@ under the License.
                     <li role="menuitem"><a 
ng-click="manageUrlSigKeys()">Manage URL Sig Keys</a></li>
                     <li role="menuitem"><a 
ng-click="manageUriSigningKeys()">Manage URI Signing Keys</a></li>
                     <hr class="divider"/>
-                    <li role="menuitem"><a ng-click="viewOrigins()">View 
Origins</a></li>
-                    <li role="menuitem"><a ng-click="viewServers()">View 
Servers</a></li>
-                    <li role="menuitem"><a ng-click="viewRegexes()">View 
Regexes</a></li>
-                    <li role="menuitem"><a ng-click="viewJobs()">View 
Invalidation Requests</a></li>
-                    <li role="menuitem"><a 
ng-click="viewStaticDnsEntries()">View Static DNS Entries</a></li>
+                    <li role="menuitem"><a ng-click="viewOrigins()">Manage 
Origins</a></li>
+                    <li role="menuitem"><a ng-click="viewServers()">Manage 
Servers</a></li>
+                    <li role="menuitem"><a ng-click="viewRegexes()">Manage 
Regexes</a></li>
+                    <li role="menuitem"><a ng-click="viewJobs()">Manage 
Invalidation Requests</a></li>
+                    <li role="menuitem"><a 
ng-click="viewStaticDnsEntries()">Manage Static DNS Entries</a></li>
                 </ul>
             </div>
         </div>
diff --git 
a/traffic_portal/app/src/common/modules/form/deliveryService/form.deliveryService.Steering.tpl.html
 
b/traffic_portal/app/src/common/modules/form/deliveryService/form.deliveryService.Steering.tpl.html
index dc8cae3..52a7326 100644
--- 
a/traffic_portal/app/src/common/modules/form/deliveryService/form.deliveryService.Steering.tpl.html
+++ 
b/traffic_portal/app/src/common/modules/form/deliveryService/form.deliveryService.Steering.tpl.html
@@ -51,10 +51,10 @@ under the License.
                     <hr class="divider"/>
                     <li role="menuitem"><a ng-click="manageSslKeys()">Manage 
SSL Keys</a></li>
                     <hr class="divider"/>
-                    <li role="menuitem"><a ng-click="viewTargets()">View 
Targets</a></li>
-                    <li role="menuitem"><a ng-click="viewRegexes()">View 
Regexes</a></li>
-                    <li role="menuitem"><a ng-click="viewJobs()">View 
Invalidation Requests</a></li>
-                    <li role="menuitem"><a 
ng-click="viewStaticDnsEntries()">View Static DNS Entries</a></li>
+                    <li role="menuitem"><a ng-click="viewTargets()">Manage 
Targets</a></li>
+                    <li role="menuitem"><a ng-click="viewRegexes()">Manage 
Regexes</a></li>
+                    <li role="menuitem"><a ng-click="viewJobs()">Manage 
Invalidation Requests</a></li>
+                    <li role="menuitem"><a 
ng-click="viewStaticDnsEntries()">Manage Static DNS Entries</a></li>
                 </ul>
             </div>
         </div>
diff --git 
a/traffic_portal/app/src/common/modules/form/deliveryService/form.deliveryService.anyMap.tpl.html
 
b/traffic_portal/app/src/common/modules/form/deliveryService/form.deliveryService.anyMap.tpl.html
index 9fadecd..94215c6 100644
--- 
a/traffic_portal/app/src/common/modules/form/deliveryService/form.deliveryService.anyMap.tpl.html
+++ 
b/traffic_portal/app/src/common/modules/form/deliveryService/form.deliveryService.anyMap.tpl.html
@@ -49,10 +49,10 @@ under the License.
                     <hr class="divider"/>
                     <li role="menuitem"><a ng-click="viewCharts()">View 
Charts</a></li>
                     <hr class="divider"/>
-                    <li role="menuitem"><a ng-click="viewServers()">View 
Servers</a></li>
-                    <li role="menuitem"><a ng-click="viewRegexes()">View 
Regexes</a></li>
-                    <li role="menuitem"><a ng-click="viewJobs()">View 
Invalidation Requests</a></li>
-                    <li role="menuitem"><a 
ng-click="viewStaticDnsEntries()">View Static DNS Entries</a></li>
+                    <li role="menuitem"><a ng-click="viewServers()">Manage 
Servers</a></li>
+                    <li role="menuitem"><a ng-click="viewRegexes()">Manage 
Regexes</a></li>
+                    <li role="menuitem"><a ng-click="viewJobs()">Manage 
Invalidation Requests</a></li>
+                    <li role="menuitem"><a 
ng-click="viewStaticDnsEntries()">Manage Static DNS Entries</a></li>
                 </ul>
             </div>
         </div>
diff --git 
a/traffic_portal/app/src/common/modules/form/deliveryServiceStaticDnsEntry/form.deliveryServiceStaticDnsEntry.tpl.html
 
b/traffic_portal/app/src/common/modules/form/deliveryServiceStaticDnsEntry/form.deliveryServiceStaticDnsEntry.tpl.html
index 374a7cf..2519630 100644
--- 
a/traffic_portal/app/src/common/modules/form/deliveryServiceStaticDnsEntry/form.deliveryServiceStaticDnsEntry.tpl.html
+++ 
b/traffic_portal/app/src/common/modules/form/deliveryServiceStaticDnsEntry/form.deliveryServiceStaticDnsEntry.tpl.html
@@ -29,44 +29,44 @@ under the License.
     </div>
     <div class="x_content">
         <br>
-        <form name="dsStaticDnsEntryForm" class="form-horizontal 
form-label-left" novalidate>
+        <form name="dsStaticDnsEntryForm" class="form-horizontal 
form-label-left">
             <div class="form-group" ng-class="{'has-error': 
hasError(dsStaticDnsEntryForm.host), 'has-feedback': 
hasError(dsStaticDnsEntryForm.host)}">
-                <label class="control-label col-md-2 col-sm-2 col-xs-12">Host 
*</label>
+                <label for="host" class="control-label col-md-2 col-sm-2 
col-xs-12">Host *</label>
                 <div class="col-md-10 col-sm-10 col-xs-12">
-                    <input name="host" type="text" class="form-control" 
ng-model="staticDnsEntry.host" required autofocus>
+                    <input id="host" name="host" type="text" 
class="form-control" ng-model="staticDnsEntry.host" required autofocus>
                     <small class="input-error" 
ng-show="hasPropertyError(dsStaticDnsEntryForm.host, 
'required')">Required</small>
                     <span ng-show="hasError(dsStaticDnsEntryForm.host)" 
class="form-control-feedback"><i class="fa fa-times"></i></span>
                 </div>
             </div>
             <div class="form-group" ng-class="{'has-error': 
hasError(dsStaticDnsEntryForm.typeId), 'has-feedback': 
hasError(dsStaticDnsEntryForm.typeId)}">
-                <label class="control-label col-md-2 col-sm-2 col-xs-12">Type 
*</label>
+                <label for="typeId" class="control-label col-md-2 col-sm-2 
col-xs-12">Type *</label>
                 <div class="col-md-10 col-sm-10 col-xs-12">
-                    <select name="typeId" class="form-control" 
ng-model="staticDnsEntry.typeId" ng-options="type.id as type.name for type in 
types" required>
-                        <option value="">Select...</option>
+                    <select id="typeId" name="typeId" class="form-control" 
ng-model="staticDnsEntry.typeId" ng-options="type.id as type.name for type in 
types" required>
+                        <option disabled hidden value="">Select...</option>
                     </select>
                     <small class="input-error" 
ng-show="hasPropertyError(dsStaticDnsEntryForm.typeId, 
'required')">Required</small>
                 </div>
             </div>
             <div class="form-group" ng-class="{'has-error': 
hasError(dsStaticDnsEntryForm.ttl), 'has-feedback': 
hasError(dsStaticDnsEntryForm.ttl)}">
-                <label class="control-label col-md-2 col-sm-2 col-xs-12">TTL 
*</label>
+                <label for="ttl" class="control-label col-md-2 col-sm-2 
col-xs-12">TTL *</label>
                 <div class="col-md-10 col-sm-10 col-xs-12">
-                    <input name="ttl" type="number" class="form-control" 
ng-model="staticDnsEntry.ttl" ng-pattern="/^\d+$/" required autofocus>
-                    <small class="input-error" 
ng-show="hasPropertyError(dsStaticDnsEntryForm.ttl, 'required')">Required Whole 
Number</small>
-                    <small class="input-error" 
ng-show="hasPropertyError(dsStaticDnsEntryForm.ttl, 'pattern')">Whole 
Number</small>
+                    <input id="ttl" name="ttl" type="number" 
class="form-control" ng-model="staticDnsEntry.ttl" min="0" step="1" required>
+                    <small class="input-error" 
ng-show="hasPropertyError(dsStaticDnsEntryForm.ttl, 
'required')">Required</small>
+                    <small class="input-error" 
ng-show="hasPropertyError(dsStaticDnsEntryForm.ttl, 'step') || 
hasPropertyError(dsStaticDnsEntryForm.ttl, 'min')">Whole Number</small>
                     <span ng-show="hasError(dsStaticDnsEntryForm.ttl)" 
class="form-control-feedback"><i class="fa fa-times"></i></span>
                 </div>
             </div>
             <div class="form-group" ng-class="{'has-error': 
hasError(dsStaticDnsEntryForm.address), 'has-feedback': 
hasError(dsStaticDnsEntryForm.address)}">
-                <label class="control-label col-md-2 col-sm-2 
col-xs-12">Address *</label>
+                <label for="address" class="control-label col-md-2 col-sm-2 
col-xs-12">Address *</label>
                 <div class="col-md-10 col-sm-10 col-xs-12">
-                    <input name="address" type="text" class="form-control" 
ng-model="staticDnsEntry.address" required autofocus>
+                    <input id="address" name="address" type="text" 
class="form-control" ng-model="staticDnsEntry.address" required>
                     <small class="input-error" 
ng-show="hasPropertyError(dsStaticDnsEntryForm.address, 
'required')">Required</small>
                     <span ng-show="hasError(dsStaticDnsEntryForm.address)" 
class="form-control-feedback"><i class="fa fa-times"></i></span>
                 </div>
             </div>
             <div class="modal-footer">
                 <button type="button" class="btn btn-danger" 
ng-show="!settings.isNew" 
ng-click="confirmDelete(staticDnsEntry)">Delete</button>
-                <button type="button" class="btn btn-success" 
ng-disabled="dsStaticDnsEntryForm.$pristine || dsStaticDnsEntryForm.$invalid" 
ng-click="save(deliveryService.id, 
staticDnsEntry)">{{settings.saveLabel}}</button>
+                <button class="btn btn-success" 
ng-disabled="dsStaticDnsEntryForm.$pristine || dsStaticDnsEntryForm.$invalid" 
ng-click="save(deliveryService.id, 
staticDnsEntry)">{{settings.saveLabel}}</button>
             </div>
         </form>
     </div>

Reply via email to