-
Notifications
You must be signed in to change notification settings - Fork 186
/
idp.go
35 lines (31 loc) · 1.04 KB
/
idp.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package common
import (
"fmt"
"os/exec"
"strings"
. "github.com/openshift/rosa/tests/utils/log"
)
// Generate htpasspwd key value pair, return with a string
func GenerateHtpasswdPair(user string, pass string) (string, string, string, error) {
generateCMD := fmt.Sprintf("htpasswd -Bbn %s %s", user, pass)
output, err := exec.Command("bash", "-c", generateCMD).Output()
htpasswdPair := strings.TrimSpace(string(output))
parts := strings.SplitN(htpasswdPair, ":", 2)
if err != nil {
Logger.Errorf("Fail to generate htpasswd file: %v", err)
return "", "", "", err
}
return htpasswdPair, parts[0], parts[1], nil
}
// generate Htpasswd user-password Pairs
func GenerateMultipleHtpasswdPairs(pairNum int) ([]string, error) {
multipleuserPasswd := []string{}
for i := 0; i < pairNum; i++ {
userPasswdPair, _, _, err := GenerateHtpasswdPair(GenerateRandomString(6), GenerateRandomString(6))
if err != nil {
return multipleuserPasswd, err
}
multipleuserPasswd = append(multipleuserPasswd, userPasswdPair)
}
return multipleuserPasswd, nil
}