Skip to content

Commit da543ba

Browse files
author
Jeff McCormick
committed
operator package cleanup
1 parent 3d4208d commit da543ba

File tree

18 files changed

+751
-252
lines changed

18 files changed

+751
-252
lines changed

apiserver.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"crypto/tls"
2020
"crypto/x509"
2121
log "github.com/Sirupsen/logrus"
22+
"github.com/crunchydata/postgres-operator/apiserver"
2223
"github.com/crunchydata/postgres-operator/apiserver/backupservice"
2324
"github.com/crunchydata/postgres-operator/apiserver/clusterservice"
2425
"github.com/crunchydata/postgres-operator/apiserver/failoverservice"
@@ -66,6 +67,9 @@ func main() {
6667
tlsNoVerify, _ := strconv.ParseBool(tmp)
6768

6869
log.Infoln("postgres-operator apiserver starts")
70+
71+
apiserver.Initialize()
72+
6973
r := mux.NewRouter()
7074
r.HandleFunc("/version", versionservice.VersionHandler)
7175
r.HandleFunc("/policies", policyservice.CreatePolicyHandler)

apiserver/loadservice/loadimpl.go

Lines changed: 16 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,9 @@ import (
2727
"github.com/crunchydata/postgres-operator/kubeapi"
2828
operutil "github.com/crunchydata/postgres-operator/util"
2929
"github.com/spf13/viper"
30-
"io/ioutil"
3130
v1batch "k8s.io/api/batch/v1"
3231
"k8s.io/apimachinery/pkg/labels"
33-
"os"
3432
"strings"
35-
"text/template"
3633
)
3734

3835
type loadJobTemplateFields struct {
@@ -54,37 +51,6 @@ type loadJobTemplateFields struct {
5451
// LoadConfig ...
5552
var LoadConfig string
5653

57-
// LoadConfigTemplate ....
58-
var LoadConfigTemplate loadJobTemplateFields
59-
60-
// LoadTemplatePath ...
61-
var LoadTemplatePath string
62-
63-
// JobTemplate ...
64-
var JobTemplate *template.Template
65-
66-
func init() {
67-
68-
log.Debug("loadimpl init called")
69-
70-
LoadTemplatePath = viper.GetString("Pgo.LoadTemplate")
71-
if LoadTemplatePath == "" {
72-
log.Error("Pgo.LoadTemplate not defined in pgo config 1.")
73-
os.Exit(2)
74-
}
75-
76-
//get the job template
77-
var err error
78-
var buf []byte
79-
80-
buf, err = ioutil.ReadFile(LoadTemplatePath)
81-
if err != nil {
82-
log.Error("error loading pgo-load job template..." + err.Error())
83-
os.Exit(2)
84-
}
85-
JobTemplate = template.Must(template.New("pgo-load job template").Parse(string(buf)))
86-
}
87-
8854
// Load ...
8955
// pgo load --policies=jsonload --selector=name=mycluster --load-config=./sample-load-config.json
9056
func Load(request *msgs.LoadRequest) msgs.LoadResponse {
@@ -94,16 +60,7 @@ func Load(request *msgs.LoadRequest) msgs.LoadResponse {
9460
resp.Status.Code = msgs.Ok
9561
resp.Status.Msg = ""
9662

97-
/**
98-
LoadTemplatePath = viper.GetString("Pgo.LoadTemplate")
99-
if LoadTemplatePath == "" {
100-
resp.Status.Code = msgs.Error
101-
resp.Status.Msg = "Pgo.LoadTemplate not defined in pgo config 2."
102-
return resp
103-
}
104-
*/
105-
106-
LoadConfigTemplate = loadJobTemplateFields{}
63+
LoadConfigTemplate := loadJobTemplateFields{}
10764

10865
viper.SetConfigType("yaml")
10966

@@ -163,8 +120,11 @@ func Load(request *msgs.LoadRequest) msgs.LoadResponse {
163120

164121
}
165122

166-
log.Debug("policies to apply before loading are %v\n", request.Policies)
167-
policies := strings.Split(request.Policies, ",")
123+
var policies []string
124+
if request.Policies != "" {
125+
policies = strings.Split(request.Policies, ",")
126+
}
127+
log.Debugf("policies to apply before loading are %v len=%d\n", request.Policies, len(policies))
168128

169129
for _, arg := range args {
170130
for _, p := range policies {
@@ -178,12 +138,15 @@ func Load(request *msgs.LoadRequest) msgs.LoadResponse {
178138
applyResp := policyservice.ApplyPolicy(&applyReq)
179139
if applyResp.Status.Code != msgs.Ok {
180140
log.Error("error in applying policy " + applyResp.Status.Msg)
141+
resp.Status.Code = msgs.Error
142+
resp.Status.Msg = err.Error()
143+
return resp
181144
}
182145
}
183146

184147
//create the load job for this cluster
185148
log.Debug("created load for " + arg)
186-
err = createJob(arg, LoadConfigTemplate.FileType, LoadConfigTemplate.FilePath)
149+
err = createJob(arg, &LoadConfigTemplate)
187150
if err != nil {
188151
resp.Status.Code = msgs.Error
189152
resp.Status.Msg = err.Error()
@@ -196,21 +159,20 @@ func Load(request *msgs.LoadRequest) msgs.LoadResponse {
196159

197160
}
198161

199-
func createJob(clusterName, filetype, filepath string) error {
162+
func createJob(clusterName string, template *loadJobTemplateFields) error {
200163
var err error
164+
201165
randStr := operutil.GenerateRandString(3)
202-
LoadConfigTemplate.Name = "pgo-load-" + clusterName + "-" + randStr
203-
LoadConfigTemplate.DbHost = clusterName
204-
LoadConfigTemplate.FilePath = filepath
205-
LoadConfigTemplate.FileType = filetype
206-
LoadConfigTemplate.DbPass, err = operutil.GetSecretPassword(apiserver.Clientset, clusterName, crv1.RootSecretSuffix, apiserver.Namespace)
166+
template.Name = "pgo-load-" + clusterName + "-" + randStr
167+
template.DbHost = clusterName
168+
template.DbPass, err = operutil.GetSecretPassword(apiserver.Clientset, clusterName, crv1.RootSecretSuffix, apiserver.Namespace)
207169
if err != nil {
208170
log.Error(err)
209171
return err
210172
}
211173

212174
var doc2 bytes.Buffer
213-
err = JobTemplate.Execute(&doc2, LoadConfigTemplate)
175+
err = apiserver.JobTemplate.Execute(&doc2, template)
214176
if err != nil {
215177
log.Error(err.Error())
216178
return err

apiserver/perms.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ var PermMap map[string]string
5353

5454
const pgorolePath = "/config/pgorole"
5555

56-
func init() {
56+
func InitializePerms() {
5757
PermMap = make(map[string]string)
5858
RoleMap = make(map[string]map[string]string)
5959

apiserver/pvcservice/pvcimpl.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,9 @@ import (
2424
"github.com/crunchydata/postgres-operator/util"
2525
"github.com/spf13/viper"
2626
"io"
27-
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
28-
//"k8s.io/client-go/pkg/api/v1"
2927
"k8s.io/api/core/v1"
28+
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3029
"strings"
31-
"text/template"
3230
"time"
3331
)
3432

@@ -40,12 +38,14 @@ type lspvcTemplateFields struct {
4038
PVCName string
4139
}
4240

43-
var lspvcTemplate *template.Template
41+
//var lspvcTemplate *template.Template
4442

45-
func init() {
43+
/**
44+
func Initialize() {
4645
lspvcTemplate = util.LoadTemplate("/config/pgo.lspvc-template.json")
4746
4847
}
48+
*/
4949

5050
// ShowPVC ...
5151
func ShowPVC(pvcName, PVCRoot string) ([]string, error) {
@@ -119,7 +119,7 @@ func printPVCListing(pvcName, PVCRoot string) ([]string, error) {
119119
PVCName: pvcName,
120120
}
121121

122-
err = lspvcTemplate.Execute(&doc2, pvcFields)
122+
err = apiserver.LspvcTemplate.Execute(&doc2, pvcFields)
123123
if err != nil {
124124
log.Error(err.Error())
125125
return newlines, err

apiserver/root.go

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import (
3232
"os"
3333
"strconv"
3434
"strings"
35+
"text/template"
3536
)
3637

3738
// pgouserPath ...
@@ -76,7 +77,10 @@ var Credentials map[string]CredentialDetail
7677
var StorageMap map[string]interface{}
7778
var ContainerResourcesMap map[string]interface{}
7879

79-
func init() {
80+
var LspvcTemplate *template.Template
81+
var JobTemplate *template.Template
82+
83+
func Initialize() {
8084
BasicAuth = true
8185
MetricsFlag = false
8286
AuditFlag = false
@@ -87,6 +91,10 @@ func init() {
8791

8892
initConfig()
8993

94+
initTemplates()
95+
96+
InitializePerms()
97+
9098
ConnectToKube()
9199

92100
}
@@ -102,7 +110,6 @@ func ConnectToKube() {
102110
panic(err)
103111
}
104112

105-
//Clientset, err = apiextensionsclient.NewForConfig(config)
106113
Clientset, err = kubernetes.NewForConfig(config)
107114
if err != nil {
108115
panic(err)
@@ -216,8 +223,6 @@ func parseUserMap(dat string) CredentialDetail {
216223
creds := CredentialDetail{}
217224

218225
fields := strings.Split(strings.TrimSpace(dat), ":")
219-
//log.Infof("%v\n", fields)
220-
//log.Infof("username=[%s] password=[%s] role=[%s]\n", fields[0], fields[1], fields[2])
221226
creds.Username = fields[0]
222227
creds.Password = fields[1]
223228
creds.Role = fields[2]
@@ -427,3 +432,16 @@ func IsValidContainerResourceValues() bool {
427432
}
428433
return true
429434
}
435+
436+
func initTemplates() {
437+
LspvcTemplate = util.LoadTemplate("/config/pgo.lspvc-template.json")
438+
439+
LoadTemplatePath := viper.GetString("Pgo.LoadTemplate")
440+
if LoadTemplatePath == "" {
441+
log.Error("Pgo.LoadTemplate not defined in pgo config 1.")
442+
os.Exit(2)
443+
}
444+
445+
JobTemplate = util.LoadTemplate(LoadTemplatePath)
446+
447+
}

apiserver/userservice/userimpl.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,6 @@ var defaultPasswordAgeDays = 365
5353
// defaultPasswordLength password length
5454
var defaultPasswordLength = 8
5555

56-
func init() {
57-
getDefaults()
58-
}
59-
6056
// User ...
6157
// pgo user --change-password=bob --db=userdb
6258
// --expired=7 --managed=true --selector=env=research --update-passwords=true
@@ -68,6 +64,8 @@ func User(request *msgs.UserRequest) msgs.UserResponse {
6864
resp.Status.Msg = ""
6965
resp.Results = make([]string, 0)
7066

67+
getDefaults()
68+
7169
//set up the selector
7270
var sel string
7371
if request.Selector != "" {
@@ -436,6 +434,8 @@ func CreateUser(request *msgs.CreateUserRequest) msgs.CreateUserResponse {
436434
resp.Status.Msg = ""
437435
resp.Results = make([]string, 0)
438436

437+
getDefaults()
438+
439439
log.Debug("createUser selector is " + request.Selector)
440440
if request.Selector == "" {
441441
log.Error("--selector value is empty not allowed")

0 commit comments

Comments
 (0)