MCPcopy
hub / github.com/cubefs/cubefs / TestAddDataReplica

Function TestAddDataReplica

master/api_service_test.go:991–1019  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

989}
990
991func TestAddDataReplica(t *testing.T) {
992 partition := commonVol.dataPartitions.partitions[0]
993 dsAddr := mds7Addr
994 func() {
995 mockServerLock.Lock()
996 defer mockServerLock.Unlock()
997 mockDataServers = append(mockDataServers, addDataServer(dsAddr, "zone2", defaultMediaType))
998 }()
999 reqURL := fmt.Sprintf("%v%v?id=%v&addr=%v&force=true", hostAddr, proto.AdminAddDataReplica, partition.PartitionID, dsAddr)
1000 process(reqURL, t)
1001 partition.RLock()
1002 if !contains(partition.Hosts, dsAddr) {
1003 t.Errorf("hosts[%v] should contains dsAddr[%v]", partition.Hosts, dsAddr)
1004 partition.RUnlock()
1005 return
1006 }
1007 partition.RUnlock()
1008 server.cluster.BadDataPartitionIds.Range(
1009 func(key, value interface{}) bool {
1010 addr, ok := key.(string)
1011 if !ok {
1012 return true
1013 }
1014 if strings.HasPrefix(addr, dsAddr) {
1015 server.cluster.BadDataPartitionIds.Delete(key)
1016 }
1017 return true
1018 })
1019}
1020
1021func TestRemoveDataReplica(t *testing.T) {
1022 partition := commonVol.dataPartitions.partitions[0]

Callers

nothing calls this directly

Calls 10

addDataServerFunction · 0.85
LockMethod · 0.80
RLockMethod · 0.80
RUnlockMethod · 0.80
processFunction · 0.70
containsFunction · 0.70
ErrorfMethod · 0.65
DeleteMethod · 0.65
UnlockMethod · 0.45
RangeMethod · 0.45

Tested by

no test coverage detected