fix Coroutines refer to the problem of circular variables

This commit is contained in:
devad 2024-01-09 19:38:17 +08:00
parent 49a59a4d05
commit 0c209f4355
2 changed files with 13 additions and 11 deletions

View File

@ -34,6 +34,7 @@ func (l *GetAppDetailLogic) GetAppDetail(in *kubernetes.AppDetailReq) (*kubernet
wg.Add(len(pkg.KClients))
//查询指定集群下指定命名空间下和名字的deployment详情
for k := range pkg.KClients {
cli := k
go func() {
defer wg.Done()
//转换赋值
@ -47,17 +48,17 @@ func (l *GetAppDetailLogic) GetAppDetail(in *kubernetes.AppDetailReq) (*kubernet
kSecret kubernetes.Secret
)
appDetail := kubernetes.AppDetail{
ClusterName: k,
ClusterName: cli,
}
//获取指定命名空间下的deployment
deployment, err := pkg.KClients[k].ClientSet.AppsV1().Deployments(in.Namespace).Get(l.ctx, in.Name, metav1.GetOptions{})
deployment, err := pkg.KClients[cli].ClientSet.AppsV1().Deployments(in.Namespace).Get(l.ctx, in.Name, metav1.GetOptions{})
if err == nil {
tool.Convert(deployment, &kDeployment)
appDetail.Deployment = &kDeployment
}
//查询指定集群下指定命名空间下和名字的statefulSets详情
statefulSets, err := pkg.KClients[k].ClientSet.AppsV1().StatefulSets(in.Namespace).Get(l.ctx, in.Name, metav1.GetOptions{})
statefulSets, err := pkg.KClients[cli].ClientSet.AppsV1().StatefulSets(in.Namespace).Get(l.ctx, in.Name, metav1.GetOptions{})
if err == nil {
tool.Convert(statefulSets, &kStatefulSets)
appDetail.StatefulSet = &kStatefulSets
@ -66,31 +67,31 @@ func (l *GetAppDetailLogic) GetAppDetail(in *kubernetes.AppDetailReq) (*kubernet
// 查询 Ingress 资源
labelSelector := fmt.Sprintf("cloud.sealos.io/app-deploy-manager=%s", in.Name)
// 执行查询操作,获取匹配标签的 Ingress 资源列表
ingresses, err := pkg.KClients[k].ClientSet.NetworkingV1().Ingresses(in.Namespace).List(l.ctx, metav1.ListOptions{LabelSelector: labelSelector})
ingresses, err := pkg.KClients[cli].ClientSet.NetworkingV1().Ingresses(in.Namespace).List(l.ctx, metav1.ListOptions{LabelSelector: labelSelector})
if err == nil {
tool.Convert(ingresses, &kIngresses)
appDetail.IngressList = &kIngresses
}
//查询 Service 资源
service, err := pkg.KClients[k].ClientSet.CoreV1().Services(in.Namespace).Get(l.ctx, in.Name, metav1.GetOptions{})
service, err := pkg.KClients[cli].ClientSet.CoreV1().Services(in.Namespace).Get(l.ctx, in.Name, metav1.GetOptions{})
if err == nil {
tool.Convert(service, &kService)
appDetail.Service = &kService
}
//查询configmap
configmap, err := pkg.KClients[k].ClientSet.CoreV1().ConfigMaps(in.Namespace).Get(l.ctx, in.Name, metav1.GetOptions{})
configmap, err := pkg.KClients[cli].ClientSet.CoreV1().ConfigMaps(in.Namespace).Get(l.ctx, in.Name, metav1.GetOptions{})
if err == nil {
tool.Convert(configmap, &kConfigMap)
appDetail.ConfigMap = &kConfigMap
}
//查询hpa
hpa, err := pkg.KClients[k].ClientSet.AutoscalingV1().HorizontalPodAutoscalers(in.Namespace).Get(l.ctx, in.Name, metav1.GetOptions{})
hpa, err := pkg.KClients[cli].ClientSet.AutoscalingV1().HorizontalPodAutoscalers(in.Namespace).Get(l.ctx, in.Name, metav1.GetOptions{})
if err == nil {
tool.Convert(hpa, &kHpa)
appDetail.HorizontalPodAutoscaler = &kHpa
}
secret, err := pkg.KClients[k].ClientSet.CoreV1().Secrets(in.Namespace).Get(l.ctx, in.Name, metav1.GetOptions{})
secret, err := pkg.KClients[cli].ClientSet.CoreV1().Secrets(in.Namespace).Get(l.ctx, in.Name, metav1.GetOptions{})
if err == nil {
tool.Convert(secret, &kSecret)
appDetail.Secret = &kSecret

View File

@ -35,6 +35,7 @@ func (l *GetAppPodsByAppNameLogic) GetAppPodsByAppName(in *kubernetes.AppDetailR
wg.Add(len(pkg.KClients))
//查询指定集群下指定命名空间下和名字的deployment详情
for k, _ := range pkg.KClients {
cli := k
go func() {
defer wg.Done()
appDetail := kubernetes.PodDetail{}
@ -42,12 +43,12 @@ func (l *GetAppPodsByAppNameLogic) GetAppPodsByAppName(in *kubernetes.AppDetailR
appSelector := fmt.Sprintf("app=%s", in.Name)
var KPodList []*kubernetes.Pod
//查询pods
pods, err := pkg.KClients[k].ClientSet.CoreV1().Pods(in.Namespace).List(context.Background(), metav1.ListOptions{LabelSelector: appSelector})
pods, err := pkg.KClients[cli].ClientSet.CoreV1().Pods(in.Namespace).List(context.Background(), metav1.ListOptions{LabelSelector: appSelector})
if err != nil {
logx.Error(err.Error())
}
//查询指定集群下指定命名空间下和名字的statefulSets详情
statefulSets, _ := pkg.KClients[k].ClientSet.AppsV1().StatefulSets(in.Namespace).Get(context.Background(), in.Name, metav1.GetOptions{})
statefulSets, _ := pkg.KClients[cli].ClientSet.AppsV1().StatefulSets(in.Namespace).Get(context.Background(), in.Name, metav1.GetOptions{})
//计算存储卷大小
if statefulSets.Spec.VolumeClaimTemplates != nil {
//存储卷大小求和
@ -60,7 +61,7 @@ func (l *GetAppPodsByAppNameLogic) GetAppPodsByAppName(in *kubernetes.AppDetailR
if len(pods.Items) > 0 {
tool.Convert(pods.Items, &KPodList)
appDetail.PodList = KPodList
appDetail.ClusterName = k
appDetail.ClusterName = cli
details = append(details, &appDetail)
}
}()