http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol-website/blob/5521f214/docs/latest/_sources/development/traffic_ops_api/v12/user.txt ---------------------------------------------------------------------- diff --git a/docs/latest/_sources/development/traffic_ops_api/v12/user.txt b/docs/latest/_sources/development/traffic_ops_api/v12/user.txt new file mode 100644 index 0000000..b51291f --- /dev/null +++ b/docs/latest/_sources/development/traffic_ops_api/v12/user.txt @@ -0,0 +1,1196 @@ +.. +.. +.. 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-v12-users: + +Users +===== + +.. _to-api-v12-users-route: + +/api/1.2/users +++++++++++++++ + +**GET /api/1.2/users** + + Retrieves all users. + + Authentication Required: Yes + + Role(s) Required: None + + **Response Properties** + + +----------------------+--------+------------------------------------------------+ + | Parameter | Type | Description | + +======================+========+================================================+ + |``addressLine1`` | string | | + +----------------------+--------+------------------------------------------------+ + |``addressLine2`` | string | | + +----------------------+--------+------------------------------------------------+ + |``city`` | string | | + +----------------------+--------+------------------------------------------------+ + |``company`` | string | | + +----------------------+--------+------------------------------------------------+ + |``country`` | string | | + +----------------------+--------+------------------------------------------------+ + |``email`` | string | | + +----------------------+--------+------------------------------------------------+ + |``fullName`` | string | | + +----------------------+--------+------------------------------------------------+ + |``gid`` | string | | + +----------------------+--------+------------------------------------------------+ + |``id`` | hash | | + +----------------------+--------+------------------------------------------------+ + |``lastUpdated`` | string | | + +----------------------+--------+------------------------------------------------+ + |``newUser`` | string | | + +----------------------+--------+------------------------------------------------+ + |``phoneNumber`` | string | | + +----------------------+--------+------------------------------------------------+ + |``postalCode`` | string | | + +----------------------+--------+------------------------------------------------+ + |``publicSshKey`` | string | | + +----------------------+--------+------------------------------------------------+ + |``registrationSent`` | string | | + +----------------------+--------+------------------------------------------------+ + |``role`` | string | | + +----------------------+--------+------------------------------------------------+ + |``roleName`` | string | | + +----------------------+--------+------------------------------------------------+ + |``stateOrProvince`` | string | | + +----------------------+--------+------------------------------------------------+ + | ``tenant`` | string | Owning tenant name | + +----------------------+--------+------------------------------------------------+ + | ``tenantId`` | int | Owning tenant ID | + +----------------------+--------+------------------------------------------------+ + |``uid`` | string | | + +----------------------+--------+------------------------------------------------+ + |``username`` | string | | + +----------------------+--------+------------------------------------------------+ + + **Response Example** :: + + { + "response": [ + { + "addressLine1": "", + "addressLine2": "", + "city": "", + "company": "", + "country": "", + "email": "ema...@email.com", + "fullName": "Tom Simpson", + "gid": "0", + "id": "53", + "lastUpdated": "2016-01-26 10:22:07", + "newUser": true, + "phoneNumber": "", + "postalCode": "", + "publicSshKey": "xxx", + "registrationSent": true, + "role": "6", + "rolename": "admin", + "stateOrProvince": "", + "tenant": "root", + "tenantId": 1, + "uid": "0", + "username": "tsimpson" + }, + { + ... more users + }, + ] + } + +| + + +**GET /api/1.2/users/:id** + + Retrieves user by ID. + + Authentication Required: Yes + + Role(s) Required: None + + **Request Route Parameters** + + +-----------+----------+---------------------------------------------+ + | Name | Required | Description | + +===========+==========+=============================================+ + | ``id`` | yes | User id. | + +-----------+----------+---------------------------------------------+ + + **Response Properties** + + +----------------------+--------+------------------------------------------------+ + | Parameter | Type | Description | + +======================+========+================================================+ + |``addressLine1`` | string | | + +----------------------+--------+------------------------------------------------+ + |``addressLine2`` | string | | + +----------------------+--------+------------------------------------------------+ + |``city`` | string | | + +----------------------+--------+------------------------------------------------+ + |``company`` | string | | + +----------------------+--------+------------------------------------------------+ + |``country`` | string | | + +----------------------+--------+------------------------------------------------+ + |``email`` | string | | + +----------------------+--------+------------------------------------------------+ + |``fullName`` | string | | + +----------------------+--------+------------------------------------------------+ + |``gid`` | string | | + +----------------------+--------+------------------------------------------------+ + |``id`` | hash | | + +----------------------+--------+------------------------------------------------+ + |``lastUpdated`` | string | | + +----------------------+--------+------------------------------------------------+ + |``newUser`` | string | | + +----------------------+--------+------------------------------------------------+ + |``phoneNumber`` | string | | + +----------------------+--------+------------------------------------------------+ + |``postalCode`` | string | | + +----------------------+--------+------------------------------------------------+ + |``publicSshKey`` | string | | + +----------------------+--------+------------------------------------------------+ + |``registrationSent`` | string | | + +----------------------+--------+------------------------------------------------+ + |``role`` | string | | + +----------------------+--------+------------------------------------------------+ + |``roleName`` | string | | + +----------------------+--------+------------------------------------------------+ + |``stateOrProvince`` | string | | + +----------------------+--------+------------------------------------------------+ + | ``tenant`` | string | Owning tenant name | + +----------------------+--------+------------------------------------------------+ + | ``tenantId`` | int | Owning tenant ID | + +----------------------+--------+------------------------------------------------+ + |``uid`` | string | | + +----------------------+--------+------------------------------------------------+ + |``username`` | string | | + +----------------------+--------+------------------------------------------------+ + + **Response Example** :: + + { + "response": [ + { + "addressLine1": "", + "addressLine2": "", + "city": "", + "company": "", + "country": "", + "email": "ema...@email.com", + "fullName": "Tom Simpson", + "gid": "0", + "id": "53", + "lastUpdated": "2016-01-26 10:22:07", + "newUser": true, + "phoneNumber": "", + "postalCode": "", + "publicSshKey": "xxx", + "registrationSent": true, + "role": "6", + "rolename": "admin", + "stateOrProvince": "", + "tenant": "root", + "tenantId": 1, + "uid": "0", + "username": "tsimpson" + }, + { + ... more users + }, + ] + } + +| + + +**POST /api/1.2/users** + + Create a user. + + Authentication Required: Yes + + Role(s) Required: admin or oper + + **Request Properties** + + +-------------------------+--------+----------+-------------------------------------------------+ + | Parameter | Type | Required | Description | + +=========================+========+==========+=================================================+ + |``addressLine1`` | string | no | | + +-------------------------+--------+----------+-------------------------------------------------+ + |``addressLine2`` | string | no | | + +-------------------------+--------+----------+-------------------------------------------------+ + |``city`` | string | no | | + +-------------------------+--------+----------+-------------------------------------------------+ + |``confirmLocalPassword`` | string | yes | | + +-------------------------+--------+----------+-------------------------------------------------+ + |``company`` | string | no | | + +-------------------------+--------+----------+-------------------------------------------------+ + |``country`` | string | no | | + +-------------------------+--------+----------+-------------------------------------------------+ + |``email`` | string | yes | | + +-------------------------+--------+----------+-------------------------------------------------+ + |``fullName`` | string | yes | | + +-------------------------+--------+----------+-------------------------------------------------+ + |``localPassword`` | string | yes | | + +-------------------------+--------+----------+-------------------------------------------------+ + |``newUser`` | bool | no | | + +-------------------------+--------+----------+-------------------------------------------------+ + |``phoneNumber`` | string | no | | + +-------------------------+--------+----------+-------------------------------------------------+ + |``postalCode`` | string | no | | + +-------------------------+--------+----------+-------------------------------------------------+ + |``publicSshKey`` | string | no | | + +-------------------------+--------+----------+-------------------------------------------------+ + |``role`` | int | yes | | + +-------------------------+--------+----------+-------------------------------------------------+ + |``stateOrProvince`` | string | no | | + +-------------------------+--------+----------+-------------------------------------------------+ + | ``tenantId`` | int | no | Owning tenant ID | + +-------------------------+--------+----------+-------------------------------------------------+ + |``username`` | string | yes | | + +-------------------------+--------+----------+-------------------------------------------------+ + + + **Request Example** :: + + { + "username": "tsimpson" + "tenantId": 1, + "fullName": "Tom Simpson" + "email": "ema...@email.com" + "role": 6 + "localPassword": "password" + "confirmLocalPassword": "password" + } + +| + + **Response Properties** + + +----------------------+--------+------------------------------------------------+ + | Parameter | Type | Description | + +======================+========+================================================+ + |``addressLine1`` | string | | + +----------------------+--------+------------------------------------------------+ + |``addressLine2`` | string | | + +----------------------+--------+------------------------------------------------+ + |``city`` | string | | + +----------------------+--------+------------------------------------------------+ + |``company`` | string | | + +----------------------+--------+------------------------------------------------+ + |``country`` | string | | + +----------------------+--------+------------------------------------------------+ + |``email`` | string | | + +----------------------+--------+------------------------------------------------+ + |``fullName`` | string | | + +----------------------+--------+------------------------------------------------+ + |``gid`` | int | | + +----------------------+--------+------------------------------------------------+ + |``id`` | int | | + +----------------------+--------+------------------------------------------------+ + |``lastUpdated`` | string | | + +----------------------+--------+------------------------------------------------+ + |``newUser`` | string | | + +----------------------+--------+------------------------------------------------+ + |``phoneNumber`` | string | | + +----------------------+--------+------------------------------------------------+ + |``postalCode`` | string | | + +----------------------+--------+------------------------------------------------+ + |``publicSshKey`` | string | | + +----------------------+--------+------------------------------------------------+ + |``registrationSent`` | bool | | + +----------------------+--------+------------------------------------------------+ + |``role`` | int | | + +----------------------+--------+------------------------------------------------+ + |``roleName`` | string | | + +----------------------+--------+------------------------------------------------+ + |``stateOrProvince`` | string | | + +----------------------+--------+------------------------------------------------+ + |``uid`` | int | | + +----------------------+--------+------------------------------------------------+ + | ``tenantId`` | int | Owning tenant ID | + +----------------------+--------+------------------------------------------------+ + |``username`` | string | | + +----------------------+--------+------------------------------------------------+ + + **Response Example** :: + + {"alerts": [ + { + "level":"success", + "text":"User creation was successful." + } + ], + "response: { + "addressLine1":"", + "addressLine2":"", + "city":"", + "company":"", + "country":"", + "email":"ema...@email.com", + "fullName":"Tom Simpson", + "gid":0, + "id":2, + "lastUpdated":null, + "newUser":false, + "phoneNumber":"", + "postalCode":"", + "publicSshKey":"", + "registrationSent":false, + "role":6, + "roleName":"portal", + "stateOrProvince":"", + "tenantId": 1, + "uid":0, + "username":"tsimpson", + } + } + +| + +**GET /api/1.2/users/:id/deliveryservices** + + Retrieves all delivery services assigned to the user. See also `Using Traffic Ops - Delivery Service <http://trafficcontrol.apache.org/docs/latest/admin/traffic_ops_using.html#delivery-service>`_. + + Authentication Required: Yes + + Role(s) Required: None + + **Request Route Parameters** + + +-----------------+----------+---------------------------------------------------+ + | Name | Required | Description | + +=================+==========+===================================================+ + | ``id`` | yes | User ID. | + +-----------------+----------+---------------------------------------------------+ + + + **Response Properties** + + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | Parameter | Type | Description | + +==========================+========+======================================================================================================================================+ + | ``active`` | bool | true if active, false if inactive. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``cacheurl`` | string | Cache URL rule to apply to this delivery service. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``ccrDnsTtl`` | string | The TTL of the DNS response for A or AAAA queries requesting the IP address of the tr. host. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``cdnId`` | string | Id of the CDN to which the delivery service belongs to. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``cdnName`` | string | Name of the CDN to which the delivery service belongs to. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``checkPath`` | string | The path portion of the URL to check this deliveryservice for health. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``displayName`` | string | The display name of the delivery service. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``dnsBypassIp`` | string | The IPv4 IP to use for bypass on a DNS deliveryservice - bypass starts when serving more than the | + | | | globalMaxMbps traffic on this deliveryservice. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``dnsBypassIp6`` | string | The IPv6 IP to use for bypass on a DNS deliveryservice - bypass starts when serving more than the | + | | | globalMaxMbps traffic on this deliveryservice. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``dnsBypassTtl`` | string | The TTL of the DNS bypass response. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``dscp`` | string | The Differentiated Services Code Point (DSCP) with which to mark downstream (EDGE -> customer) traffic. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``edgeHeaderRewrite`` | string | The EDGE header rewrite actions to perform. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``geoLimitRedirectUrl`` | string | | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``geoLimit`` | string | - 0: None - no limitations | + | | | - 1: Only route on CZF file hit | + | | | - 2: Only route on CZF hit or when from USA | + | | | | + | | | Note that this does not prevent access to content or makes content secure; it just prevents | + | | | routing to the content by Traffic Router. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``geoLimitCountries`` | string | | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``geoProvider`` | string | | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``globalMaxMbps`` | string | The maximum global bandwidth allowed on this deliveryservice. If exceeded, the traffic routes to the | + | | | dnsByPassIp* for DNS deliveryservices and to the httpBypassFqdn for HTTP deliveryservices. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``globalMaxTps`` | string | The maximum global transactions per second allowed on this deliveryservice. When this is exceeded | + | | | traffic will be sent to the dnsByPassIp* for DNS deliveryservices and to the httpBypassFqdn for | + | | | HTTP deliveryservices | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``httpBypassFqdn`` | string | The HTTP destination to use for bypass on an HTTP deliveryservice - bypass starts when serving more than the | + | | | globalMaxMbps traffic on this deliveryservice. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``id`` | string | The deliveryservice id (database row number). | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``infoUrl`` | string | Use this to add a URL that points to more information about that deliveryservice. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``initialDispersion`` | string | | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``ipv6RoutingEnabled`` | bool | false: send IPv4 address of Traffic Router to client on HTTP type del. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``lastUpdated`` | string | | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``logsEnabled`` | bool | | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``longDesc`` | string | Description field 1. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``longDesc1`` | string | Description field 2. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``longDesc2`` | string | Description field 2. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``>>type`` | string | The type of MatchList (one of :ref:to-api-v11-types use_in_table='regex'). | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``>>setNumber`` | string | The set Number of the matchList. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``>>pattern`` | string | The regexp for the matchList. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``maxDnsAnswers`` | string | The maximum number of IPs to put in a A/AAAA response for a DNS deliveryservice (0 means all | + | | | available). | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``midHeaderRewrite`` | string | The MID header rewrite actions to perform. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``missLat`` | string | The latitude to use when the client cannot be found in the CZF or the Geo lookup. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``missLong`` | string | The longitude to use when the client cannot be found in the CZF or the Geo lookup. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``multiSiteOrigin`` | bool | Is the Multi Site Origin feature enabled for this delivery service (0=false, 1=true). See :ref:`rl-multi-site-origin` | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``multiSiteOriginAlgor`` | bool | Is the Multi Site Origin feature enabled for this delivery service (0=false, 1=true). See :ref:`rl-multi-site-origin` | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``orgServerFqdn`` | string | The origin server base URL (FQDN when used in this instance, includes the | + | | | protocol (http:// or https://) for use in retrieving content from the origin server. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``originShield`` | string | | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``profileDescription`` | string | The description of the Traffic Router Profile with which this deliveryservice is associated. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``profileId`` | string | The id of the Traffic Router Profile with which this deliveryservice is associated. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``profileName`` | string | The name of the Traffic Router Profile with which this deliveryservice is associated. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``protocol`` | string | - 0: serve with http:// at EDGE | + | | | - 1: serve with https:// at EDGE | + | | | - 2: serve with both http:// and https:// at EDGE | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``qstringIgnore`` | string | - 0: no special query string handling; it is for use in the cache-key and pass up to origin. | + | | | - 1: ignore query string in cache-key, but pass it up to parent and or origin. | + | | | - 2: drop query string at edge, and do not use it in the cache-key. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``rangeRequestHandling`` | string | How to treat range requests: | + | | | | + | | | - 0 Do not cache (ranges requested from files taht are already cached due to a non range request will be a HIT) | + | | | - 1 Use the `background_fetch <https://docs.trafficserver.apache.org/en/latest/reference/plugins/background_fetch.en.html>`_ plugin. | + | | | - 2 Use the cache_range_requests plugin. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``regexRemap`` | string | Regex Remap rule to apply to this delivery service at the Edge tier. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``regionalGeoBlocking`` | bool | Regex Remap rule to apply to this delivery service at the Edge tier. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``remapText`` | string | Additional raw remap line text. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``signed`` | bool | - false: token based auth (see :ref:token-based-auth) is not enabled for this deliveryservice. | + | | | - true: token based auth is enabled for this deliveryservice. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``sslKeyVersion`` | string | | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``tenant`` | string | Owning tenant name | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``tenantId`` | int | Owning tenant ID. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``trRequestHeaders`` | string | | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``trResponseHeaders`` | string | | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``type`` | string | The type of this deliveryservice (one of :ref:to-api-v11-types use_in_table='deliveryservice'). | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``typeId`` | string | The type of this deliveryservice (one of :ref:to-api-v11-types use_in_table='deliveryservice'). | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + | ``xmlId`` | string | Unique string that describes this deliveryservice. | + +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+ + + **Response Example** :: + + { + "response": [ + { + "active": true, + "cacheurl": null, + "ccrDnsTtl": "3600", + "cdnId": "2", + "cdnName": "over-the-top", + "checkPath": "", + "displayName": "My Cool Delivery Service", + "dnsBypassCname": "", + "dnsBypassIp": "", + "dnsBypassIp6": "", + "dnsBypassTtl": "30", + "dscp": "40", + "edgeHeaderRewrite": null, + "exampleURLs": [ + "http://edge.foo-ds.foo.bar.net" + ], + "geoLimit": "0", + "geoLimitCountries": null, + "geoLimitRedirectURL": null, + "geoProvider": "0", + "globalMaxMbps": null, + "globalMaxTps": "0", + "httpBypassFqdn": "", + "id": "442", + "infoUrl": "", + "initialDispersion": "1", + "ipv6RoutingEnabled": true, + "lastUpdated": "2016-01-26 08:49:35", + "logsEnabled": false, + "longDesc": "", + "longDesc1": "", + "longDesc2": "", + "matchList": [ + { + "pattern": ".*\\.foo-ds\\..*", + "setNumber": "0", + "type": "HOST_REGEXP" + } + ], + "maxDnsAnswers": "0", + "midHeaderRewrite": null, + "missLat": "41.881944", + "missLong": "-87.627778", + "multiSiteOrigin": false, + "multiSiteOriginAlgorithm": null, + "orgServerFqdn": "http://baz.boo.net", + "originShield": null, + "profileDescription": "Content Router for over-the-top", + "profileId": "5", + "profileName": "ROUTER_TOP", + "protocol": "0", + "qstringIgnore": "1", + "rangeRequestHandling": "0", + "regexRemap": null, + "regionalGeoBlocking": false, + "remapText": null, + "signed": false, + "sslKeyVersion": "0", + "tenant": "root", + "tenantId": 1, + "trRequestHeaders": null, + "trResponseHeaders": "Access-Control-Allow-Origin: *", + "type": "HTTP", + "typeId": "8", + "xmlId": "foo-ds" + } + { .. }, + { .. } + ] + } + +| + + +**GET /api/1.2/user/current** + + Retrieves the profile for the authenticated user. + + Authentication Required: Yes + + Role(s) Required: None + + **Response Properties** + + +----------------------+---------+------------------------------------------------+ + | Parameter | Type | Description | + +======================+=========+================================================+ + |``email`` | string | | + +----------------------+---------+------------------------------------------------+ + |``city`` | string | | + +----------------------+---------+------------------------------------------------+ + |``id`` | string | | + +----------------------+---------+------------------------------------------------+ + |``phoneNumber`` | string | | + +----------------------+---------+------------------------------------------------+ + |``company`` | string | | + +----------------------+---------+------------------------------------------------+ + |``country`` | string | | + +----------------------+---------+------------------------------------------------+ + |``fullName`` | string | | + +----------------------+---------+------------------------------------------------+ + |``localUser`` | boolean | | + +----------------------+---------+------------------------------------------------+ + |``uid`` | string | | + +----------------------+---------+------------------------------------------------+ + |``stateOrProvince`` | string | | + +----------------------+---------+------------------------------------------------+ + |``username`` | string | | + +----------------------+---------+------------------------------------------------+ + |``newUser`` | boolean | | + +----------------------+---------+------------------------------------------------+ + |``addressLine2`` | string | | + +----------------------+---------+------------------------------------------------+ + |``role`` | string | | + +----------------------+---------+------------------------------------------------+ + |``addressLine1`` | string | | + +----------------------+---------+------------------------------------------------+ + |``gid`` | string | | + +----------------------+---------+------------------------------------------------+ + |``postalCode`` | string | | + +----------------------+---------+------------------------------------------------+ + | ``tenant`` | string | Owning tenant name | + +----------------------+---------+------------------------------------------------+ + | ``tenantId`` | int | Owning tenant ID | + +----------------------+---------+------------------------------------------------+ + + **Response Example** :: + + { + "response": { + "email": "em...@email.com", + "city": "", + "id": "50", + "phoneNumber": "", + "company": "", + "country": "", + "fullName": "Tom Callahan", + "localUser": true, + "uid": "0", + "stateOrProvince": "", + "username": "tommyboy", + "newUser": false, + "addressLine2": "", + "role": "6", + "addressLine1": "", + "gid": "0", + "postalCode": "", + "tenant": "root", + "tenantId": 1 + + }, + } + +| + +**PUT /api/1.2/user/current** + + Updates the date for the authenticated user. + + Authentication Required: Yes + + Role(s) Required: None + + **Request Properties** + + +----------------------+---------+------------------------------------------------+ + | Parameter | Type | Description | + +======================+=========+================================================+ + |``email`` | string | | + +----------------------+---------+------------------------------------------------+ + |``city`` | string | | + +----------------------+---------+------------------------------------------------+ + |``id`` | string | | + +----------------------+---------+------------------------------------------------+ + |``phoneNumber`` | string | | + +----------------------+---------+------------------------------------------------+ + |``company`` | string | | + +----------------------+---------+------------------------------------------------+ + |``country`` | string | | + +----------------------+---------+------------------------------------------------+ + |``fullName`` | string | | + +----------------------+---------+------------------------------------------------+ + |``localUser`` | boolean | | + +----------------------+---------+------------------------------------------------+ + |``uid`` | string | | + +----------------------+---------+------------------------------------------------+ + |``stateOrProvince`` | string | | + +----------------------+---------+------------------------------------------------+ + |``username`` | string | | + +----------------------+---------+------------------------------------------------+ + |``newUser`` | boolean | | + +----------------------+---------+------------------------------------------------+ + |``addressLine2`` | string | | + +----------------------+---------+------------------------------------------------+ + |``role`` | string | | + +----------------------+---------+------------------------------------------------+ + |``addressLine1`` | string | | + +----------------------+---------+------------------------------------------------+ + |``gid`` | string | | + +----------------------+---------+------------------------------------------------+ + |``postalCode`` | string | | + +----------------------+---------+------------------------------------------------+ + | ``tenantId`` | int | Owning tenant ID | + +----------------------+---------+------------------------------------------------+ + + **Request Example** :: + + { + "user": { + "email": "", + "city": "", + "id": "", + "phoneNumber": "", + "company": "", + "country": "", + "fullName": "", + "localUser": true, + "uid": "0", + "stateOrProvince": "", + "username": "tommyboy", + "newUser": false, + "addressLine2": "", + "role": "6", + "addressLine1": "", + "gid": "0", + "postalCode": "", + "tenant": "root", + "tenantId": 1, + + } + } + +| + + **Response Properties** + + +-------------+--------+----------------------------------+ + | Parameter | Type | Description | + +=============+========+==================================+ + | ``alerts`` | array | A collection of alert messages. | + +-------------+--------+----------------------------------+ + | ``>level`` | string | Success, info, warning or error. | + +-------------+--------+----------------------------------+ + | ``>text`` | string | Alert message. | + +-------------+--------+----------------------------------+ + | ``version`` | string | | + +-------------+--------+----------------------------------+ + + **Response Example** :: + + { + "alerts": [ + { + "level": "success", + "text": "UserProfile was successfully updated." + } + ], + } + +| + +**GET /api/1.2/user/current/jobs.json** + + Retrieves the user's list of jobs. + + Authentication Required: Yes + + Role(s) Required: None + + **Request Query Parameters** + + +--------------+----------+----------------------------------------+ + | Name | Required | Description | + +==============+==========+========================================+ + | ``keyword`` | no | PURGE | + +--------------+----------+----------------------------------------+ + + **Response Properties** + + +----------------------+--------+------------------------------------------------+ + | Parameter | Type | Description | + +======================+========+================================================+ + |``keyword`` | string | | + +----------------------+--------+------------------------------------------------+ + |``objectName`` | string | | + +----------------------+--------+------------------------------------------------+ + |``assetUrl`` | string | | + +----------------------+--------+------------------------------------------------+ + |``assetType`` | string | | + +----------------------+--------+------------------------------------------------+ + |``status`` | string | | + +----------------------+--------+------------------------------------------------+ + |``dsId`` | string | | + +----------------------+--------+------------------------------------------------+ + |``dsXmlId`` | string | | + +----------------------+--------+------------------------------------------------+ + |``username`` | boolean| | + +----------------------+--------+------------------------------------------------+ + |``parameters`` | string | | + +----------------------+--------+------------------------------------------------+ + |``enteredTime`` | string | | + +----------------------+--------+------------------------------------------------+ + |``objectType`` | string | | + +----------------------+--------+------------------------------------------------+ + |``agent`` | string | | + +----------------------+--------+------------------------------------------------+ + |``id`` | string | | + +----------------------+--------+------------------------------------------------+ + |``startTime`` | string | | + +----------------------+--------+------------------------------------------------+ + |``version`` | string | | + +----------------------+--------+------------------------------------------------+ + + **Response Example** + :: + + { + "response": [ + { + "id": "1", + "keyword": "PURGE", + "objectName": null, + "assetUrl": "", + "assetType": "file", + "status": "PENDING", + "dsId": "9999", + "dsXmlId": "ds-xml-id", + "username": "peewee", + "parameters": "TTL:56h", + "enteredTime": "2015-01-21 18:00:16", + "objectType": null, + "agent": "", + "startTime": "2015-01-21 10:45:38" + } + ], + } + +| + +**POST/api/1.2/user/current/jobs** + +Invalidating content on the CDN is sometimes necessary when the origin was mis-configured and something is cached in the CDN that needs to be removed. Given the size of a typical Traffic Control CDN and the amount of content that can be cached in it, removing the content from all the caches may take a long time. To speed up content invalidation, Traffic Ops will not try to remove the content from the caches, but it makes the content inaccessible using the *regex_revalidate* ATS plugin. This forces a *revalidation* of the content, rather than a new get. + +.. Note:: This method forces a HTTP *revalidation* of the content, and not a new *GET* - the origin needs to support revalidation according to the HTTP/1.2 specification, and send a ``200 OK`` or ``304 Not Modified`` as applicable. + +Authentication Required: Yes + +Role(s) Required: None + + **Request Properties** + + +----------------------+--------+------------------------------------------------+ + | Parameter | Type | Description | + +======================+========+================================================+ + |``dsId`` | string | Unique Delivery Service ID | + +----------------------+--------+------------------------------------------------+ + |``regex`` | string | Path Regex this should be a | + | | | `PCRE <http://www.pcre.org/>`_ compatible | + | | | regular expression for the path to match for | + | | | forcing the revalidation. Be careful to only | + | | | match on the content you need to remove - | + | | | revalidation is an expensive operation for | + | | | many origins, and a simple ``/.*`` can cause | + | | | an overload condition of the origin. | + +----------------------+--------+------------------------------------------------+ + |``startTime`` | string | Start Time is the time when the revalidation | + | | | rule will be made active. Populate | + | | | with the current time to schedule ASAP. This | + | | | value cannot be more than 2 days before now. | + +----------------------+--------+------------------------------------------------+ + |``ttl`` | int | Time To Live is how long the revalidation rule | + | | | will be active for in hours. It usually makes | + | | | sense to make this the same as the | + | | | ``Cache-Control`` header from the origin which | + | | | sets the object time to live in cache | + | | | (by ``max-age`` or ``Expires``). Entering a | + | | | longer TTL here will make the caches do | + | | | unnecessary work. | + +----------------------+--------+------------------------------------------------+ + + **Request Example** :: + + { + "dsId": "9999", + "regex": "/path/to/content.jpg", + "startTime": "2015-01-27 11:08:37", + "ttl": 54 + } + +| + + **Response Properties** + + +-------------+--------+----------------------------------+ + | Parameter | Type | Description | + +=============+========+==================================+ + | ``alerts`` | array | A collection of alert messages. | + +-------------+--------+----------------------------------+ + | ``>level`` | string | Success, info, warning or error. | + +-------------+--------+----------------------------------+ + | ``>text`` | string | Alert message. | + +-------------+--------+----------------------------------+ + | ``version`` | string | | + +-------------+--------+----------------------------------+ + + **Response Example** :: + + { + "alerts": + [ + { + "level": "success", + "text": "Successfully created purge job for: ." + } + ], + } + + +| + +**POST /api/1.2/user/login** + + Authentication of a user using username and password. Traffic Ops will send back a session cookie. + + Authentication Required: No + + Role(s) Required: None + + **Request Properties** + + +----------------------+--------+------------------------------------------------+ + | Parameter | Type | Description | + +======================+========+================================================+ + |``u`` | string | username | + +----------------------+--------+------------------------------------------------+ + |``p`` | string | password | + +----------------------+--------+------------------------------------------------+ + + **Request Example** :: + + { + "u": "username", + "p": "password" + } + +| + + **Response Properties** + + +-------------+--------+----------------------------------+ + | Parameter | Type | Description | + +=============+========+==================================+ + | ``alerts`` | array | A collection of alert messages. | + +-------------+--------+----------------------------------+ + | ``>level`` | string | Success, info, warning or error. | + +-------------+--------+----------------------------------+ + | ``>text`` | string | Alert message. | + +-------------+--------+----------------------------------+ + | ``version`` | string | | + +-------------+--------+----------------------------------+ + + **Response Example** :: + + { + "alerts": [ + { + "level": "success", + "text": "Successfully logged in." + } + ], + } + +| + +**GET /api/1.2/user/:id/deliveryservices/available** + + Authentication Required: Yes + + Role(s) Required: None + + **Request Route Parameters** + + +-----------------+----------+---------------------------------------------------+ + | Name | Required | Description | + +=================+==========+===================================================+ + |id | yes | | + +-----------------+----------+---------------------------------------------------+ + + **Response Properties** + + +----------------------+--------+------------------------------------------------+ + | Parameter | Type | Description | + +======================+========+================================================+ + |``id`` | string | | + +----------------------+--------+------------------------------------------------+ + |``displayName`` | string | | + +----------------------+--------+------------------------------------------------+ + |``xmlId`` | string | | + +----------------------+--------+------------------------------------------------+ + + **Response Example** :: + + + { + "response": [ + { + "id": "90", + "displayName": "Foo Bar DS", + "xmlId": "foo-bar" + }, + { + "id": "92", + "displayName": "Foo Baz DS", + "xmlId": "foo-baz" + } + ], + } + +| + +**POST /api/1.2/user/login/token** + + Authentication of a user using a token. + + Authentication Required: No + + Role(s) Required: None + + **Request Properties** + + +----------------------+--------+------------------------------------------------+ + | Parameter | Type | Description | + +======================+========+================================================+ + |``t`` | string | token-value | + +----------------------+--------+------------------------------------------------+ + + **Request Example** :: + + { + "t": "token-value" + } + +| + + **Response Properties** + + +-------------+--------+-------------+ + | Parameter | Type | Description | + +=============+========+=============+ + | ``alerts`` | array | | + +-------------+--------+-------------+ + | ``>level`` | string | | + +-------------+--------+-------------+ + | ``>text`` | string | | + +-------------+--------+-------------+ + | ``version`` | string | | + +-------------+--------+-------------+ + + **Response Example** :: + + { + "alerts": [ + { + "level": "error", + "text": "Unauthorized, please log in." + } + ], + } + + +| + + +**POST /api/1.2/user/logout** + + User logout. Invalidates the session cookie. + + Authentication Required: Yes + + Role(s) Required: None + + **Response Properties** + + +----------------------+--------+------------------------------------------------+ + | Parameter | Type | Description | + +======================+========+================================================+ + |``alerts`` | array | | + +----------------------+--------+------------------------------------------------+ + |* ``level`` | string | | + +----------------------+--------+------------------------------------------------+ + |* ``text`` | string | | + +----------------------+--------+------------------------------------------------+ + |``version`` | string | | + +----------------------+--------+------------------------------------------------+ + + **Response Example** + :: + + { + "alerts": [ + { + "level": "success", + "text": "You are logged out." + } + ], + } + + +| + +**POST /api/1.2/user/reset_password** + + Reset user password. + + Authentication Required: No + + Role(s) Required: None + + **Request Properties** + + +----------------------+--------+------------------------------------------------+ + | Parameter | Type | Description | + +======================+========+================================================+ + |``email`` | string | The email address of the user to initiate | + | | | password reset. | + +----------------------+--------+------------------------------------------------+ + + **Request Example** + :: + + { + "email": "em...@email.com" + } + +| + + **Response Properties** + + +----------------------+--------+------------------------------------------------+ + | Parameter | Type | Description | + +======================+========+================================================+ + |``alerts`` | array | A collection of alert messages. | + +----------------------+--------+------------------------------------------------+ + |* ``level`` | string | Success, info, warning or error. | + +----------------------+--------+------------------------------------------------+ + |* ``text`` | string | Alert message. | + +----------------------+--------+------------------------------------------------+ + |``version`` | string | | + +----------------------+--------+------------------------------------------------+ + + **Response Example** :: + + { + "alerts": [ + { + "level": "success", + "text": "Successfully sent password reset to email 'em...@email.com'" + } + ], + } + +| +
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol-website/blob/5521f214/docs/latest/_sources/development/traffic_portal.rst.txt ---------------------------------------------------------------------- diff --git a/docs/latest/_sources/development/traffic_portal.rst.txt b/docs/latest/_sources/development/traffic_portal.rst.txt deleted file mode 100644 index 8950d12..0000000 --- a/docs/latest/_sources/development/traffic_portal.rst.txt +++ /dev/null @@ -1,54 +0,0 @@ -.. -.. -.. 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. -.. - -Traffic Portal -************** - -Introduction -============ -Traffic Portal is an `AngularJS 1.x <https://angularjs.org/>`_ client served from a `Node.js <https://nodejs.org/en/>`_ web server designed to consume the Traffic Ops 1.x API. Traffic Portal provides a set of functionality restricted to the delivery service(s) of the authenticated user. Functionality primarily includes a set of charts / graphs designed to provide insight into the performance of a user's delivery service(s). - -Software Requirements -===================== -To work on Traffic Portal you need a \*nix (MacOS and Linux are most commonly used) environment that has the following installed: - - * `Ruby 2.0.x or above <https://www.ruby-lang.org/en/>`_ - * `Compass 1.0.x or above <http://compass-style.org/>`_ - * `Node.js 6.0.x or above <https://nodejs.org/en/>`_ - * `Bower 1.7.9 or above <https://nodejs.org/en/>`_ - * `Grunt CLI 1.2.0 or above <https://github.com/gruntjs/grunt-cli>`_ - * Access to a working instance of Traffic Ops - -Traffic Portal Project Tree Overview -===================================== - * **traffic_control/traffic_portal/app/src** - contains HTML, JavaScript and Sass source files. - -Installing The Traffic Portal Developer Environment -=================================================== - - - Clone the traffic_control repository - - Navigate to the traffic_control/traffic_portal of your cloned repository. - - Run ``npm install`` to install application dependencies. Only needs to be done the first time unless traffic_portal/package.json changes. - - Run ``bower install`` to install client-side dependencies. Only needs to be done the first time unless traffic_portal/bower.json changes. - - Run ``grunt`` to package the application into traffic_portal/app/dist, start a local http server (Express), and start a file watcher. - - Navigate to http://localhost:8080 - -Notes -===== - -- The Traffic Portal consumes the Traffic Ops API. By default, Traffic Portal assumes Traffic Ops is running on http://localhost:3000. Temporarily modify conf/config.js if you need to change the location of Traffic Ops. - - - http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol-website/blob/5521f214/docs/latest/_sources/development/traffic_portal.txt ---------------------------------------------------------------------- diff --git a/docs/latest/_sources/development/traffic_portal.txt b/docs/latest/_sources/development/traffic_portal.txt new file mode 100644 index 0000000..8950d12 --- /dev/null +++ b/docs/latest/_sources/development/traffic_portal.txt @@ -0,0 +1,54 @@ +.. +.. +.. 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. +.. + +Traffic Portal +************** + +Introduction +============ +Traffic Portal is an `AngularJS 1.x <https://angularjs.org/>`_ client served from a `Node.js <https://nodejs.org/en/>`_ web server designed to consume the Traffic Ops 1.x API. Traffic Portal provides a set of functionality restricted to the delivery service(s) of the authenticated user. Functionality primarily includes a set of charts / graphs designed to provide insight into the performance of a user's delivery service(s). + +Software Requirements +===================== +To work on Traffic Portal you need a \*nix (MacOS and Linux are most commonly used) environment that has the following installed: + + * `Ruby 2.0.x or above <https://www.ruby-lang.org/en/>`_ + * `Compass 1.0.x or above <http://compass-style.org/>`_ + * `Node.js 6.0.x or above <https://nodejs.org/en/>`_ + * `Bower 1.7.9 or above <https://nodejs.org/en/>`_ + * `Grunt CLI 1.2.0 or above <https://github.com/gruntjs/grunt-cli>`_ + * Access to a working instance of Traffic Ops + +Traffic Portal Project Tree Overview +===================================== + * **traffic_control/traffic_portal/app/src** - contains HTML, JavaScript and Sass source files. + +Installing The Traffic Portal Developer Environment +=================================================== + + - Clone the traffic_control repository + - Navigate to the traffic_control/traffic_portal of your cloned repository. + - Run ``npm install`` to install application dependencies. Only needs to be done the first time unless traffic_portal/package.json changes. + - Run ``bower install`` to install client-side dependencies. Only needs to be done the first time unless traffic_portal/bower.json changes. + - Run ``grunt`` to package the application into traffic_portal/app/dist, start a local http server (Express), and start a file watcher. + - Navigate to http://localhost:8080 + +Notes +===== + +- The Traffic Portal consumes the Traffic Ops API. By default, Traffic Portal assumes Traffic Ops is running on http://localhost:3000. Temporarily modify conf/config.js if you need to change the location of Traffic Ops. + + + http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol-website/blob/5521f214/docs/latest/_sources/development/traffic_router.rst.txt ---------------------------------------------------------------------- diff --git a/docs/latest/_sources/development/traffic_router.rst.txt b/docs/latest/_sources/development/traffic_router.rst.txt deleted file mode 100644 index 383613b..0000000 --- a/docs/latest/_sources/development/traffic_router.rst.txt +++ /dev/null @@ -1,145 +0,0 @@ -.. -.. -.. 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. -.. - -Traffic Router -************** -Introduction -============ -Traffic Router is a Java Tomcat application that routes clients to the closest available cache on the CDN using both HTTP and DNS. Cache availability is determined by Traffic Monitor; consequently Traffic Router polls Traffic Monitor for its configuration and cache health state information, and uses this data to make routing decisions. HTTP routing is performed by localizing the client based on the request's source IP address (IPv4 or IPv6), and issues an HTTP 302 redirect to the nearest cache. HTTP routing utilizes consistent hashing on request URLs to optimize cache performance and request distribution. DNS routing is performed by localizing clients, resolvers in most cases, requesting ``A`` and ``AAAA`` records for a configurable name such as ``edge.deliveryservice.somecdn.net``. Traffic Router is comprised of four separate Maven modules: - - * api - Provides a simple JSON interface into certain aspects of core and is deployed as a WAR to a Service (read: connector/listen port) within Tomcat which is separate from core - * connector - A JAR that overrides Tomcat's standard Http11Protocol Connector class and allows Traffic Router to delay opening listen sockets until it is in a state suitable for routing traffic - * geolocation - Submodule for defining geolocation services - * testServer - A convenience server for easier manual testing of the API portion of Traffic Router on a development machine - * core - Services DNS and HTTP requests, performs localization on routing requests, and is deployed as a WAR to a Service (read: connector/listen port) within Tomcat which is separate from api - * rpm - A simple Maven project which gathers the artifacts from the prior three modules and builds an RPM - -Software Requirements -===================== -To work on Traffic Router you need a \*nix (MacOS and Linux are most commonly used) environment that has the following installed: - -* Eclipse >= Kepler SR2 (or another Java IDE) -* Maven >= 3.3.1 -* JDK >= 6.0 - -Traffic Router Project Tree Overview -===================================== -* ``traffic_control/traffic_traffic_router/`` - base directory for Traffic Router - - * ``api/`` - Source code for Traffic Router API, which is built as its own deployable WAR file and communicates with Traffic Router Core using JMX - - * ``src/main`` - Main source directory for Traffic Router API - - * ``java/`` - Java source code for Traffic Router API - * ``resources/`` - Spring resources pulled in during an RPM build - * ``webapp/`` - Java webapp resources - - * ``src/test`` - Test source directory for Traffic Router API - - * ``java/`` - JUnit based unit tests for Traffic Router API - * ``resources/`` - Resources pulled in by unit tests - - * ``connector/`` - Source code for Traffic Router Connector; - - * ``src/main/java`` - Java source directory for Traffic Router Connector - - * ``core/`` - Source code for Traffic Router Core, which is built as its own deployable WAR file and communicates with Traffic Router API using JMX - - * ``src/main`` - Main source directory for Traffic Router Core - - * ``etc/init.d`` - Init script for Tomcat - * ``conf/`` - Minimum required configuration files - * ``java/`` - Java source code for Traffic Router Core - * ``opt/tomcat/conf`` - Contains Tomcat configuration file(s) pulled in during an RPM build - * ``resources/`` - Resources pulled in during an RPM build - * ``scripts/`` - Scripts used by the RPM build process - * ``webapp/`` - Java webapp resources - - * ``src/test`` - Test source directory for Traffic Router Core - - * ``conf/`` - Minimal Configuration files that make it possible to run junit tests - * ``db/`` - Files downloaded by unit tests - * ``java/`` - JUnit based unit tests for Traffic Router Core - * ``resources/`` - Example data files used by junit tests - - * ``var/auto-zones`` - BIND formatted zone files generated by Traffic Router Core during unit testing - -Java Formatting Conventions -=========================== -None at this time. The codebase will eventually be formatted per Java standards. - -Installing The Developer Environment -==================================== -To install the Traffic Router Developer environment: - -1. Clone the traffic_control repository using Git. -2. Change directories into ``traffic_control/traffic_router``. -3. Follow the instructions in "README.DNSSEC" for DNSSEC support. -4. Set the environment variable TRAFFIC_MONITOR_HOSTS to be a semicolon delimited list of Traffic Monitors that can be accessed during integration tests -5. Additional configuration is set using the below files: - * core/src/test/resources no longer exists - * core/src/test/conf/traffic_ops.properties file holds the credentials for accessing Traffic Ops. - * Default configuration values now reside in core/src/main/webapp/WEB-INF/applicationContext.xml - * The above values may be overridden by creating and/or modifying the property files listed in core/src/main/resources/applicationProperties.xml - * Pre-existing properties files are still honored by Traffic Router. For example traffic_monitor.properties: - - +-------------------------------------+------------------------------------------------------------------------------------------------------------------+ - | Parameter | Value | - +=====================================+==================================================================================================================+ - | ``traffic_monitor.bootstrap.hosts`` | FQDN and port of the Traffic Monitor instance(s), separated by semicolons as necessary (do not include http://). | - +-------------------------------------+------------------------------------------------------------------------------------------------------------------+ - -6. Import the existing git repo into Eclipse: - - a. File -> Import -> Git -> Projects from Git; Next - b. Existing local repository; Next - c. Add -> browse to find ``traffic_control``; Open - d. Select ``traffic_control``; Next - e. Ensure "Import existing projects" is selected, expand ``traffic_control``, select ``traffic_router``; Next - f. Ensure ``traffic_router_api``, ``traffic_router_connector``, and ``traffic_router_core`` are checked; Finish (this step can take several minutes to complete) - g. Ensure ``traffic_router_api``, ``traffic_router_connector``, and ``traffic_router_core`` have been opened by Eclipse after importing - -7. From the terminal, run ``mvn clean verify`` from the ``traffic_router`` directory - -8. Start the embedded Jetty instance for Core from within Eclipse - - a. In the package explorer, expand ``traffic_router_core`` - b. Expand ``src/test/java`` - c. Expand the package ``com.comcast.cdn.traffic_control.traffic_router.core`` - d. Open and run ``TrafficRouterStart.java`` - - .. Note:: If an error is displayed in the Console, run ``mvn clean verify`` from the ``traffic_router`` directory - -9. Traffic Router Core should now be running; the HTTP routing interface is available on http://localhost:8081, while HTTPS is available on http://localhost:8443. The DNS server and routing interface is available on localhost:1053 via TCP and UDP. - -Test Cases -========== -* Unit tests can be executed using Maven by running ``mvn test`` at the root of the ``traffic_router`` project. -* Unit and Integration tests can be executed using Maven by running ``mvn verify`` at the root of the ``traffic_router`` project. - -RPM Packaging -============= -Running ``mvn package`` on a Linux based distribution will trigger the build process to create the Traffic Router rpm. - -API -=== - -:ref:`reference-tr-api` - -.. toctree:: - :hidden: - :maxdepth: 1 - - traffic_router/traffic_router_api