mirror of
https://github.com/zalando/postgres-operator.git
synced 2026-10-06 15:21:44 +02:00
Fix the golint, gosimple warnings
This commit is contained in:
+20
-22
@@ -39,7 +39,7 @@ type Config struct {
|
||||
KubeClient *kubernetes.Clientset //TODO: move clients to the better place?
|
||||
RestClient *rest.RESTClient
|
||||
EtcdClient etcdclient.KeysAPI
|
||||
TeamsAPIClient *teams.TeamsAPI
|
||||
TeamsAPIClient *teams.API
|
||||
OpConfig config.Config
|
||||
InfrastructureRoles map[string]spec.PgUser // inherited from the controller
|
||||
}
|
||||
@@ -100,7 +100,7 @@ func (c *Cluster) ClusterName() spec.NamespacedName {
|
||||
|
||||
func (c *Cluster) teamName() string {
|
||||
// TODO: check Teams API for the actual name (in case the user passes an integer Id).
|
||||
return c.Spec.TeamId
|
||||
return c.Spec.TeamID
|
||||
}
|
||||
|
||||
func (c *Cluster) setStatus(status spec.PostgresStatus) {
|
||||
@@ -199,9 +199,8 @@ func (c *Cluster) Create(stopCh <-chan struct{}) error {
|
||||
service, err := c.createService()
|
||||
if err != nil {
|
||||
return fmt.Errorf("Can't create Service: %s", err)
|
||||
} else {
|
||||
c.logger.Infof("Service '%s' has been successfully created", util.NameFromMeta(service.ObjectMeta))
|
||||
}
|
||||
c.logger.Infof("Service '%s' has been successfully created", util.NameFromMeta(service.ObjectMeta))
|
||||
|
||||
if err = c.initUsers(); err != nil {
|
||||
return err
|
||||
@@ -230,20 +229,21 @@ func (c *Cluster) Create(stopCh <-chan struct{}) error {
|
||||
if !(c.masterLess || c.databaseAccessDisabled()) {
|
||||
if err := c.initDbConn(); err != nil {
|
||||
return fmt.Errorf("Can't init db connection: %s", err)
|
||||
} else {
|
||||
if err = c.createUsers(); err != nil {
|
||||
return fmt.Errorf("Can't create users: %s", err)
|
||||
} else {
|
||||
c.logger.Infof("Users have been successfully created")
|
||||
}
|
||||
}
|
||||
if err = c.createUsers(); err != nil {
|
||||
return fmt.Errorf("Can't create users: %s", err)
|
||||
}
|
||||
c.logger.Infof("Users have been successfully created")
|
||||
} else {
|
||||
if c.masterLess {
|
||||
c.logger.Warnln("Cluster is masterless")
|
||||
}
|
||||
}
|
||||
|
||||
c.ListResources()
|
||||
err = c.ListResources()
|
||||
if err != nil {
|
||||
c.logger.Errorf("Can't list resources: %s", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
@@ -406,9 +406,8 @@ func (c *Cluster) Update(newSpec *spec.Postgresql) error {
|
||||
if err := c.updateService(newService); err != nil {
|
||||
c.setStatus(spec.ClusterStatusUpdateFailed)
|
||||
return fmt.Errorf("Can't update Service: %s", err)
|
||||
} else {
|
||||
c.logger.Infof("Service '%s' has been updated", util.NameFromMeta(c.Service.ObjectMeta))
|
||||
}
|
||||
c.logger.Infof("Service '%s' has been updated", util.NameFromMeta(c.Service.ObjectMeta))
|
||||
}
|
||||
|
||||
if match, reason := c.sameVolumeWith(newSpec.Spec.Volume); !match {
|
||||
@@ -530,12 +529,11 @@ func (c *Cluster) initHumanUsers() error {
|
||||
teamMembers, err := c.getTeamMembers()
|
||||
if err != nil {
|
||||
return fmt.Errorf("Can't get list of team members: %s", err)
|
||||
} else {
|
||||
for _, username := range teamMembers {
|
||||
flags := []string{constants.RoleFlagLogin, constants.RoleFlagSuperuser}
|
||||
memberOf := []string{c.OpConfig.PamRoleName}
|
||||
c.pgUsers[username] = spec.PgUser{Name: username, Flags: flags, MemberOf: memberOf}
|
||||
}
|
||||
}
|
||||
for _, username := range teamMembers {
|
||||
flags := []string{constants.RoleFlagLogin, constants.RoleFlagSuperuser}
|
||||
memberOf := []string{c.OpConfig.PamRoleName}
|
||||
c.pgUsers[username] = spec.PgUser{Name: username, Flags: flags, MemberOf: memberOf}
|
||||
}
|
||||
|
||||
return nil
|
||||
@@ -547,11 +545,11 @@ func (c *Cluster) initInfrastructureRoles() error {
|
||||
if !isValidUsername(username) {
|
||||
return fmt.Errorf("Invalid username: '%s'", username)
|
||||
}
|
||||
if flags, err := normalizeUserFlags(data.Flags); err != nil {
|
||||
flags, err := normalizeUserFlags(data.Flags)
|
||||
if err != nil {
|
||||
return fmt.Errorf("Invalid flags for user '%s': %s", username, err)
|
||||
} else {
|
||||
data.Flags = flags
|
||||
}
|
||||
data.Flags = flags
|
||||
c.pgUsers[username] = data
|
||||
}
|
||||
return nil
|
||||
|
||||
@@ -52,8 +52,8 @@ func (c *Cluster) resourceRequirements(resources spec.Resources) (*v1.ResourceRe
|
||||
|
||||
config := c.OpConfig
|
||||
|
||||
defaultRequests := spec.ResourceDescription{Cpu: config.DefaultCpuRequest, Memory: config.DefaultMemoryRequest}
|
||||
defaultLimits := spec.ResourceDescription{Cpu: config.DefaultCpuLimit, Memory: config.DefaultMemoryLimit}
|
||||
defaultRequests := spec.ResourceDescription{CPU: config.DefaultCPURequest, Memory: config.DefaultMemoryRequest}
|
||||
defaultLimits := spec.ResourceDescription{CPU: config.DefaultCPULimit, Memory: config.DefaultMemoryLimit}
|
||||
|
||||
result := v1.ResourceRequirements{}
|
||||
|
||||
@@ -74,13 +74,13 @@ func fillResourceList(spec spec.ResourceDescription, defaults spec.ResourceDescr
|
||||
var err error
|
||||
requests := v1.ResourceList{}
|
||||
|
||||
if spec.Cpu != "" {
|
||||
requests[v1.ResourceCPU], err = resource.ParseQuantity(spec.Cpu)
|
||||
if spec.CPU != "" {
|
||||
requests[v1.ResourceCPU], err = resource.ParseQuantity(spec.CPU)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Can't parse CPU quantity: %s", err)
|
||||
}
|
||||
} else {
|
||||
requests[v1.ResourceCPU], err = resource.ParseQuantity(defaults.Cpu)
|
||||
requests[v1.ResourceCPU], err = resource.ParseQuantity(defaults.CPU)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Can't parse default CPU quantity: %s", err)
|
||||
}
|
||||
@@ -432,7 +432,7 @@ func (c *Cluster) genService(allowedSourceRanges []string) *v1.Service {
|
||||
Namespace: c.Metadata.Namespace,
|
||||
Labels: c.labelsSet(),
|
||||
Annotations: map[string]string{
|
||||
constants.ZalandoDnsNameAnnotation: c.dnsName(),
|
||||
constants.ZalandoDNSNameAnnotation: c.dnsName(),
|
||||
constants.ElbTimeoutAnnotationName: constants.ElbTimeoutAnnotationValue,
|
||||
},
|
||||
},
|
||||
|
||||
+2
-2
@@ -33,11 +33,11 @@ func (c *Cluster) pgConnectionString() string {
|
||||
}
|
||||
|
||||
func (c *Cluster) databaseAccessDisabled() bool {
|
||||
if c.OpConfig.EnableDBAccess == false {
|
||||
if !c.OpConfig.EnableDBAccess {
|
||||
c.logger.Debugf("Database access is disabled")
|
||||
}
|
||||
|
||||
return c.OpConfig.EnableDBAccess == false
|
||||
return !c.OpConfig.EnableDBAccess
|
||||
}
|
||||
|
||||
func (c *Cluster) initDbConn() (err error) {
|
||||
|
||||
+3
-4
@@ -170,12 +170,12 @@ func (c *Cluster) recreatePods() error {
|
||||
listOptions := v1.ListOptions{
|
||||
LabelSelector: ls.String(),
|
||||
}
|
||||
|
||||
pods, err := c.KubeClient.Pods(namespace).List(listOptions)
|
||||
if err != nil {
|
||||
return fmt.Errorf("Can't get the list of Pods: %s", err)
|
||||
} else {
|
||||
c.logger.Infof("There are %d Pods in the cluster to recreate", len(pods.Items))
|
||||
}
|
||||
c.logger.Infof("There are %d Pods in the cluster to recreate", len(pods.Items))
|
||||
|
||||
var masterPod v1.Pod
|
||||
for _, pod := range pods.Items {
|
||||
@@ -186,8 +186,7 @@ func (c *Cluster) recreatePods() error {
|
||||
continue
|
||||
}
|
||||
|
||||
err = c.recreatePod(pod)
|
||||
if err != nil {
|
||||
if err := c.recreatePod(pod); err != nil {
|
||||
return fmt.Errorf("Can't recreate replica Pod '%s': %s", util.NameFromMeta(pod.ObjectMeta), err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -185,12 +185,11 @@ func (c *Cluster) replaceStatefulSet(newStatefulSet *v1beta1.StatefulSet) error
|
||||
createdStatefulset, err := c.KubeClient.StatefulSets(newStatefulSet.Namespace).Create(newStatefulSet)
|
||||
if err != nil {
|
||||
return fmt.Errorf("Can't create statefulset '%s': %s", statefulSetName, err)
|
||||
} else {
|
||||
// check that all the previous replicas were picked up.
|
||||
if newStatefulSet.Spec.Replicas == oldStatefulset.Spec.Replicas &&
|
||||
createdStatefulset.Status.Replicas != oldStatefulset.Status.Replicas {
|
||||
c.logger.Warnf("Number of pods for the old and updated Statefulsets is not identical")
|
||||
}
|
||||
}
|
||||
// check that all the previous replicas were picked up.
|
||||
if newStatefulSet.Spec.Replicas == oldStatefulset.Spec.Replicas &&
|
||||
createdStatefulset.Status.Replicas != oldStatefulset.Status.Replicas {
|
||||
c.logger.Warnf("Number of pods for the old and updated Statefulsets is not identical")
|
||||
}
|
||||
|
||||
c.Statefulset = createdStatefulset
|
||||
@@ -296,12 +295,6 @@ func (c *Cluster) createEndpoint() (*v1.Endpoints, error) {
|
||||
return endpoints, nil
|
||||
}
|
||||
|
||||
func (c *Cluster) updateEndpoint(newEndpoint *v1.Endpoints) error {
|
||||
//TODO: to be implemented
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *Cluster) deleteEndpoint() error {
|
||||
c.logger.Debugln("Deleting Endpoint")
|
||||
if c.Endpoint == nil {
|
||||
@@ -371,9 +364,6 @@ func (c *Cluster) createUsers() (err error) {
|
||||
// TODO: figure out what to do with duplicate names (humans and robots) among pgUsers
|
||||
reqs := c.userSyncStrategy.ProduceSyncRequests(nil, c.pgUsers)
|
||||
err = c.userSyncStrategy.ExecuteSyncRequests(reqs, c.pgDb)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
|
||||
+8
-8
@@ -10,7 +10,10 @@ func (c *Cluster) Sync(stopCh <-chan struct{}) error {
|
||||
c.mu.Lock()
|
||||
defer c.mu.Unlock()
|
||||
|
||||
c.loadResources()
|
||||
err := c.loadResources()
|
||||
if err != nil {
|
||||
c.logger.Errorf("Can't load resources: %s", err)
|
||||
}
|
||||
|
||||
if !c.podDispatcherRunning {
|
||||
go c.podEventsDispatcher(stopCh)
|
||||
@@ -59,11 +62,8 @@ func (c *Cluster) syncSecrets() error {
|
||||
}
|
||||
|
||||
err := c.applySecrets()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *Cluster) syncService() error {
|
||||
@@ -80,11 +80,11 @@ func (c *Cluster) syncService() error {
|
||||
}
|
||||
|
||||
desiredSvc := c.genService(cSpec.AllowedSourceRanges)
|
||||
if match, reason := c.sameServiceWith(desiredSvc); match {
|
||||
match, reason := c.sameServiceWith(desiredSvc)
|
||||
if match {
|
||||
return nil
|
||||
} else {
|
||||
c.logServiceChanges(c.Service, desiredSvc, false, reason)
|
||||
}
|
||||
c.logServiceChanges(c.Service, desiredSvc, false, reason)
|
||||
|
||||
if err := c.updateService(desiredSvc); err != nil {
|
||||
return fmt.Errorf("Can't update Service to match desired state: %s", err)
|
||||
|
||||
+7
-33
@@ -1,12 +1,10 @@
|
||||
package cluster
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
etcdclient "github.com/coreos/etcd/client"
|
||||
"k8s.io/apimachinery/pkg/util/json"
|
||||
"k8s.io/client-go/pkg/api/v1"
|
||||
"k8s.io/client-go/pkg/apis/apps/v1beta1"
|
||||
@@ -30,11 +28,10 @@ func normalizeUserFlags(userFlags []string) (flags []string, err error) {
|
||||
if !alphaNumericRegexp.MatchString(flag) {
|
||||
err = fmt.Errorf("User flag '%s' is not alphanumeric", flag)
|
||||
return
|
||||
} else {
|
||||
flag = strings.ToUpper(flag)
|
||||
if _, ok := uniqueFlags[flag]; !ok {
|
||||
uniqueFlags[flag] = true
|
||||
}
|
||||
}
|
||||
flag = strings.ToUpper(flag)
|
||||
if _, ok := uniqueFlags[flag]; !ok {
|
||||
uniqueFlags[flag] = true
|
||||
}
|
||||
}
|
||||
if uniqueFlags[constants.RoleFlagLogin] && uniqueFlags[constants.RoleFlagNoLogin] {
|
||||
@@ -109,10 +106,10 @@ func (c *Cluster) logVolumeChanges(old, new spec.Volume, reason string) {
|
||||
}
|
||||
|
||||
func (c *Cluster) getTeamMembers() ([]string, error) {
|
||||
if c.Spec.TeamId == "" {
|
||||
if c.Spec.TeamID == "" {
|
||||
return nil, fmt.Errorf("No teamId specified")
|
||||
}
|
||||
teamInfo, err := c.TeamsAPIClient.TeamInfo(c.Spec.TeamId)
|
||||
teamInfo, err := c.TeamsAPIClient.TeamInfo(c.Spec.TeamID)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Can't get team info: %s", err)
|
||||
}
|
||||
@@ -216,11 +213,7 @@ func (c *Cluster) waitPodLabelsReady() error {
|
||||
|
||||
//TODO: wait for master for a while and then set masterLess flag
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *Cluster) waitStatefulsetPodsReady() error {
|
||||
@@ -259,25 +252,6 @@ func (c *Cluster) credentialSecretName(username string) string {
|
||||
c.Metadata.Name)
|
||||
}
|
||||
|
||||
func (c *Cluster) deleteEtcdKey() error {
|
||||
etcdKey := fmt.Sprintf("/%s/%s", c.OpConfig.EtcdScope, c.Metadata.Name)
|
||||
|
||||
//TODO: retry multiple times
|
||||
resp, err := c.EtcdClient.Delete(context.Background(),
|
||||
etcdKey,
|
||||
&etcdclient.DeleteOptions{Recursive: true})
|
||||
|
||||
if err != nil {
|
||||
return fmt.Errorf("Can't delete etcd key: %s", err)
|
||||
}
|
||||
|
||||
if resp == nil {
|
||||
return fmt.Errorf("No response from etcd cluster")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *Cluster) podSpiloRole(pod *v1.Pod) string {
|
||||
return pod.Labels[c.OpConfig.PodRoleLabel]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user