@@ -55,40 +55,33 @@ func (u *UsageTracker) CreateOrUpdateEvent(ctx context.Context, project string,
5555 if k8serrors .IsNotFound (err ) { // element does not exist, we need to create it
5656 log .Debug ("no mcp usage element found. Creating a new one" , "objectKey" , objectKey )
5757
58+ now := metav1 .NewTime (time .Now ().UTC ())
5859 mcpUsage = v1.MCPUsage {
5960 ObjectMeta : metav1.ObjectMeta {
6061 Name : objectKey .Name ,
6162 Namespace : objectKey .Namespace ,
6263 },
63- Spec : v1.MCPUsageSpec {},
64+ Spec : v1.MCPUsageSpec {
65+ Project : project ,
66+ Workspace : workspace ,
67+ MCP : mcp_name ,
68+ Usage : []v1.DailyUsage {},
69+ LastUsageCaptured : now ,
70+ MCPCreatedAt : now ,
71+ },
6472 }
6573
6674 err = u .client .Create (ctx , & mcpUsage )
6775 if err != nil {
6876 return fmt .Errorf ("error when creating MCPUsage resource: %w" , err )
6977 }
70-
71- now := metav1 .NewTime (time .Now ().UTC ())
72- mcpUsage .Status = v1.MCPUsageStatus {
73- Project : project ,
74- Workspace : workspace ,
75- MCP : mcp_name ,
76- Usage : []v1.DailyUsage {},
77- LastUsageCaptured : now ,
78- MCPCreatedAt : now ,
79- }
80-
81- err = u .client .Status ().Update (ctx , & mcpUsage )
82- if err != nil {
83- return fmt .Errorf ("error when updating status for MCPUsage resource: %w" , err )
84- }
8578 } else {
8679 // check if mcpUsage element wants to be deleted
87- if ! mcpUsage .Status .MCPDeletedAt .IsZero () {
80+ if ! mcpUsage .Spec .MCPDeletedAt .IsZero () {
8881 log .Debug ("mcp was deleted in the past, update last usage captured and proceed" )
8982 // MCP was deleted, now created with the same name, update lastUsageCapture
90- mcpUsage .Status .LastUsageCaptured = metav1 .NewTime (time .Now ().UTC ())
91- err = u .client .Status (). Update (ctx , & mcpUsage )
83+ mcpUsage .Spec .LastUsageCaptured = metav1 .NewTime (time .Now ().UTC ())
84+ err = u .client .Update (ctx , & mcpUsage )
9285 if err != nil {
9386 return fmt .Errorf ("error when updating status for MCPUsage resource: %w" , err )
9487 }
@@ -110,22 +103,22 @@ func (u *UsageTracker) CreateOrUpdateEvent(ctx context.Context, project string,
110103}
111104
112105func (u * UsageTracker ) UpdateChargingTarget (ctx context.Context , mcpUsage * v1.MCPUsage ) error {
113- var project , workspace , mcp_name = mcpUsage .Status .Project , mcpUsage .Status .Workspace , mcpUsage .Status .MCP
106+ var project , workspace , mcp_name = mcpUsage .Spec .Project , mcpUsage .Spec .Workspace , mcpUsage .Spec .MCP
114107 log := u .initLogger ("update-charging-target" , project , workspace , mcp_name )
115108
116109 chargingTarget , err := helper .ResolveChargingTarget (ctx , u .client , project , workspace , mcp_name )
117110 if err != nil {
118111 log .Error (err , fmt .Sprintf ("error when resolving charging target %s %s %s" , project , workspace , mcp_name ))
119- mcpUsage .Status .Message = fmt . Sprintf ( "error when resolving charging target: %v" , err . Error ())
112+ mcpUsage .Spec .Message = "error when resolving charging target"
120113 chargingTarget = "missing"
121114 }
122115 if chargingTarget == "" {
123116 chargingTarget = "missing"
124- mcpUsage .Status .Message = "no charging target specified"
117+ mcpUsage .Spec .Message = "no charging target specified"
125118 }
126- mcpUsage .Status .ChargingTarget = chargingTarget
119+ mcpUsage .Spec .ChargingTarget = chargingTarget
127120
128- err = u .client .Status (). Update (ctx , mcpUsage )
121+ err = u .client .Update (ctx , mcpUsage )
129122 if err != nil {
130123 return fmt .Errorf ("error at updating MCPUsage status resource for %s %s %s: %w" , project , workspace , mcp_name , err )
131124 }
@@ -142,11 +135,11 @@ func (u *UsageTracker) DeletionEvent(ctx context.Context, project string, worksp
142135 Name : objectKey .Name ,
143136 Namespace : objectKey .Namespace ,
144137 },
145- Status : v1.MCPUsageStatus {
138+ Spec : v1.MCPUsageSpec {
146139 MCPDeletedAt : metav1 .NewTime (time .Now ().UTC ()),
147140 },
148141 }
149- err := u .client .Status (). Patch (ctx , & mcpUsage , client .Merge )
142+ err := u .client .Patch (ctx , & mcpUsage , client .Merge )
150143 if k8serrors .IsNotFound (err ) {
151144 return nil
152145 }
@@ -169,24 +162,24 @@ func (u *UsageTracker) ScheduledEvent(ctx context.Context) error {
169162
170163 var errs error
171164 for _ , mcpUsage := range mcpUsages .Items {
172- if ! mcpUsage .Status .MCPDeletedAt .IsZero () {
165+ if ! mcpUsage .Spec .MCPDeletedAt .IsZero () {
173166 // mcp does not exist anymore
174167 continue
175168 }
176169
177- var project , workspace , mcp_name = mcpUsage .Status .Project , mcpUsage .Status .Workspace , mcpUsage .Status .MCP
170+ var project , workspace , mcp_name = mcpUsage .Spec .Project , mcpUsage .Spec .Workspace , mcpUsage .Spec .MCP
178171 log = log .WithValues (
179172 "project" , project ,
180173 "workspace" , workspace ,
181174 "mcp" , mcp_name ,
182175 )
183176
184- usages := calculateUsage (now , mcpUsage .Status .LastUsageCaptured .Time )
185- usages = MergeDailyUsages (usages , mcpUsage .Status .Usage )
177+ usages := calculateUsage (now , mcpUsage .Spec .LastUsageCaptured .Time )
178+ usages = MergeDailyUsages (usages , mcpUsage .Spec .Usage )
186179
187- mcpUsage .Status .Usage = usages
188- mcpUsage .Status .LastUsageCaptured = metav1 .NewTime (now )
189- err = u .client .Status (). Update (ctx , & mcpUsage )
180+ mcpUsage .Spec .Usage = usages
181+ mcpUsage .Spec .LastUsageCaptured = metav1 .NewTime (now )
182+ err = u .client .Update (ctx , & mcpUsage )
190183 errs = errors .Join (errs , err )
191184 }
192185
0 commit comments