Module: DockerSwarm::RegistryAuth
- Defined in:
- lib/docker_swarm/registry_auth.rb
Overview
Traduce las opciones de autenticación de registry privado a los canales de transporte de la Docker Engine API, sin tocar el payload ni el estado del modelo:
registry_auth-> headerX-Registry-Auth(credencial opaca base64url).registry_auth_from-> queryregistryAuthFrom(+spec+ |previous-spec), fuente de credencial a reusar en un update cuando el header NO está presente.
Son mutuamente excluyentes: Docker define registryAuthFrom como la fuente a usar
solo si X-Registry-Auth no viaja. Si el caller pasa ambos, se corta con un error
local claro antes de la request, en vez de derivar la ambigüedad al Engine.
Constant Summary collapse
- HEADER =
"X-Registry-Auth"- QUERY =
:registryAuthFrom- FROM_VALUES =
%w[spec previous-spec].freeze
Class Method Summary collapse
-
.resolve(registry_auth: nil, registry_auth_from: nil) ⇒ Array(Hash, Hash)
Par [headers, query_params] a mergear en la request (cada uno vacío cuando su opción no vino).
- .validate!(registry_auth, registry_auth_from) ⇒ Object
Class Method Details
.resolve(registry_auth: nil, registry_auth_from: nil) ⇒ Array(Hash, Hash)
Returns par [headers, query_params] a mergear en la request (cada uno vacío cuando su opción no vino).
28 29 30 31 32 33 34 35 |
# File 'lib/docker_swarm/registry_auth.rb', line 28 def resolve(registry_auth: nil, registry_auth_from: nil) validate!(registry_auth, registry_auth_from) headers = registry_auth ? { HEADER => registry_auth } : {} query = registry_auth_from ? { QUERY => registry_auth_from } : {} [ headers, query ] end |
.validate!(registry_auth, registry_auth_from) ⇒ Object
37 38 39 40 41 42 43 44 45 46 |
# File 'lib/docker_swarm/registry_auth.rb', line 37 def validate!(registry_auth, registry_auth_from) if registry_auth && registry_auth_from raise ArgumentError, "registry_auth y registry_auth_from son mutuamente excluyentes: pasá uno u otro" end return if registry_auth_from.nil? || FROM_VALUES.include?(registry_auth_from) raise ArgumentError, "registry_auth_from inválido: #{registry_auth_from.inspect} (válidos: #{FROM_VALUES.join(', ')})" end |