46 lines
		
	
	
		
			847 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			847 B
		
	
	
	
		
			Go
		
	
	
	
package util
 | 
						|
 | 
						|
import (
 | 
						|
	"math/rand"
 | 
						|
	"time"
 | 
						|
 | 
						|
	"github.bus.zalan.do/acid/postgres-operator/pkg/spec"
 | 
						|
	"k8s.io/client-go/pkg/api/v1"
 | 
						|
	"k8s.io/client-go/pkg/types"
 | 
						|
)
 | 
						|
 | 
						|
var passwordChars = []byte("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
 | 
						|
 | 
						|
func init() {
 | 
						|
	rand.Seed(int64(time.Now().Unix()))
 | 
						|
}
 | 
						|
 | 
						|
func RandomPassword(n int) string {
 | 
						|
	b := make([]byte, n)
 | 
						|
	for i := range b {
 | 
						|
		b[i] = passwordChars[rand.Intn(len(passwordChars))]
 | 
						|
	}
 | 
						|
 | 
						|
	return string(b)
 | 
						|
}
 | 
						|
 | 
						|
func NameFromMeta(meta v1.ObjectMeta) types.NamespacedName {
 | 
						|
	obj := types.NamespacedName{
 | 
						|
		Namespace: meta.Namespace,
 | 
						|
		Name:      meta.Name,
 | 
						|
	}
 | 
						|
 | 
						|
	return obj
 | 
						|
}
 | 
						|
 | 
						|
func PodClusterName(pod *v1.Pod) spec.ClusterName {
 | 
						|
	if name, ok := pod.Labels["spilo-cluster"]; ok {
 | 
						|
		return spec.ClusterName{
 | 
						|
			Namespace: pod.Namespace,
 | 
						|
			Name:      name,
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	return spec.ClusterName{}
 | 
						|
}
 |