Skip to content

Rewrite Traffic Ops CRConfig Table Endpoints in Go #2232

Closed
@rob05c

Description

@rob05c

One of the first steps to Self Service Change Integrity is to change the CRConfig to select the latest timestamps for each delivery service, which requires all tables queried for the CRConfig deliveryservices key insert-not-update, which requires those endpoints be written in Go.

The following tables are queried in the CRConfig:

  • cachegroup
  • cdn
  • deliveryservice
  • deliveryservice_regex
  • deliveryservice_server
  • parameter
  • profile
  • profile_parameter
  • regex
  • server
  • staticdnsentry
  • type
  • status
  • snapshot

This case is part of Self Service, and represents the overarching task of rewriting those tables in Go; but individual issues and PRs for each table should be in https://github.com/apache/incubator-trafficcontrol/projects/5

  • if you've verified a route does not use one of the CRConfig tables (above), follow it with a bullet noting that. Be sure to verify any tables the route does use do not link a CRConfig table, in those tables' traffic_ops/app/lib/Schema/Result
  • if there is an unmerged PR, follow with a bullet linking the PR
  • if the route is in Go, in master, check it off

NOTE: this checklist should be current as of 07-12-19 (cachegroup_fallbacks omitted because that functionality was added to the cachegroups endpoint)

  • get /api/1.1/asns
  • get /api/1.2/asns
  • get /api/1.1/asns/:id
  • post /api/1.1/asns
  • put /api/1.1/asns/:id
  • delete /api/1.1/asns/:id
  • get /api/1.1/caches/stats
  • get /api/1.1/cachegroups
  • get /api/1.1/cachegroups/trimmed
  • get /api/1.1/cachegroups/:id
  • post /api/1.1/cachegroups
  • put /api/1.1/cachegroups/:id
  • delete /api/1.1/cachegroups/:id
  • post /api/1.1/cachegroups/:id/deliveryservices
  • post /api/1.1/cachegroups/:id/queue_update
  • get /api/1.1/cdns
  • get /api/1.1/cdns/:id
  • get /api/1.1/cdns/name/:name
  • post /api/1.1/cdns
  • put /api/1.1/cdns/:id
  • delete /api/1.1/cdns/:id
  • delete /api/1.1/cdns/name/:name
  • post /api/1.1/cdns/:id/queue_update
  • get /api/1.1/cdns/health
  • get /api/1.1/cdns/:name/health
  • get /api/1.1/cdns/capacity
  • get /api/1.1/cdns/routing
  • get /api/1.1/cdns/:name/snapshot
  • get /api/1.1/cdns/:name/snapshot/new
  • put /api/1.1/cdns/:id/snapshot
  • put /api/1.1/snapshot/:cdn_name
  • get /api/1.1/cdns/metric_types/:metric_type/start_date/:start_date/end_date/:end_date
  • get /api/1.1/cdns/name/:name/dnsseckeys
  • post /api/1.1/cdns/dnsseckeys/generate
  • get /api/1.1/cdns/name/:name/dnsseckeys/delete
  • get /api/1.1/cdns/name/:name/sslkeys
  • get /api/1.1/cdns/configs
  • get /api/1.1/cdns/:name/configs/routing
  • get /api/1.1/cdns/:name/configs/monitoring
  • get /api/1.1/cdns/domains
  • get /api/1.1/logs
  • get /api/1.1/logs/:days/days
  • get /api/1.1/logs/newcount
  • get /api/1.1/servers/:id/configfiles/ats
  • get /api/1.1/profiles/:id/configfiles/ats/:filename
  • get /api/1.1/servers/:id/configfiles/ats/:filename
  • get /api/1.1/cdns/:id/configfiles/ats/:filename
  • get /api/1.1/dbdump
  • get /api/1.1/deliveryservices
  • get /api/1.1/deliveryservices/:id
  • post /api/1.1/deliveryservices
  • put /api/1.1/deliveryservices/:id
  • put /api/1.1/deliveryservices/:id/safe
  • delete /api/1.1/deliveryservices/:id
  • get /api/1.1/servers/:id/deliveryservices
  • post /api/1.1/deliveryservices/:xml_id/servers
  • delete /api/1.1/deliveryservice_server/:dsId/:serverId
  • get /api/1.1/deliveryservices/:id/health
  • get /api/1.1/deliveryservices/:id/capacity
  • get /api/1.1/deliveryservices/:id/routing
  • get /api/1.1/deliveryservices/:id/state
  • post /api/1.1/deliveryservices/request
  • get /api/1.1/steering/:id/targets
  • get /api/1.1/steering/:id/targets/:target_id
  • post /api/1.1/steering/:id/targets
  • put /api/1.1/steering/:id/targets/:target_id
  • delete /api/1.1/steering/:id/targets/:target_id
  • get /api/1.1/deliveryservices/xmlId/:xmlid/sslkeys
  • post /api/1.1/deliveryservices/sslkeys/generate
  • post /api/1.1/deliveryservices/sslkeys/add
  • get /api/1.1/deliveryservices/xmlId/:xmlid/sslkeys/delete
  • post /api/1.1/deliveryservices/xmlId/:xmlId/urlkeys/generate
  • post /api/1.1/deliveryservices/xmlId/:xmlId/urlkeys/copyFromXmlId/:copyFromXmlId
  • get /api/1.1/deliveryservices/xmlId/:xmlId/urlkeys
  • get /api/1.1/deliveryservices/:id/urlkeys
  • get /api/1.1/deliveryservices_regexes
  • get /api/1.1/deliveryservices/:dsId/regexes
  • get /api/1.1/deliveryservices/:dsId/regexes/:id
  • post /api/1.1/deliveryservices/:dsId/regexes
  • put /api/1.1/deliveryservices/:dsId/regexes/:id
  • delete /api/1.1/deliveryservices/:dsId/regexes/:id
  • get /api/1.1/deliveryservice_matches
  • get /api/1.1/deliveryserviceserver
  • post /api/1.1/deliveryserviceserver
  • get /api/1.1/divisions
  • get /api/1.1/divisions/:id
  • get /api/1.1/divisions/name/:name
  • put /api/1.1/divisions/:id
  • post /api/1.1/divisions
  • delete /api/1.1/divisions/:id
  • delete /api/1.1/divisions/name/:name
  • get /api/1.1/federations
  • post /api/1.1/federations
  • put /api/1.1/federations
  • delete /api/1.1/federations
  • get /api/1.1/cdns/:name/federations
  • get /api/1.1/cdns/:name/federations/:fedId
  • post /api/1.1/cdns/:name/federations
  • put /api/1.1/cdns/:name/federations/:fedId
  • delete /api/1.1/cdns/:name/federations/:fedId
  • get /api/1.1/federations/:fedId/users
  • post /api/1.1/federations/:fedId/users
  • delete /api/1.1/federations/:fedId/users/:userId
  • get /api/1.1/federations/:fedId/deliveryservices
  • post /api/1.1/federations/:fedId/deliveryservices
  • delete /api/1.1/federations/:fedId/deliveryservices/:dsId
  • get /api/1.1/federations/:fedId/federation_resolvers
  • post /api/1.1/federations/:fedId/federation_resolvers
  • post /api/1.1/federation_resolvers
  • delete /api/1.1/federation_resolvers/:id
  • get /api/1.1/hwinfo/dtdata
  • get /api/1.1/hwinfo
  • get /api/1.1/osversions
  • post /api/1.1/isos
  • get /api/1.1/jobs
  • get /api/1.1/jobs/:id
  • get /api/1.1/user/current/jobs
  • post /api/1.1/user/current/jobs
  • get /api/1.1/parameters
  • get /api/1.1/parameters/:id
  • post /api/1.1/parameters
  • put /api/1.1/parameters/:id
  • delete /api/1.1/parameters/:id
  • post /api/1.1/parameters/validate
  • get /api/1.1/profiles/:id/parameters
  • get /api/1.1/profiles/:id/unassigned_parameters
  • get /api/1.1/profiles/name/:name/parameters
  • get /api/1.1/parameters/profile/:name
  • post /api/1.1/profiles/name/:name/parameters
  • post /api/1.1/profiles/:id/parameters
  • get /api/1.1/profileparameters
  • post /api/1.1/profileparameters
  • post /api/1.1/profileparameter
  • post /api/1.1/parameterprofile
  • delete /api/1.1/profileparameters/:profile_id/:parameter_id
  • get /api/1.1/cachegroups/:id/parameters
  • get /api/1.1/cachegroups/:id/unassigned_parameters
  • get /api/1.1/cachegroup/:parameter_id/parameter
  • get /api/1.1/cachegroupparameters
  • post /api/1.1/cachegroupparameters
  • delete /api/1.1/cachegroupparameters/:cachegroup_id/:parameter_id
  • get /api/1.1/cachegroups/:parameter_id/parameter/available
  • get /api/1.1/phys_locations
  • get /api/1.1/phys_locations/trimmed
  • get /api/1.1/phys_locations/:id
  • post /api/1.1/phys_locations
  • post /api/1.1/regions/:region_name/phys_locations
  • put /api/1.1/phys_locations/:id
  • delete /api/1.1/phys_locations/:id
  • get /api/1.1/profiles
  • get /api/1.1/profiles/trimmed
  • get /api/1.1/profiles/:id
  • post /api/1.1/profiles
  • put /api/1.1/profiles/:id
  • delete /api/1.1/profiles/:id
  • post /api/1.1/profiles/name/:profile_name/copy/:profile_copy_from
  • get /api/1.1/profiles/:id/export
  • post /api/1.1/profiles/import
  • get /api/1.1/parameters/:id/profiles
  • get /api/1.1/parameters/:id/unassigned_profiles
  • get /api/1.1/regions
  • get /api/1.1/regions/:id
  • get /api/1.1/regions/name/:name
  • put /api/1.1/regions/:id
  • post /api/1.1/regions
  • post /api/1.1/divisions/:division_name/regions
  • delete /api/1.1/regions/:id
  • delete /api/1.1/regions/name/:name
  • get /api/1.1/roles
  • get /api/1.1/capabilities
  • get /api/1.1/capabilities/:name
  • put /api/1.1/capabilities/:name
  • post /api/1.1/capabilities
  • delete /api/1.1/capabilities/:name
  • get /api/1.1/api_capabilities
  • get /api/1.1/api_capabilities/:id
  • put /api/1.1/api_capabilities/:id
  • post /api/1.1/api_capabilities
  • delete /api/1.1/api_capabilities/:id
  • get /api/1.1/servers
  • get /api/1.1/servers/:id
  • post /api/1.1/servers
  • put /api/1.1/servers/:id
  • delete /api/1.1/servers/:id
  • get /api/1.1/deliveryservices/:id/servers
  • get /api/1.1/deliveryservices/:id/unassigned_servers
  • get /api/1.1/deliveryservices/:id/servers/eligible
  • get /api/1.1/servers/details
  • get /api/1.1/servers/hostname/:name/details
  • get /api/1.1/servers/totals
  • get /api/1.1/servers/status
  • post /api/1.1/servers/:id/queue_update
  • put /api/1.1/servers/:id/status
  • get /api/1.1/servers/checks
  • get /api/1.1/servercheck/aadata
  • post /api/1.1/servercheck
  • get /api/1.1/stats_summary
  • post /api/1.1/stats_summary/create
  • get /api/1.1/statuses
  • get /api/1.1/statuses/:id
  • put /api/1.1/statuses/:id
  • post /api/1.1/statuses
  • delete /api/1.1/statuses/:id
  • get /api/1.1/staticdnsentries
  • get /api/1.1/system/info
  • get /api/1.1/tenants
  • get /api/1.1/tenants/:id
  • put /api/1.1/tenants/:id
  • post /api/1.1/tenants
  • delete /api/1.1/tenants/:id
  • get /api/1.1/types
  • get /api/1.1/types/trimmed
  • get /api/1.1/types/:id
  • post /api/1.1/types
  • put /api/1.1/types/:id
  • delete /api/1.1/types/:id
  • get /api/1.1/users
  • get /api/1.1/users/:id
  • put /api/1.1/users/:id
  • post /api/1.1/users
  • post /api/1.1/users/register
  • get /api/1.1/users/:id/deliveryservices
  • get /api/1.1/user/:id/deliveryservices/available
  • post /api/1.1/deliveryservice_user
  • delete /api/1.1/deliveryservice_user/:dsId/:userId
  • get /api/1.1/user/current
  • put /api/1.1/user/current
  • post /api/1.1/user/current/update
  • post /api/1.1/user/login
  • post /api/1.1/user/login/token
  • post /api/1.1/user/logout
  • post /api/1.1/user/reset_password
  • get /api/1.1/keys/ping
  • get /api/1.1/riak/ping
  • get /api/1.1/riak/bucket/:bucket/key/:key/values
  • get /api/1.1/to_extensions
  • post /api/1.1/to_extensions
  • post /api/1.1/to_extensions/:id/delete
  • get /api/1.1/traffic_monitor/stats
  • get /api/1.1/ping

Metadata

Metadata

Assignees

No one assigned

    Labels

    Traffic Opsrelated to Traffic Opsnew featureA new feature, capability or behaviorself_servicetech debtrework due to choosing easy/limited solution

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions