X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/818e9974a935703de29239f97b225ba7505537f8..24f140f9ed1a2180541c0c7cebf7572c5155fe27:/services/keep-balance/balance_run_test.go diff --git a/services/keep-balance/balance_run_test.go b/services/keep-balance/balance_run_test.go index 4e2c6803ca..0d1b6b5912 100644 --- a/services/keep-balance/balance_run_test.go +++ b/services/keep-balance/balance_run_test.go @@ -397,6 +397,32 @@ func (s *runSuite) TestRefuseNonAdmin(c *check.C) { c.Check(pullReqs.Count(), check.Equals, 0) } +func (s *runSuite) TestRefuseSameDeviceDifferentVolumes(c *check.C) { + opts := RunOptions{ + CommitPulls: true, + CommitTrash: true, + Logger: ctxlog.TestLogger(c), + } + s.stub.serveCurrentUserAdmin() + s.stub.serveZeroCollections() + s.stub.serveKeepServices(stubServices) + s.stub.mux.HandleFunc("/mounts", func(w http.ResponseWriter, r *http.Request) { + hostid := r.Host[:5] // "keep0.zzzzz.arvadosapi.com:25107" => "keep0" + json.NewEncoder(w).Encode([]arvados.KeepMount{{ + UUID: "zzzzz-ivpuk-0000000000" + hostid, + DeviceID: "keep0-vol0", + StorageClasses: map[string]bool{"default": true}, + }}) + }) + trashReqs := s.stub.serveKeepstoreTrash() + pullReqs := s.stub.serveKeepstorePull() + srv := s.newServer(&opts) + _, err := srv.runOnce() + c.Check(err, check.ErrorMatches, "cannot continue with config errors.*") + c.Check(trashReqs.Count(), check.Equals, 0) + c.Check(pullReqs.Count(), check.Equals, 0) +} + func (s *runSuite) TestWriteLostBlocks(c *check.C) { lostf, err := ioutil.TempFile("", "keep-balance-lost-blocks-test-") c.Assert(err, check.IsNil)