SUSE/stratos

View on GitHub
src/jetstream/plugins/kubernetes/auth_providers.go

Summary

Maintainability
A
0 mins
Test Coverage
package kubernetes

import (
    "strings"

    "github.com/cloudfoundry-incubator/stratos/src/jetstream/plugins/kubernetes/auth"
)

var kubeAuthProviders map[string]auth.KubeAuthProvider

// AddAuthProvider adds a Kubernetes auth provider
func (c *KubernetesSpecification) AddAuthProvider(provider auth.KubeAuthProvider) {
    if provider == nil {
        return
    }

    var name = provider.GetName()
    if kubeAuthProviders == nil {
        kubeAuthProviders = make(map[string]auth.KubeAuthProvider)
    }

    kubeAuthProviders[name] = provider

    // Get the auth provider to register itself with Stratos, if needed
    provider.RegisterJetstreamAuthType(c.portalProxy)
}

// GetAuthProvider gets a Kubernetes auth provider by key
func (c *KubernetesSpecification) GetAuthProvider(name string) auth.KubeAuthProvider {
    return kubeAuthProviders[name]
}

// FindAuthProvider finds auth provider - case insensitive
func (c *KubernetesSpecification) FindAuthProvider(name string) auth.KubeAuthProvider {
    for k, v := range kubeAuthProviders {
        if strings.EqualFold(name, k) {
            return v
        }
    }

    return nil
}