From 6c77aa777edeb0fe85b20e28ad70d01d5b587ad1 Mon Sep 17 00:00:00 2001 From: Pradyumna Kaushik Date: Fri, 9 Feb 2018 22:32:44 +0000 Subject: [PATCH] Merged in resourceUsageTracking (pull request #2) ResourceUsageTracking Approved-by: Akash Kothawale Approved-by: Pradyumna Kaushik --- .gitignore | 4 ---- def/taskUtils.go | 2 +- schedulers/base.go | 5 +++++ 3 files changed, 6 insertions(+), 5 deletions(-) delete mode 100644 .gitignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 531255d..0000000 --- a/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -# Created by .ignore support plugin (hsz.mobi) -.idea/ -# name of executable when built using command 'go build' -elektron diff --git a/def/taskUtils.go b/def/taskUtils.go index 383b403..8704ef5 100644 --- a/def/taskUtils.go +++ b/def/taskUtils.go @@ -3,7 +3,7 @@ package def import ( "errors" "fmt" - "github.com/mdesenfants/gokmeans" + "github.com/mash/gokmeans" "log" "sort" ) diff --git a/schedulers/base.go b/schedulers/base.go index 4284fb4..0828b16 100644 --- a/schedulers/base.go +++ b/schedulers/base.go @@ -3,6 +3,7 @@ package schedulers import ( "bitbucket.org/sunybingcloud/elektron/def" elecLogDef "bitbucket.org/sunybingcloud/elektron/logging/def" + "bitbucket.org/sunybingcloud/elektron/utilities" "bitbucket.org/sunybingcloud/elektron/utilities/schedUtils" "bytes" "fmt" @@ -187,6 +188,7 @@ func (s *BaseScheduler) Disconnected(sched.SchedulerDriver) { } func (s *BaseScheduler) ResourceOffers(driver sched.SchedulerDriver, offers []*mesos.Offer) { + utilities.RecordTotalResourceAvailability(offers) for _, offer := range offers { if _, ok := s.HostNameToSlaveID[offer.GetHostname()]; !ok { s.HostNameToSlaveID[offer.GetHostname()] = offer.GetSlaveId().GoString() @@ -212,6 +214,9 @@ func (s *BaseScheduler) StatusUpdate(driver sched.SchedulerDriver, status *mesos if *status.State == mesos.TaskState_TASK_RUNNING { s.tasksRunning++ } else if IsTerminal(status.State) { + // Update resource availability. + utilities.ResourceAvailabilityUpdate("ON_TASK_TERMINAL_STATE", + *status.TaskId, *status.SlaveId) s.TasksRunningMutex.Lock() delete(s.Running[status.GetSlaveId().GoString()], *status.TaskId.Value) s.TasksRunningMutex.Unlock()