MCPcopy Create free account
hub / github.com/apache/kvrocks-controller / MigrateSlot

Method MigrateSlot

server/api/cluster.go:129–162  ·  view source on GitHub ↗
(c *gin.Context)

Source from the content-addressed store, hash-verified

127}
128
129func (handler *ClusterHandler) MigrateSlot(c *gin.Context) {
130 namespace := c.Param("namespace")
131 clusterName := c.Param("cluster")
132
133 lock := handler.getLock(namespace, clusterName)
134 lock.Lock()
135 defer lock.Unlock()
136
137 s, _ := c.MustGet(consts.ContextKeyStore).(*store.ClusterStore)
138 cluster, err := s.GetCluster(c, namespace, clusterName)
139 if err != nil {
140 helper.ResponseError(c, err)
141 return
142 }
143
144 var req MigrateSlotRequest
145 if err := c.BindJSON(&req); err != nil {
146 helper.ResponseBadRequest(c, err)
147 return
148 }
149
150 err = cluster.MigrateSlot(c, req.Slot, req.Target, req.SlotOnly)
151 if err != nil {
152 helper.ResponseError(c, err)
153 return
154 }
155
156 err = handler.s.UpdateCluster(c, namespace, cluster)
157 if err != nil {
158 helper.ResponseError(c, err)
159 return
160 }
161 helper.ResponseOK(c, gin.H{"cluster": cluster})
162}
163
164func (handler *ClusterHandler) Import(c *gin.Context) {
165 namespace := c.Param("namespace")

Callers 2

TestClusterBasicsFunction · 0.95
TestClusterMigrateDataFunction · 0.95

Calls 7

getLockMethod · 0.95
ResponseErrorFunction · 0.92
ResponseBadRequestFunction · 0.92
ResponseOKFunction · 0.92
GetClusterMethod · 0.65
MigrateSlotMethod · 0.65
UpdateClusterMethod · 0.65

Tested by 2

TestClusterBasicsFunction · 0.76
TestClusterMigrateDataFunction · 0.76