X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/5b863886118890cc81b728a3a606ea823c836f2b..ecf1cbf6b843ec566890b4bf944fb893ca9481de:/lib/dispatchcloud/worker/pool_test.go diff --git a/lib/dispatchcloud/worker/pool_test.go b/lib/dispatchcloud/worker/pool_test.go index fc33a7ab23..1948c1e874 100644 --- a/lib/dispatchcloud/worker/pool_test.go +++ b/lib/dispatchcloud/worker/pool_test.go @@ -9,10 +9,10 @@ import ( "strings" "time" - "git.curoverse.com/arvados.git/lib/cloud" - "git.curoverse.com/arvados.git/lib/dispatchcloud/test" - "git.curoverse.com/arvados.git/sdk/go/arvados" - "git.curoverse.com/arvados.git/sdk/go/ctxlog" + "git.arvados.org/arvados.git/lib/cloud" + "git.arvados.org/arvados.git/lib/dispatchcloud/test" + "git.arvados.org/arvados.git/sdk/go/arvados" + "git.arvados.org/arvados.git/sdk/go/ctxlog" "github.com/prometheus/client_golang/prometheus" check "gopkg.in/check.v1" ) @@ -65,24 +65,28 @@ func (suite *PoolSuite) TestResumeAfterRestart(c *check.C) { logger := ctxlog.TestLogger(c) driver := &test.StubDriver{} - is, err := driver.InstanceSet(nil, "", logger) + instanceSetID := cloud.InstanceSetID("test-instance-set-id") + is, err := driver.InstanceSet(nil, instanceSetID, nil, logger) c.Assert(err, check.IsNil) newExecutor := func(cloud.Instance) Executor { - return stubExecutor{ - "crunch-run --list": stubResp{}, - "true": stubResp{}, + return &stubExecutor{ + response: map[string]stubResp{ + "crunch-run --list": stubResp{}, + "true": stubResp{}, + }, } } cluster := &arvados.Cluster{ - Dispatch: arvados.Dispatch{ - MaxProbesPerSecond: 1000, - ProbeInterval: arvados.Duration(time.Millisecond * 10), - }, - CloudVMs: arvados.CloudVMs{ - BootProbeCommand: "true", - SyncInterval: arvados.Duration(time.Millisecond * 10), + Containers: arvados.ContainersConfig{ + CloudVMs: arvados.CloudVMsConfig{ + BootProbeCommand: "true", + MaxProbesPerSecond: 1000, + ProbeInterval: arvados.Duration(time.Millisecond * 10), + SyncInterval: arvados.Duration(time.Millisecond * 10), + TagKeyPrefix: "testprefix:", + }, }, InstanceTypes: arvados.InstanceTypeMap{ type1.Name: type1, @@ -91,7 +95,7 @@ func (suite *PoolSuite) TestResumeAfterRestart(c *check.C) { }, } - pool := NewPool(logger, arvados.NewClientFromEnv(), prometheus.NewRegistry(), is, newExecutor, nil, cluster) + pool := NewPool(logger, arvados.NewClientFromEnv(), prometheus.NewRegistry(), instanceSetID, is, newExecutor, nil, cluster) notify := pool.Subscribe() defer pool.Unsubscribe(notify) pool.Create(type1) @@ -106,13 +110,14 @@ func (suite *PoolSuite) TestResumeAfterRestart(c *check.C) { } } // Wait for the tags to save to the cloud provider + tagKey := cluster.Containers.CloudVMs.TagKeyPrefix + tagKeyIdleBehavior deadline := time.Now().Add(time.Second) for !func() bool { pool.mtx.RLock() defer pool.mtx.RUnlock() for _, wkr := range pool.workers { if wkr.instType == type2 { - return wkr.instance.Tags()[tagKeyIdleBehavior] == string(IdleBehaviorHold) + return wkr.instance.Tags()[tagKey] == string(IdleBehaviorHold) } } return false @@ -126,7 +131,7 @@ func (suite *PoolSuite) TestResumeAfterRestart(c *check.C) { c.Log("------- starting new pool, waiting to recover state") - pool2 := NewPool(logger, arvados.NewClientFromEnv(), prometheus.NewRegistry(), is, newExecutor, nil, cluster) + pool2 := NewPool(logger, arvados.NewClientFromEnv(), prometheus.NewRegistry(), instanceSetID, is, newExecutor, nil, cluster) notify2 := pool2.Subscribe() defer pool2.Unsubscribe(notify2) waitForIdle(pool2, notify2) @@ -144,7 +149,7 @@ func (suite *PoolSuite) TestResumeAfterRestart(c *check.C) { func (suite *PoolSuite) TestCreateUnallocShutdown(c *check.C) { logger := ctxlog.TestLogger(c) driver := test.StubDriver{HoldCloudOps: true} - instanceSet, err := driver.InstanceSet(nil, "", logger) + instanceSet, err := driver.InstanceSet(nil, "test-instance-set-id", nil, logger) c.Assert(err, check.IsNil) type1 := arvados.InstanceType{Name: "a1s", ProviderType: "a1.small", VCPUs: 1, RAM: 1 * GiB, Price: .01} @@ -152,7 +157,7 @@ func (suite *PoolSuite) TestCreateUnallocShutdown(c *check.C) { type3 := arvados.InstanceType{Name: "a2l", ProviderType: "a2.large", VCPUs: 4, RAM: 4 * GiB, Price: .04} pool := &Pool{ logger: logger, - newExecutor: func(cloud.Instance) Executor { return stubExecutor{} }, + newExecutor: func(cloud.Instance) Executor { return &stubExecutor{} }, instanceSet: &throttledInstanceSet{InstanceSet: instanceSet}, instanceTypes: arvados.InstanceTypeMap{ type1.Name: type1,