Skip to content

Commit c4fab3d

Browse files
committed
fix funlen/cyclop for createorupdateall
1 parent 5ea491a commit c4fab3d

File tree

1 file changed

+71
-109
lines changed

1 file changed

+71
-109
lines changed

internal/controller/shared_controller.go

Lines changed: 71 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,14 @@ const (
5959
)
6060

6161
var (
62-
AppLabelKey = "app"
63-
MapserverName = "mapserver"
64-
LegendGeneratorName = "legend-generator"
65-
FeatureInfoGeneratorName = "featureinfo-generator"
66-
OgcWebserviceProxyName = "ogc-webservice-proxy"
62+
AppLabelKey = "app"
63+
MapserverName = "mapserver"
64+
LegendGeneratorName = "legend-generator"
65+
FeatureInfoGeneratorName = "featureinfo-generator"
66+
OgcWebserviceProxyName = "ogc-webservice-proxy"
67+
MapfileGeneratorName = "mapfile-generator"
68+
CapabilitiesGeneratorName = "capabilities-generator"
69+
InitScriptsName = "init-scripts"
6770

6871
// Service ports
6972
mapserverPortName = "mapserver"
@@ -1020,106 +1023,12 @@ func updateStatus[R Reconciler](ctx context.Context, r R, obj client.Object, con
10201023
}
10211024
}
10221025

1023-
// TODO fix linting (cyclop,funlen)
1024-
//
1025-
//nolint:cyclop,funlen
10261026
func createOrUpdateAllForWMSWFS[R Reconciler, O pdoknlv3.WMSWFS](ctx context.Context, r R, obj O, ownerInfo *smoothoperatorv1.OwnerInfo) (operationResults map[string]controllerutil.OperationResult, err error) {
1027-
operationResults = make(map[string]controllerutil.OperationResult)
10281027
reconcilerClient := getReconcilerClient(r)
10291028

1030-
hashedConfigMapNames := types.HashedConfigMapNames{}
1031-
1032-
// region ConfigMap
1033-
{
1034-
configMap := getBareConfigMap(obj, MapserverName)
1035-
if err = mutateConfigMap(r, obj, configMap); err != nil {
1036-
return operationResults, err
1037-
}
1038-
operationResults[smoothoperatorutils.GetObjectFullName(reconcilerClient, configMap)], err = controllerutil.CreateOrUpdate(ctx, reconcilerClient, configMap, func() error {
1039-
return mutateConfigMap(r, obj, configMap)
1040-
})
1041-
if err != nil {
1042-
return operationResults, fmt.Errorf("unable to create/update resource %s: %w", smoothoperatorutils.GetObjectFullName(reconcilerClient, configMap), err)
1043-
}
1044-
hashedConfigMapNames.ConfigMap = configMap.Name
1045-
}
1046-
// end region ConfigMap
1047-
1048-
// region ConfigMap-MapfileGenerator
1049-
if obj.Mapfile() == nil {
1050-
configMapMfg := getBareConfigMapMapfileGenerator(obj)
1051-
if err = mutateConfigMapMapfileGenerator(r, obj, configMapMfg, ownerInfo); err != nil {
1052-
return operationResults, err
1053-
}
1054-
operationResults[smoothoperatorutils.GetObjectFullName(reconcilerClient, configMapMfg)], err = controllerutil.CreateOrUpdate(ctx, reconcilerClient, configMapMfg, func() error {
1055-
return mutateConfigMapMapfileGenerator(r, obj, configMapMfg, ownerInfo)
1056-
})
1057-
if err != nil {
1058-
return operationResults, fmt.Errorf("unable to create/update resource %s: %w", smoothoperatorutils.GetObjectFullName(reconcilerClient, configMapMfg), err)
1059-
}
1060-
hashedConfigMapNames.MapfileGenerator = configMapMfg.Name
1061-
}
1062-
// end region ConfigMap-MapfileGenerator
1063-
1064-
// region ConfigMap-CapabilitiesGenerator
1065-
{
1066-
configMapCg := getBareConfigMapCapabilitiesGenerator(obj)
1067-
if err = mutateConfigMapCapabilitiesGenerator(r, obj, configMapCg, ownerInfo); err != nil {
1068-
return operationResults, err
1069-
}
1070-
operationResults[smoothoperatorutils.GetObjectFullName(reconcilerClient, configMapCg)], err = controllerutil.CreateOrUpdate(ctx, reconcilerClient, configMapCg, func() error {
1071-
return mutateConfigMapCapabilitiesGenerator(r, obj, configMapCg, ownerInfo)
1072-
})
1073-
if err != nil {
1074-
return operationResults, fmt.Errorf("unable to create/update resource %s: %w", smoothoperatorutils.GetObjectFullName(reconcilerClient, configMapCg), err)
1075-
}
1076-
hashedConfigMapNames.CapabilitiesGenerator = configMapCg.Name
1077-
}
1078-
// end region ConfigMap-CapabilitiesGenerator
1079-
1080-
// region ConfigMap-BlobDownload
1081-
if obj.Options().PrefetchData {
1082-
configMapBd := getBareConfigMapBlobDownload(obj)
1083-
if err = mutateConfigMapBlobDownload(r, obj, configMapBd); err != nil {
1084-
return operationResults, err
1085-
}
1086-
operationResults[smoothoperatorutils.GetObjectFullName(reconcilerClient, configMapBd)], err = controllerutil.CreateOrUpdate(ctx, reconcilerClient, configMapBd, func() error {
1087-
return mutateConfigMapBlobDownload(r, obj, configMapBd)
1088-
})
1089-
if err != nil {
1090-
return operationResults, fmt.Errorf("unable to create/update resource %s: %w", smoothoperatorutils.GetObjectFullName(reconcilerClient, configMapBd), err)
1091-
}
1092-
hashedConfigMapNames.BlobDownload = configMapBd.Name
1093-
}
1094-
// end region ConfigMap-BlobDownload
1095-
1096-
if obj.Type() == pdoknlv3.ServiceTypeWMS {
1097-
wms, _ := any(obj).(*pdoknlv3.WMS)
1098-
wmsReconciler := (*WMSReconciler)(r)
1099-
1100-
configMaps := make(map[string]func(*WMSReconciler, *pdoknlv3.WMS, *corev1.ConfigMap) error)
1101-
configMaps[LegendGeneratorName] = mutateConfigMapLegendGenerator
1102-
configMaps[FeatureInfoGeneratorName] = mutateConfigMapFeatureinfoGenerator
1103-
configMaps[OgcWebserviceProxyName] = mutateConfigMapOgcWebserviceProxy
1104-
for cmName, mutate := range configMaps {
1105-
cm, or, err := getConfigMap(ctx, wms, wmsReconciler, cmName, func(r *WMSReconciler, w *pdoknlv3.WMS, cm *corev1.ConfigMap) error {
1106-
return mutate(r, w, cm)
1107-
})
1108-
if or != nil {
1109-
operationResults[smoothoperatorutils.GetObjectFullName(reconcilerClient, cm)] = *or
1110-
}
1111-
if err != nil {
1112-
return operationResults, err
1113-
}
1114-
switch cmName {
1115-
case LegendGeneratorName:
1116-
hashedConfigMapNames.LegendGenerator = cm.Name
1117-
case FeatureInfoGeneratorName:
1118-
hashedConfigMapNames.FeatureInfoGenerator = cm.Name
1119-
case OgcWebserviceProxyName:
1120-
hashedConfigMapNames.OgcWebserviceProxy = cm.Name
1121-
}
1122-
}
1029+
hashedConfigMapNames, operationResults, err := createOrUpdateConfigMaps(ctx, r, obj, ownerInfo)
1030+
if err != nil {
1031+
return operationResults, err
11231032
}
11241033

11251034
// region Deployment
@@ -1128,12 +1037,6 @@ func createOrUpdateAllForWMSWFS[R Reconciler, O pdoknlv3.WMSWFS](ctx context.Con
11281037
operationResults[smoothoperatorutils.GetObjectFullName(reconcilerClient, deployment)], err = controllerutil.CreateOrUpdate(ctx, reconcilerClient, deployment, func() error {
11291038
return mutateDeployment(r, obj, deployment, hashedConfigMapNames)
11301039
})
1131-
// if operationResults[smoothoperatorutils.GetObjectFullName(reconcilerClient, deployment)] == controllerutil.OperationResultUpdated {
1132-
// deployment = getBareDeployment(obj)
1133-
// smoothoperatork8s.ShowDiff(ctx, reconcilerClient, deployment, func() error {
1134-
// return mutateDeployment(r, obj, deployment, hashedConfigMapNames)
1135-
// })
1136-
// }
11371040
if err != nil {
11381041
return operationResults, fmt.Errorf("unable to create/update resource %s: %w", smoothoperatorutils.GetObjectFullName(reconcilerClient, deployment), err)
11391042
}
@@ -1203,7 +1106,66 @@ func createOrUpdateAllForWMSWFS[R Reconciler, O pdoknlv3.WMSWFS](ctx context.Con
12031106
return operationResults, nil
12041107
}
12051108

1206-
func getConfigMap[O pdoknlv3.WMSWFS, R Reconciler](ctx context.Context, obj O, reconciler R, name string, mutate func(R, O, *corev1.ConfigMap) error) (*corev1.ConfigMap, *controllerutil.OperationResult, error) {
1109+
func createOrUpdateConfigMaps[R Reconciler, O pdoknlv3.WMSWFS](ctx context.Context, r R, obj O, ownerInfo *smoothoperatorv1.OwnerInfo) (hashedConfigMapNames types.HashedConfigMapNames, operationResults map[string]controllerutil.OperationResult, err error) {
1110+
operationResults, configMaps := make(map[string]controllerutil.OperationResult), make(map[string]func(R, O, *corev1.ConfigMap) error)
1111+
configMaps[MapserverName] = mutateConfigMap
1112+
if obj.Mapfile() == nil {
1113+
configMaps[MapfileGeneratorName] = func(r R, o O, cm *corev1.ConfigMap) error {
1114+
return mutateConfigMapMapfileGenerator(r, o, cm, ownerInfo)
1115+
}
1116+
}
1117+
configMaps[CapabilitiesGeneratorName] = func(r R, o O, cm *corev1.ConfigMap) error {
1118+
return mutateConfigMapCapabilitiesGenerator(r, o, cm, ownerInfo)
1119+
}
1120+
if obj.Options().PrefetchData {
1121+
configMaps[InitScriptsName] = mutateConfigMapBlobDownload
1122+
}
1123+
if obj.Type() == pdoknlv3.ServiceTypeWMS {
1124+
wms, _ := any(obj).(*pdoknlv3.WMS)
1125+
wmsReconciler := (*WMSReconciler)(r)
1126+
1127+
configMaps[LegendGeneratorName] = func(_ R, _ O, cm *corev1.ConfigMap) error {
1128+
return mutateConfigMapLegendGenerator(wmsReconciler, wms, cm)
1129+
}
1130+
configMaps[FeatureInfoGeneratorName] = func(_ R, _ O, cm *corev1.ConfigMap) error {
1131+
return mutateConfigMapFeatureinfoGenerator(wmsReconciler, wms, cm)
1132+
}
1133+
configMaps[OgcWebserviceProxyName] = func(_ R, _ O, cm *corev1.ConfigMap) error {
1134+
return mutateConfigMapOgcWebserviceProxy(wmsReconciler, wms, cm)
1135+
}
1136+
}
1137+
for cmName, mutate := range configMaps {
1138+
cm, or, err := createOrUpdateConfigMap(ctx, obj, r, cmName, func(r R, o O, cm *corev1.ConfigMap) error {
1139+
return mutate(r, o, cm)
1140+
})
1141+
if or != nil {
1142+
operationResults[smoothoperatorutils.GetObjectFullName(getReconcilerClient(r), cm)] = *or
1143+
}
1144+
if err != nil {
1145+
return hashedConfigMapNames, operationResults, err
1146+
}
1147+
switch cmName {
1148+
case MapserverName:
1149+
hashedConfigMapNames.ConfigMap = cm.Name
1150+
case MapfileGeneratorName:
1151+
hashedConfigMapNames.MapfileGenerator = cm.Name
1152+
case CapabilitiesGeneratorName:
1153+
hashedConfigMapNames.CapabilitiesGenerator = cm.Name
1154+
case InitScriptsName:
1155+
hashedConfigMapNames.BlobDownload = cm.Name
1156+
case LegendGeneratorName:
1157+
hashedConfigMapNames.LegendGenerator = cm.Name
1158+
case FeatureInfoGeneratorName:
1159+
hashedConfigMapNames.FeatureInfoGenerator = cm.Name
1160+
case OgcWebserviceProxyName:
1161+
hashedConfigMapNames.OgcWebserviceProxy = cm.Name
1162+
}
1163+
}
1164+
1165+
return hashedConfigMapNames, operationResults, err
1166+
}
1167+
1168+
func createOrUpdateConfigMap[O pdoknlv3.WMSWFS, R Reconciler](ctx context.Context, obj O, reconciler R, name string, mutate func(R, O, *corev1.ConfigMap) error) (*corev1.ConfigMap, *controllerutil.OperationResult, error) {
12071169
reconcilerClient := getReconcilerClient(reconciler)
12081170
cm := getBareConfigMap(obj, name)
12091171
if err := mutate(reconciler, obj, cm); err != nil {

0 commit comments

Comments
 (0)