// Do a Put in the first and Get from the second, // which should raise block not found error. func testNoCrosstalk(c *C, testData string, kc1, kc2 *keepclient.KeepClient) { // Put a block using kc1 locator, _, err := kc1.PutB([]byte(testData)) c.Assert(err, Equals, nil) locator = strings.Split(locator, "+")[0] _, _, _, err = kc2.Get(keepclient.SignLocator(locator, kc2.Arvados.ApiToken, time.Now().AddDate(0, 0, 1), blobSignatureTTL, []byte(blobSigningKey))) c.Assert(err, NotNil) c.Check(err.Error(), Equals, "Block not found") }
func doWrites(kc *keepclient.KeepClient, nextBuf chan []byte, nextLocator chan string) { for buf := range nextBuf { locator, _, err := kc.PutB(buf) if err != nil { log.Print(err) errorsChan <- struct{}{} continue } bytesOutChan <- uint64(len(buf)) for cap(nextLocator) > len(nextLocator)+*WriteThreads { // Give the readers something to do, unless // they have lots queued up already. nextLocator <- locator } } }