-
Notifications
You must be signed in to change notification settings - Fork 9
/
sql_engine.go
41 lines (33 loc) · 1.14 KB
/
sql_engine.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
36
37
38
39
40
41
package sqlengine
import (
"errors"
"strings"
"github.com/alphagov/paas-rds-broker/utils"
)
const (
usernameLength = 16
passwordLength = 32
)
type SQLEngine interface {
Open(address string, port int64, dbname string, username string, password string) error
Close()
CreateUser(bindingID, dbname string) (string, string, error)
DropUser(bindingID string) error
ResetState() error
URI(address string, port int64, dbname string, username string, password string) string
JDBCURI(address string, port int64, dbname string, username string, password string) string
CreateExtensions(extensions []string) error
DropExtensions(extensions []string) error
}
var LoginFailedError = errors.New("Login failed")
func generateUsername(seed string) string {
usernameString := strings.ToLower(utils.GenerateHash(seed, usernameLength-1))
return "u" + strings.Replace(usernameString, "-", "_", -1)
}
func generateUsernameOld(seed string) string {
usernameString := strings.ToLower(utils.GetMD5B64(seed, usernameLength-1))
return "u" + strings.Replace(usernameString, "-", "_", -1)
}
func generatePassword() string {
return utils.RandomAlphaNum(passwordLength)
}