Skip to content

Fixed commitments amount uint64 overflow on more active servers with flavor than committed#376

Merged
PhilippMatthes merged 1 commit intomainfrom
fix-reservations-operator
Nov 7, 2025
Merged

Fixed commitments amount uint64 overflow on more active servers with flavor than committed#376
PhilippMatthes merged 1 commit intomainfrom
fix-reservations-operator

Conversation

@SoWieMarkus
Copy link
Copy Markdown
Collaborator

@SoWieMarkus SoWieMarkus commented Nov 7, 2025

The reservations operator ran into an uint64 overflow when there are more active servers with the given flavor of a commitment, than requested by the commitment (commitment.Amount).

This was because after iterating the active servers we expected commitment.Amount to be negative if this case occurs. Since commitment.Amount is unsigned, it will never be negative.

In this PR i fixed it by counting the matching servers and checking them before subtracting them form commitment.Amount.

(A cleaner solution might be to not modify the results of limes and instead create a commitment DTO)

@SoWieMarkus SoWieMarkus mentioned this pull request Nov 7, 2025
8 tasks
@SoWieMarkus SoWieMarkus marked this pull request as ready for review November 7, 2025 10:57
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Nov 7, 2025

Test Coverage Report

Coverage in lib module (lib/): 48.9%
github.com/cobaltcore-dev/cortex/lib/conf/conf.go:79:			GetConfigOrDie			0.0%
github.com/cobaltcore-dev/cortex/lib/conf/conf.go:96:			newConfigFromMaps		75.0%
github.com/cobaltcore-dev/cortex/lib/conf/conf.go:112:			readRawConfig			75.0%
github.com/cobaltcore-dev/cortex/lib/conf/conf.go:125:			readRawConfigFromBytes		75.0%
github.com/cobaltcore-dev/cortex/lib/conf/conf.go:134:			mergeMaps			100.0%
github.com/cobaltcore-dev/cortex/lib/conf/conf.go:156:			GetDBConfig			100.0%
github.com/cobaltcore-dev/cortex/lib/conf/conf.go:157:			GetMonitoringConfig		100.0%
github.com/cobaltcore-dev/cortex/lib/conf/conf.go:158:			GetKeystoneConfig		0.0%
github.com/cobaltcore-dev/cortex/lib/conf/opts.go:19:			NewRawOpts			100.0%
github.com/cobaltcore-dev/cortex/lib/conf/opts.go:23:			NewRawOptsBytes			75.0%
github.com/cobaltcore-dev/cortex/lib/conf/opts.go:33:			Unmarshal			66.7%
github.com/cobaltcore-dev/cortex/lib/conf/opts.go:42:			UnmarshalJSON			0.0%
github.com/cobaltcore-dev/cortex/lib/conf/opts.go:57:			Load				83.3%
github.com/cobaltcore-dev/cortex/lib/conf/validation.go:12:		Validate			66.7%
github.com/cobaltcore-dev/cortex/lib/db/db.go:48:			FromSecretRef			0.0%
github.com/cobaltcore-dev/cortex/lib/db/db.go:126:			SelectTimed			0.0%
github.com/cobaltcore-dev/cortex/lib/db/db.go:138:			CreateTable			70.0%
github.com/cobaltcore-dev/cortex/lib/db/db.go:155:			AddTable			66.7%
github.com/cobaltcore-dev/cortex/lib/db/db.go:166:			TableExists			58.3%
github.com/cobaltcore-dev/cortex/lib/db/db.go:195:			ReplaceAll			50.0%
github.com/cobaltcore-dev/cortex/lib/db/db.go:222:			BulkInsert			84.4%
github.com/cobaltcore-dev/cortex/lib/db/monitor.go:17:			NewUnregisteredDBMonitor	0.0%
github.com/cobaltcore-dev/cortex/lib/db/monitor.go:33:			NewDBMonitor			0.0%
github.com/cobaltcore-dev/cortex/lib/db/monitor.go:42:			Describe			0.0%
github.com/cobaltcore-dev/cortex/lib/db/monitor.go:47:			Collect				0.0%
github.com/cobaltcore-dev/cortex/lib/keystone/api.go:28:		FromSecretRef			0.0%
github.com/cobaltcore-dev/cortex/lib/keystone/api.go:108:		NewKeystoneAPI			100.0%
github.com/cobaltcore-dev/cortex/lib/keystone/api.go:113:		NewKeystoneAPIWithHTTPClient	0.0%
github.com/cobaltcore-dev/cortex/lib/keystone/api.go:118:		Authenticate			71.4%
github.com/cobaltcore-dev/cortex/lib/keystone/api.go:151:		FindEndpoint			0.0%
github.com/cobaltcore-dev/cortex/lib/keystone/api.go:158:		Availability			0.0%
github.com/cobaltcore-dev/cortex/lib/keystone/api.go:163:		Client				0.0%
github.com/cobaltcore-dev/cortex/lib/monitoring/monitoring.go:23:	NewRegistry			100.0%
github.com/cobaltcore-dev/cortex/lib/monitoring/monitoring.go:35:	Gather				87.5%
github.com/cobaltcore-dev/cortex/lib/sso/sso.go:26:			RoundTrip			0.0%
github.com/cobaltcore-dev/cortex/lib/sso/sso.go:35:			FromSecretRef			0.0%
github.com/cobaltcore-dev/cortex/lib/sso/sso.go:67:			NewHTTPClient			100.0%
github.com/cobaltcore-dev/cortex/lib/tools/histogram.go:7:		Histogram			100.0%
total:									(statements)			48.9%
Coverage in reservations module (reservations/internal/): 65.0%
github.com/cobaltcore-dev/cortex/reservations/internal/commitments/client.go:54:	NewCommitmentsClient		100.0%
github.com/cobaltcore-dev/cortex/reservations/internal/commitments/client.go:59:	Init				0.0%
github.com/cobaltcore-dev/cortex/reservations/internal/commitments/client.go:117:	ListFlavorsByName		92.3%
github.com/cobaltcore-dev/cortex/reservations/internal/commitments/client.go:140:	ListProjects			88.9%
github.com/cobaltcore-dev/cortex/reservations/internal/commitments/client.go:158:	ListCommitmentsByID		100.0%
github.com/cobaltcore-dev/cortex/reservations/internal/commitments/client.go:201:	listCommitments			90.5%
github.com/cobaltcore-dev/cortex/reservations/internal/commitments/client.go:238:	ListServersByProjectID		100.0%
github.com/cobaltcore-dev/cortex/reservations/internal/commitments/client.go:278:	listServersForProject		88.9%
github.com/cobaltcore-dev/cortex/reservations/internal/commitments/messages.go:135:	UnmarshalJSON			77.8%
github.com/cobaltcore-dev/cortex/reservations/internal/commitments/messages.go:158:	MarshalJSON			0.0%
github.com/cobaltcore-dev/cortex/reservations/internal/commitments/syncer.go:38:	NewSyncer			0.0%
github.com/cobaltcore-dev/cortex/reservations/internal/commitments/syncer.go:46:	Init				66.7%
github.com/cobaltcore-dev/cortex/reservations/internal/commitments/syncer.go:61:	resolveUnusedCommitments	53.2%
github.com/cobaltcore-dev/cortex/reservations/internal/commitments/syncer.go:162:	SyncReservations		66.7%
github.com/cobaltcore-dev/cortex/reservations/internal/commitments/syncer.go:266:	Run				80.0%
github.com/cobaltcore-dev/cortex/reservations/internal/controller/client.go:53:		NewHypervisorClient		0.0%
github.com/cobaltcore-dev/cortex/reservations/internal/controller/client.go:58:		Init				0.0%
github.com/cobaltcore-dev/cortex/reservations/internal/controller/client.go:92:		ListHypervisors			0.0%
github.com/cobaltcore-dev/cortex/reservations/internal/controller/controller.go:43:	Reconcile			69.0%
github.com/cobaltcore-dev/cortex/reservations/internal/controller/controller.go:204:	SetupWithManager		0.0%
github.com/cobaltcore-dev/cortex/reservations/internal/controller/monitor.go:33:	Init				100.0%
github.com/cobaltcore-dev/cortex/reservations/internal/controller/monitor.go:45:	Describe			100.0%
github.com/cobaltcore-dev/cortex/reservations/internal/controller/monitor.go:51:	Collect				100.0%
total:											(statements)			65.0%
Coverage in scheduling module (scheduling/internal/): 68.3%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/cinder/cleanup.go:22:						cleanupCinder				77.5%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/cinder/cleanup.go:98:						CleanupCinderDecisionsRegularly		100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/cinder/pipeline_controller.go:53:				Reconcile				69.4%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/cinder/pipeline_controller.go:111:				InitPipeline				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/cinder/pipeline_controller.go:120:				ProcessNewDecisionFromAPI		77.8%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/cinder/pipeline_controller.go:155:				SetupWithManager			0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/controller.go:41:					shouldReconcileDecision			100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/controller.go:56:					Reconcile				81.8%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/controller.go:76:					reconcileHistory			78.8%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/controller.go:136:					reconcileExplanation			60.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/controller.go:158:					StartupCallback				77.8%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/controller.go:181:					SetupWithManager			0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/explainer.go:28:					NewExplainer				75.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/explainer.go:41:					Explain					100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/explainer.go:46:					getResourceType				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/explainer.go:62:					calculateScoreGap			100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/explainer.go:80:					fetchDecisionChain			92.3%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/explainer.go:120:					buildHostSegments			95.8%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/explainer.go:171:					detectLoop				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/explainer.go:183:					findWinner				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/explainer.go:212:					calculateScoresFromSteps		93.8%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/explainer.go:257:					calculateScoresWithoutStep		83.3%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/explainer.go:271:					findCriticalSteps			78.9%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/explainer.go:315:					calculateStepImpacts			97.1%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/explainer.go:397:					buildContextData			100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/explainer.go:419:					buildHistoryData			94.4%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/explainer.go:461:					buildWinnerData				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/explainer.go:496:					buildInputData				95.5%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/explainer.go:548:					buildCriticalStepsData			100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/explainer.go:566:					buildDeletedHostsData			90.5%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/explainer.go:616:					buildChainData				86.7%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/explainer.go:655:					ExplainWithTemplates			87.5%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/templates.go:18:					NewTemplateManager			81.2%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/templates.go:59:					RenderExplanation			80.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/explanation/templates.go:68:					formatTemplateDuration			90.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/machines/noop.go:18:						Init					100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/machines/noop.go:27:						Run					100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/machines/pipeline_controller.go:45:				Reconcile				66.7%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/machines/pipeline_controller.go:107:				InitPipeline				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/machines/pipeline_controller.go:115:				handleMachine				0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/machines/pipeline_controller.go:173:				SetupWithManager			0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/manila/cleanup.go:24:						cleanupManila				81.4%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/manila/cleanup.go:101:						CleanupManilaDecisionsRegularly		100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/manila/pipeline_controller.go:53:				Reconcile				69.4%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/manila/pipeline_controller.go:111:				InitPipeline				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/manila/pipeline_controller.go:120:				ProcessNewDecisionFromAPI		83.3%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/manila/pipeline_controller.go:155:				SetupWithManager			0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/manila/plugins/netapp/cpu_usage_balancing.go:31:			Validate				60.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/manila/plugins/netapp/cpu_usage_balancing.go:49:			Run					93.8%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/cleanup.go:23:						cleanupNova				83.3%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/cleanup.go:116:						CleanupNovaDecisionsRegularly		100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/pipeline_controller.go:53:					Reconcile				72.2%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/pipeline_controller.go:111:					InitPipeline				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/pipeline_controller.go:120:					ProcessNewDecisionFromAPI		83.3%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/pipeline_controller.go:155:					SetupWithManager			13.6%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/shared/filter_compute_capabilities.go:33:		convertToCapabilities			100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/shared/filter_compute_capabilities.go:50:		Run					86.5%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/shared/filter_correct_az.go:20:			Run					78.6%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/shared/filter_disabled.go:22:			Run					90.9%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/shared/filter_external_customer.go:24:		Validate				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/shared/filter_external_customer.go:37:		Run					96.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/shared/filter_has_accelerators.go:22:		Run					93.3%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/shared/filter_has_enough_capacity.go:22:		Validate				0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/shared/filter_has_enough_capacity.go:42:		Run					90.6%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/shared/filter_has_requested_traits.go:22:		Run					97.3%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/shared/filter_host_instructions.go:21:		Run					100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/shared/filter_packed_virtqueue.go:21:		Run					93.3%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/shared/filter_project_aggregates.go:21:		Run					92.9%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/shared/resource_balancing.go:54:			Validate				0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/shared/resource_balancing.go:96:			Run					95.9%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/vmware/anti_affinity_noisy_projects.go:25:		Validate				0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/vmware/anti_affinity_noisy_projects.go:40:		Run					75.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/vmware/avoid_long_term_contended_hosts.go:31:	Validate				0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/vmware/avoid_long_term_contended_hosts.go:49:	Run					85.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/vmware/avoid_short_term_contended_hosts.go:31:	Validate				0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/vmware/avoid_short_term_contended_hosts.go:49:	Run					85.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/vmware/general_purpose_balancing.go:24:		Validate				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/vmware/general_purpose_balancing.go:39:		Run					94.1%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/vmware/hana_binpacking.go:24:			Validate				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/decisions/nova/plugins/vmware/hana_binpacking.go:39:			Run					82.9%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/cleanup.go:22:						Start					82.4%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/cleanup.go:61:						Reconcile				70.6%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/cleanup.go:93:						SetupWithManager			0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/cycle_detector.go:26:					NewCycleDetector			0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/cycle_detector.go:31:					Init					0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/cycle_detector.go:35:					Filter					100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/executor.go:41:						Reconcile				67.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/executor.go:237:						SetupWithManager			14.3%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/monitor.go:26:						NewPipelineMonitor			100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/monitor.go:54:						Describe				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/monitor.go:61:						Collect					100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/monitor.go:80:						monitorStep				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/monitor.go:99:						Init					100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/monitor.go:104:						Run					100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/nova_api.go:49:						NewNovaAPI				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/nova_api.go:53:						Init					0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/nova_api.go:91:						Get					75.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/nova_api.go:100:						LiveMigrate				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/nova_api.go:111:						GetServerMigrations			74.1%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/pipeline.go:41:						Init					100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/pipeline.go:69:						run					90.9%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/pipeline.go:100:						combine					100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/pipeline.go:154:						createDeschedulings			0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/pipeline_controller.go:44:				InitPipeline				0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/pipeline_controller.go:54:				CreateDeschedulingsPeriodically		0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/pipeline_controller.go:76:				Reconcile				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/pipeline_controller.go:81:				SetupWithManager			10.5%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/plugins/base.go:27:					Init					50.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/descheduling/nova/plugins/kvm/avoid_high_steal_pct.go:24:			Run					92.3%
github.com/cobaltcore-dev/cortex/scheduling/internal/e2e/cinder/checks.go:21:							RunChecks				0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/e2e/cinder/checks.go:26:							checkCinderSchedulerReturnsValidHosts	0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/e2e/manila/checks.go:26:							RunChecks				0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/e2e/manila/checks.go:31:							checkManilaSchedulerReturnsValidHosts	0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/e2e/nova/checks.go:54:							getHypervisors				0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/e2e/nova/checks.go:97:							prepare					0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/e2e/nova/checks.go:244:							randomRequest				0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/e2e/nova/checks.go:311:							checkNovaSchedulerReturnsValidHosts	0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/e2e/nova/checks.go:341:							RunChecks				0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/activation.go:12:							NoEffect				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/activation.go:15:							Norm					100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/activation.go:21:							Apply					100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/api_monitor.go:22:							NewSchedulerMonitor			100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/api_monitor.go:33:							Describe				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/api_monitor.go:37:							Collect					100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/api_monitor.go:51:							Callback				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/api_monitor.go:57:							Respond					100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/pipeline.go:47:							NewPipeline				94.4%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/pipeline.go:91:							runSteps				81.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/pipeline.go:126:							normalizeInputWeights			100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/pipeline.go:135:							applyStepWeights			87.5%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/pipeline.go:156:							sortSubjectsByWeights			100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/pipeline.go:166:							Run					100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/pipeline_controller.go:46:						InitAllPipelines			83.3%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/pipeline_controller.go:66:						handlePipelineChange			81.8%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/pipeline_controller.go:146:						HandlePipelineCreated			100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/pipeline_controller.go:160:						HandlePipelineUpdated			0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/pipeline_controller.go:173:						HandlePipelineDeleted			100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/pipeline_controller.go:184:						handleStepChange			82.5%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/pipeline_controller.go:260:						HandleStepCreated			100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/pipeline_controller.go:274:						HandleStepUpdated			0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/pipeline_controller.go:287:						HandleStepDeleted			18.8%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/pipeline_controller.go:319:						handleKnowledgeChange			81.2%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/pipeline_controller.go:353:						HandleKnowledgeCreated			0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/pipeline_controller.go:366:						HandleKnowledgeUpdated			100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/pipeline_controller.go:388:						HandleKnowledgeDeleted			100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/pipeline_monitor.go:37:						NewPipelineMonitor			100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/pipeline_monitor.go:110:						SubPipeline				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/pipeline_monitor.go:117:						observePipelineResult			50.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/scaling.go:7:								clamp					100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/scaling.go:22:								MinMaxScale				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/step.go:31:								Validate				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/step.go:59:								Init					58.3%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/step.go:82:								PrepareResult				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/step.go:92:								PrepareStats				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/step_monitor.go:47:							Init					100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/step_monitor.go:52:							monitorStep				75.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/step_monitor.go:84:							Run					40.3%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/step_monitor.go:229:							impact					94.4%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/step_validation.go:25:							Init					0.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/step_validation.go:34:							validateStep				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/lib/step_validation.go:42:							Run					84.6%
github.com/cobaltcore-dev/cortex/scheduling/internal/shims/cinder/api.go:43:							NewAPI					100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/shims/cinder/api.go:52:							Init					100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/shims/cinder/api.go:59:							canRunScheduler				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/shims/cinder/api.go:84:							CinderExternalScheduler			78.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/shims/manila/api.go:43:							NewAPI					100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/shims/manila/api.go:52:							Init					100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/shims/manila/api.go:59:							canRunScheduler				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/shims/manila/api.go:84:							ManilaExternalScheduler			78.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/shims/nova/api.go:43:							NewAPI					100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/shims/nova/api.go:52:							Init					100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/shims/nova/api.go:59:							canRunScheduler				100.0%
github.com/cobaltcore-dev/cortex/scheduling/internal/shims/nova/api.go:84:							NovaExternalScheduler			78.0%
total:																(statements)				68.3%
Coverage in knowledge module (knowledge/internal/): 63.1%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/monitor.go:21:							NewSyncMonitor			100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/monitor.go:42:							Describe			100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/monitor.go:48:							Collect				100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/cinder/cinder_api.go:38:				NewCinderAPI			100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/cinder/cinder_api.go:46:				Init				81.8%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/cinder/cinder_api.go:69:				GetAllStoragePools		73.3%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/cinder/cinder_sync.go:28:				Init				83.3%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/cinder/cinder_sync.go:41:				Sync				100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/cinder/cinder_sync.go:52:				SyncAllStoragePools		53.8%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/controller.go:56:					Reconcile			0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/controller.go:255:					SetupWithManager		0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/identity/identity_api.go:36:				NewIdentityAPI			100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/identity/identity_api.go:40:				Init				80.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/identity/identity_api.go:60:				GetAllDomains			66.7%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/identity/identity_api.go:84:				GetAllProjects			72.2%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/identity/identity_sync.go:27:				Init				85.7%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/identity/identity_sync.go:42:				Sync				83.3%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/identity/identity_sync.go:55:				SyncDomains			53.8%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/identity/identity_sync.go:75:				SyncProjects			53.8%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/limes/limes_api.go:46:				NewLimesAPI			100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/limes/limes_api.go:51:				Init				81.8%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/limes/limes_api.go:75:				GetAllCommitments		90.3%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/limes/limes_api.go:125:				getCommitments			84.2%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/limes/limes_sync.go:29:				Init				83.3%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/limes/limes_sync.go:42:				Sync				100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/limes/limes_sync.go:53:				SyncCommitments			63.2%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/manila/manila_api.go:42:				NewManilaAPI			100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/manila/manila_api.go:47:				Init				81.8%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/manila/manila_api.go:70:				GetAllStoragePools		75.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/manila/manila_sync.go:29:				Init				83.3%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/manila/manila_sync.go:42:				Sync				100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/manila/manila_sync.go:53:				SyncAllStoragePools		53.8%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/nova/nova_api.go:55:					NewNovaAPI			100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/nova/nova_api.go:60:					Init				81.8%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/nova/nova_api.go:86:					GetAllServers			68.8%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/nova/nova_api.go:121:					GetDeletedServers		70.6%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/nova/nova_api.go:156:					GetAllHypervisors		69.7%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/nova/nova_api.go:210:					GetAllFlavors			68.8%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/nova/nova_api.go:247:					GetAllMigrations		69.7%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/nova/nova_api.go:300:					GetAllAggregates		0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/nova/nova_sync.go:30:					Init				90.9%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/nova/nova_sync.go:54:					Sync				50.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/nova/nova_sync.go:76:					SyncAllServers			57.1%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/nova/nova_sync.go:99:					SyncDeletedServers		64.7%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/nova/nova_sync.go:129:				SyncAllHypervisors		57.1%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/nova/nova_sync.go:153:				SyncAllFlavors			57.1%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/nova/nova_sync.go:175:				SyncAllMigrations		57.1%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/nova/nova_sync.go:197:				SyncAllAggregates		57.1%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/placement/placement_api.go:49:			NewPlacementAPI			100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/placement/placement_api.go:54:			Init				81.8%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/placement/placement_api.go:78:			GetAllResourceProviders		66.7%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/placement/placement_api.go:106:			GetAllTraits			90.3%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/placement/placement_api.go:156:			getTraits			90.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/placement/placement_api.go:180:			GetAllInventoryUsages		71.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/placement/placement_api.go:230:			getInventoryUsages		77.3%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/placement/placement_sync.go:29:			Init				62.5%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/placement/placement_sync.go:47:			Sync				71.4%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/placement/placement_sync.go:63:			SyncResourceProviders		53.8%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/placement/placement_sync.go:84:			SyncTraits			57.9%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/openstack/placement/placement_sync.go:113:			SyncInventoryUsages		57.9%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/prometheus/controller.go:42:					Reconcile			0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/prometheus/controller.go:191:					SetupWithManager		0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/prometheus/sync.go:33:						newTypedSyncer			100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/prometheus/sync.go:101:						fetch				79.2%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/prometheus/sync.go:206:						getSyncWindowStart		81.2%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/prometheus/sync.go:246:						sync				76.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/datasources/prometheus/sync.go:296:						Sync				70.6%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/controller.go:44:							Reconcile			52.6%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/controller.go:245:						SetupWithManager		0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/monitor.go:25:							NewMonitor			100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/monitor.go:46:							Describe			100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/monitor.go:52:							Collect				100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/monitor.go:71:							Init				100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/monitor.go:77:							monitorFeatureExtractor		100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/monitor.go:96:							Extract				100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/plugins/base.go:31:						Init				86.7%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/plugins/base.go:56:						ExtractSQL			83.3%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/plugins/base.go:69:						Extracted			88.9%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/plugins/kvm/libvirt_domain_cpu_steal_pct.go:27:			Extract				100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/plugins/netapp/storage_pool_cpu_usage.go:26:			Extract				100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/plugins/sap/host_details.go:25:					Extract				100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/plugins/shared/host_az.go:25:					Extract				100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/plugins/shared/host_capabilities.go:26:				Extract				100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/plugins/shared/host_pinned_projects.go:26:			Extract				100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/plugins/shared/host_utilization.go:27:				Extract				100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/plugins/shared/vm_host_residency.go:39:				Extract				85.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/plugins/shared/vm_life_span.go:37:				extractHistogramBuckets		89.5%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/plugins/shared/vm_life_span.go:82:				Extract				88.9%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/plugins/vmware/vrops_hostsystem_contention_long_term.go:28:	Extract				100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/plugins/vmware/vrops_hostsystem_contention_short_term.go:28:	Extract				100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/plugins/vmware/vrops_hostsystem_resolver.go:27:			Extract				100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/plugins/vmware/vrops_project_noisiness.go:26:			Extract				100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/trigger.go:37:							Reconcile			77.8%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/trigger.go:90:							findDependentKnowledge		96.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/trigger.go:137:							triggerKnowledgeReconciliation	100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/trigger.go:170:							enqueueKnowledgeReconciliation	77.8%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/trigger.go:194:							getResourceType			100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/trigger.go:206:							mapDatasourceToKnowledge	100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/trigger.go:227:							mapKnowledgeToKnowledge		100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/extractor/trigger.go:248:							SetupWithManager		0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/controller.go:67:							Reconcile			45.8%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/controller.go:114:							InitAllKPIs			81.2%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/controller.go:147:							getJointDB			20.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/controller.go:207:							handleKPIChange			54.2%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/controller.go:316:							handleDatasourceChange		0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/controller.go:341:							handleDatasourceCreated		0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/controller.go:351:							handleDatasourceUpdated		0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/controller.go:367:							handleDatasourceDeleted		0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/controller.go:379:							handleKnowledgeChange		0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/controller.go:404:							handleKnowledgeCreated		0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/controller.go:414:							handleKnowledgeUpdated		0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/controller.go:430:							handleKnowledgeDeleted		0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/controller.go:440:							SetupWithManager		0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/logger.go:20:								Describe			100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/logger.go:25:								Collect				0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/logger.go:31:								Init				100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/logger.go:36:								GetName				0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/base.go:21:							Init				75.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/netapp/storage_pool_cpu.go:25:					GetName				0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/netapp/storage_pool_cpu.go:29:					Init				80.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/netapp/storage_pool_cpu.go:46:					Describe			0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/netapp/storage_pool_cpu.go:51:					Collect				90.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/sap/host_available_capacity.go:29:				GetName				0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/sap/host_available_capacity.go:33:				Init				83.3%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/sap/host_available_capacity.go:82:				Describe			0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/sap/host_available_capacity.go:88:				Collect				95.1%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/sap/host_running_vms.go:40:					GetName				0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/sap/host_running_vms.go:44:					Init				75.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/sap/host_running_vms.go:67:					Describe			0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/sap/host_running_vms.go:71:					Collect				69.2%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/sap/host_total_allocatable_capacity.go:25:			GetName				0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/sap/host_total_allocatable_capacity.go:29:			Init				75.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/sap/host_total_allocatable_capacity.go:53:			Describe			0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/sap/host_total_allocatable_capacity.go:57:			Collect				87.5%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/shared/vm_commitments.go:29:					GetName				100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/shared/vm_commitments.go:33:					Init				85.7%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/shared/vm_commitments.go:80:					Describe			0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/shared/vm_commitments.go:88:					convertLimesMemory		100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/shared/vm_commitments.go:105:					Collect				89.5%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/shared/vm_life_span.go:26:					GetName				0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/shared/vm_life_span.go:30:					Init				75.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/shared/vm_life_span.go:43:					Describe			0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/shared/vm_life_span.go:47:					Collect				100.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/shared/vm_life_span.go:54:					collectVMBuckets		73.9%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/shared/vm_migration_statistics.go:25:				GetName				0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/shared/vm_migration_statistics.go:29:				Init				75.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/shared/vm_migration_statistics.go:42:				Describe			0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/shared/vm_migration_statistics.go:46:				Collect				73.9%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/vmware/host_contention.go:25:					GetName				0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/vmware/host_contention.go:29:					Init				80.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/vmware/host_contention.go:46:					Describe			0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/vmware/host_contention.go:51:					Collect				90.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/vmware/project_noisiness.go:24:				GetName				0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/vmware/project_noisiness.go:28:				Init				75.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/vmware/project_noisiness.go:40:				Describe			0.0%
github.com/cobaltcore-dev/cortex/knowledge/internal/kpis/plugins/vmware/project_noisiness.go:44:				Collect				84.6%
total:																(statements)			63.1%

@PhilippMatthes PhilippMatthes merged commit a0534c5 into main Nov 7, 2025
7 checks passed
@PhilippMatthes PhilippMatthes deleted the fix-reservations-operator branch November 7, 2025 13:55
SoWieMarkus added a commit that referenced this pull request Nov 12, 2025
Fixed metrics and dashboards that use them.
Will fix the alerts in a separate PR.

Would be especially interested in a review of this commit:
f7483ce

## TODO
- [x] Add missing metrics
- [x] Fix Metrics in Dashboards
<del>Check Alerts
Figure out where `component` label of metrics did come from in the past
Add core alerts back to the services and scope them correctly not get
alert on other service error</del>
- [x] Why is the Gather() method called so many times?
- [x] maybe service monitor config (matches all 3 operators and thats
why for each prometheus scrape we are calling all the endpoints, thats
why it appears 3x as much)
- [x] Have a look at reservations metrics
- [x] Reserverations Controller restarting without error? (OOM,
commitment with 18446744073709551598 instances, see:
#376)
- [x] What happened to pg_stat_user_tables_size_bytes
- [x] Open Connections just drops to zero and never comes back?
umswmayj added a commit that referenced this pull request May 7, 2026
…OnConflict in API, generation predicate

- Add LastFullReconcileAt to ProjectQuotaStatus (separate watermark for
  incremental add detection, not advanced by PaygUsage-only recomputes)
- isVMNewSinceLastReconcile now uses LastFullReconcileAt instead of
  LastReconcileAt to avoid false skips after CR-triggered recomputes
- Add domainID validation in HandleQuota (400 if missing)
- Wrap HandleQuota create/update in RetryOnConflict to handle concurrent
  status updates from the quota controller
- Add projectQuotaGenerationChangePredicate (GenerationChangedPredicate)
  on ProjectQuota For() watch to prevent infinite reconcile loops from
  status-only updates
- Add CreatedAt field to VM struct, populated in buildVMsFromHypervisors

Ref: BLI #376
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants