This is an automated email from the ASF dual-hosted git repository.

wilfreds pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/yunikorn-core.git


The following commit(s) were added to refs/heads/master by this push:
     new 8c066c42 [YUNIKORN-2265] Populate Originator and PreemptionPolicy 
fields in SI Allocation (#756)
8c066c42 is described below

commit 8c066c42b83a912150ca66ee01f3476d3eeca29f
Author: Craig Condit <[email protected]>
AuthorDate: Tue Dec 12 11:41:12 2023 +1100

    [YUNIKORN-2265] Populate Originator and PreemptionPolicy fields in SI 
Allocation (#756)
    
    Closes: #756
    
    Signed-off-by: Wilfred Spiegelenburg <[email protected]>
---
 go.mod                                   |  2 +-
 go.sum                                   |  4 +--
 pkg/scheduler/objects/allocation.go      |  8 ++++++
 pkg/scheduler/objects/allocation_test.go | 45 ++++++++++++++++++++++++++++++--
 4 files changed, 54 insertions(+), 5 deletions(-)

diff --git a/go.mod b/go.mod
index 824ce23e..6ba7d67a 100644
--- a/go.mod
+++ b/go.mod
@@ -22,7 +22,7 @@ module github.com/apache/yunikorn-core
 go 1.20
 
 require (
-       github.com/apache/yunikorn-scheduler-interface 
v0.0.0-20231201001639-c81397b31653
+       github.com/apache/yunikorn-scheduler-interface 
v0.0.0-20231211235204-ec7bfad7d00e
        github.com/google/btree v1.1.2
        github.com/google/go-cmp v0.5.9
        github.com/google/uuid v1.3.0
diff --git a/go.sum b/go.sum
index d9de3a73..ecb2ed5f 100644
--- a/go.sum
+++ b/go.sum
@@ -40,8 +40,8 @@ github.com/alecthomas/template 
v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy
 github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod 
h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
 github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod 
h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
 github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod 
h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
-github.com/apache/yunikorn-scheduler-interface 
v0.0.0-20231201001639-c81397b31653 
h1:pUbVmmR+LWuy0L8dGCZNue9UNpWKsY7yFYcCtPtWAic=
-github.com/apache/yunikorn-scheduler-interface 
v0.0.0-20231201001639-c81397b31653/go.mod 
h1:zDWV5y9Zh9DM1C65RCVXT1nhNNO8kykVW7bzPFamNYw=
+github.com/apache/yunikorn-scheduler-interface 
v0.0.0-20231211235204-ec7bfad7d00e 
h1:WiDns+JSNrp1jUfTkwtTwVyfxAhe3vPMtxJxs2CRseE=
+github.com/apache/yunikorn-scheduler-interface 
v0.0.0-20231211235204-ec7bfad7d00e/go.mod 
h1:zDWV5y9Zh9DM1C65RCVXT1nhNNO8kykVW7bzPFamNYw=
 github.com/benbjohnson/clock v1.1.0 
h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
 github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod 
h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
 github.com/beorn7/perks v1.0.0/go.mod 
h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
diff --git a/pkg/scheduler/objects/allocation.go 
b/pkg/scheduler/objects/allocation.go
index f165ad56..9fefcb83 100644
--- a/pkg/scheduler/objects/allocation.go
+++ b/pkg/scheduler/objects/allocation.go
@@ -153,6 +153,9 @@ func NewAllocationFromSI(alloc *si.Allocation) *Allocation {
                placeholder:       alloc.Placeholder,
                createTime:        time.Unix(creationTime, 0),
                allocLog:          make(map[string]*AllocationLogEntry),
+               originator:        alloc.Originator,
+               allowPreemptSelf:  alloc.PreemptionPolicy.GetAllowPreemptSelf(),
+               allowPreemptOther: 
alloc.PreemptionPolicy.GetAllowPreemptOther(),
        }
        newAlloc := NewAllocation(alloc.NodeID, ask)
        newAlloc.allocationID = alloc.AllocationID
@@ -175,6 +178,11 @@ func (a *Allocation) NewSIFromAllocation() *si.Allocation {
                ResourcePerAlloc: a.GetAllocatedResource().ToProto(), // needed 
in tests for restore
                TaskGroupName:    a.GetTaskGroup(),
                Placeholder:      a.IsPlaceholder(),
+               Originator:       a.GetAsk().IsOriginator(),
+               PreemptionPolicy: &si.PreemptionPolicy{
+                       AllowPreemptSelf:  a.GetAsk().IsAllowPreemptSelf(),
+                       AllowPreemptOther: a.GetAsk().IsAllowPreemptOther(),
+               },
        }
 }
 
diff --git a/pkg/scheduler/objects/allocation_test.go 
b/pkg/scheduler/objects/allocation_test.go
index be218109..4d92ebca 100644
--- a/pkg/scheduler/objects/allocation_test.go
+++ b/pkg/scheduler/objects/allocation_test.go
@@ -24,7 +24,6 @@ import (
        "testing"
        "time"
 
-       "github.com/google/go-cmp/cmp/cmpopts"
        "gotest.tools/v3/assert"
 
        "github.com/apache/yunikorn-core/pkg/common/resources"
@@ -136,14 +135,37 @@ func TestSIFromAlloc(t *testing.T) {
                NodeID:           "node-1",
                ApplicationID:    "app-1",
                ResourcePerAlloc: res.ToProto(),
+               Originator:       true,
+               PreemptionPolicy: &si.PreemptionPolicy{
+                       AllowPreemptSelf:  true,
+                       AllowPreemptOther: false,
+               },
        }
        ask := newAllocationAsk("ask-1", "app-1", res)
        alloc := NewAllocation("node-1", ask)
+       ask.originator = true
+       ask.allowPreemptSelf = false
+       ask.allowPreemptOther = true
        if alloc == nil {
                t.Fatal("NewAllocation create failed while it should not")
        }
+
        allocSI := alloc.NewSIFromAllocation()
-       assert.DeepEqual(t, allocSI, expectedSI, 
cmpopts.IgnoreUnexported(si.Allocation{}, si.Resource{}, si.Quantity{}))
+       assert.Equal(t, expectedSI.AllocationKey, allocSI.AllocationKey, "wrong 
AllocationKey")
+       assert.Equal(t, expectedSI.AllocationID, allocSI.AllocationID, "wrong 
AllocationID")
+       assert.Equal(t, expectedSI.NodeID, allocSI.NodeID, "wrong NodeID")
+       assert.Equal(t, expectedSI.ApplicationID, allocSI.ApplicationID, "wrong 
ApplicationID")
+       assert.Check(t, allocSI.Originator, "originator flag should be set")
+       assert.Check(t, !allocSI.PreemptionPolicy.AllowPreemptSelf, 
"allowPreemptSelf flag should not be set")
+       assert.Check(t, allocSI.PreemptionPolicy.AllowPreemptOther, 
"aloowPreemptOther flag should be set")
+
+       alloc.ask.originator = false
+       alloc.ask.allowPreemptSelf = true
+       alloc.ask.allowPreemptOther = false
+       allocSI = alloc.NewSIFromAllocation()
+       assert.Check(t, !allocSI.Originator, "originator flag should not be 
set")
+       assert.Check(t, allocSI.PreemptionPolicy.AllowPreemptSelf, 
"allowPreemptSelf flag should be set")
+       assert.Check(t, !allocSI.PreemptionPolicy.AllowPreemptOther, 
"aloowPreemptOther flag should not be set")
 }
 
 func TestNewAllocFromNilSI(t *testing.T) {
@@ -171,6 +193,11 @@ func TestNewAllocFromSI(t *testing.T) {
                TaskGroupName:    "",
                Placeholder:      true,
                AllocationTags:   tags,
+               Originator:       true,
+               PreemptionPolicy: &si.PreemptionPolicy{
+                       AllowPreemptSelf:  false,
+                       AllowPreemptOther: true,
+               },
        }
        var nilAlloc *Allocation
        alloc := NewAllocationFromSI(allocSI)
@@ -181,8 +208,22 @@ func TestNewAllocFromSI(t *testing.T) {
        assert.Assert(t, alloc.IsPlaceholder(), "ask should have been a 
placeholder")
        assert.Equal(t, alloc.GetTaskGroup(), "testgroup", "TaskGroupName not 
set as expected")
        assert.Equal(t, alloc.GetAsk().GetCreateTime(), time.Unix(past, 0)) 
//nolint:staticcheck
+       assert.Assert(t, alloc.GetAsk().IsOriginator(), "ask should have been 
an originator")
+       assert.Assert(t, !alloc.GetAsk().IsAllowPreemptSelf(), "ask should not 
have allow-preempt-self set")
+       assert.Assert(t, alloc.GetAsk().IsAllowPreemptOther(), "ask should have 
allow-preempt-other set")
 
+       allocSI.Originator = false
+       allocSI.PreemptionPolicy.AllowPreemptSelf = true
+       allocSI.PreemptionPolicy.AllowPreemptOther = false
        allocSI.AllocationTags[siCommon.CreationTime] = "xyz"
        alloc = NewAllocationFromSI(allocSI)
        assert.Equal(t, alloc.GetAsk().GetCreateTime().Unix(), int64(-1)) 
//nolint:staticcheck
+       assert.Assert(t, !alloc.GetAsk().IsOriginator(), "ask should not have 
been an originator")
+       assert.Assert(t, alloc.GetAsk().IsAllowPreemptSelf(), "ask should have 
allow-preempt-self set")
+       assert.Assert(t, !alloc.GetAsk().IsAllowPreemptOther(), "ask should not 
have allow-preempt-other set")
+
+       allocSI.PreemptionPolicy = nil
+       alloc = NewAllocationFromSI(allocSI)
+       assert.Assert(t, !alloc.GetAsk().IsAllowPreemptSelf(), "ask should not 
have allow-preempt-self set")
+       assert.Assert(t, !alloc.GetAsk().IsAllowPreemptOther(), "ask should not 
have allow-preempt-other set")
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to