fix golint fail #415

This commit is contained in:
u5surf 2018-11-15 00:58:13 +09:00
parent f25351c36a
commit 27114701ba
19 changed files with 55 additions and 18 deletions

View File

@ -47,14 +47,14 @@ func init() {
log.Printf("Fully qualified configmap name: %v", config.ConfigMapName) log.Printf("Fully qualified configmap name: %v", config.ConfigMapName)
} }
if crd_interval := os.Getenv("CRD_READY_WAIT_INTERVAL"); crd_interval != "" { if crdInterval := os.Getenv("CRD_READY_WAIT_INTERVAL"); crdInterval != "" {
config.CRDReadyWaitInterval = mustParseDuration(crd_interval) config.CRDReadyWaitInterval = mustParseDuration(crdInterval)
} else { } else {
config.CRDReadyWaitInterval = 4 * time.Second config.CRDReadyWaitInterval = 4 * time.Second
} }
if crd_timeout := os.Getenv("CRD_READY_WAIT_TIMEOUT"); crd_timeout != "" { if crdTimeout := os.Getenv("CRD_READY_WAIT_TIMEOUT"); crdTimeout != "" {
config.CRDReadyWaitTimeout = mustParseDuration(crd_timeout) config.CRDReadyWaitTimeout = mustParseDuration(crdTimeout)
} else { } else {
config.CRDReadyWaitTimeout = 30 * time.Second config.CRDReadyWaitTimeout = 30 * time.Second
} }

View File

@ -1,5 +1,6 @@
package v1 package v1
//Cluster name, cluster status and service name setting
const ( const (
serviceNameMaxLength = 63 serviceNameMaxLength = 63
clusterNameMaxLength = serviceNameMaxLength - len("-repl") clusterNameMaxLength = serviceNameMaxLength - len("-repl")

View File

@ -6,6 +6,7 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
) )
// CRDResource
const ( const (
PostgresCRDResourceKind = "postgresql" PostgresCRDResourceKind = "postgresql"
PostgresCRDResourcePlural = "postgresqls" PostgresCRDResourcePlural = "postgresqls"
@ -39,6 +40,7 @@ func buildCRD(name, kind, plural, short string) *apiextv1beta1.CustomResourceDef
} }
} }
// PostgresCRD returns CustomResourceDefinition built from PostgresCRDResource
func PostgresCRD() *apiextv1beta1.CustomResourceDefinition { func PostgresCRD() *apiextv1beta1.CustomResourceDefinition {
return buildCRD(PostgresCRDResouceName, return buildCRD(PostgresCRDResouceName,
PostgresCRDResourceKind, PostgresCRDResourceKind,
@ -46,6 +48,7 @@ func PostgresCRD() *apiextv1beta1.CustomResourceDefinition {
PostgresCRDResourceShort) PostgresCRDResourceShort)
} }
// ConfigurationCRD returns CustomResourceDefinition built from OperatorConfigCRDResource
func ConfigurationCRD() *apiextv1beta1.CustomResourceDefinition { func ConfigurationCRD() *apiextv1beta1.CustomResourceDefinition {
return buildCRD(OperatorConfigCRDResourceName, return buildCRD(OperatorConfigCRDResourceName,
OperatorConfigCRDResouceKind, OperatorConfigCRDResouceKind,

View File

@ -1,6 +1,6 @@
// Package v1 is the v1 version of the API.
// +k8s:deepcopy-gen=package,register // +k8s:deepcopy-gen=package,register
// Package v1 is the v1 version of the API.
// +groupName=acid.zalan.do // +groupName=acid.zalan.do
package v1 package v1

View File

@ -104,6 +104,7 @@ func (p *Postgresql) UnmarshalJSON(data []byte) error {
return nil return nil
} }
// UnmarshalJSON convert to Duration from byte slice of json
func (d *Duration) UnmarshalJSON(b []byte) error { func (d *Duration) UnmarshalJSON(b []byte) error {
var ( var (
v interface{} v interface{}

View File

@ -13,6 +13,8 @@ import (
// +genclient:onlyVerbs=get // +genclient:onlyVerbs=get
// +genclient:noStatus // +genclient:noStatus
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// OperatorConfiguration defines the specification for the OperatorConfigration.
type OperatorConfiguration struct { type OperatorConfiguration struct {
metav1.TypeMeta `json:",inline"` metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata"` metav1.ObjectMeta `json:"metadata"`
@ -21,6 +23,8 @@ type OperatorConfiguration struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// OperatorConfigurationList defines the list of the OperatorConfigration.
type OperatorConfigurationList struct { type OperatorConfigurationList struct {
metav1.TypeMeta `json:",inline"` metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"` metav1.ListMeta `json:"metadata"`
@ -28,11 +32,13 @@ type OperatorConfigurationList struct {
Items []OperatorConfiguration `json:"items"` Items []OperatorConfiguration `json:"items"`
} }
// PostgresUsersConfiguration defines the user of the Postgres.
type PostgresUsersConfiguration struct { type PostgresUsersConfiguration struct {
SuperUsername string `json:"super_username,omitempty"` SuperUsername string `json:"super_username,omitempty"`
ReplicationUsername string `json:"replication_username,omitempty"` ReplicationUsername string `json:"replication_username,omitempty"`
} }
// KubernetesMetaConfiguration defines the pod service account info
type KubernetesMetaConfiguration struct { type KubernetesMetaConfiguration struct {
PodServiceAccountName string `json:"pod_service_account_name,omitempty"` PodServiceAccountName string `json:"pod_service_account_name,omitempty"`
// TODO: change it to the proper json // TODO: change it to the proper json
@ -55,6 +61,7 @@ type KubernetesMetaConfiguration struct {
PodPriorityClassName string `json:"pod_priority_class_name,omitempty"` PodPriorityClassName string `json:"pod_priority_class_name,omitempty"`
} }
// PostgresPodResourcesDefaults defines the spec of default resources
type PostgresPodResourcesDefaults struct { type PostgresPodResourcesDefaults struct {
DefaultCPURequest string `json:"default_cpu_request,omitempty"` DefaultCPURequest string `json:"default_cpu_request,omitempty"`
DefaultMemoryRequest string `json:"default_memory_request,omitempty"` DefaultMemoryRequest string `json:"default_memory_request,omitempty"`
@ -62,6 +69,7 @@ type PostgresPodResourcesDefaults struct {
DefaultMemoryLimit string `json:"default_memory_limit,omitempty"` DefaultMemoryLimit string `json:"default_memory_limit,omitempty"`
} }
// OperatorTimeouts defines the timeout of ResourceCheck, PodWait, ReadyWait
type OperatorTimeouts struct { type OperatorTimeouts struct {
ResourceCheckInterval Duration `json:"resource_check_interval,omitempty"` ResourceCheckInterval Duration `json:"resource_check_interval,omitempty"`
ResourceCheckTimeout Duration `json:"resource_check_timeout,omitempty"` ResourceCheckTimeout Duration `json:"resource_check_timeout,omitempty"`
@ -71,6 +79,7 @@ type OperatorTimeouts struct {
ReadyWaitTimeout Duration `json:"ready_wait_timeout,omitempty"` ReadyWaitTimeout Duration `json:"ready_wait_timeout,omitempty"`
} }
// LoadBalancerConfiguration defines the LB DNS configration
type LoadBalancerConfiguration struct { type LoadBalancerConfiguration struct {
DbHostedZone string `json:"db_hosted_zone,omitempty"` DbHostedZone string `json:"db_hosted_zone,omitempty"`
EnableMasterLoadBalancer bool `json:"enable_master_load_balancer,omitempty"` EnableMasterLoadBalancer bool `json:"enable_master_load_balancer,omitempty"`
@ -79,6 +88,7 @@ type LoadBalancerConfiguration struct {
ReplicaDNSNameFormat config.StringTemplate `json:"replica_dns_name_format,omitempty"` ReplicaDNSNameFormat config.StringTemplate `json:"replica_dns_name_format,omitempty"`
} }
//AWSGCPConfiguration defines the configration of AWS s3
type AWSGCPConfiguration struct { type AWSGCPConfiguration struct {
WALES3Bucket string `json:"wal_s3_bucket,omitempty"` WALES3Bucket string `json:"wal_s3_bucket,omitempty"`
AWSRegion string `json:"aws_region,omitempty"` AWSRegion string `json:"aws_region,omitempty"`
@ -86,11 +96,13 @@ type AWSGCPConfiguration struct {
KubeIAMRole string `json:"kube_iam_role,omitempty"` KubeIAMRole string `json:"kube_iam_role,omitempty"`
} }
// OperatorDebugConfiguration defines the configration of debug
type OperatorDebugConfiguration struct { type OperatorDebugConfiguration struct {
DebugLogging bool `json:"debug_logging,omitempty"` DebugLogging bool `json:"debug_logging,omitempty"`
EnableDBAccess bool `json:"enable_database_access,omitempty"` EnableDBAccess bool `json:"enable_database_access,omitempty"`
} }
// TeamsAPIConfiguration defines the configration of TeamsAPI
type TeamsAPIConfiguration struct { type TeamsAPIConfiguration struct {
EnableTeamsAPI bool `json:"enable_teams_api,omitempty"` EnableTeamsAPI bool `json:"enable_teams_api,omitempty"`
TeamsAPIUrl string `json:"teams_api_url,omitempty"` TeamsAPIUrl string `json:"teams_api_url,omitempty"`
@ -103,12 +115,14 @@ type TeamsAPIConfiguration struct {
PostgresSuperuserTeams []string `json:"postgres_superuser_teams,omitempty"` PostgresSuperuserTeams []string `json:"postgres_superuser_teams,omitempty"`
} }
// LoggingRESTAPIConfiguration defines Logging API conf
type LoggingRESTAPIConfiguration struct { type LoggingRESTAPIConfiguration struct {
APIPort int `json:"api_port,omitempty"` APIPort int `json:"api_port,omitempty"`
RingLogLines int `json:"ring_log_lines,omitempty"` RingLogLines int `json:"ring_log_lines,omitempty"`
ClusterHistoryEntries int `json:"cluster_history_entries,omitempty"` ClusterHistoryEntries int `json:"cluster_history_entries,omitempty"`
} }
// ScalyrConfiguration defines the configration of ScalyrAPI
type ScalyrConfiguration struct { type ScalyrConfiguration struct {
ScalyrAPIKey string `json:"scalyr_api_key,omitempty"` ScalyrAPIKey string `json:"scalyr_api_key,omitempty"`
ScalyrImage string `json:"scalyr_image,omitempty"` ScalyrImage string `json:"scalyr_image,omitempty"`
@ -119,6 +133,7 @@ type ScalyrConfiguration struct {
ScalyrMemoryLimit string `json:"scalyr_memory_limit,omitempty"` ScalyrMemoryLimit string `json:"scalyr_memory_limit,omitempty"`
} }
// OperatorConfigurationData defines the operation config
type OperatorConfigurationData struct { type OperatorConfigurationData struct {
EtcdHost string `json:"etcd_host,omitempty"` EtcdHost string `json:"etcd_host,omitempty"`
DockerImage string `json:"docker_image,omitempty"` DockerImage string `json:"docker_image,omitempty"`
@ -140,6 +155,7 @@ type OperatorConfigurationData struct {
Scalyr ScalyrConfiguration `json:"scalyr"` Scalyr ScalyrConfiguration `json:"scalyr"`
} }
// OperatorConfigurationUsers defines configration for super user
type OperatorConfigurationUsers struct { type OperatorConfigurationUsers struct {
SuperUserName string `json:"superuser_name,omitempty"` SuperUserName string `json:"superuser_name,omitempty"`
Replication string `json:"replication_user_name,omitempty"` Replication string `json:"replication_user_name,omitempty"`
@ -147,4 +163,5 @@ type OperatorConfigurationUsers struct {
TeamAPIRoleConfiguration map[string]string `json:"team_api_role_configuration,omitempty"` TeamAPIRoleConfiguration map[string]string `json:"team_api_role_configuration,omitempty"`
} }
//Duration is time.Duration
type Duration time.Duration type Duration time.Duration

View File

@ -9,7 +9,8 @@ import (
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
//Postgresql defines PostgreSQL Custom Resource Definition Object.
// Postgresql defines PostgreSQL Custom Resource Definition Object.
type Postgresql struct { type Postgresql struct {
metav1.TypeMeta `json:",inline"` metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"` metav1.ObjectMeta `json:"metadata,omitempty"`
@ -54,6 +55,7 @@ type PostgresSpec struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// PostgresqlList defines a list of PostgreSQL clusters. // PostgresqlList defines a list of PostgreSQL clusters.
type PostgresqlList struct { type PostgresqlList struct {
metav1.TypeMeta `json:",inline"` metav1.TypeMeta `json:",inline"`

View File

@ -8,15 +8,20 @@ import (
"github.com/zalando-incubator/postgres-operator/pkg/apis/acid.zalan.do" "github.com/zalando-incubator/postgres-operator/pkg/apis/acid.zalan.do"
) )
// APIVersion refered API version
const ( const (
APIVersion = "v1" APIVersion = "v1"
) )
var ( var (
// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.
// SchemeBuilder is runtime.SchemeBuilder
SchemeBuilder runtime.SchemeBuilder SchemeBuilder runtime.SchemeBuilder
localSchemeBuilder = &SchemeBuilder localSchemeBuilder = &SchemeBuilder
//AddToScheme is localSchemeBuilder.AddToScheme
AddToScheme = localSchemeBuilder.AddToScheme AddToScheme = localSchemeBuilder.AddToScheme
//SchemeGroupVersion has GroupName and APIVersion
SchemeGroupVersion = schema.GroupVersion{Group: acidzalando.GroupName, Version: APIVersion} SchemeGroupVersion = schema.GroupVersion{Group: acidzalando.GroupName, Version: APIVersion}
) )

View File

@ -14,6 +14,7 @@ var (
serviceNameRegex = regexp.MustCompile(serviceNameRegexString) serviceNameRegex = regexp.MustCompile(serviceNameRegexString)
) )
// Clone returns Postgresql.DeepCopy
func (p *Postgresql) Clone() *Postgresql { func (p *Postgresql) Clone() *Postgresql {
if p == nil { if p == nil {
return nil return nil
@ -83,6 +84,7 @@ func validateCloneClusterDescription(clone *CloneDescription) error {
return nil return nil
} }
// Success returns status ClusterFailed or not
func (status PostgresStatus) Success() bool { func (status PostgresStatus) Success() bool {
return status != ClusterStatusAddFailed && return status != ClusterStatusAddFailed &&
status != ClusterStatusUpdateFailed && status != ClusterStatusUpdateFailed &&

View File

@ -31,7 +31,7 @@ type controllerInformer interface {
GetOperatorConfig() *config.Config GetOperatorConfig() *config.Config
GetStatus() *spec.ControllerStatus GetStatus() *spec.ControllerStatus
TeamClusterList() map[string][]spec.NamespacedName TeamClusterList() map[string][]spec.NamespacedName
ClusterStatus(team, namespace, cluster string) (*cluster.ClusterStatus, error) ClusterStatus(team, namespace, cluster string) (*cluster.Status, error)
ClusterLogs(team, namespace, cluster string) ([]*spec.LogEntry, error) ClusterLogs(team, namespace, cluster string) ([]*spec.LogEntry, error)
ClusterHistory(team, namespace, cluster string) ([]*spec.Diff, error) ClusterHistory(team, namespace, cluster string) ([]*spec.Diff, error)
ClusterDatabasesMap() map[string][]string ClusterDatabasesMap() map[string][]string

View File

@ -849,8 +849,8 @@ func (c *Cluster) GetCurrentProcess() Process {
} }
// GetStatus provides status of the cluster // GetStatus provides status of the cluster
func (c *Cluster) GetStatus() *ClusterStatus { func (c *Cluster) GetStatus() *Status {
return &ClusterStatus{ return &Status{
Cluster: c.Spec.ClusterName, Cluster: c.Spec.ClusterName,
Team: c.Spec.TeamID, Team: c.Spec.TeamID,
Status: c.Status, Status: c.Status,

View File

@ -77,11 +77,7 @@ func (c *Cluster) deletePod(podName spec.NamespacedName) error {
return err return err
} }
if err := c.waitForPodDeletion(ch); err != nil { return c.waitForPodDeletion(ch)
return err
}
return nil
} }
func (c *Cluster) unregisterPodSubscriber(podName spec.NamespacedName) { func (c *Cluster) unregisterPodSubscriber(podName spec.NamespacedName) {

View File

@ -20,6 +20,7 @@ const (
Replica PostgresRole = "replica" Replica PostgresRole = "replica"
) )
// PodEventType describe value of event type
type PodEventType string type PodEventType string
// Possible values for the EventType // Possible values for the EventType
@ -50,8 +51,8 @@ type WorkerStatus struct {
CurrentProcess Process CurrentProcess Process
} }
// ClusterStatus describes status of the cluster // Status describes status of the cluster
type ClusterStatus struct { type Status struct {
Team string Team string
Cluster string Cluster string
MasterService *v1.Service MasterService *v1.Service

View File

@ -460,6 +460,7 @@ func (c *Cluster) setSpec(newSpec *acidv1.Postgresql) {
c.specMu.Unlock() c.specMu.Unlock()
} }
// GetSpec returns cluster.Postgresql
func (c *Cluster) GetSpec() (*acidv1.Postgresql, error) { func (c *Cluster) GetSpec() (*acidv1.Postgresql, error) {
c.specMu.RLock() c.specMu.RLock()
defer c.specMu.RUnlock() defer c.specMu.RUnlock()

View File

@ -15,7 +15,7 @@ import (
) )
// ClusterStatus provides status of the cluster // ClusterStatus provides status of the cluster
func (c *Controller) ClusterStatus(team, namespace, cluster string) (*cluster.ClusterStatus, error) { func (c *Controller) ClusterStatus(team, namespace, cluster string) (*cluster.Status, error) {
clusterName := spec.NamespacedName{ clusterName := spec.NamespacedName{
Namespace: namespace, Namespace: namespace,

View File

@ -125,6 +125,7 @@ func (n *NamespacedName) Decode(value string) error {
return n.DecodeWorker(value, GetOperatorNamespace()) return n.DecodeWorker(value, GetOperatorNamespace())
} }
// UnmarshalJSON covert to NamespacedName from byte slice
func (n *NamespacedName) UnmarshalJSON(data []byte) error { func (n *NamespacedName) UnmarshalJSON(data []byte) error {
result := NamespacedName{} result := NamespacedName{}
var tmp string var tmp string

View File

@ -19,6 +19,7 @@ type fieldInfo struct {
Field reflect.Value Field reflect.Value
} }
// StringTemplate is string
type StringTemplate string type StringTemplate string
func decoderFrom(field reflect.Value) (d decoder) { func decoderFrom(field reflect.Value) (d decoder) {
@ -221,12 +222,14 @@ func getMapPairsFromString(value string) (pairs []string, err error) {
return return
} }
// Decode cast value to StringTemplate
func (f *StringTemplate) Decode(value string) error { func (f *StringTemplate) Decode(value string) error {
*f = StringTemplate(value) *f = StringTemplate(value)
return nil return nil
} }
// Format formatted string from StringTemplate
func (f *StringTemplate) Format(a ...string) string { func (f *StringTemplate) Format(a ...string) string {
res := string(*f) res := string(*f)
@ -237,6 +240,7 @@ func (f *StringTemplate) Format(a ...string) string {
return res return res
} }
// MarshalJSON returns json.Marshal(byte slice) from StringTemplate
func (f StringTemplate) MarshalJSON() ([]byte, error) { func (f StringTemplate) MarshalJSON() ([]byte, error) {
return json.Marshal(string(f)) return json.Marshal(string(f))
} }

View File

@ -17,8 +17,10 @@ type Ticker struct {
ticker *time.Ticker ticker *time.Ticker
} }
// Stop returns ticker.Stop
func (t *Ticker) Stop() { t.ticker.Stop() } func (t *Ticker) Stop() { t.ticker.Stop() }
// Tick returns ticker.C
func (t *Ticker) Tick() { <-t.ticker.C } func (t *Ticker) Tick() { <-t.ticker.C }
// Retry is a wrapper around RetryWorker that provides a real RetryTicker // Retry is a wrapper around RetryWorker that provides a real RetryTicker

View File

@ -43,6 +43,7 @@ type httpClient interface {
Do(req *http.Request) (*http.Response, error) Do(req *http.Request) (*http.Response, error)
} }
// Interface have to implement TeamInfo
type Interface interface { type Interface interface {
TeamInfo(teamID, token string) (tm *Team, err error) TeamInfo(teamID, token string) (tm *Team, err error)
} }