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-k8shim.git


The following commit(s) were added to refs/heads/master by this push:
     new 9a1d01f3 [YUNIKORN-1820] update scheduler-interface & core (#622)
9a1d01f3 is described below

commit 9a1d01f357fbcd49420e139d026a58af78d5aeac
Author: Frank Yang <[email protected]>
AuthorDate: Fri Jun 23 18:23:44 2023 +1000

    [YUNIKORN-1820] update scheduler-interface & core (#622)
    
    A side effect of the new protobuf is a mutex in the messages.
    This requires a pointer instead of an object to pass around.
    
    Signed-off-by: Frank Yang <[email protected]>
    
    Closes: #622
    
    Signed-off-by: Wilfred Spiegelenburg <[email protected]>
---
 go.mod                              | 44 ++++++++++++-----------
 go.sum                              | 69 +++++++++++++++++++++----------------
 pkg/admission/metadata/usergroup.go |  7 ++--
 pkg/cache/application_test.go       |  3 +-
 pkg/cache/context.go                |  2 +-
 pkg/cache/node.go                   |  6 ++--
 pkg/cache/node_test.go              |  9 ++---
 pkg/cache/nodes.go                  |  6 ++--
 pkg/cache/task.go                   |  8 ++---
 pkg/common/si_helper.go             | 39 ++++++++-------------
 pkg/shim/scheduler_mock_test.go     |  2 +-
 11 files changed, 100 insertions(+), 95 deletions(-)

diff --git a/go.mod b/go.mod
index f192ed40..3d4d9c7f 100644
--- a/go.mod
+++ b/go.mod
@@ -22,9 +22,10 @@ go 1.20
 
 require (
        github.com/GoogleCloudPlatform/spark-on-k8s-operator 
v0.0.0-20201215015655-2e8b733f5ad0
-       github.com/apache/yunikorn-core v0.0.0-20230620141112-5d04f9c0dd32
-       github.com/apache/yunikorn-scheduler-interface 
v0.0.0-20230614104003-12c630245d86
-       github.com/google/uuid v1.2.0
+       github.com/apache/yunikorn-core v0.0.0-20230622134022-d765f3a4e1ff
+       github.com/apache/yunikorn-scheduler-interface 
v0.0.0-20230621102204-bcadd461d275
+       github.com/google/go-cmp v0.5.9
+       github.com/google/uuid v1.3.0
        github.com/gorilla/mux v1.8.0
        github.com/looplab/fsm v1.0.1
        github.com/onsi/ginkgo/v2 v2.9.0
@@ -51,7 +52,7 @@ require (
        github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // 
indirect
        github.com/beorn7/perks v1.0.1 // indirect
        github.com/blang/semver v3.5.1+incompatible // indirect
-       github.com/cespare/xxhash/v2 v2.1.2 // indirect
+       github.com/cespare/xxhash/v2 v2.2.0 // indirect
        github.com/coreos/go-semver v0.3.0 // indirect
        github.com/coreos/go-systemd/v22 v22.3.2 // indirect
        github.com/cyphar/filepath-securejoin v0.2.3 // indirect
@@ -69,9 +70,8 @@ require (
        github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // 
indirect
        github.com/gogo/protobuf v1.3.2 // indirect
        github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // 
indirect
-       github.com/golang/protobuf v1.5.2 // indirect
+       github.com/golang/protobuf v1.5.3 // indirect
        github.com/google/btree v1.1.2 // indirect
-       github.com/google/go-cmp v0.5.9 // indirect
        github.com/google/gofuzz v1.1.0 // indirect
        github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 // indirect
        github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
@@ -128,18 +128,18 @@ require (
        go.uber.org/atomic v1.7.0 // indirect
        go.uber.org/multierr v1.6.0 // indirect
        golang.org/x/crypto v0.0.0-20210817164053-32db794688a5 // indirect
-       golang.org/x/net v0.8.0 // indirect
-       golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect
-       golang.org/x/sync v0.1.0 // indirect
-       golang.org/x/sys v0.6.0 // indirect
-       golang.org/x/term v0.6.0 // indirect
-       golang.org/x/text v0.8.0 // indirect
+       golang.org/x/net v0.10.0 // indirect
+       golang.org/x/oauth2 v0.7.0 // indirect
+       golang.org/x/sync v0.2.0 // indirect
+       golang.org/x/sys v0.9.0 // indirect
+       golang.org/x/term v0.9.0 // indirect
+       golang.org/x/text v0.10.0 // indirect
        golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac // indirect
-       golang.org/x/tools v0.6.0 // indirect
+       golang.org/x/tools v0.9.3 // indirect
        google.golang.org/appengine v1.6.7 // indirect
-       google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2 // 
indirect
-       google.golang.org/grpc v1.40.0 // indirect
-       google.golang.org/protobuf v1.28.1 // indirect
+       google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // 
indirect
+       google.golang.org/grpc v1.56.0 // indirect
+       google.golang.org/protobuf v1.30.0 // indirect
        gopkg.in/inf.v0 v0.9.1 // indirect
        gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
        gopkg.in/yaml.v2 v2.4.0 // indirect
@@ -159,12 +159,12 @@ require (
 )
 
 replace (
-       golang.org/x/crypto => golang.org/x/crypto v0.7.0
+       golang.org/x/crypto => golang.org/x/crypto v0.10.0
        golang.org/x/lint => golang.org/x/lint 
v0.0.0-20210508222113-6edffad5e616
-       golang.org/x/net => golang.org/x/net v0.8.0
-       golang.org/x/sys => golang.org/x/sys v0.6.0
-       golang.org/x/text => golang.org/x/text v0.8.0
-       golang.org/x/tools => golang.org/x/tools v0.7.0
+       golang.org/x/net => golang.org/x/net v0.10.0
+       golang.org/x/sys => golang.org/x/sys v0.8.0
+       golang.org/x/text => golang.org/x/text v0.9.0
+       golang.org/x/tools => golang.org/x/tools v0.9.3
        k8s.io/api => k8s.io/api v0.23.14
        k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver 
v0.23.14
        k8s.io/apimachinery => k8s.io/apimachinery v0.23.14
@@ -194,3 +194,5 @@ replace (
        k8s.io/utils => k8s.io/utils v0.0.0-20211116205334-6203023598ed
        sigs.k8s.io/json => sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6
 )
+
+replace github.com/apache/yunikorn-core => 
github.com/FrankYang0529/yunikorn-core v0.0.0-20230619065145-083fbff4794e
diff --git a/go.sum b/go.sum
index b3f133b2..3b66e695 100644
--- a/go.sum
+++ b/go.sum
@@ -20,14 +20,16 @@ cloud.google.com/go v0.72.0/go.mod 
h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKP
 cloud.google.com/go v0.74.0/go.mod 
h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk=
 cloud.google.com/go v0.78.0/go.mod 
h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg=
 cloud.google.com/go v0.79.0/go.mod 
h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8=
-cloud.google.com/go v0.81.0 h1:at8Tk2zUz63cLPR0JPWm5vp77pEZmzxEQBEfRKn1VV8=
 cloud.google.com/go v0.81.0/go.mod 
h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0=
+cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys=
 cloud.google.com/go/bigquery v1.0.1/go.mod 
h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
 cloud.google.com/go/bigquery v1.3.0/go.mod 
h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
 cloud.google.com/go/bigquery v1.4.0/go.mod 
h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
 cloud.google.com/go/bigquery v1.5.0/go.mod 
h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg=
 cloud.google.com/go/bigquery v1.7.0/go.mod 
h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
 cloud.google.com/go/bigquery v1.8.0/go.mod 
h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
+cloud.google.com/go/compute v1.19.1 
h1:am86mquDUgjGNWxiGn+5PGLbmgiWXlE/yNWpIpNvuXY=
+cloud.google.com/go/compute/metadata v0.2.3 
h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
 cloud.google.com/go/datastore v1.0.0/go.mod 
h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
 cloud.google.com/go/datastore v1.1.0/go.mod 
h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
 cloud.google.com/go/firestore v1.1.0/go.mod 
h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk=
@@ -70,6 +72,8 @@ github.com/BurntSushi/toml v0.3.0/go.mod 
h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03
 github.com/BurntSushi/toml v0.3.1 
h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
 github.com/BurntSushi/toml v0.3.1/go.mod 
h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod 
h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
+github.com/FrankYang0529/yunikorn-core v0.0.0-20230619065145-083fbff4794e 
h1:BVWu/PdL+Lxaeh0Gxenzv/RKwXIevUzGiO523k3YwuQ=
+github.com/FrankYang0529/yunikorn-core 
v0.0.0-20230619065145-083fbff4794e/go.mod 
h1:aCcsK1r/rWOS9ZlQfAZ7U6+FCli4wbIaf8MtpO34YFQ=
 github.com/GoogleCloudPlatform/cloudsql-proxy 
v0.0.0-20180321230639-1e456b1c68cb/go.mod 
h1:aJ4qN3TfrelA6NZ6AXsXRfmEVaYin3EDbSPJrKS8OXo=
 github.com/GoogleCloudPlatform/k8s-cloud-provider 
v0.0.0-20190822182118-27a4ced34534/go.mod 
h1:iroGtC8B3tQiqtds1l+mgk/BBOrxbqjH+eUfFQYRc14=
 github.com/GoogleCloudPlatform/k8s-cloud-provider 
v1.16.1-0.20210702024009-ea6160c1d0e3/go.mod 
h1:8XasY4ymP2V/tn2OOV9ZadmiTE1FIB/h3W+yNlPttKw=
@@ -104,10 +108,8 @@ github.com/alecthomas/units 
v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF
 github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod 
h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
 github.com/antihax/optional v1.0.0/go.mod 
h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
 github.com/antlr/antlr4/runtime/Go/antlr 
v0.0.0-20210826220005-b48c857c3a0e/go.mod 
h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY=
-github.com/apache/yunikorn-core v0.0.0-20230620141112-5d04f9c0dd32 
h1:eKGNJ/4SM6r34wHZsfc9JUPqV0lslMVGkaPiZUIcoVo=
-github.com/apache/yunikorn-core v0.0.0-20230620141112-5d04f9c0dd32/go.mod 
h1:1K9P/AYVE5RcErlgzyzn/rvHAH4/+fQP7bFRkxvZEW4=
-github.com/apache/yunikorn-scheduler-interface 
v0.0.0-20230614104003-12c630245d86 
h1:GLBGSuJYNjcCdMbKwId2u1BZyhKNzQaocnLqQkRhBLE=
-github.com/apache/yunikorn-scheduler-interface 
v0.0.0-20230614104003-12c630245d86/go.mod 
h1:r4amgZ4uYT1K0KpfYoNV4Ao2GVIYOUU0Rxru89g0WsQ=
+github.com/apache/yunikorn-scheduler-interface 
v0.0.0-20230621102204-bcadd461d275 
h1:rohcBe0tzmokyo8QTzSni4SeH8pHJb+Hxo4XEh5wsDY=
+github.com/apache/yunikorn-scheduler-interface 
v0.0.0-20230621102204-bcadd461d275/go.mod 
h1:HZl8aYm89D3VUuBbMvxzYbra84XVfgSjJWQat0kD1cE=
 github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod 
h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
 github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod 
h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
 github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod 
h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
@@ -149,8 +151,9 @@ github.com/certifi/gocertifi 
v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6
 github.com/cespare/prettybench v0.0.0-20150116022406-03b8cfe5406c/go.mod 
h1:Xe6ZsFhtM8HrDku0pxJ3/Lr51rwykrzgFwpmTzleatY=
 github.com/cespare/xxhash v1.1.0/go.mod 
h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
 github.com/cespare/xxhash/v2 v2.1.1/go.mod 
h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/cespare/xxhash/v2 v2.1.2 
h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
 github.com/cespare/xxhash/v2 v2.1.2/go.mod 
h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/cespare/xxhash/v2 v2.2.0 
h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
+github.com/cespare/xxhash/v2 v2.2.0/go.mod 
h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod 
h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw=
 github.com/checkpoint-restore/go-criu 
v0.0.0-20190109184317-bdb7599cd87b/go.mod 
h1:TrMrLQfeENAPYPRsJuq3jsqdlRh3lvi6trTZJG8+tho=
 github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod 
h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M=
@@ -169,6 +172,7 @@ github.com/cncf/udpa/go 
v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGX
 github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod 
h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
 github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod 
h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
 github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod 
h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4 
h1:/inchEIKaYC1Akx+H+gqO04wryn5h75LSazbRlnya1k=
 github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod 
h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo=
 github.com/cockroachdb/errors v1.2.4/go.mod 
h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA=
 github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod 
h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI=
@@ -260,6 +264,7 @@ github.com/envoyproxy/go-control-plane 
v0.9.9-0.20201210154907-fd9021fe5dad/go.m
 github.com/envoyproxy/go-control-plane 
v0.9.9-0.20210217033140-668b12f5399d/go.mod 
h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
 github.com/envoyproxy/go-control-plane 
v0.9.9-0.20210512163311-63b5d3c536b0/go.mod 
h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
 github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod 
h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
+github.com/envoyproxy/protoc-gen-validate v0.10.1 
h1:c0g45+xCJhdgFGw7a5QAfdS4byAbud7miNWJ1WwEVf8=
 github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod 
h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw=
 github.com/evanphx/json-patch v4.2.0+incompatible/go.mod 
h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
 github.com/evanphx/json-patch v4.11.0+incompatible/go.mod 
h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
@@ -405,8 +410,9 @@ github.com/golang/protobuf v1.4.2/go.mod 
h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw
 github.com/golang/protobuf v1.4.3/go.mod 
h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
 github.com/golang/protobuf v1.5.0/go.mod 
h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
 github.com/golang/protobuf v1.5.1/go.mod 
h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM=
-github.com/golang/protobuf v1.5.2 
h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
 github.com/golang/protobuf v1.5.2/go.mod 
h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
+github.com/golang/protobuf v1.5.3 
h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
+github.com/golang/protobuf v1.5.3/go.mod 
h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
 github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod 
h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk=
 github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod 
h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 github.com/google/btree v1.0.0/go.mod 
h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
@@ -458,8 +464,8 @@ github.com/google/shlex 
v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3
 github.com/google/uuid v1.0.0/go.mod 
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/google/uuid v1.1.1/go.mod 
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/google/uuid v1.1.2/go.mod 
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs=
-github.com/google/uuid v1.2.0/go.mod 
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
+github.com/google/uuid v1.3.0/go.mod 
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/googleapis/gax-go v1.0.0/go.mod 
h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY=
 github.com/googleapis/gax-go/v2 v2.0.4/go.mod 
h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
 github.com/googleapis/gax-go/v2 v2.0.5/go.mod 
h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
@@ -932,8 +938,8 @@ go.uber.org/zap v1.17.0/go.mod 
h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
 go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
 go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60=
 go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg=
-golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A=
-golang.org/x/crypto v0.7.0/go.mod 
h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
+golang.org/x/crypto v0.10.0 h1:LKqV2xt9+kDzSTfOhx4FrkEBcMrAgHSYgzywV9zcGmM=
+golang.org/x/crypto v0.10.0/go.mod 
h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I=
 golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@@ -968,9 +974,10 @@ golang.org/x/mod 
v0.3.1-0.20200828183125-ce943fd02449/go.mod h1:s0Qsj1ACt9ePp/hM
 golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
-golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
-golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ=
-golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
+golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk=
+golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
+golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
+golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
 golang.org/x/oauth2 v0.0.0-20180603041954-1e0a3fa8ba9a/go.mod 
h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod 
h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod 
h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -987,8 +994,9 @@ golang.org/x/oauth2 
v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ
 golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c/go.mod 
h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod 
h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod 
h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b 
h1:clP8eMhB30EHdc0bd2Twtq6kgU7yl5ub2cQLSdrv1Dg=
 golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod 
h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
+golang.org/x/oauth2 v0.7.0 h1:qe6s0zUXlPX80/dITx3440hWZ7GwMwgDDyrSGTPJG/g=
+golang.org/x/oauth2 v0.7.0/go.mod 
h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -1000,23 +1008,24 @@ golang.org/x/sync 
v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ
 golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
-golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ=
-golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI=
+golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
+golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod 
h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw=
-golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
-golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68=
-golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
+golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
+golang.org/x/term v0.9.0 h1:GRRCnKYhdQrD8kfRAdQ6Zcw1P0OcELxGLKJvtjVMZ28=
+golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo=
+golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
+golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod 
h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod 
h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod 
h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod 
h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac 
h1:7zkz7BUtwNFFqcowJ+RIgu2MaV/MapERkDIy+mwPyjs=
 golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod 
h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4=
-golang.org/x/tools v0.7.0/go.mod 
h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s=
+golang.org/x/tools v0.9.3 h1:Gn1I8+64MsuTb/HpH+LmQtNas23LhUVr3rYZ0eKuaMM=
+golang.org/x/tools v0.9.3/go.mod 
h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=
 golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -1106,8 +1115,9 @@ google.golang.org/genproto 
v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6D
 google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod 
h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
 google.golang.org/genproto v0.0.0-20210429181445-86c259c2b4ab/go.mod 
h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
 google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod 
h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
-google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2 
h1:NHN4wOCScVzKhPenJ2dt+BTs3X/XkBVI/Rh4iDt55T8=
 google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod 
h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
+google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 
h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A=
+google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod 
h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU=
 google.golang.org/grpc v1.13.0/go.mod 
h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
 google.golang.org/grpc v1.19.0/go.mod 
h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 google.golang.org/grpc v1.20.1/go.mod 
h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
@@ -1131,8 +1141,9 @@ google.golang.org/grpc v1.36.0/go.mod 
h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG
 google.golang.org/grpc v1.36.1/go.mod 
h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
 google.golang.org/grpc v1.37.0/go.mod 
h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
 google.golang.org/grpc v1.38.0/go.mod 
h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
-google.golang.org/grpc v1.40.0 h1:AGJ0Ih4mHjSeibYkFGh1dD9KJ/eOtZ93I6hoHhukQ5Q=
 google.golang.org/grpc v1.40.0/go.mod 
h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
+google.golang.org/grpc v1.56.0 h1:+y7Bs8rtMd07LeXmL3NxcTLn7mUkbKZqEpPhMNkwJEE=
+google.golang.org/grpc v1.56.0/go.mod 
h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s=
 google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod 
h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
 google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod 
h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
 google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod 
h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
@@ -1146,8 +1157,8 @@ google.golang.org/protobuf v1.25.0/go.mod 
h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba
 google.golang.org/protobuf v1.26.0-rc.1/go.mod 
h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
 google.golang.org/protobuf v1.26.0/go.mod 
h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
 google.golang.org/protobuf v1.27.1/go.mod 
h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.28.1 
h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
-google.golang.org/protobuf v1.28.1/go.mod 
h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+google.golang.org/protobuf v1.30.0 
h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
+google.golang.org/protobuf v1.30.0/go.mod 
h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
 gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod 
h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=
 gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod 
h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
diff --git a/pkg/admission/metadata/usergroup.go 
b/pkg/admission/metadata/usergroup.go
index 10e05bee..4898db88 100644
--- a/pkg/admission/metadata/usergroup.go
+++ b/pkg/admission/metadata/usergroup.go
@@ -140,9 +140,10 @@ func (u *UserGroupAnnotationHandler) 
getPatchOperation(annotations map[string]st
                newAnnotations[k] = v
        }
 
-       var userGroups si.UserGroupInformation
-       userGroups.User = user
-       userGroups.Groups = groups
+       userGroups := &si.UserGroupInformation{
+               User:   user,
+               Groups: groups,
+       }
        jsonBytes, err := json.Marshal(userGroups)
        if err != nil {
                return nil, err
diff --git a/pkg/cache/application_test.go b/pkg/cache/application_test.go
index b068a10b..905a7154 100644
--- a/pkg/cache/application_test.go
+++ b/pkg/cache/application_test.go
@@ -27,6 +27,7 @@ import (
        "testing"
        "time"
 
+       "github.com/google/go-cmp/cmp/cmpopts"
        "gotest.tools/v3/assert"
        is "gotest.tools/v3/assert/cmp"
        v1 "k8s.io/api/core/v1"
@@ -674,7 +675,7 @@ func TestSetTaskGroupsAndSchedulingPolicy(t *testing.T) {
        // Pods should always be equal to the sum of the MinMember values
        expectedPlaceholderAsk := 
common.NewResourceBuilder().AddResource("pods", 
30).AddResource(siCommon.Memory, 25000*1024*1024).AddResource(siCommon.CPU, 
25000).Build()
        actualPlaceholderAsk := app.getPlaceholderAsk()
-       assert.DeepEqual(t, actualPlaceholderAsk, expectedPlaceholderAsk)
+       assert.DeepEqual(t, actualPlaceholderAsk, expectedPlaceholderAsk, 
cmpopts.IgnoreUnexported(si.Resource{}, si.Quantity{}))
 }
 
 type threadSafePodsMap struct {
diff --git a/pkg/cache/context.go b/pkg/cache/context.go
index 3b8c36b5..ecb7d29b 100644
--- a/pkg/cache/context.go
+++ b/pkg/cache/context.go
@@ -814,7 +814,7 @@ func (ctx *Context) RemoveApplication(appID string) error {
                }
                // send the update request to scheduler core
                rr := 
common.CreateUpdateRequestForRemoveApplication(app.applicationID, app.partition)
-               if err := 
ctx.apiProvider.GetAPIs().SchedulerAPI.UpdateApplication(&rr); err != nil {
+               if err := 
ctx.apiProvider.GetAPIs().SchedulerAPI.UpdateApplication(rr); err != nil {
                        log.Logger().Error("failed to send remove application 
request to core", zap.Error(err))
                }
                delete(ctx.applications, appID)
diff --git a/pkg/cache/node.go b/pkg/cache/node.go
index 5be20728..fd3de2c9 100644
--- a/pkg/cache/node.go
+++ b/pkg/cache/node.go
@@ -152,7 +152,7 @@ func (n *SchedulerNode) handleNodeRecovery() {
        nodeRequest := common.CreateUpdateRequestForNewNode(n.name, n.labels, 
n.capacity, n.occupied, n.existingAllocations, n.ready)
 
        // send node request to scheduler-core
-       if err := n.schedulerAPI.UpdateNode(&nodeRequest); err != nil {
+       if err := n.schedulerAPI.UpdateNode(nodeRequest); err != nil {
                log.Logger().Error("failed to send UpdateNode request",
                        zap.Any("request", nodeRequest))
        }
@@ -165,7 +165,7 @@ func (n *SchedulerNode) handleDrainNode() {
        nodeRequest := common.CreateUpdateRequestForDeleteOrRestoreNode(n.name, 
si.NodeInfo_DRAIN_NODE)
 
        // send request to scheduler-core
-       if err := n.schedulerAPI.UpdateNode(&nodeRequest); err != nil {
+       if err := n.schedulerAPI.UpdateNode(nodeRequest); err != nil {
                log.Logger().Error("failed to send UpdateNode request",
                        zap.Any("request", nodeRequest))
        }
@@ -178,7 +178,7 @@ func (n *SchedulerNode) handleRestoreNode() {
        nodeRequest := common.CreateUpdateRequestForDeleteOrRestoreNode(n.name, 
si.NodeInfo_DRAIN_TO_SCHEDULABLE)
 
        // send request to scheduler-core
-       if err := n.schedulerAPI.UpdateNode(&nodeRequest); err != nil {
+       if err := n.schedulerAPI.UpdateNode(nodeRequest); err != nil {
                log.Logger().Error("failed to send UpdateNode request",
                        zap.Any("request", nodeRequest))
        }
diff --git a/pkg/cache/node_test.go b/pkg/cache/node_test.go
index 17c4555f..e244c2cb 100644
--- a/pkg/cache/node_test.go
+++ b/pkg/cache/node_test.go
@@ -21,6 +21,7 @@ package cache
 import (
        "testing"
 
+       "github.com/google/go-cmp/cmp/cmpopts"
        "gotest.tools/v3/assert"
 
        "github.com/apache/yunikorn-k8shim/pkg/common"
@@ -67,13 +68,13 @@ func TestUpdateOccupiedResource(t *testing.T) {
                Build()
 
        capacity, occupied, ready := node.updateOccupiedResource(r1, 
AddOccupiedResource)
-       assert.DeepEqual(t, capacity, r2)
-       assert.DeepEqual(t, occupied, r1)
+       assert.DeepEqual(t, capacity, r2, 
cmpopts.IgnoreUnexported(si.Resource{}, si.Quantity{}))
+       assert.DeepEqual(t, occupied, r1, 
cmpopts.IgnoreUnexported(si.Resource{}, si.Quantity{}))
        assert.Assert(t, ready)
 
        capacity, occupied, ready = node.updateOccupiedResource(r2, 
SubOccupiedResource)
-       assert.DeepEqual(t, capacity, r2)
-       assert.DeepEqual(t, occupied, r3)
+       assert.DeepEqual(t, capacity, r2, 
cmpopts.IgnoreUnexported(si.Resource{}, si.Quantity{}))
+       assert.DeepEqual(t, occupied, r3, 
cmpopts.IgnoreUnexported(si.Resource{}, si.Quantity{}))
        assert.Assert(t, ready)
 }
 
diff --git a/pkg/cache/nodes.go b/pkg/cache/nodes.go
index bf617103..ff103570 100644
--- a/pkg/cache/nodes.go
+++ b/pkg/cache/nodes.go
@@ -132,7 +132,7 @@ func (nc *schedulerNodes) updateNodeOccupiedResources(name 
string, resource *si.
                log.Logger().Info("report occupied resources updates",
                        zap.String("node", schedulerNode.name),
                        zap.Any("request", request))
-               if err := nc.proxy.UpdateNode(&request); err != nil {
+               if err := nc.proxy.UpdateNode(request); err != nil {
                        log.Logger().Info("hitting error while handling 
UpdateNode", zap.Error(err))
                }
        }
@@ -182,7 +182,7 @@ func (nc *schedulerNodes) updateNode(oldNode, newNode 
*v1.Node) {
        capacity, occupied, ready := cachedNode.snapshotState()
        request := common.CreateUpdateRequestForUpdatedNode(newNode.Name, 
capacity, occupied, ready)
        log.Logger().Info("report updated nodes to scheduler", 
zap.Any("request", request))
-       if err := nc.proxy.UpdateNode(&request); err != nil {
+       if err := nc.proxy.UpdateNode(request); err != nil {
                log.Logger().Info("hitting error while handling UpdateNode", 
zap.Error(err))
        }
 }
@@ -195,7 +195,7 @@ func (nc *schedulerNodes) deleteNode(node *v1.Node) {
 
        request := common.CreateUpdateRequestForDeleteOrRestoreNode(node.Name, 
si.NodeInfo_DECOMISSION)
        log.Logger().Info("report updated nodes to scheduler", 
zap.Any("request", request.String()))
-       if err := nc.proxy.UpdateNode(&request); err != nil {
+       if err := nc.proxy.UpdateNode(request); err != nil {
                log.Logger().Error("hitting error while handling UpdateNode", 
zap.Error(err))
        }
 }
diff --git a/pkg/cache/task.go b/pkg/cache/task.go
index 29d54b33..adccf62d 100644
--- a/pkg/cache/task.go
+++ b/pkg/cache/task.go
@@ -291,8 +291,8 @@ func (task *Task) handleSubmitTaskEvent() {
                task.pod,
                task.originator,
                preemptionPolicy)
-       log.Logger().Debug("send update request", zap.Stringer("request", &rr))
-       if err := 
task.context.apiProvider.GetAPIs().SchedulerAPI.UpdateAllocation(&rr); err != 
nil {
+       log.Logger().Debug("send update request", zap.Stringer("request", rr))
+       if err := 
task.context.apiProvider.GetAPIs().SchedulerAPI.UpdateAllocation(rr); err != 
nil {
                log.Logger().Debug("failed to send scheduling request to 
scheduler", zap.Error(err))
                return
        }
@@ -487,7 +487,7 @@ func (task *Task) releaseAllocation() {
                // The message depends on current task state, generate requests 
accordingly.
                // If allocated send an AllocationReleaseRequest,
                // If not allocated yet send an AllocationAskReleaseRequest
-               var releaseRequest si.AllocationRequest
+               var releaseRequest *si.AllocationRequest
                s := TaskStates()
                switch task.GetTaskState() {
                case s.New, s.Pending, s.Scheduling, s.Rejected:
@@ -511,7 +511,7 @@ func (task *Task) releaseAllocation() {
                                zap.Int("numOfAsksToRelease", 
len(releaseRequest.Releases.AllocationAsksToRelease)),
                                zap.Int("numOfAllocationsToRelease", 
len(releaseRequest.Releases.AllocationsToRelease)))
                }
-               if err := 
task.context.apiProvider.GetAPIs().SchedulerAPI.UpdateAllocation(&releaseRequest);
 err != nil {
+               if err := 
task.context.apiProvider.GetAPIs().SchedulerAPI.UpdateAllocation(releaseRequest);
 err != nil {
                        log.Logger().Debug("failed to send scheduling request 
to scheduler", zap.Error(err))
                }
        }
diff --git a/pkg/common/si_helper.go b/pkg/common/si_helper.go
index 8b509a05..e9e4bddb 100644
--- a/pkg/common/si_helper.go
+++ b/pkg/common/si_helper.go
@@ -76,7 +76,7 @@ func CreatePriorityForTask(pod *v1.Pod) int32 {
        return 0
 }
 
-func CreateAllocationRequestForTask(appID, taskID string, resource 
*si.Resource, placeholder bool, taskGroupName string, pod *v1.Pod, originator 
bool, preemptionPolicy *si.PreemptionPolicy) si.AllocationRequest {
+func CreateAllocationRequestForTask(appID, taskID string, resource 
*si.Resource, placeholder bool, taskGroupName string, pod *v1.Pod, originator 
bool, preemptionPolicy *si.PreemptionPolicy) *si.AllocationRequest {
        ask := si.AllocationAsk{
                AllocationKey:    taskID,
                ResourceAsk:      resource,
@@ -90,15 +90,13 @@ func CreateAllocationRequestForTask(appID, taskID string, 
resource *si.Resource,
                PreemptionPolicy: preemptionPolicy,
        }
 
-       result := si.AllocationRequest{
+       return &si.AllocationRequest{
                Asks: []*si.AllocationAsk{&ask},
                RmID: conf.GetSchedulerConf().ClusterID,
        }
-
-       return result
 }
 
-func CreateReleaseAskRequestForTask(appID, taskID, partition string) 
si.AllocationRequest {
+func CreateReleaseAskRequestForTask(appID, taskID, partition string) 
*si.AllocationRequest {
        toReleases := make([]*si.AllocationAskRelease, 0)
        toReleases = append(toReleases, &si.AllocationAskRelease{
                ApplicationID: appID,
@@ -111,12 +109,10 @@ func CreateReleaseAskRequestForTask(appID, taskID, 
partition string) si.Allocati
                AllocationAsksToRelease: toReleases,
        }
 
-       result := si.AllocationRequest{
+       return &si.AllocationRequest{
                Releases: &releaseRequest,
                RmID:     conf.GetSchedulerConf().ClusterID,
        }
-
-       return result
 }
 
 func GetTerminationTypeFromString(terminationTypeStr string) 
si.TerminationType {
@@ -126,7 +122,7 @@ func GetTerminationTypeFromString(terminationTypeStr 
string) si.TerminationType
        return si.TerminationType_STOPPED_BY_RM
 }
 
-func CreateReleaseAllocationRequestForTask(appID, allocUUID, partition, 
terminationType string) si.AllocationRequest {
+func CreateReleaseAllocationRequestForTask(appID, allocUUID, partition, 
terminationType string) *si.AllocationRequest {
        toReleases := make([]*si.AllocationRelease, 0)
        toReleases = append(toReleases, &si.AllocationRelease{
                ApplicationID:   appID,
@@ -140,17 +136,15 @@ func CreateReleaseAllocationRequestForTask(appID, 
allocUUID, partition, terminat
                AllocationsToRelease: toReleases,
        }
 
-       result := si.AllocationRequest{
+       return &si.AllocationRequest{
                Releases: &releaseRequest,
                RmID:     conf.GetSchedulerConf().ClusterID,
        }
-
-       return result
 }
 
 // CreateUpdateRequestForNewNode builds a NodeRequest for new node addition 
and restoring existing node
 func CreateUpdateRequestForNewNode(nodeID string, nodeLabels 
map[string]string, capacity *si.Resource, occupied *si.Resource,
-       existingAllocations []*si.Allocation, ready bool) si.NodeRequest {
+       existingAllocations []*si.Allocation, ready bool) *si.NodeRequest {
        // Use node's name as the NodeID, this is because when bind pod to node,
        // name of node is required but uid is optional.
        nodeInfo := &si.NodeInfo{
@@ -176,17 +170,16 @@ func CreateUpdateRequestForNewNode(nodeID string, 
nodeLabels map[string]string,
 
        nodes := make([]*si.NodeInfo, 1)
        nodes[0] = nodeInfo
-       request := si.NodeRequest{
+       return &si.NodeRequest{
                Nodes: nodes,
                RmID:  conf.GetSchedulerConf().ClusterID,
        }
-       return request
 }
 
 // CreateUpdateRequestForUpdatedNode builds a NodeRequest for any node updates 
like capacity,
 // ready status flag etc
 func CreateUpdateRequestForUpdatedNode(nodeID string, capacity *si.Resource, 
occupied *si.Resource,
-       ready bool) si.NodeRequest {
+       ready bool) *si.NodeRequest {
        nodeInfo := &si.NodeInfo{
                NodeID: nodeID,
                Attributes: map[string]string{
@@ -199,16 +192,15 @@ func CreateUpdateRequestForUpdatedNode(nodeID string, 
capacity *si.Resource, occ
 
        nodes := make([]*si.NodeInfo, 1)
        nodes[0] = nodeInfo
-       request := si.NodeRequest{
+       return &si.NodeRequest{
                Nodes: nodes,
                RmID:  conf.GetSchedulerConf().ClusterID,
        }
-       return request
 }
 
 // CreateUpdateRequestForDeleteOrRestoreNode builds a NodeRequest for Node 
actions like drain,
 // decommissioning & restore
-func CreateUpdateRequestForDeleteOrRestoreNode(nodeID string, action 
si.NodeInfo_ActionFromRM) si.NodeRequest {
+func CreateUpdateRequestForDeleteOrRestoreNode(nodeID string, action 
si.NodeInfo_ActionFromRM) *si.NodeRequest {
        deletedNodes := make([]*si.NodeInfo, 1)
        nodeInfo := &si.NodeInfo{
                NodeID: nodeID,
@@ -216,23 +208,20 @@ func CreateUpdateRequestForDeleteOrRestoreNode(nodeID 
string, action si.NodeInfo
        }
 
        deletedNodes[0] = nodeInfo
-       request := si.NodeRequest{
+       return &si.NodeRequest{
                Nodes: deletedNodes,
                RmID:  conf.GetSchedulerConf().ClusterID,
        }
-       return request
 }
 
-func CreateUpdateRequestForRemoveApplication(appID, partition string) 
si.ApplicationRequest {
+func CreateUpdateRequestForRemoveApplication(appID, partition string) 
*si.ApplicationRequest {
        removeApp := make([]*si.RemoveApplicationRequest, 0)
        removeApp = append(removeApp, &si.RemoveApplicationRequest{
                ApplicationID: appID,
                PartitionName: partition,
        })
-       request := si.ApplicationRequest{
+       return &si.ApplicationRequest{
                Remove: removeApp,
                RmID:   conf.GetSchedulerConf().ClusterID,
        }
-
-       return request
 }
diff --git a/pkg/shim/scheduler_mock_test.go b/pkg/shim/scheduler_mock_test.go
index 5bb6bb1a..9846eb9e 100644
--- a/pkg/shim/scheduler_mock_test.go
+++ b/pkg/shim/scheduler_mock_test.go
@@ -126,7 +126,7 @@ func (fc *MockScheduler) addNode(nodeName string, 
nodeLabels map[string]string,
                Build()
        request := common.CreateUpdateRequestForNewNode(nodeName, nodeLabels, 
nodeResource, nil, nil, true)
        fmt.Printf("report new nodes to scheduler, request: %s", 
request.String())
-       return fc.apiProvider.GetAPIs().SchedulerAPI.UpdateNode(&request)
+       return fc.apiProvider.GetAPIs().SchedulerAPI.UpdateNode(request)
 }
 
 // Deprecated: this method only updates the core without the shim. Prefer 
MockScheduler.AddPod(*v1.Pod) instead.


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


Reply via email to