Tracker #33448
closedTracker #33447: Alternate Content Sources Support Tracker (MVP)
As a user, I can CRUD custom ACSs via the API and hammer
100%
Description
Input: smart proxies, optional auth credentials (content credentials or basic auth info), optional headers (needed?), a base url, an optional list of subpaths, and http proxy info
DB tables draft:
katello_alternate_content_sources
-> belongs_to :gpg_key, :ssl_ca_cert, :ssl_client_cert, :ssl_client_key (optional)
-> belongs_to :product (optional, for CDN and probably RHUI ACS)
-> base_url
-> headers (needed?)
-> subpaths (array of strings)
-> type (custom, cdn, rhui)
-> content_type (custom only)
-> belongs_to :http_proxy
-> name
-> label
-> description
-> verify_ssl
katello_smart_proxy_alternate_content_sources
-> smart_proxy_id
-> alternate_content_source_id
-> remote_href
-> alternate_content_source_href
Backend DB steps after create form is submitted:
-> Create ACS in Katello DB
-> Create ACSs in Pulp for each Smart Proxy associated to the Katello ACS:
-> Create Pulp remote using Katello ACS base url, auth credentials, headers (if using), and proxy info
-> Create Pulp ACS using the created remote and the Katello ACS’s subpaths
-> Create Smart Proxy ACSs with a remote href, ACS href, Smart Proxy ID, and ACS ID from the ACS creation tasks
-> Since smart proxies can share Katello ACSs but will have separate ACSs and ACS remotes in Pulp
If an ACS has a change in smart proxies, we need a schedule a task to create and/or delete the related ACSs.