@@ -882,6 +882,115 @@ func TestServiceV2_AnnounceHost(t *testing.T) {
882
882
}
883
883
}
884
884
885
+ func TestServiceV2_ListHosts (t * testing.T ) {
886
+ tests := []struct {
887
+ name string
888
+ mock func (host []* resource.Host , hostManager resource.HostManager , mr * resource.MockResourceMockRecorder , mh * resource.MockHostManagerMockRecorder )
889
+ expect func (t * testing.T , host * resource.Host , resp []* commonv2.Host , err error )
890
+ }{
891
+ {
892
+ name : "host loaded successfully" ,
893
+ mock : func (host []* resource.Host , hostManager resource.HostManager , mr * resource.MockResourceMockRecorder , mh * resource.MockHostManagerMockRecorder ) {
894
+ gomock .InOrder (
895
+ mr .HostManager ().Return (hostManager ).Times (1 ),
896
+ mh .LoadAll ().Return (host ).Times (1 ),
897
+ )
898
+ },
899
+ expect : func (t * testing.T , host * resource.Host , resp []* commonv2.Host , err error ) {
900
+ assert := assert .New (t )
901
+ assert .NoError (err )
902
+ assert .Equal (len (resp ), 1 )
903
+ assert .EqualValues (resp [0 ], & commonv2.Host {
904
+ Id : mockHostID ,
905
+ Type : uint32 (pkgtypes .HostTypeNormal ),
906
+ Hostname : "foo" ,
907
+ Ip : "127.0.0.1" ,
908
+ Port : 8003 ,
909
+ DownloadPort : mockRawHost .DownloadPort ,
910
+ Cpu : & commonv2.CPU {
911
+ LogicalCount : mockCPU .LogicalCount ,
912
+ PhysicalCount : mockCPU .PhysicalCount ,
913
+ Percent : mockCPU .Percent ,
914
+ ProcessPercent : mockCPU .ProcessPercent ,
915
+ Times : & commonv2.CPUTimes {
916
+ User : mockCPU .Times .User ,
917
+ System : mockCPU .Times .System ,
918
+ Idle : mockCPU .Times .Idle ,
919
+ Nice : mockCPU .Times .Nice ,
920
+ Iowait : mockCPU .Times .Iowait ,
921
+ Irq : mockCPU .Times .Irq ,
922
+ Softirq : mockCPU .Times .Softirq ,
923
+ Steal : mockCPU .Times .Steal ,
924
+ Guest : mockCPU .Times .Guest ,
925
+ GuestNice : mockCPU .Times .GuestNice ,
926
+ },
927
+ },
928
+ Memory : & commonv2.Memory {
929
+ Total : mockMemory .Total ,
930
+ Available : mockMemory .Available ,
931
+ Used : mockMemory .Used ,
932
+ UsedPercent : mockMemory .UsedPercent ,
933
+ ProcessUsedPercent : mockMemory .ProcessUsedPercent ,
934
+ Free : mockMemory .Free ,
935
+ },
936
+ Network : & commonv2.Network {
937
+ TcpConnectionCount : mockNetwork .TCPConnectionCount ,
938
+ UploadTcpConnectionCount : mockNetwork .UploadTCPConnectionCount ,
939
+ Location : & mockNetwork .Location ,
940
+ Idc : & mockNetwork .IDC ,
941
+ DownloadRate : mockNetwork .DownloadRate ,
942
+ DownloadRateLimit : mockNetwork .DownloadRateLimit ,
943
+ UploadRate : mockNetwork .UploadRate ,
944
+ UploadRateLimit : mockNetwork .UploadRateLimit ,
945
+ },
946
+ Disk : & commonv2.Disk {
947
+ Total : mockDisk .Total ,
948
+ Free : mockDisk .Free ,
949
+ Used : mockDisk .Used ,
950
+ UsedPercent : mockDisk .UsedPercent ,
951
+ InodesTotal : mockDisk .InodesTotal ,
952
+ InodesUsed : mockDisk .InodesUsed ,
953
+ InodesFree : mockDisk .InodesFree ,
954
+ InodesUsedPercent : mockDisk .InodesUsedPercent ,
955
+ },
956
+ Build : & commonv2.Build {
957
+ GitVersion : mockBuild .GitVersion ,
958
+ GitCommit : & mockBuild .GitCommit ,
959
+ GoVersion : & mockBuild .GoVersion ,
960
+ Platform : & mockBuild .Platform ,
961
+ },
962
+ })
963
+ },
964
+ },
965
+ }
966
+
967
+ for _ , tc := range tests {
968
+ t .Run (tc .name , func (t * testing.T ) {
969
+ ctl := gomock .NewController (t )
970
+ defer ctl .Finish ()
971
+ scheduling := schedulingmocks .NewMockScheduling (ctl )
972
+ res := resource .NewMockResource (ctl )
973
+ dynconfig := configmocks .NewMockDynconfigInterface (ctl )
974
+ storage := storagemocks .NewMockStorage (ctl )
975
+ hostManager := resource .NewMockHostManager (ctl )
976
+ host := resource .NewHost (
977
+ mockRawHost .ID , mockRawHost .IP , mockRawHost .Hostname ,
978
+ mockRawHost .Port , mockRawHost .DownloadPort , mockRawHost .Type )
979
+ host .CPU = mockCPU
980
+ host .Memory = mockMemory
981
+ host .Network = mockNetwork
982
+ host .Disk = mockDisk
983
+ host .Build = mockBuild
984
+ hosts := []* resource.Host {host }
985
+ svc := NewV2 (& config.Config {Scheduler : mockSchedulerConfig , Metrics : config.MetricsConfig {EnableHost : true }}, res , scheduling , dynconfig , storage )
986
+
987
+ tc .mock (hosts , hostManager , res .EXPECT (), hostManager .EXPECT ())
988
+ resp , err := svc .ListHosts (context .Background ())
989
+ tc .expect (t , host , resp .Hosts , err )
990
+ })
991
+ }
992
+ }
993
+
885
994
func TestServiceV2_DeleteHost (t * testing.T ) {
886
995
tests := []struct {
887
996
name string
0 commit comments