MCPcopy
hub / github.com/grafana/dskit / changePartitionState

Function changePartitionState

ring/partition_ring_editor.go:61–76  ·  view source on GitHub ↗
(ring *PartitionRingDesc, partitionID int32, toState PartitionState)

Source from the content-addressed store, hash-verified

59}
60
61func changePartitionState(ring *PartitionRingDesc, partitionID int32, toState PartitionState) (changed bool, _ error) {
62 partition, exists := ring.Partitions[partitionID]
63 if !exists {
64 return false, ErrPartitionDoesNotExist
65 }
66
67 if partition.State == toState {
68 return false, nil
69 }
70
71 if !isPartitionStateChangeAllowed(partition.State, toState) {
72 return false, errors.Wrapf(ErrPartitionStateChangeNotAllowed, "change partition state from %s to %s", partition.State.CleanName(), toState.CleanName())
73 }
74
75 return ring.UpdatePartitionState(partitionID, toState, time.Now())
76}
77
78func SetPartitionStateChangeLock(ring *PartitionRingDesc, partitionID int32, locked bool) (changed bool, _ error) {
79 partition, exists := ring.Partitions[partitionID]

Callers 2

ChangePartitionStateMethod · 0.85
ChangePartitionStateMethod · 0.85

Calls 3

CleanNameMethod · 0.80
UpdatePartitionStateMethod · 0.80

Tested by

no test coverage detected