@@ -12,8 +12,9 @@ import (
1212)
1313
1414const labelChargingTarget = "openmcp.cloud.sap/charging-target"
15+ const labelChargingTargetType = "openmcp.cloud.sap/charging-target-type"
1516
16- func ResolveChargingTarget (ctx context.Context , client k8s.Client , projectName string , workspaceName string , mcpName string ) (string , error ) {
17+ func ResolveChargingTarget (ctx context.Context , client k8s.Client , projectName string , workspaceName string , mcpName string ) (string , string , error ) {
1718 var project pwcorev1alpha1.Project
1819 var workspace pwcorev1alpha1.Workspace
1920 var mcp mcpcorev1alpha1.ManagedControlPlane
@@ -22,52 +23,57 @@ func ResolveChargingTarget(ctx context.Context, client k8s.Client, projectName s
2223 Name : projectName ,
2324 }, & project )
2425 if errors .IsNotFound (err ) {
25- return "" , fmt .Errorf ("cant find project %v: %w" , projectName , err )
26+ return "" , "" , fmt .Errorf ("cant find project %v: %w" , projectName , err )
2627 } else if err != nil {
27- return "" , fmt .Errorf ("error when getting project %v: %w" , projectName , err )
28+ return "" , "" , fmt .Errorf ("error when getting project %v: %w" , projectName , err )
2829 }
2930
3031 err = client .Get (ctx , k8s.ObjectKey {
3132 Name : workspaceName ,
3233 Namespace : fmt .Sprintf ("project-%s" , projectName ),
3334 }, & workspace )
3435 if errors .IsNotFound (err ) {
35- return "" , fmt .Errorf ("cant find workspace %v: %w" , workspaceName , err )
36+ return "" , "" , fmt .Errorf ("cant find workspace %v: %w" , workspaceName , err )
3637 } else if err != nil {
37- return "" , fmt .Errorf ("error when getting workspace %v: %w" , workspaceName , err )
38+ return "" , "" , fmt .Errorf ("error when getting workspace %v: %w" , workspaceName , err )
3839 }
3940
4041 err = client .Get (ctx , k8s.ObjectKey {
4142 Name : mcpName ,
4243 Namespace : fmt .Sprintf ("project-%s--ws-%s" , projectName , workspaceName ),
4344 }, & mcp )
4445 if errors .IsNotFound (err ) {
45- return "" , fmt .Errorf ("cant find mcp %v: %w" , mcpName , err )
46+ return "" , "" , fmt .Errorf ("cant find mcp %v: %w" , mcpName , err )
4647 } else if err != nil {
47- return "" , fmt .Errorf ("error when getting mcp %v: %w" , mcpName , err )
48+ return "" , "" , fmt .Errorf ("error when getting mcp %v: %w" , mcpName , err )
4849 }
4950
5051 foundOne := false
5152 chargingTarget , ok := project .GetLabels ()[labelChargingTarget ]
53+ chargingTargetType := project .GetLabels ()[labelChargingTargetType ]
5254 if ok {
5355 foundOne = true
5456 }
5557
5658 wsChargingTarget , ok := workspace .GetLabels ()[labelChargingTarget ]
59+ wsChargingTargetType := workspace .GetLabels ()[labelChargingTargetType ]
5760 if ok {
5861 foundOne = true
5962 chargingTarget = wsChargingTarget
63+ chargingTargetType = wsChargingTargetType
6064 }
6165
6266 mcpChargingTarget , ok := mcp .GetLabels ()[labelChargingTarget ]
67+ mcpChargingTargetType := mcp .GetLabels ()[labelChargingTargetType ]
6368 if ok {
6469 foundOne = true
6570 chargingTarget = mcpChargingTarget
71+ chargingTargetType = mcpChargingTargetType
6672 }
6773
6874 if ! foundOne {
69- return "" , fmt .Errorf ("can't find any charging target for project(%s) workspace(%s) mcp(%s)" , projectName , workspaceName , mcpName )
75+ return "" , "" , fmt .Errorf ("can't find any charging target for project(%s) workspace(%s) mcp(%s)" , projectName , workspaceName , mcpName )
7076 }
7177
72- return chargingTarget , nil
78+ return chargingTarget , chargingTargetType , nil
7379}
0 commit comments