func updateVPCNetworkConfigurationStatusWithAliveVPCs(ctx context.Context, client client.Client, ncName string, getAliveVPCsFn func(ncName string) []*model.Vpc) {
// read v1alpha1.VPCNetworkConfiguration by ncName
nc := &v1alpha1.VPCNetworkConfiguration{}
err := client.Get(ctx, apitypes.NamespacedName{Name: ncName}, nc)
if err != nil {
log.Error(err, "Failed to get VPCNetworkConfiguration", "Name", ncName)
return
}
if getAliveVPCsFn != nil {
aliveVPCs := sets.New[string]()
for _, vpc := range getAliveVPCsFn(ncName) {
aliveVPCs.Insert(*vpc.DisplayName)
}
var newVPCInfos []v1alpha1.VPCInfo
for _, vpcInfo := range nc.Status.VPCs {
if aliveVPCs.Has(vpcInfo.Name) {
newVPCInfos = append(newVPCInfos, vpcInfo)
}
}
nc.Status.VPCs = newVPCInfos
if err := client.Status().Update(ctx, nc); err != nil {
log.Error(err, "Failed to update VPCNetworkConfiguration status", "Name", ncName, "nc.Status.VPCs", nc.Status.VPCs)
return
}
log.Info("Updated VPCNetworkConfiguration status", "Name", ncName, "nc.Status.VPCs", nc.Status.VPCs)
}
}
The related code is about function
updateVPCNetworkConfigurationStatusWithAliveVPCsin networkinfo_utils.go,