fix golint fail #415
This commit is contained in:
parent
f25351c36a
commit
27114701ba
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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")
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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{}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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"`
|
||||||
|
|
|
||||||
|
|
@ -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}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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 &&
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue