@@ -76,25 +76,31 @@ func (g *GenesisKubernetes) receiveKubernetesData(kChan chan common.KubernetesIn
7676 for {
7777 select {
7878 case k := <- kChan :
79- g .data .Store (fmt .Sprintf ("%d-%s" , k .ORGID , k .ClusterID ), k )
79+ g .data .Store (fmt .Sprintf ("%d-%s" , k .ORGID , k .ClusterID ), & k )
8080 case <- g .ctx .Done ():
8181 break
8282 }
8383 }
8484}
8585
8686func (g * GenesisKubernetes ) GetKubernetesData (orgID int , clusterID string ) (common.KubernetesInfo , bool ) {
87- k8sDataInterface , ok := g .data .Load (fmt .Sprintf ("%d-%s" , orgID , clusterID ))
87+ key := fmt .Sprintf ("%d-%s" , orgID , clusterID )
88+ k8sDataInterface , ok := g .data .Load (key )
8889 if ! ok {
8990 log .Warningf ("kubernetes data not found cluster id (%s)" , clusterID , logger .NewORGPrefix (orgID ))
9091 return common.KubernetesInfo {}, false
9192 }
92- k8sData , ok := k8sDataInterface .(common.KubernetesInfo )
93+ k8sData , ok := k8sDataInterface .(* common.KubernetesInfo )
9394 if ! ok {
9495 log .Error ("kubernetes data interface assert failed" , logger .NewORGPrefix (orgID ))
9596 return common.KubernetesInfo {}, false
9697 }
97- return k8sData , true
98+ if time .Now ().Sub (k8sData .Epoch ) > time .Duration (g .config .GenesisCfg .AgingTime )* time .Second {
99+ log .Debugf ("kubernetes data expired cluster id (%s)" , clusterID , logger .NewORGPrefix (orgID ))
100+ g .data .CompareAndDelete (key , k8sDataInterface )
101+ return common.KubernetesInfo {}, false
102+ }
103+ return * k8sData , true
98104}
99105
100106func (g * GenesisKubernetes ) GetKubernetesResponse (orgID int , clusterID , destIP string ) (map [string ][][]byte , error ) {
0 commit comments