From 9f334a4d08398033a34a818763a8e495e7fe3f35 Mon Sep 17 00:00:00 2001 From: Abdullah Gharaibeh Date: Thu, 12 Dec 2019 10:47:32 -0500 Subject: [PATCH] Add an interface to return scheduler framework instance --- pkg/scheduler/core/generic_scheduler.go | 13 +++++++++++-- pkg/scheduler/scheduler_test.go | 4 ++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/pkg/scheduler/core/generic_scheduler.go b/pkg/scheduler/core/generic_scheduler.go index 89b438808f4..58734b125a5 100644 --- a/pkg/scheduler/core/generic_scheduler.go +++ b/pkg/scheduler/core/generic_scheduler.go @@ -141,6 +141,9 @@ type ScheduleAlgorithm interface { // for cluster autoscaler integration. // TODO(#85691): remove this once CA migrates to creating a Framework instead of a full scheduler. Snapshot() error + // Framework returns the scheduler framework instance. This is needed for cluster autoscaler integration. + // TODO(#85691): remove this once CA migrates to creating a Framework instead of a full scheduler. + Framework() framework.Framework } // ScheduleResult represents the result of one pod scheduled. It will contain @@ -174,14 +177,20 @@ type genericScheduler struct { nextStartNodeIndex int } -// snapshot snapshots scheduler cache and node infos for all fit and priority +// Snapshot snapshots scheduler cache and node infos for all fit and priority // functions. func (g *genericScheduler) Snapshot() error { // Used for all fit and priority funcs. return g.cache.UpdateNodeInfoSnapshot(g.nodeInfoSnapshot) } -// GetPredicateMetadataProducer returns the predicate metadata producer. This is needed +// Framework returns the framework instance. +func (g *genericScheduler) Framework() framework.Framework { + // Used for all fit and priority funcs. + return g.framework +} + +// PredicateMetadataProducer returns the predicate metadata producer. This is needed // for cluster autoscaler integration. func (g *genericScheduler) PredicateMetadataProducer() predicates.MetadataProducer { return g.predicateMetaProducer diff --git a/pkg/scheduler/scheduler_test.go b/pkg/scheduler/scheduler_test.go index 1bb26fe59e8..c3230300ed1 100644 --- a/pkg/scheduler/scheduler_test.go +++ b/pkg/scheduler/scheduler_test.go @@ -179,6 +179,10 @@ func (es mockScheduler) Preempt(ctx context.Context, state *framework.CycleState func (es mockScheduler) Snapshot() error { return nil +} +func (es mockScheduler) Framework() framework.Framework { + return nil + } func TestSchedulerCreation(t *testing.T) {