|
- package strategy
-
- import (
- "errors"
- )
-
- type ReplicationStrategy struct {
- replicas int32
- clusterIds []string
- }
-
- func NewReplicationStrategy(clusterIds []string, replicas int32) *ReplicationStrategy {
- return &ReplicationStrategy{clusterIds: clusterIds,
- replicas: replicas,
- }
- }
-
- func (r *ReplicationStrategy) Schedule() ([]*AssignedCluster, error) {
- if r.replicas < 1 {
- return nil, errors.New("replicas must be greater than 0")
- }
-
- if len(r.clusterIds) == 0 {
- return nil, errors.New("clusterIds must be set")
- }
-
- var results []*AssignedCluster
- for _, c := range r.clusterIds {
- cluster := &AssignedCluster{ClusterId: c, Replicas: r.replicas}
- results = append(results, cluster)
- }
- return results, nil
- }
|