additional helper for tests

feature/306_private_poll
Karolis Rusenas 2018-11-24 21:42:26 +00:00
parent ce50c98dde
commit 83abc2cdf2
1 changed files with 11 additions and 3 deletions

View File

@ -235,7 +235,7 @@ func (g *DefaultGetter) getCredentialsFromSecret(image *types.TrackedImage) (*ty
func credentialsFromConfig(image *types.TrackedImage, cfg DockerCfg) (*types.Credentials, bool) { func credentialsFromConfig(image *types.TrackedImage, cfg DockerCfg) (*types.Credentials, bool) {
credentials := &types.Credentials{} credentials := &types.Credentials{}
found := false found := false
imageRegistry, err := domainOnly(image.Image.Registry()) imageRegistry, err := domainOnly(image.Image.Registry())
if err != nil { if err != nil {
log.WithFields(log.Fields{ log.WithFields(log.Fields{
@ -244,11 +244,11 @@ func credentialsFromConfig(image *types.TrackedImage, cfg DockerCfg) (*types.Cre
"error": err, "error": err,
}).Error("secrets.credentialsFromConfig: failed to parse registry hostname") }).Error("secrets.credentialsFromConfig: failed to parse registry hostname")
return credentials, false return credentials, false
} }
// looking for our registry // looking for our registry
for registry, auth := range cfg { for registry, auth := range cfg {
h, err := hostname(registry) h, err := hostname(registry)
if err != nil { if err != nil {
log.WithFields(log.Fields{ log.WithFields(log.Fields{
"image": image.Image.Repository(), "image": image.Image.Repository(),
@ -315,6 +315,10 @@ func decodeBase64Secret(authSecret string) (username, password string, err error
return parts[0], parts[1], nil return parts[0], parts[1], nil
} }
func EncodeBase64Secret(username, password string) string {
return base64.StdEncoding.EncodeToString([]byte(fmt.Sprintf("%s:%s", username, password)))
}
func hostname(registry string) (string, error) { func hostname(registry string) (string, error) {
if strings.HasPrefix(registry, "http://") || strings.HasPrefix(registry, "https://") { if strings.HasPrefix(registry, "http://") || strings.HasPrefix(registry, "https://") {
u, err := url.Parse(registry) u, err := url.Parse(registry)
@ -353,6 +357,10 @@ func DecodeDockerCfgJson(data []byte) (DockerCfg, error) {
return cfg.Auths, nil return cfg.Auths, nil
} }
func EncodeDockerCfgJson(cfg *DockerCfg) ([]byte, error) {
return json.Marshal(cfg)
}
// DockerCfgJSON - secret structure when dockerconfigjson is used // DockerCfgJSON - secret structure when dockerconfigjson is used
type DockerCfgJSON struct { type DockerCfgJSON struct {
Auths DockerCfg `json:"auths"` Auths DockerCfg `json:"auths"`