introduce Cluster interface

This commit is contained in:
Murat Kabilov
2017-07-13 15:26:22 +02:00
parent 4ec4c71d27
commit 333dfdd640
5 changed files with 48 additions and 23 deletions
+23 -1
View File
@@ -1,9 +1,9 @@
package spec
import (
"database/sql"
"fmt"
"strings"
"database/sql"
"k8s.io/client-go/pkg/api/v1"
"k8s.io/client-go/pkg/types"
@@ -73,6 +73,28 @@ type UserSyncer interface {
ExecuteSyncRequests(req []PgSyncUserRequest, db *sql.DB) error
}
type ClusterEventHandler interface {
Create() error
Update(*Postgresql) error
Delete() error
Sync() error
}
type ClusterCommandExecutor interface {
ExecCommand(*NamespacedName, ...string) (string, error)
}
type ClusterController interface {
Run(<-chan struct{})
ReceivePodEvent(PodEvent)
}
type Cluster interface {
ClusterEventHandler
ClusterCommandExecutor
ClusterController
}
func (n NamespacedName) String() string {
return types.NamespacedName(n).String()
}