Skip to content

[OLD] Fix rename cluster duplicate name issue / improve cluster metadata for UI #2944

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

vyncent-t
Copy link
Collaborator

@vyncent-t vyncent-t commented Feb 24, 2025

This branch replaces the need for #2747

Description

This PR is needed as a part to fix the delete non dynamic cluster PR

  • This PR aims to improve the cluster information available for clusters via the metadata tag.
  • introduces changes to the metadata field that contain the originalName origin.kubeconfig and pathID
  • introduces fixes to the source field in the home view to have an accurate path for kubeconfigs
  • introduces an original name label within cluster settings to help keep track of clusters

This PR also fixes an issue with duplicate name clusters.

Currently, users are able to 'reuse' cluster names, causing the existing cluster to be replaced with the renamed one. This UI redirection provides a way to prevent this from happening from within headlamp only.

  • This PR introduces logic and UI to stop users from entering a name already in use when trying to rename a cluster
  • Reworks the current renameCluster functionality in the backend to cover both non dynamic and dynamic clusters

Changes include

Cluster info

  • metadata field now includes cluster.metadata.origin.kubeconfig and cluster.metadata.originalName and cluster.metadata.pathID

Home View

  • UI fix for App home view, Origin now displays correct Kubeconfig path

Cluster Settings

  • OriginalName now displayed in non-dynamic cluster settings

image

  • Introduced UI dialog for preventing names already in use from being used.

image
image

How to test

Test the source path

  • Run headlamp in App mode
  • Create a non dynamic cluster and let it load at home view
  • At the home view: notice the specific Kubeconfig path

Test the original name label

  • Run headlamp in App mode
  • Create a non-dynamic cluster and let it load at home view
  • Click on the settings icon in the cluster list and navigate to settings page
  • Notice the original name displayed under the Name section

Test the duplicate rename blocker UI

  • Run headlamp in App mode
  • Create a two non-dynamic clusters and let them load at home view
  • Click on the settings icon in the cluster list and navigate to settings page
  • Rename one of the non dynamic cluster to a name already in use by another cluster
  • Notice the "Invalid custom name" UI
  • Choose a name that is valid and rename it
  • Navigate back to the settings page if needed and note the new custom name
  • Click on the settings tab of the renamed cluster and notice and original name displayed

@vyncent-t vyncent-t self-assigned this Feb 24, 2025
@dosubot dosubot bot added the size:S This PR changes 10-29 lines, ignoring generated files. label Feb 24, 2025
@vyncent-t vyncent-t added frontend Issues related to the frontend and removed size:S This PR changes 10-29 lines, ignoring generated files. labels Feb 24, 2025
@dosubot dosubot bot added the size:S This PR changes 10-29 lines, ignoring generated files. label Feb 24, 2025
Copy link

Backend Code coverage changed from 65.0% to 65.2%. Change: .2% 😃.

Coverage report
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:99:			ServeHTTP				58.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:148:			fileExists				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:158:			copyReplace				63.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:182:			baseURLReplace				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:210:			getOidcCallbackURL			91.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:237:			serveWithNoCacheHeader			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:246:			defaultKubeConfigPersistenceDir		61.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:274:			defaultKubeConfigPersistenceFile	75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:287:			addPluginRoutes				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:341:			createHeadlampHandler			40.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:737:			parseClusterAndToken			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:754:			decodePayload				85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:768:			getExpiryTime				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:777:			isTokenAboutToExpire			76.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:800:			refreshAndCacheNewToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:823:			getNewTokenFromRefresh			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:847:			cacheRefreshedToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:872:			OIDCTokenRefreshMiddleware		30.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:930:			StartHeadlampServer			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:944:			getHelmHandler				53.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:972:			checkHeadlampBackendToken		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:985:			handleClusterHelm			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1075:			handleClusterAPI			51.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1131:			handleClusterRequests			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1139:			getClusters				68.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1196:			parseCustomNameClusters			38.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1250:			parseClusterFromKubeConfig		83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1284:			getConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1295:			addCluster				57.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1330:			decodeClusterRequest			71.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1345:			processClusterRequest			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1354:			processKubeConfig			83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1371:			processManualConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1391:			handleLoadErrors			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1406:			writeKubeConfig				70.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1426:			addContextsToStore			80.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1438:			deleteCluster				0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1487:			getKubeConfigPath			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1496:			handleStatelessClusterRename		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1510:			customNameToExtenstions			45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1543:			updateCustomContextToCache		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1576:			getPathAndLoadKubeconfig		55.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1599:			renameCluster				53.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1662:			addClusterSetupRoute			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1683:			handleNodeDrain				45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1748:			drainNode				37.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1798:			handleNodeDrainStatus			52.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:120:		NewWSConnLock				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:129:		WriteJSON				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:139:		ReadJSON				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:146:		ReadMessage				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:152:		WriteMessage				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:162:		Close					100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:170:		NewMultiplexer				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:183:		updateStatus				76.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:243:		establishClusterConnection		81.8%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:289:		getClusterConfigWithFallback		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:306:		createConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:328:		dialWebSocket				87.5%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:356:		monitorConnection			54.5%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:381:		reconnect				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:411:		HandleClientWebSocket			72.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:454:		readClientMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:475:		getOrCreateConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:504:		handleConnectionError			75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:526:		writeMessageToCluster			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:544:		handleClusterMessages			85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:562:		processClusterMessage			75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:605:		sendIfNewResourceVersion		75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:648:		sendCompleteMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:679:		sendDataMessage				88.9%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:702:		cleanupConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:719:		createWrapperMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:739:		cleanupConnections			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:756:		getClusterConfig			85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:771:		CloseConnection				81.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:812:		createConnectionKey			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:817:		createWebSocketURL			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/server.go:14:			main					0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:17:			MarshalCustomObject			60.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:42:			setKeyInCache				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:69:			handleStatelessReq			51.5%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:141:			parseKubeConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:180:			websocketConnContextKey			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:230:			getContextKeyForRequest			76.9%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:40:			New					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:52:			Set					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:57:			SetWithTTL				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:75:			Delete					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:85:			Get					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:102:		GetAll					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:122:		cleanUp					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:140:		UpdateTTL				88.9%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:40:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:62:		Parse					74.4%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:149:		flagset					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:174:		defaultPluginDir			61.5%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:207:		GetDefaultKubeConfigPath		66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:74:			init					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:89:			newCache				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:93:			cacheKey				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:109:			get					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:118:			put					85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:143:			Do					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:168:			GetAuthenticator			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:172:			newAuthenticator			86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:224:			isInteractive				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:300:			UpdateTransportConfig			64.3%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:341:			WrappedRoundTripper			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:345:			RoundTrip				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:371:			credsExpired				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:378:			cert					75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:386:			getCreds				85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:403:			maybeRefreshCreds			80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:419:			refreshCredsLocked			92.5%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:531:			wrapCmdRunErrorLocked			90.9%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/syscallattr_other.go:9:	GetSysProcAttr				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/charts.go:27:			listCharts				89.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/charts.go:77:			ListCharts				72.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:35:		NewActionConfig				87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:54:		NewHandler				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:60:		NewHandlerWithSettings			60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:85:		ToRESTConfig				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:89:		ToRawKubeConfigLoader			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:93:		ToDiscoveryClient			83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:109:		ToRESTMapper				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:129:		getReleaseStatus			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:165:		setReleaseStatus			60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:188:		setReleaseStatusSilent			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:53:		getReleases				57.1%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:112:		ListRelease				68.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:158:		GetRelease				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:217:		GetReleaseHistory			46.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:276:		UninstallRelease			55.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:332:		uninstallRelease			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:355:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:360:		RollbackRelease				51.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:419:		rollbackRelease				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:451:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:456:		handleError				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:461:		returnResponse				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:477:		InstallRelease				72.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:511:		getChart				35.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:563:		installRelease				60.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:622:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:627:		UpgradeRelease				60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:663:		logActionState				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:684:		upgradeRelease				63.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:728:		Validate				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:746:		GetActionStatus				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:35:		createFileIfNotThere			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:47:		lockRepositoryFile			87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:68:		addRepository				61.8%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:131:		AddRepo					72.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:176:		createFullPath				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:184:		listRepositories			69.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:213:		ListRepo				58.3%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:236:		RemoveRepository			64.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:279:		RemoveRepo				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:291:		UpdateRepository			68.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:333:		UpdateRepository			81.8%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:26:	NewContextStore				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:35:	AddContext				23.1%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:64:	GetContexts				85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:80:	GetContext				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:90:	RemoveContext				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:95:	AddContextWithKeyAndTTL			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:100:	UpdateTTL				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/file.go:14:		WriteToFile				86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/file.go:47:		RemoveContextFromFile			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:65:	DeepCopyObject				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:70:	DeepCopy				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:90:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:101:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:112:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:123:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:136:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:148:	ClientConfig				80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:182:	RESTConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:193:	makeTransportFor			14.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:237:	OidcConfig				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:255:	ProxyRequest				83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:269:	ClientSetWithToken			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:283:	SourceStr				80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:297:	SetupProxy				91.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:322:	AuthType				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:340:	LoadContextsFromFile			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:355:	LoadContextsFromBase64String		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:367:	LoadContextsFromMultipleFiles		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:389:	loadContextsFromData			86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:427:	UnmarshalKubeconfig			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:439:	GetContextsFromKubeconfig		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:455:	ProcessContext				90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:504:	extractContextInfo			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:522:	extractClusterAndUserNames		83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:539:	getClusterAndUser			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:560:	createAndValidateConfig			90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:592:	getNameOrUnknown			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:603:	HandleConfigLoadError			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:644:	checkBase64Errors			90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:667:	checkUserBase64Fields			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:687:	checkClusterBase64Fields		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:703:	toStringKeyMap				83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:719:	getCluster				87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:737:	getUser					80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:758:	createKubeConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:781:	convertToContext			85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:822:	LoadContextsFromAPIConfig		76.5%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:861:	splitKubeConfigPath			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:871:	GetInClusterContext			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:918:	LoadAndStoreKubeConfigs			91.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:943:	makeDNSFriendly				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:17:		LoadAndWatchFiles			58.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:69:		addFilesToWatcher			64.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:111:		syncContexts				77.3%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:29:		Log					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:36:		log					75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:80:		SetLogFunc				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:30:		Watch					77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:51:		periodicallyWatchSubfolders		75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:86:		generateSeparatePluginPaths		90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:107:		GeneratePluginPaths			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:122:		ListPlugins				68.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:175:		pluginBasePathListForDir		77.3%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:221:		canSendRefresh				77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:242:		HandlePluginEvents			70.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:268:		PopulatePluginsCache			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:294:		HandlePluginReload			80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:330:		Delete					85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:345:		isSubdirectory				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:46:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:80:		getFreePort				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:99:		StartPortForward			52.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:182:	startPortForward			61.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:278:	checkIfPodIsRunning			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:300:	Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:313:	StopOrDeletePortForward			52.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:354:	GetPortForwards				53.3%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:385:	GetPortForwardByID			50.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:16:		portforwardKeyGenerator			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:33:		portforwardstore			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:46:		stopOrDeletePortForward			69.2%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:74:		getPortForwardList			77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:94:		getPortForwardByID			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/utils/utils.go:4:			Contains				100.0%
total:										(statements)				65.2%

Html coverage report download

@vyncent-t vyncent-t force-pushed the improve-cluster-metadata-for-ui branch from 280613c to f12841b Compare February 24, 2025 22:48
@dosubot dosubot bot added size:M This PR changes 30-99 lines, ignoring generated files. and removed size:S This PR changes 10-29 lines, ignoring generated files. labels Feb 24, 2025
Copy link

Backend Code coverage changed from 65.0% to 65.2%. Change: .2% 😃.

Coverage report
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:99:			ServeHTTP				58.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:148:			fileExists				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:158:			copyReplace				63.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:182:			baseURLReplace				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:210:			getOidcCallbackURL			91.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:237:			serveWithNoCacheHeader			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:246:			defaultKubeConfigPersistenceDir		61.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:274:			defaultKubeConfigPersistenceFile	75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:287:			addPluginRoutes				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:341:			createHeadlampHandler			40.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:737:			parseClusterAndToken			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:754:			decodePayload				85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:768:			getExpiryTime				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:777:			isTokenAboutToExpire			76.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:800:			refreshAndCacheNewToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:823:			getNewTokenFromRefresh			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:847:			cacheRefreshedToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:872:			OIDCTokenRefreshMiddleware		30.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:930:			StartHeadlampServer			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:944:			getHelmHandler				53.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:972:			checkHeadlampBackendToken		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:985:			handleClusterHelm			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1075:			handleClusterAPI			51.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1131:			handleClusterRequests			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1139:			getClusters				68.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1196:			parseCustomNameClusters			38.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1250:			parseClusterFromKubeConfig		83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1284:			getConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1295:			addCluster				57.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1330:			decodeClusterRequest			71.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1345:			processClusterRequest			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1354:			processKubeConfig			83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1371:			processManualConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1391:			handleLoadErrors			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1406:			writeKubeConfig				70.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1426:			addContextsToStore			80.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1438:			deleteCluster				0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1487:			getKubeConfigPath			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1496:			handleStatelessClusterRename		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1510:			customNameToExtenstions			45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1543:			updateCustomContextToCache		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1576:			getPathAndLoadKubeconfig		55.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1599:			renameCluster				53.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1662:			addClusterSetupRoute			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1683:			handleNodeDrain				45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1748:			drainNode				37.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1798:			handleNodeDrainStatus			52.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:120:		NewWSConnLock				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:129:		WriteJSON				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:139:		ReadJSON				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:146:		ReadMessage				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:152:		WriteMessage				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:162:		Close					100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:170:		NewMultiplexer				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:183:		updateStatus				76.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:243:		establishClusterConnection		81.8%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:289:		getClusterConfigWithFallback		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:306:		createConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:328:		dialWebSocket				87.5%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:356:		monitorConnection			54.5%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:381:		reconnect				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:411:		HandleClientWebSocket			72.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:454:		readClientMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:475:		getOrCreateConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:504:		handleConnectionError			75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:526:		writeMessageToCluster			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:544:		handleClusterMessages			85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:562:		processClusterMessage			75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:605:		sendIfNewResourceVersion		75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:648:		sendCompleteMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:679:		sendDataMessage				88.9%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:702:		cleanupConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:719:		createWrapperMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:739:		cleanupConnections			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:756:		getClusterConfig			85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:771:		CloseConnection				81.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:812:		createConnectionKey			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:817:		createWebSocketURL			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/server.go:14:			main					0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:17:			MarshalCustomObject			60.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:42:			setKeyInCache				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:69:			handleStatelessReq			51.5%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:141:			parseKubeConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:180:			websocketConnContextKey			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:230:			getContextKeyForRequest			76.9%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:40:			New					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:52:			Set					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:57:			SetWithTTL				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:75:			Delete					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:85:			Get					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:102:		GetAll					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:122:		cleanUp					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:140:		UpdateTTL				88.9%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:40:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:62:		Parse					74.4%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:149:		flagset					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:174:		defaultPluginDir			61.5%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:207:		GetDefaultKubeConfigPath		66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:74:			init					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:89:			newCache				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:93:			cacheKey				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:109:			get					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:118:			put					85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:143:			Do					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:168:			GetAuthenticator			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:172:			newAuthenticator			86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:224:			isInteractive				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:300:			UpdateTransportConfig			64.3%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:341:			WrappedRoundTripper			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:345:			RoundTrip				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:371:			credsExpired				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:378:			cert					75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:386:			getCreds				85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:403:			maybeRefreshCreds			80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:419:			refreshCredsLocked			92.5%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:531:			wrapCmdRunErrorLocked			90.9%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/syscallattr_other.go:9:	GetSysProcAttr				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/charts.go:27:			listCharts				89.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/charts.go:77:			ListCharts				72.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:35:		NewActionConfig				87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:54:		NewHandler				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:60:		NewHandlerWithSettings			60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:85:		ToRESTConfig				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:89:		ToRawKubeConfigLoader			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:93:		ToDiscoveryClient			83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:109:		ToRESTMapper				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:129:		getReleaseStatus			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:165:		setReleaseStatus			60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:188:		setReleaseStatusSilent			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:53:		getReleases				57.1%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:112:		ListRelease				68.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:158:		GetRelease				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:217:		GetReleaseHistory			46.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:276:		UninstallRelease			55.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:332:		uninstallRelease			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:355:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:360:		RollbackRelease				51.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:419:		rollbackRelease				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:451:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:456:		handleError				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:461:		returnResponse				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:477:		InstallRelease				72.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:511:		getChart				35.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:563:		installRelease				60.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:622:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:627:		UpgradeRelease				60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:663:		logActionState				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:684:		upgradeRelease				63.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:728:		Validate				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:746:		GetActionStatus				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:35:		createFileIfNotThere			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:47:		lockRepositoryFile			87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:68:		addRepository				61.8%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:131:		AddRepo					72.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:176:		createFullPath				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:184:		listRepositories			69.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:213:		ListRepo				58.3%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:236:		RemoveRepository			64.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:279:		RemoveRepo				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:291:		UpdateRepository			68.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:333:		UpdateRepository			81.8%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:26:	NewContextStore				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:35:	AddContext				23.1%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:64:	GetContexts				85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:80:	GetContext				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:90:	RemoveContext				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:95:	AddContextWithKeyAndTTL			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:100:	UpdateTTL				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/file.go:14:		WriteToFile				86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/file.go:47:		RemoveContextFromFile			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:65:	DeepCopyObject				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:70:	DeepCopy				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:90:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:101:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:112:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:123:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:136:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:148:	ClientConfig				80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:182:	RESTConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:193:	makeTransportFor			14.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:237:	OidcConfig				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:255:	ProxyRequest				83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:269:	ClientSetWithToken			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:283:	SourceStr				80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:297:	SetupProxy				91.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:322:	AuthType				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:340:	LoadContextsFromFile			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:355:	LoadContextsFromBase64String		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:367:	LoadContextsFromMultipleFiles		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:389:	loadContextsFromData			86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:427:	UnmarshalKubeconfig			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:439:	GetContextsFromKubeconfig		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:455:	ProcessContext				90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:504:	extractContextInfo			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:522:	extractClusterAndUserNames		83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:539:	getClusterAndUser			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:560:	createAndValidateConfig			90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:592:	getNameOrUnknown			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:603:	HandleConfigLoadError			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:644:	checkBase64Errors			90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:667:	checkUserBase64Fields			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:687:	checkClusterBase64Fields		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:703:	toStringKeyMap				83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:719:	getCluster				87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:737:	getUser					80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:758:	createKubeConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:781:	convertToContext			85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:822:	LoadContextsFromAPIConfig		76.5%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:861:	splitKubeConfigPath			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:871:	GetInClusterContext			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:918:	LoadAndStoreKubeConfigs			91.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:943:	makeDNSFriendly				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:17:		LoadAndWatchFiles			58.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:69:		addFilesToWatcher			64.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:111:		syncContexts				77.3%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:29:		Log					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:36:		log					75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:80:		SetLogFunc				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:30:		Watch					77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:51:		periodicallyWatchSubfolders		75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:86:		generateSeparatePluginPaths		90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:107:		GeneratePluginPaths			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:122:		ListPlugins				68.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:175:		pluginBasePathListForDir		77.3%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:221:		canSendRefresh				77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:242:		HandlePluginEvents			70.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:268:		PopulatePluginsCache			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:294:		HandlePluginReload			80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:330:		Delete					85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:345:		isSubdirectory				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:46:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:80:		getFreePort				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:99:		StartPortForward			52.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:182:	startPortForward			61.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:278:	checkIfPodIsRunning			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:300:	Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:313:	StopOrDeletePortForward			52.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:354:	GetPortForwards				53.3%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:385:	GetPortForwardByID			50.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:16:		portforwardKeyGenerator			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:33:		portforwardstore			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:46:		stopOrDeletePortForward			69.2%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:74:		getPortForwardList			77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:94:		getPortForwardByID			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/utils/utils.go:4:			Contains				100.0%
total:										(statements)				65.2%

Html coverage report download

@vyncent-t vyncent-t changed the title frontend: Improve cluster metadata for UI frontend: Improve information non dynamic clusters metadata for UI Feb 24, 2025
@vyncent-t vyncent-t changed the title frontend: Improve information non dynamic clusters metadata for UI frontend: Improve non dynamic clusters metadata for UI Feb 24, 2025
@vyncent-t vyncent-t force-pushed the improve-cluster-metadata-for-ui branch from f12841b to 38a7582 Compare February 25, 2025 17:16
Copy link

Backend Code coverage changed from 65.0% to 65.2%. Change: .2% 😃.

Coverage report
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:99:			ServeHTTP				58.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:148:			fileExists				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:158:			copyReplace				63.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:182:			baseURLReplace				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:210:			getOidcCallbackURL			91.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:237:			serveWithNoCacheHeader			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:246:			defaultKubeConfigPersistenceDir		61.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:274:			defaultKubeConfigPersistenceFile	75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:287:			addPluginRoutes				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:341:			createHeadlampHandler			40.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:737:			parseClusterAndToken			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:754:			decodePayload				85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:768:			getExpiryTime				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:777:			isTokenAboutToExpire			76.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:800:			refreshAndCacheNewToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:823:			getNewTokenFromRefresh			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:847:			cacheRefreshedToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:872:			OIDCTokenRefreshMiddleware		30.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:930:			StartHeadlampServer			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:944:			getHelmHandler				53.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:972:			checkHeadlampBackendToken		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:985:			handleClusterHelm			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1075:			handleClusterAPI			51.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1131:			handleClusterRequests			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1139:			getClusters				68.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1196:			parseCustomNameClusters			38.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1250:			parseClusterFromKubeConfig		83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1284:			getConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1295:			addCluster				57.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1330:			decodeClusterRequest			71.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1345:			processClusterRequest			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1354:			processKubeConfig			83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1371:			processManualConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1391:			handleLoadErrors			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1406:			writeKubeConfig				70.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1426:			addContextsToStore			80.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1438:			deleteCluster				0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1487:			getKubeConfigPath			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1496:			handleStatelessClusterRename		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1510:			customNameToExtenstions			45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1543:			updateCustomContextToCache		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1576:			getPathAndLoadKubeconfig		55.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1599:			renameCluster				53.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1662:			addClusterSetupRoute			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1683:			handleNodeDrain				45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1748:			drainNode				37.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1798:			handleNodeDrainStatus			52.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:120:		NewWSConnLock				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:129:		WriteJSON				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:139:		ReadJSON				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:146:		ReadMessage				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:152:		WriteMessage				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:162:		Close					100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:170:		NewMultiplexer				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:183:		updateStatus				76.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:243:		establishClusterConnection		81.8%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:289:		getClusterConfigWithFallback		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:306:		createConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:328:		dialWebSocket				87.5%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:356:		monitorConnection			54.5%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:381:		reconnect				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:411:		HandleClientWebSocket			72.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:454:		readClientMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:475:		getOrCreateConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:504:		handleConnectionError			75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:526:		writeMessageToCluster			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:544:		handleClusterMessages			85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:562:		processClusterMessage			75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:605:		sendIfNewResourceVersion		75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:648:		sendCompleteMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:679:		sendDataMessage				88.9%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:702:		cleanupConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:719:		createWrapperMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:739:		cleanupConnections			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:756:		getClusterConfig			85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:771:		CloseConnection				81.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:812:		createConnectionKey			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:817:		createWebSocketURL			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/server.go:14:			main					0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:17:			MarshalCustomObject			60.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:42:			setKeyInCache				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:69:			handleStatelessReq			51.5%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:141:			parseKubeConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:180:			websocketConnContextKey			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:230:			getContextKeyForRequest			76.9%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:40:			New					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:52:			Set					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:57:			SetWithTTL				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:75:			Delete					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:85:			Get					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:102:		GetAll					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:122:		cleanUp					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:140:		UpdateTTL				88.9%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:40:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:62:		Parse					74.4%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:149:		flagset					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:174:		defaultPluginDir			61.5%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:207:		GetDefaultKubeConfigPath		66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:74:			init					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:89:			newCache				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:93:			cacheKey				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:109:			get					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:118:			put					85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:143:			Do					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:168:			GetAuthenticator			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:172:			newAuthenticator			86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:224:			isInteractive				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:300:			UpdateTransportConfig			64.3%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:341:			WrappedRoundTripper			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:345:			RoundTrip				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:371:			credsExpired				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:378:			cert					75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:386:			getCreds				85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:403:			maybeRefreshCreds			80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:419:			refreshCredsLocked			92.5%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:531:			wrapCmdRunErrorLocked			90.9%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/syscallattr_other.go:9:	GetSysProcAttr				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/charts.go:27:			listCharts				89.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/charts.go:77:			ListCharts				72.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:35:		NewActionConfig				87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:54:		NewHandler				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:60:		NewHandlerWithSettings			60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:85:		ToRESTConfig				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:89:		ToRawKubeConfigLoader			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:93:		ToDiscoveryClient			83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:109:		ToRESTMapper				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:129:		getReleaseStatus			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:165:		setReleaseStatus			60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:188:		setReleaseStatusSilent			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:53:		getReleases				57.1%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:112:		ListRelease				68.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:158:		GetRelease				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:217:		GetReleaseHistory			46.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:276:		UninstallRelease			55.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:332:		uninstallRelease			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:355:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:360:		RollbackRelease				51.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:419:		rollbackRelease				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:451:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:456:		handleError				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:461:		returnResponse				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:477:		InstallRelease				72.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:511:		getChart				35.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:563:		installRelease				60.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:622:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:627:		UpgradeRelease				60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:663:		logActionState				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:684:		upgradeRelease				63.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:728:		Validate				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:746:		GetActionStatus				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:35:		createFileIfNotThere			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:47:		lockRepositoryFile			87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:68:		addRepository				61.8%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:131:		AddRepo					72.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:176:		createFullPath				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:184:		listRepositories			69.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:213:		ListRepo				58.3%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:236:		RemoveRepository			64.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:279:		RemoveRepo				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:291:		UpdateRepository			68.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:333:		UpdateRepository			81.8%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:26:	NewContextStore				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:35:	AddContext				23.1%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:64:	GetContexts				85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:80:	GetContext				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:90:	RemoveContext				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:95:	AddContextWithKeyAndTTL			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:100:	UpdateTTL				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/file.go:14:		WriteToFile				86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/file.go:47:		RemoveContextFromFile			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:65:	DeepCopyObject				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:70:	DeepCopy				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:90:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:101:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:112:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:123:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:136:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:148:	ClientConfig				80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:182:	RESTConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:193:	makeTransportFor			14.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:237:	OidcConfig				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:255:	ProxyRequest				83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:269:	ClientSetWithToken			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:283:	SourceStr				80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:297:	SetupProxy				91.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:322:	AuthType				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:340:	LoadContextsFromFile			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:355:	LoadContextsFromBase64String		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:367:	LoadContextsFromMultipleFiles		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:389:	loadContextsFromData			86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:427:	UnmarshalKubeconfig			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:439:	GetContextsFromKubeconfig		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:455:	ProcessContext				90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:504:	extractContextInfo			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:522:	extractClusterAndUserNames		83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:539:	getClusterAndUser			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:560:	createAndValidateConfig			90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:592:	getNameOrUnknown			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:603:	HandleConfigLoadError			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:644:	checkBase64Errors			90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:667:	checkUserBase64Fields			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:687:	checkClusterBase64Fields		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:703:	toStringKeyMap				83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:719:	getCluster				87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:737:	getUser					80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:758:	createKubeConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:781:	convertToContext			85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:822:	LoadContextsFromAPIConfig		76.5%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:861:	splitKubeConfigPath			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:871:	GetInClusterContext			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:918:	LoadAndStoreKubeConfigs			91.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:943:	makeDNSFriendly				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:17:		LoadAndWatchFiles			58.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:69:		addFilesToWatcher			64.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:111:		syncContexts				77.3%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:29:		Log					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:36:		log					75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:80:		SetLogFunc				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:30:		Watch					77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:51:		periodicallyWatchSubfolders		75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:86:		generateSeparatePluginPaths		90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:107:		GeneratePluginPaths			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:122:		ListPlugins				68.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:175:		pluginBasePathListForDir		77.3%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:221:		canSendRefresh				77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:242:		HandlePluginEvents			70.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:268:		PopulatePluginsCache			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:294:		HandlePluginReload			80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:330:		Delete					85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:345:		isSubdirectory				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:46:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:80:		getFreePort				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:99:		StartPortForward			52.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:182:	startPortForward			61.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:278:	checkIfPodIsRunning			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:300:	Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:313:	StopOrDeletePortForward			52.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:354:	GetPortForwards				53.3%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:385:	GetPortForwardByID			50.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:16:		portforwardKeyGenerator			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:33:		portforwardstore			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:46:		stopOrDeletePortForward			69.2%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:74:		getPortForwardList			77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:94:		getPortForwardByID			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/utils/utils.go:4:			Contains				100.0%
total:										(statements)				65.2%

Html coverage report download

@illume
Copy link
Collaborator

illume commented Feb 28, 2025

@vyncent-t can you please add How to test to the PR description?

Copy link
Contributor

@joaquimrocha joaquimrocha left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left a couple of comments.

<Typography>{t('translation|Name')}</Typography>
{displayOriginalName && (
<Typography variant="body2" color="textSecondary">
{t('translation|Original name of cluster: {{ originalName }}', {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just Original name: ... should be enough given the context. Reads too verbose otherwise.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done!

Comment on lines 249 to 250
const sourcePath = cluster.meta_data?.origin?.kubeconfig;
const kubeconfigPath = process.env.KUBECONFIG ?? sourcePath;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it should always be the meta_data case here. No the KUBECONFIG env.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done!

return path
}(),
},
"originalName": context.Name,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see in the /config requests from the frontend that the original name is the one being sent as the name above, so we already have the original name + custom name (in the extensions) in the frontend AFAIU.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in the frontend when I log the end result of a cluster that has been fetched, if it has been renamed then the cluster.name is set to the customName

looking at the /config response looks like the top name is the original name but after its processed and finished for the the frontend the cluster log information is different

image

so I think we do have access to the original name as long as it is never renamed

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I need to understand what "after its processed and finished for the the frontend " means in this case.
Seems like we likely need to always keep the original name as the key (till we also add the kubeconfig path) for both the backend and frontend, and use the renamed name just for the display.

Comment on lines 1183 to 1184
path, _ := c.getKubeConfigPath(context.SourceStr())
return path
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the path should be set from the methods that read the cluster in the first place rather than trying to find it again here.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

moved it so that we aren't trying to find it right inside of where it is being initialized

@vyncent-t vyncent-t force-pushed the improve-cluster-metadata-for-ui branch from 38a7582 to 2eed250 Compare February 28, 2025 17:17
Copy link

Backend Code coverage changed from 65.1% to 65.2%. Change: .1% 😃.

Coverage report
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:100:			ServeHTTP				58.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:149:			fileExists				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:159:			copyReplace				63.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:183:			baseURLReplace				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:211:			getOidcCallbackURL			91.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:238:			serveWithNoCacheHeader			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:247:			defaultKubeConfigPersistenceDir		61.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:275:			defaultKubeConfigPersistenceFile	75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:288:			addPluginRoutes				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:342:			createHeadlampHandler			40.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:739:			parseClusterAndToken			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:756:			decodePayload				85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:770:			getExpiryTime				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:779:			isTokenAboutToExpire			76.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:802:			refreshAndCacheNewToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:825:			getNewTokenFromRefresh			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:849:			cacheRefreshedToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:874:			OIDCTokenRefreshMiddleware		30.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:932:			StartHeadlampServer			71.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:948:			getHelmHandler				53.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:976:			checkHeadlampBackendToken		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:989:			handleClusterHelm			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1079:			handleClusterAPI			51.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1135:			handleClusterRequests			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1143:			getClusters				65.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1202:			parseCustomNameClusters			38.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1256:			parseClusterFromKubeConfig		83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1290:			getConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1301:			addCluster				57.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1336:			decodeClusterRequest			71.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1351:			processClusterRequest			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1360:			processKubeConfig			83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1377:			processManualConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1397:			handleLoadErrors			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1412:			writeKubeConfig				70.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1432:			addContextsToStore			80.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1444:			deleteCluster				0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1493:			getKubeConfigPath			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1502:			handleStatelessClusterRename		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1516:			customNameToExtenstions			45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1549:			updateCustomContextToCache		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1582:			getPathAndLoadKubeconfig		55.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1605:			renameCluster				53.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1668:			addClusterSetupRoute			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1689:			handleNodeDrain				45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1754:			drainNode				37.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1804:			handleNodeDrainStatus			52.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:124:		NewWSConnLock				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:133:		WriteJSON				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:143:		ReadJSON				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:150:		ReadMessage				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:156:		WriteMessage				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:166:		Close					100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:174:		NewMultiplexer				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:187:		updateStatus				76.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:247:		establishClusterConnection		81.8%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:294:		getClusterConfigWithFallback		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:311:		createConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:335:		dialWebSocket				81.8%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:376:		monitorConnection			54.5%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:401:		reconnect				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:432:		HandleClientWebSocket			72.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:475:		readClientMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:496:		getOrCreateConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:525:		handleConnectionError			75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:547:		writeMessageToCluster			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:565:		handleClusterMessages			85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:583:		processClusterMessage			75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:626:		sendIfNewResourceVersion		75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:669:		sendCompleteMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:700:		sendDataMessage				88.9%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:723:		cleanupConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:740:		createWrapperMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:760:		cleanupConnections			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:777:		getClusterConfig			85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:792:		CloseConnection				81.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:833:		createConnectionKey			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:838:		createWebSocketURL			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/server.go:14:			main					0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:17:			MarshalCustomObject			60.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:42:			setKeyInCache				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:69:			handleStatelessReq			51.5%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:141:			parseKubeConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:180:			websocketConnContextKey			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:230:			getContextKeyForRequest			76.9%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:40:			New					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:52:			Set					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:57:			SetWithTTL				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:75:			Delete					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:85:			Get					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:102:		GetAll					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:122:		cleanUp					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:140:		UpdateTTL				88.9%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:41:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:63:		Parse					74.4%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:150:		flagset					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:176:		defaultPluginDir			61.5%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:209:		GetDefaultKubeConfigPath		66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:74:			init					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:89:			newCache				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:93:			cacheKey				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:109:			get					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:118:			put					85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:143:			Do					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:168:			GetAuthenticator			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:172:			newAuthenticator			86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:224:			isInteractive				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:300:			UpdateTransportConfig			64.3%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:341:			WrappedRoundTripper			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:345:			RoundTrip				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:371:			credsExpired				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:378:			cert					75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:386:			getCreds				85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:403:			maybeRefreshCreds			80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:419:			refreshCredsLocked			92.5%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:531:			wrapCmdRunErrorLocked			90.9%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/syscallattr_other.go:9:	GetSysProcAttr				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/charts.go:27:			listCharts				89.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/charts.go:77:			ListCharts				72.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:35:		NewActionConfig				87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:54:		NewHandler				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:60:		NewHandlerWithSettings			60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:85:		ToRESTConfig				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:89:		ToRawKubeConfigLoader			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:93:		ToDiscoveryClient			83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:109:		ToRESTMapper				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:129:		getReleaseStatus			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:165:		setReleaseStatus			60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:188:		setReleaseStatusSilent			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:53:		getReleases				57.1%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:112:		ListRelease				68.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:158:		GetRelease				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:217:		GetReleaseHistory			46.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:276:		UninstallRelease			55.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:332:		uninstallRelease			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:355:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:360:		RollbackRelease				51.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:419:		rollbackRelease				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:451:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:456:		handleError				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:461:		returnResponse				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:477:		InstallRelease				72.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:511:		getChart				35.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:563:		installRelease				60.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:622:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:627:		UpgradeRelease				60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:663:		logActionState				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:684:		upgradeRelease				63.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:728:		Validate				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:746:		GetActionStatus				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:35:		createFileIfNotThere			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:47:		lockRepositoryFile			87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:68:		addRepository				61.8%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:131:		AddRepo					72.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:176:		createFullPath				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:184:		listRepositories			69.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:213:		ListRepo				58.3%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:236:		RemoveRepository			64.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:279:		RemoveRepo				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:291:		UpdateRepository			68.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:333:		UpdateRepository			81.8%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:26:	NewContextStore				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:35:	AddContext				23.1%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:64:	GetContexts				85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:80:	GetContext				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:90:	RemoveContext				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:95:	AddContextWithKeyAndTTL			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:100:	UpdateTTL				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/file.go:14:		WriteToFile				86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/file.go:47:		RemoveContextFromFile			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:65:	DeepCopyObject				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:70:	DeepCopy				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:90:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:101:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:112:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:123:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:136:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:148:	ClientConfig				80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:182:	RESTConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:193:	makeTransportFor			14.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:237:	OidcConfig				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:255:	ProxyRequest				83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:269:	ClientSetWithToken			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:283:	SourceStr				80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:297:	SetupProxy				91.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:322:	AuthType				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:340:	LoadContextsFromFile			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:355:	LoadContextsFromBase64String		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:367:	LoadContextsFromMultipleFiles		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:389:	loadContextsFromData			86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:427:	UnmarshalKubeconfig			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:439:	GetContextsFromKubeconfig		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:455:	ProcessContext				90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:504:	extractContextInfo			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:522:	extractClusterAndUserNames		83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:539:	getClusterAndUser			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:560:	createAndValidateConfig			90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:592:	getNameOrUnknown			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:603:	HandleConfigLoadError			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:644:	checkBase64Errors			90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:667:	checkUserBase64Fields			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:687:	checkClusterBase64Fields		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:703:	toStringKeyMap				83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:719:	getCluster				87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:737:	getUser					80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:758:	createKubeConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:781:	convertToContext			85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:822:	LoadContextsFromAPIConfig		76.5%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:861:	splitKubeConfigPath			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:871:	GetInClusterContext			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:918:	LoadAndStoreKubeConfigs			91.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:943:	makeDNSFriendly				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:17:		LoadAndWatchFiles			58.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:69:		addFilesToWatcher			64.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:111:		syncContexts				77.3%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:29:		Log					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:36:		log					80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:80:		SetLogFunc				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:30:		Watch					77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:51:		periodicallyWatchSubfolders		75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:86:		generateSeparatePluginPaths		90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:107:		GeneratePluginPaths			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:122:		ListPlugins				68.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:175:		pluginBasePathListForDir		77.3%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:221:		canSendRefresh				77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:242:		HandlePluginEvents			70.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:268:		PopulatePluginsCache			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:294:		HandlePluginReload			80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:330:		Delete					85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:345:		isSubdirectory				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:46:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:80:		getFreePort				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:99:		StartPortForward			52.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:182:	startPortForward			61.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:278:	checkIfPodIsRunning			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:300:	Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:313:	StopOrDeletePortForward			52.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:354:	GetPortForwards				53.3%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:385:	GetPortForwardByID			50.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:16:		portforwardKeyGenerator			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:33:		portforwardstore			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:46:		stopOrDeletePortForward			69.2%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:74:		getPortForwardList			77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:94:		getPortForwardByID			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/utils/utils.go:4:			Contains				100.0%
total:										(statements)				65.2%

Html coverage report download

@vyncent-t vyncent-t force-pushed the improve-cluster-metadata-for-ui branch 2 times, most recently from 108d28b to bdaa350 Compare March 3, 2025 19:17
Copy link

github-actions bot commented Mar 3, 2025

Backend Code coverage changed from 64.9% to 65.1%. Change: .2% 😃.

Coverage report
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:100:			ServeHTTP				58.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:149:			fileExists				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:159:			copyReplace				63.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:183:			baseURLReplace				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:211:			getOidcCallbackURL			91.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:238:			serveWithNoCacheHeader			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:247:			defaultKubeConfigPersistenceDir		61.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:275:			defaultKubeConfigPersistenceFile	75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:288:			addPluginRoutes				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:342:			createHeadlampHandler			40.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:739:			parseClusterAndToken			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:756:			decodePayload				85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:770:			getExpiryTime				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:779:			isTokenAboutToExpire			76.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:802:			refreshAndCacheNewToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:825:			getNewTokenFromRefresh			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:849:			cacheRefreshedToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:874:			OIDCTokenRefreshMiddleware		30.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:932:			StartHeadlampServer			35.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:965:			getHelmHandler				53.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:993:			checkHeadlampBackendToken		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1006:			handleClusterHelm			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1096:			handleClusterAPI			51.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1152:			handleClusterRequests			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1160:			getClusters				65.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1219:			parseCustomNameClusters			38.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1273:			parseClusterFromKubeConfig		83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1307:			getConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1318:			addCluster				57.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1353:			decodeClusterRequest			71.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1368:			processClusterRequest			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1377:			processKubeConfig			83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1394:			processManualConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1414:			handleLoadErrors			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1429:			writeKubeConfig				70.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1449:			addContextsToStore			80.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1461:			deleteCluster				0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1510:			getKubeConfigPath			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1519:			handleStatelessClusterRename		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1533:			customNameToExtenstions			45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1566:			updateCustomContextToCache		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1599:			getPathAndLoadKubeconfig		55.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1622:			renameCluster				53.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1685:			addClusterSetupRoute			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1706:			handleNodeDrain				45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1771:			drainNode				37.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1821:			handleNodeDrainStatus			52.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:124:		NewWSConnLock				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:133:		WriteJSON				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:143:		ReadJSON				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:150:		ReadMessage				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:156:		WriteMessage				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:166:		Close					100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:174:		NewMultiplexer				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:187:		updateStatus				76.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:247:		establishClusterConnection		81.8%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:294:		getClusterConfigWithFallback		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:311:		createConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:335:		dialWebSocket				81.8%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:376:		monitorConnection			54.5%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:401:		reconnect				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:432:		HandleClientWebSocket			72.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:475:		readClientMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:496:		getOrCreateConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:525:		handleConnectionError			75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:547:		writeMessageToCluster			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:565:		handleClusterMessages			85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:583:		processClusterMessage			75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:626:		sendIfNewResourceVersion		75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:669:		sendCompleteMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:700:		sendDataMessage				88.9%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:723:		cleanupConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:740:		createWrapperMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:760:		cleanupConnections			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:777:		getClusterConfig			85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:792:		CloseConnection				81.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:833:		createConnectionKey			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:838:		createWebSocketURL			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/server.go:14:			main					0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:17:			MarshalCustomObject			60.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:42:			setKeyInCache				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:69:			handleStatelessReq			51.5%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:141:			parseKubeConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:180:			websocketConnContextKey			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:230:			getContextKeyForRequest			76.9%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:40:			New					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:52:			Set					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:57:			SetWithTTL				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:75:			Delete					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:85:			Get					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:102:		GetAll					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:122:		cleanUp					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:140:		UpdateTTL				88.9%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:41:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:63:		Parse					74.4%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:150:		flagset					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:176:		defaultPluginDir			61.5%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:209:		GetDefaultKubeConfigPath		66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:74:			init					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:89:			newCache				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:93:			cacheKey				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:109:			get					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:118:			put					85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:143:			Do					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:168:			GetAuthenticator			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:172:			newAuthenticator			86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:224:			isInteractive				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:300:			UpdateTransportConfig			64.3%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:341:			WrappedRoundTripper			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:345:			RoundTrip				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:371:			credsExpired				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:378:			cert					75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:386:			getCreds				85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:403:			maybeRefreshCreds			80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:419:			refreshCredsLocked			92.5%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:531:			wrapCmdRunErrorLocked			90.9%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/syscallattr_other.go:9:	GetSysProcAttr				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/charts.go:27:			listCharts				89.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/charts.go:77:			ListCharts				72.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:35:		NewActionConfig				87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:54:		NewHandler				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:60:		NewHandlerWithSettings			60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:85:		ToRESTConfig				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:89:		ToRawKubeConfigLoader			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:93:		ToDiscoveryClient			83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:109:		ToRESTMapper				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:129:		getReleaseStatus			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:165:		setReleaseStatus			60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:188:		setReleaseStatusSilent			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:53:		getReleases				57.1%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:112:		ListRelease				68.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:158:		GetRelease				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:217:		GetReleaseHistory			46.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:276:		UninstallRelease			55.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:332:		uninstallRelease			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:355:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:360:		RollbackRelease				51.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:419:		rollbackRelease				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:451:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:456:		handleError				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:461:		returnResponse				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:477:		InstallRelease				72.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:511:		getChart				35.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:563:		installRelease				60.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:622:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:627:		UpgradeRelease				60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:663:		logActionState				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:684:		upgradeRelease				63.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:728:		Validate				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:746:		GetActionStatus				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:35:		createFileIfNotThere			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:47:		lockRepositoryFile			87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:68:		addRepository				61.8%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:131:		AddRepo					72.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:176:		createFullPath				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:184:		listRepositories			69.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:213:		ListRepo				58.3%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:236:		RemoveRepository			64.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:279:		RemoveRepo				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:291:		UpdateRepository			68.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:333:		UpdateRepository			81.8%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:26:	NewContextStore				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:35:	AddContext				23.1%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:64:	GetContexts				85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:80:	GetContext				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:90:	RemoveContext				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:95:	AddContextWithKeyAndTTL			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:100:	UpdateTTL				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/file.go:14:		WriteToFile				86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/file.go:47:		RemoveContextFromFile			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:65:	DeepCopyObject				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:70:	DeepCopy				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:90:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:101:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:112:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:123:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:136:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:148:	ClientConfig				80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:182:	RESTConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:193:	makeTransportFor			14.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:237:	OidcConfig				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:255:	ProxyRequest				83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:269:	ClientSetWithToken			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:283:	SourceStr				80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:297:	SetupProxy				91.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:322:	AuthType				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:340:	LoadContextsFromFile			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:355:	LoadContextsFromBase64String		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:367:	LoadContextsFromMultipleFiles		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:389:	loadContextsFromData			86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:427:	UnmarshalKubeconfig			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:439:	GetContextsFromKubeconfig		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:455:	ProcessContext				90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:504:	extractContextInfo			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:522:	extractClusterAndUserNames		83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:539:	getClusterAndUser			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:560:	createAndValidateConfig			90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:592:	getNameOrUnknown			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:603:	HandleConfigLoadError			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:644:	checkBase64Errors			90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:667:	checkUserBase64Fields			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:687:	checkClusterBase64Fields		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:703:	toStringKeyMap				83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:719:	getCluster				87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:737:	getUser					80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:758:	createKubeConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:781:	convertToContext			85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:822:	LoadContextsFromAPIConfig		76.5%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:861:	splitKubeConfigPath			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:871:	GetInClusterContext			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:918:	LoadAndStoreKubeConfigs			91.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:943:	makeDNSFriendly				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:17:		LoadAndWatchFiles			58.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:69:		addFilesToWatcher			64.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:111:		syncContexts				77.3%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:29:		Log					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:36:		log					80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:80:		SetLogFunc				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:30:		Watch					77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:51:		periodicallyWatchSubfolders		75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:86:		generateSeparatePluginPaths		90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:107:		GeneratePluginPaths			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:122:		ListPlugins				68.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:175:		pluginBasePathListForDir		86.4%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:221:		canSendRefresh				77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:242:		HandlePluginEvents			70.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:268:		PopulatePluginsCache			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:294:		HandlePluginReload			80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:330:		Delete					85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:345:		isSubdirectory				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:46:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:80:		getFreePort				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:99:		StartPortForward			52.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:182:	startPortForward			61.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:278:	checkIfPodIsRunning			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:300:	Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:313:	StopOrDeletePortForward			52.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:354:	GetPortForwards				53.3%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:385:	GetPortForwardByID			50.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:16:		portforwardKeyGenerator			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:33:		portforwardstore			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:46:		stopOrDeletePortForward			69.2%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:74:		getPortForwardList			77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:94:		getPortForwardByID			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/utils/utils.go:4:			Contains				100.0%
total:										(statements)				65.1%

Html coverage report download

@@ -1191,6 +1191,11 @@ func (c *HeadlampConfig) getClusters() []Cluster {
continue
}

kubeconfigPath, err := c.getKubeConfigPath(context.SourceStr())
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The actual path of the kubeconfig needs to be corrected. This will always give the kubeconfig we loaded headlamp with, but if we have more than one, it's not clear this will yield the correct value. So I think that the way to add it is in the methods where we load the actual kubeconfig: we should add a reference to the file's path for each cluster.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so to confirm, we find where we load the cluster information from the kube config, create a middle func that adds the file path from that kubeconfig, and attach it to the cluster information before sending it off again?

should the same be done for the original name then? and just save the name under clusterID or something similar before sending it off?

return path
}(),
},
"originalName": context.Name,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I need to understand what "after its processed and finished for the the frontend " means in this case.
Seems like we likely need to always keep the original name as the key (till we also add the kubeconfig path) for both the backend and frontend, and use the renamed name just for the display.

@vyncent-t vyncent-t force-pushed the improve-cluster-metadata-for-ui branch from bdaa350 to 935b77a Compare March 10, 2025 20:26
Copy link

Backend Code coverage changed from 65.0% to 65.1%. Change: .1% 😃.

Coverage report
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:100:			ServeHTTP				58.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:149:			fileExists				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:159:			copyReplace				63.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:183:			baseURLReplace				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:211:			getOidcCallbackURL			91.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:238:			serveWithNoCacheHeader			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:247:			defaultKubeConfigPersistenceDir		61.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:275:			defaultKubeConfigPersistenceFile	75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:288:			addPluginRoutes				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:342:			createHeadlampHandler			40.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:739:			parseClusterAndToken			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:756:			decodePayload				85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:770:			getExpiryTime				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:779:			isTokenAboutToExpire			76.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:802:			refreshAndCacheNewToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:825:			getNewTokenFromRefresh			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:849:			cacheRefreshedToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:874:			OIDCTokenRefreshMiddleware		30.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:932:			StartHeadlampServer			35.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:965:			getHelmHandler				53.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:993:			checkHeadlampBackendToken		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1006:			handleClusterHelm			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1096:			handleClusterAPI			51.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1152:			handleClusterRequests			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1160:			getClusters				71.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1225:			parseCustomNameClusters			38.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1279:			parseClusterFromKubeConfig		83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1313:			getConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1324:			addCluster				57.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1359:			decodeClusterRequest			71.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1374:			processClusterRequest			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1383:			processKubeConfig			83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1400:			processManualConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1420:			handleLoadErrors			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1435:			writeKubeConfig				70.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1455:			addContextsToStore			80.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1467:			deleteCluster				0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1516:			getKubeConfigPath			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1525:			handleStatelessClusterRename		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1539:			customNameToExtenstions			45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1572:			updateCustomContextToCache		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1605:			getPathAndLoadKubeconfig		55.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1628:			renameCluster				53.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1691:			addClusterSetupRoute			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1712:			handleNodeDrain				45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1777:			drainNode				37.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1827:			handleNodeDrainStatus			52.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:124:		NewWSConnLock				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:133:		WriteJSON				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:143:		ReadJSON				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:150:		ReadMessage				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:156:		WriteMessage				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:166:		Close					100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:174:		NewMultiplexer				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:187:		updateStatus				76.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:247:		establishClusterConnection		81.8%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:294:		getClusterConfigWithFallback		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:311:		createConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:335:		dialWebSocket				81.8%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:376:		monitorConnection			54.5%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:401:		reconnect				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:432:		HandleClientWebSocket			72.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:475:		readClientMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:496:		getOrCreateConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:525:		handleConnectionError			75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:547:		writeMessageToCluster			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:565:		handleClusterMessages			85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:583:		processClusterMessage			75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:626:		sendIfNewResourceVersion		75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:669:		sendCompleteMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:700:		sendDataMessage				88.9%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:723:		cleanupConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:740:		createWrapperMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:760:		cleanupConnections			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:777:		getClusterConfig			85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:792:		CloseConnection				81.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:833:		createConnectionKey			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:838:		createWebSocketURL			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/server.go:14:			main					0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:17:			MarshalCustomObject			60.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:42:			setKeyInCache				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:69:			handleStatelessReq			51.5%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:141:			parseKubeConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:180:			websocketConnContextKey			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:230:			getContextKeyForRequest			76.9%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:40:			New					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:52:			Set					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:57:			SetWithTTL				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:75:			Delete					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:85:			Get					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:102:		GetAll					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:122:		cleanUp					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:140:		UpdateTTL				88.9%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:41:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:63:		Parse					74.4%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:150:		flagset					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:176:		defaultPluginDir			61.5%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:209:		GetDefaultKubeConfigPath		66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:74:			init					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:89:			newCache				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:93:			cacheKey				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:109:			get					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:118:			put					85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:143:			Do					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:168:			GetAuthenticator			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:172:			newAuthenticator			86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:224:			isInteractive				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:300:			UpdateTransportConfig			64.3%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:341:			WrappedRoundTripper			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:345:			RoundTrip				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:371:			credsExpired				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:378:			cert					75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:386:			getCreds				85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:403:			maybeRefreshCreds			80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:419:			refreshCredsLocked			92.5%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:531:			wrapCmdRunErrorLocked			90.9%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/syscallattr_other.go:9:	GetSysProcAttr				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/charts.go:27:			listCharts				89.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/charts.go:77:			ListCharts				72.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:35:		NewActionConfig				87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:54:		NewHandler				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:60:		NewHandlerWithSettings			60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:85:		ToRESTConfig				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:89:		ToRawKubeConfigLoader			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:93:		ToDiscoveryClient			83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:109:		ToRESTMapper				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:129:		getReleaseStatus			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:165:		setReleaseStatus			60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:188:		setReleaseStatusSilent			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:53:		getReleases				57.1%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:112:		ListRelease				68.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:158:		GetRelease				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:217:		GetReleaseHistory			46.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:276:		UninstallRelease			55.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:332:		uninstallRelease			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:355:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:360:		RollbackRelease				51.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:419:		rollbackRelease				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:451:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:456:		handleError				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:461:		returnResponse				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:477:		InstallRelease				72.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:511:		getChart				35.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:563:		installRelease				60.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:622:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:627:		UpgradeRelease				60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:663:		logActionState				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:684:		upgradeRelease				63.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:728:		Validate				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:746:		GetActionStatus				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:35:		createFileIfNotThere			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:47:		lockRepositoryFile			87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:68:		addRepository				61.8%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:131:		AddRepo					72.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:176:		createFullPath				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:184:		listRepositories			69.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:213:		ListRepo				58.3%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:236:		RemoveRepository			64.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:279:		RemoveRepo				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:291:		UpdateRepository			68.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:333:		UpdateRepository			81.8%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:26:	NewContextStore				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:35:	AddContext				23.1%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:64:	GetContexts				85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:80:	GetContext				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:90:	RemoveContext				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:95:	AddContextWithKeyAndTTL			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:100:	UpdateTTL				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/file.go:14:		WriteToFile				86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/file.go:47:		RemoveContextFromFile			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:66:	DeepCopyObject				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:71:	DeepCopy				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:91:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:102:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:113:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:124:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:137:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:149:	ClientConfig				80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:183:	RESTConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:194:	makeTransportFor			14.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:238:	OidcConfig				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:256:	ProxyRequest				83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:270:	ClientSetWithToken			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:284:	SourceStr				80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:298:	SetupProxy				91.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:323:	AuthType				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:341:	LoadContextsFromFile			90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:366:	LoadContextsFromBase64String		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:378:	LoadContextsFromMultipleFiles		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:400:	loadContextsFromData			86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:438:	UnmarshalKubeconfig			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:450:	GetContextsFromKubeconfig		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:466:	ProcessContext				90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:515:	extractContextInfo			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:533:	extractClusterAndUserNames		83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:550:	getClusterAndUser			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:571:	createAndValidateConfig			90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:603:	getNameOrUnknown			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:614:	HandleConfigLoadError			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:655:	checkBase64Errors			90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:678:	checkUserBase64Fields			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:698:	checkClusterBase64Fields		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:714:	toStringKeyMap				83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:730:	getCluster				87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:748:	getUser					80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:769:	createKubeConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:792:	convertToContext			85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:833:	LoadContextsFromAPIConfig		76.5%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:872:	splitKubeConfigPath			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:882:	GetInClusterContext			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:929:	LoadAndStoreKubeConfigs			91.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:954:	makeDNSFriendly				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:17:		LoadAndWatchFiles			58.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:69:		addFilesToWatcher			64.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:111:		syncContexts				77.3%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:29:		Log					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:36:		log					80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:80:		SetLogFunc				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:30:		Watch					77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:51:		periodicallyWatchSubfolders		75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:86:		generateSeparatePluginPaths		90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:107:		GeneratePluginPaths			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:122:		ListPlugins				68.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:175:		pluginBasePathListForDir		77.3%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:221:		canSendRefresh				77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:242:		HandlePluginEvents			70.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:268:		PopulatePluginsCache			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:294:		HandlePluginReload			80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:330:		Delete					85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:345:		isSubdirectory				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:46:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:80:		getFreePort				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:99:		StartPortForward			52.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:182:	startPortForward			61.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:278:	checkIfPodIsRunning			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:300:	Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:313:	StopOrDeletePortForward			52.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:354:	GetPortForwards				53.3%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:385:	GetPortForwardByID			50.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:16:		portforwardKeyGenerator			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:33:		portforwardstore			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:46:		stopOrDeletePortForward			69.2%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:74:		getPortForwardList			77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:94:		getPortForwardByID			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/utils/utils.go:4:			Contains				100.0%
total:										(statements)				65.1%

Html coverage report download

@vyncent-t
Copy link
Collaborator Author

vyncent-t commented Mar 10, 2025

updated the branch

  • split the commits
  • added logic to get source path from where we read kubeconfigs, this is done for every cluster (this will be needed to fix the duplicate names issue)
  • added new pathID to metadata (also done for every cluster, needed for future fixes)

@dosubot dosubot bot added size:L This PR changes 100-499 lines, ignoring generated files. and removed size:M This PR changes 30-99 lines, ignoring generated files. labels Mar 11, 2025
@vyncent-t vyncent-t force-pushed the improve-cluster-metadata-for-ui branch from e666e61 to ab90e50 Compare March 18, 2025 17:29
@dosubot dosubot bot added size:XL This PR changes 500-999 lines, ignoring generated files. and removed size:L This PR changes 100-499 lines, ignoring generated files. labels Mar 18, 2025
@vyncent-t vyncent-t force-pushed the improve-cluster-metadata-for-ui branch 4 times, most recently from 4b7ac0d to 22660bd Compare March 18, 2025 19:55
Copy link

Backend Code coverage changed from 64.9% to 65.2%. Change: .3% 😃.

Coverage report
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:100:			ServeHTTP				58.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:149:			fileExists				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:159:			copyReplace				63.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:183:			baseURLReplace				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:211:			getOidcCallbackURL			91.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:238:			serveWithNoCacheHeader			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:247:			defaultKubeConfigPersistenceDir		61.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:275:			defaultKubeConfigPersistenceFile	75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:288:			addPluginRoutes				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:342:			createHeadlampHandler			40.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:739:			parseClusterAndToken			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:756:			decodePayload				85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:770:			getExpiryTime				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:779:			isTokenAboutToExpire			76.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:802:			refreshAndCacheNewToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:825:			getNewTokenFromRefresh			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:849:			cacheRefreshedToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:874:			OIDCTokenRefreshMiddleware		30.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:932:			StartHeadlampServer			35.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:965:			getHelmHandler				53.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:993:			checkHeadlampBackendToken		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1006:			handleClusterHelm			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1096:			handleClusterAPI			51.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1152:			handleClusterRequests			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1160:			getClusters				70.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1221:			parseCustomNameClusters			38.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1275:			parseClusterFromKubeConfig		83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1309:			getConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1320:			addCluster				57.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1355:			decodeClusterRequest			71.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1370:			processClusterRequest			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1379:			processKubeConfig			83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1396:			processManualConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1416:			handleLoadErrors			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1431:			writeKubeConfig				70.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1451:			addContextsToStore			80.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1463:			deleteCluster				0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1515:			getKubeConfigPath			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1527:			handleStatelessClusterRename		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1541:			customNameToExtenstions			63.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1574:			updateCustomContextToCache		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1608:			getPathAndLoadKubeconfig		42.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1660:			renameCluster				63.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1722:			findMatchingContextName			45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1746:			checkUniqueName				58.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1790:			addClusterSetupRoute			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1811:			handleNodeDrain				45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1876:			drainNode				37.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1926:			handleNodeDrainStatus			52.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:124:		NewWSConnLock				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:133:		WriteJSON				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:143:		ReadJSON				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:150:		ReadMessage				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:156:		WriteMessage				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:166:		Close					100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:174:		NewMultiplexer				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:187:		updateStatus				76.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:247:		establishClusterConnection		81.8%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:294:		getClusterConfigWithFallback		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:311:		createConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:335:		dialWebSocket				81.8%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:376:		monitorConnection			54.5%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:401:		reconnect				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:432:		HandleClientWebSocket			72.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:475:		readClientMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:496:		getOrCreateConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:525:		handleConnectionError			75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:547:		writeMessageToCluster			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:565:		handleClusterMessages			85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:583:		processClusterMessage			75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:626:		sendIfNewResourceVersion		75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:669:		sendCompleteMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:700:		sendDataMessage				88.9%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:723:		cleanupConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:740:		createWrapperMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:760:		cleanupConnections			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:777:		getClusterConfig			85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:792:		CloseConnection				81.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:833:		createConnectionKey			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:838:		createWebSocketURL			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/server.go:14:			main					0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:17:			MarshalCustomObject			60.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:42:			setKeyInCache				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:69:			handleStatelessReq			51.5%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:141:			parseKubeConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:180:			websocketConnContextKey			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:230:			getContextKeyForRequest			76.9%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:40:			New					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:52:			Set					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:57:			SetWithTTL				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:75:			Delete					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:85:			Get					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:102:		GetAll					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:122:		cleanUp					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:140:		UpdateTTL				88.9%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:41:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:63:		Parse					74.4%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:150:		flagset					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:176:		defaultPluginDir			61.5%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:209:		GetDefaultKubeConfigPath		66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:74:			init					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:89:			newCache				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:93:			cacheKey				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:109:			get					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:118:			put					85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:143:			Do					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:168:			GetAuthenticator			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:172:			newAuthenticator			86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:224:			isInteractive				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:300:			UpdateTransportConfig			64.3%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:341:			WrappedRoundTripper			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:345:			RoundTrip				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:371:			credsExpired				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:378:			cert					75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:386:			getCreds				85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:403:			maybeRefreshCreds			80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:419:			refreshCredsLocked			92.5%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:531:			wrapCmdRunErrorLocked			90.9%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/syscallattr_other.go:9:	GetSysProcAttr				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/charts.go:27:			listCharts				89.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/charts.go:77:			ListCharts				72.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:35:		NewActionConfig				87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:54:		NewHandler				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:60:		NewHandlerWithSettings			60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:85:		ToRESTConfig				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:89:		ToRawKubeConfigLoader			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:93:		ToDiscoveryClient			83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:109:		ToRESTMapper				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:129:		getReleaseStatus			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:165:		setReleaseStatus			60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:188:		setReleaseStatusSilent			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:53:		getReleases				57.1%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:112:		ListRelease				68.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:158:		GetRelease				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:217:		GetReleaseHistory			46.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:276:		UninstallRelease			55.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:332:		uninstallRelease			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:355:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:360:		RollbackRelease				51.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:419:		rollbackRelease				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:451:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:456:		handleError				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:461:		returnResponse				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:477:		InstallRelease				72.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:511:		getChart				35.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:563:		installRelease				60.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:622:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:627:		UpgradeRelease				60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:663:		logActionState				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:684:		upgradeRelease				63.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:728:		Validate				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:746:		GetActionStatus				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:35:		createFileIfNotThere			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:47:		lockRepositoryFile			87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:68:		addRepository				61.8%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:131:		AddRepo					72.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:176:		createFullPath				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:184:		listRepositories			69.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:213:		ListRepo				58.3%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:236:		RemoveRepository			64.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:279:		RemoveRepo				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:291:		UpdateRepository			68.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:333:		UpdateRepository			81.8%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:26:	NewContextStore				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:35:	AddContext				84.6%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:64:	GetContexts				85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:80:	GetContext				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:90:	RemoveContext				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:95:	AddContextWithKeyAndTTL			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:100:	UpdateTTL				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/file.go:14:		WriteToFile				86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/file.go:47:		RemoveContextFromFile			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:67:	DeepCopyObject				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:72:	DeepCopy				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:92:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:103:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:114:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:125:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:138:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:150:	ClientConfig				80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:184:	RESTConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:195:	makeTransportFor			14.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:239:	OidcConfig				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:257:	ProxyRequest				83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:271:	ClientSetWithToken			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:285:	SourceStr				80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:299:	SetupProxy				91.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:324:	AuthType				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:342:	LoadContextsFromFile			92.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:373:	LoadContextsFromBase64String		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:385:	LoadContextsFromMultipleFiles		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:407:	loadContextsFromData			86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:445:	UnmarshalKubeconfig			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:457:	GetContextsFromKubeconfig		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:473:	ProcessContext				90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:522:	extractContextInfo			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:540:	extractClusterAndUserNames		83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:557:	getClusterAndUser			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:578:	createAndValidateConfig			90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:610:	getNameOrUnknown			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:621:	HandleConfigLoadError			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:662:	checkBase64Errors			90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:685:	checkUserBase64Fields			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:705:	checkClusterBase64Fields		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:721:	toStringKeyMap				83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:737:	getCluster				87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:755:	getUser					80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:776:	createKubeConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:799:	convertToContext			85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:840:	LoadContextsFromAPIConfig		76.5%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:879:	splitKubeConfigPath			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:889:	GetInClusterContext			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:936:	LoadAndStoreKubeConfigs			91.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:961:	makeDNSFriendly				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:17:		LoadAndWatchFiles			58.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:69:		addFilesToWatcher			64.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:111:		syncContexts				77.3%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:29:		Log					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:36:		log					80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:80:		SetLogFunc				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:30:		Watch					77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:51:		periodicallyWatchSubfolders		75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:86:		generateSeparatePluginPaths		90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:107:		GeneratePluginPaths			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:122:		ListPlugins				68.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:175:		pluginBasePathListForDir		77.3%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:221:		canSendRefresh				77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:242:		HandlePluginEvents			70.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:268:		PopulatePluginsCache			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:294:		HandlePluginReload			80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:330:		Delete					85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:345:		isSubdirectory				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:46:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:80:		getFreePort				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:99:		StartPortForward			52.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:182:	startPortForward			61.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:278:	checkIfPodIsRunning			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:300:	Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:313:	StopOrDeletePortForward			52.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:354:	GetPortForwards				53.3%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:385:	GetPortForwardByID			50.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:16:		portforwardKeyGenerator			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:33:		portforwardstore			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:46:		stopOrDeletePortForward			69.2%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:74:		getPortForwardList			77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:94:		getPortForwardByID			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/utils/utils.go:4:			Contains				100.0%
total:										(statements)				65.2%

Html coverage report download

@vyncent-t vyncent-t changed the title frontend: Improve non dynamic clusters metadata for UI Fix rename cluster duplicate name issue / improve cluster metadata for UI Mar 18, 2025
@joaquimrocha joaquimrocha requested a review from knrt10 March 20, 2025 18:07
@vyncent-t vyncent-t force-pushed the improve-cluster-metadata-for-ui branch from 22660bd to 2901cd6 Compare March 24, 2025 14:36
Copy link

Backend Code coverage changed from 64.9% to 65.2%. Change: .3% 😃.

Coverage report
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:100:			ServeHTTP				58.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:149:			fileExists				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:159:			copyReplace				63.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:183:			baseURLReplace				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:211:			getOidcCallbackURL			91.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:238:			serveWithNoCacheHeader			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:247:			defaultKubeConfigPersistenceDir		61.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:275:			defaultKubeConfigPersistenceFile	75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:288:			addPluginRoutes				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:342:			createHeadlampHandler			40.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:739:			parseClusterAndToken			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:756:			decodePayload				85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:770:			getExpiryTime				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:779:			isTokenAboutToExpire			76.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:802:			refreshAndCacheNewToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:825:			getNewTokenFromRefresh			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:849:			cacheRefreshedToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:874:			OIDCTokenRefreshMiddleware		30.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:932:			StartHeadlampServer			35.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:965:			getHelmHandler				53.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:993:			checkHeadlampBackendToken		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1006:			handleClusterHelm			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1096:			handleClusterAPI			51.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1152:			handleClusterRequests			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1160:			getClusters				70.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1221:			parseCustomNameClusters			38.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1275:			parseClusterFromKubeConfig		83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1309:			getConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1320:			addCluster				57.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1355:			decodeClusterRequest			71.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1370:			processClusterRequest			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1379:			processKubeConfig			83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1396:			processManualConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1416:			handleLoadErrors			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1431:			writeKubeConfig				70.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1451:			addContextsToStore			80.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1463:			deleteCluster				0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1515:			getKubeConfigPath			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1527:			handleStatelessClusterRename		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1541:			customNameToExtenstions			63.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1574:			updateCustomContextToCache		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1608:			getPathAndLoadKubeconfig		42.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1660:			renameCluster				63.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1722:			findMatchingContextName			45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1746:			checkUniqueName				58.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1790:			addClusterSetupRoute			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1811:			handleNodeDrain				45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1876:			drainNode				37.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1926:			handleNodeDrainStatus			52.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:124:		NewWSConnLock				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:133:		WriteJSON				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:143:		ReadJSON				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:150:		ReadMessage				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:156:		WriteMessage				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:166:		Close					100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:174:		NewMultiplexer				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:187:		updateStatus				76.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:247:		establishClusterConnection		81.8%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:294:		getClusterConfigWithFallback		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:311:		createConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:335:		dialWebSocket				81.8%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:376:		monitorConnection			54.5%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:401:		reconnect				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:432:		HandleClientWebSocket			72.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:475:		readClientMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:496:		getOrCreateConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:525:		handleConnectionError			75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:547:		writeMessageToCluster			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:565:		handleClusterMessages			85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:583:		processClusterMessage			75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:626:		sendIfNewResourceVersion		75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:669:		sendCompleteMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:700:		sendDataMessage				88.9%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:723:		cleanupConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:740:		createWrapperMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:760:		cleanupConnections			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:777:		getClusterConfig			85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:792:		CloseConnection				81.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:833:		createConnectionKey			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:838:		createWebSocketURL			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/server.go:14:			main					0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:17:			MarshalCustomObject			60.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:42:			setKeyInCache				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:69:			handleStatelessReq			51.5%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:141:			parseKubeConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:180:			websocketConnContextKey			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:230:			getContextKeyForRequest			76.9%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:40:			New					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:52:			Set					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:57:			SetWithTTL				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:75:			Delete					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:85:			Get					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:102:		GetAll					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:122:		cleanUp					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:140:		UpdateTTL				88.9%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:41:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:63:		Parse					74.4%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:150:		flagset					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:176:		defaultPluginDir			61.5%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:209:		GetDefaultKubeConfigPath		66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:74:			init					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:89:			newCache				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:93:			cacheKey				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:109:			get					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:118:			put					85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:143:			Do					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:168:			GetAuthenticator			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:172:			newAuthenticator			86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:224:			isInteractive				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:300:			UpdateTransportConfig			64.3%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:341:			WrappedRoundTripper			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:345:			RoundTrip				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:371:			credsExpired				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:378:			cert					75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:386:			getCreds				85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:403:			maybeRefreshCreds			80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:419:			refreshCredsLocked			92.5%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:531:			wrapCmdRunErrorLocked			90.9%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/syscallattr_other.go:9:	GetSysProcAttr				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/charts.go:27:			listCharts				89.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/charts.go:77:			ListCharts				72.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:35:		NewActionConfig				87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:54:		NewHandler				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:60:		NewHandlerWithSettings			60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:85:		ToRESTConfig				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:89:		ToRawKubeConfigLoader			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:93:		ToDiscoveryClient			83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:109:		ToRESTMapper				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:129:		getReleaseStatus			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:165:		setReleaseStatus			60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:188:		setReleaseStatusSilent			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:53:		getReleases				57.1%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:112:		ListRelease				68.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:158:		GetRelease				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:217:		GetReleaseHistory			46.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:276:		UninstallRelease			55.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:332:		uninstallRelease			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:355:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:360:		RollbackRelease				51.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:419:		rollbackRelease				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:451:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:456:		handleError				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:461:		returnResponse				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:477:		InstallRelease				72.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:511:		getChart				35.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:563:		installRelease				60.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:622:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:627:		UpgradeRelease				60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:663:		logActionState				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:684:		upgradeRelease				63.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:728:		Validate				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:746:		GetActionStatus				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:35:		createFileIfNotThere			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:47:		lockRepositoryFile			87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:68:		addRepository				61.8%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:131:		AddRepo					72.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:176:		createFullPath				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:184:		listRepositories			69.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:213:		ListRepo				58.3%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:236:		RemoveRepository			64.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:279:		RemoveRepo				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:291:		UpdateRepository			68.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:333:		UpdateRepository			81.8%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:26:	NewContextStore				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:35:	AddContext				84.6%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:64:	GetContexts				85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:80:	GetContext				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:90:	RemoveContext				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:95:	AddContextWithKeyAndTTL			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:100:	UpdateTTL				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/file.go:14:		WriteToFile				86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/file.go:47:		RemoveContextFromFile			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:67:	DeepCopyObject				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:72:	DeepCopy				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:92:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:103:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:114:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:125:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:138:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:150:	ClientConfig				80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:184:	RESTConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:195:	makeTransportFor			14.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:239:	OidcConfig				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:257:	ProxyRequest				83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:271:	ClientSetWithToken			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:285:	SourceStr				80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:299:	SetupProxy				91.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:324:	AuthType				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:342:	LoadContextsFromFile			92.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:373:	LoadContextsFromBase64String		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:385:	LoadContextsFromMultipleFiles		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:407:	loadContextsFromData			86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:445:	UnmarshalKubeconfig			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:457:	GetContextsFromKubeconfig		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:473:	ProcessContext				90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:522:	extractContextInfo			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:540:	extractClusterAndUserNames		83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:557:	getClusterAndUser			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:578:	createAndValidateConfig			90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:610:	getNameOrUnknown			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:621:	HandleConfigLoadError			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:662:	checkBase64Errors			90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:685:	checkUserBase64Fields			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:705:	checkClusterBase64Fields		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:721:	toStringKeyMap				83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:737:	getCluster				87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:755:	getUser					80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:776:	createKubeConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:799:	convertToContext			85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:840:	LoadContextsFromAPIConfig		76.5%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:879:	splitKubeConfigPath			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:889:	GetInClusterContext			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:936:	LoadAndStoreKubeConfigs			91.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:961:	makeDNSFriendly				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:17:		LoadAndWatchFiles			58.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:69:		addFilesToWatcher			64.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:111:		syncContexts				77.3%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:29:		Log					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:36:		log					80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:80:		SetLogFunc				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:30:		Watch					77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:51:		periodicallyWatchSubfolders		75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:86:		generateSeparatePluginPaths		90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:107:		GeneratePluginPaths			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:122:		ListPlugins				68.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:175:		pluginBasePathListForDir		77.3%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:221:		canSendRefresh				77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:242:		HandlePluginEvents			70.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:268:		PopulatePluginsCache			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:294:		HandlePluginReload			80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:330:		Delete					85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:345:		isSubdirectory				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:46:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:80:		getFreePort				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:99:		StartPortForward			52.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:182:	startPortForward			61.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:278:	checkIfPodIsRunning			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:300:	Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:313:	StopOrDeletePortForward			52.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:354:	GetPortForwards				53.3%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:385:	GetPortForwardByID			50.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:16:		portforwardKeyGenerator			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:33:		portforwardstore			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:46:		stopOrDeletePortForward			69.2%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:74:		getPortForwardList			77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:94:		getPortForwardByID			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/utils/utils.go:4:			Contains				100.0%
total:										(statements)				65.2%

Html coverage report download

Comment on lines 48 to 49
PathName string `json:"pathName"`
PathID string `json:"pathID"`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of path name and path ID, which are confusing, why not kubeConfigPath and ID or ClusterID?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will change these to kubeConfigPath and ClusterID

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done!

Comment on lines +1516 to +1517
// note: we need to have it in a const for the linting to pass
const sourceKubeconfig = "kubeconfig"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This existed already before, right? I am surprised this change is needed.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one was a weird linter issue, it wouldn't accept it in the linter as an if block so I made some adjustments to it here that satisfy the linter while also being able to use it "correctly"

@vyncent-t vyncent-t force-pushed the improve-cluster-metadata-for-ui branch from 2901cd6 to cd65438 Compare March 24, 2025 23:18
Copy link

Backend Code coverage changed from 65.0% to 65.2%. Change: .2% 😃.

Coverage report
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:100:			ServeHTTP				58.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:149:			fileExists				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:159:			copyReplace				63.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:183:			baseURLReplace				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:211:			getOidcCallbackURL			91.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:238:			serveWithNoCacheHeader			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:247:			defaultKubeConfigPersistenceDir		61.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:275:			defaultKubeConfigPersistenceFile	75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:288:			addPluginRoutes				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:342:			createHeadlampHandler			40.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:739:			parseClusterAndToken			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:756:			decodePayload				85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:770:			getExpiryTime				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:779:			isTokenAboutToExpire			76.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:802:			refreshAndCacheNewToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:825:			getNewTokenFromRefresh			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:849:			cacheRefreshedToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:874:			OIDCTokenRefreshMiddleware		30.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:932:			StartHeadlampServer			35.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:965:			getHelmHandler				53.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:993:			checkHeadlampBackendToken		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1006:			handleClusterHelm			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1096:			handleClusterAPI			51.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1152:			handleClusterRequests			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1160:			getClusters				70.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1221:			parseCustomNameClusters			38.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1275:			parseClusterFromKubeConfig		83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1309:			getConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1320:			addCluster				57.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1355:			decodeClusterRequest			71.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1370:			processClusterRequest			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1379:			processKubeConfig			83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1396:			processManualConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1416:			handleLoadErrors			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1431:			writeKubeConfig				70.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1451:			addContextsToStore			80.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1463:			deleteCluster				0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1515:			getKubeConfigPath			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1527:			handleStatelessClusterRename		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1541:			customNameToExtenstions			63.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1574:			updateCustomContextToCache		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1608:			getPathAndLoadKubeconfig		42.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1660:			renameCluster				63.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1722:			findMatchingContextName			45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1746:			checkUniqueName				58.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1790:			addClusterSetupRoute			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1811:			handleNodeDrain				45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1876:			drainNode				37.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1926:			handleNodeDrainStatus			52.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:124:		NewWSConnLock				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:133:		WriteJSON				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:143:		ReadJSON				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:150:		ReadMessage				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:156:		WriteMessage				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:166:		Close					100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:174:		NewMultiplexer				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:187:		updateStatus				76.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:247:		establishClusterConnection		81.8%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:294:		getClusterConfigWithFallback		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:311:		createConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:335:		dialWebSocket				81.8%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:376:		monitorConnection			54.5%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:401:		reconnect				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:432:		HandleClientWebSocket			72.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:475:		readClientMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:496:		getOrCreateConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:525:		handleConnectionError			75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:547:		writeMessageToCluster			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:565:		handleClusterMessages			85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:583:		processClusterMessage			75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:626:		sendIfNewResourceVersion		75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:669:		sendCompleteMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:700:		sendDataMessage				88.9%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:723:		cleanupConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:740:		createWrapperMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:760:		cleanupConnections			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:777:		getClusterConfig			85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:792:		CloseConnection				81.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:833:		createConnectionKey			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:838:		createWebSocketURL			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/server.go:14:			main					0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:17:			MarshalCustomObject			60.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:42:			setKeyInCache				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:69:			handleStatelessReq			51.5%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:141:			parseKubeConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:180:			websocketConnContextKey			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:230:			getContextKeyForRequest			76.9%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:40:			New					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:52:			Set					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:57:			SetWithTTL				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:75:			Delete					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:85:			Get					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:102:		GetAll					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:122:		cleanUp					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:140:		UpdateTTL				88.9%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:41:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:63:		Parse					74.4%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:150:		flagset					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:176:		defaultPluginDir			61.5%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:209:		GetDefaultKubeConfigPath		66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:74:			init					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:89:			newCache				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:93:			cacheKey				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:109:			get					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:118:			put					85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:143:			Do					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:168:			GetAuthenticator			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:172:			newAuthenticator			86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:224:			isInteractive				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:300:			UpdateTransportConfig			64.3%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:341:			WrappedRoundTripper			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:345:			RoundTrip				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:371:			credsExpired				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:378:			cert					75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:386:			getCreds				85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:403:			maybeRefreshCreds			80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:419:			refreshCredsLocked			92.5%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:531:			wrapCmdRunErrorLocked			90.9%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/syscallattr_other.go:9:	GetSysProcAttr				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/charts.go:27:			listCharts				89.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/charts.go:77:			ListCharts				72.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:35:		NewActionConfig				87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:54:		NewHandler				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:60:		NewHandlerWithSettings			60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:85:		ToRESTConfig				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:89:		ToRawKubeConfigLoader			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:93:		ToDiscoveryClient			83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:109:		ToRESTMapper				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:129:		getReleaseStatus			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:165:		setReleaseStatus			60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:188:		setReleaseStatusSilent			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:53:		getReleases				57.1%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:112:		ListRelease				68.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:158:		GetRelease				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:217:		GetReleaseHistory			46.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:276:		UninstallRelease			55.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:332:		uninstallRelease			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:355:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:360:		RollbackRelease				51.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:419:		rollbackRelease				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:451:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:456:		handleError				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:461:		returnResponse				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:477:		InstallRelease				72.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:511:		getChart				35.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:563:		installRelease				60.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:622:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:627:		UpgradeRelease				60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:663:		logActionState				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:684:		upgradeRelease				63.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:728:		Validate				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:746:		GetActionStatus				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:35:		createFileIfNotThere			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:47:		lockRepositoryFile			87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:68:		addRepository				61.8%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:131:		AddRepo					72.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:176:		createFullPath				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:184:		listRepositories			69.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:213:		ListRepo				58.3%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:236:		RemoveRepository			64.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:279:		RemoveRepo				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:291:		UpdateRepository			68.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:333:		UpdateRepository			81.8%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:26:	NewContextStore				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:35:	AddContext				84.6%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:64:	GetContexts				85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:80:	GetContext				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:90:	RemoveContext				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:95:	AddContextWithKeyAndTTL			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:100:	UpdateTTL				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/file.go:14:		WriteToFile				86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/file.go:47:		RemoveContextFromFile			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:67:	DeepCopyObject				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:72:	DeepCopy				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:92:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:103:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:114:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:125:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:138:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:150:	ClientConfig				80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:184:	RESTConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:195:	makeTransportFor			14.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:239:	OidcConfig				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:257:	ProxyRequest				83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:271:	ClientSetWithToken			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:285:	SourceStr				80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:299:	SetupProxy				91.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:324:	AuthType				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:342:	LoadContextsFromFile			92.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:373:	LoadContextsFromBase64String		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:385:	LoadContextsFromMultipleFiles		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:407:	loadContextsFromData			86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:445:	UnmarshalKubeconfig			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:457:	GetContextsFromKubeconfig		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:473:	ProcessContext				90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:522:	extractContextInfo			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:540:	extractClusterAndUserNames		83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:557:	getClusterAndUser			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:578:	createAndValidateConfig			90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:610:	getNameOrUnknown			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:621:	HandleConfigLoadError			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:662:	checkBase64Errors			90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:685:	checkUserBase64Fields			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:705:	checkClusterBase64Fields		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:721:	toStringKeyMap				83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:737:	getCluster				87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:755:	getUser					80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:776:	createKubeConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:799:	convertToContext			85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:840:	LoadContextsFromAPIConfig		76.5%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:879:	splitKubeConfigPath			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:889:	GetInClusterContext			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:936:	LoadAndStoreKubeConfigs			91.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:961:	makeDNSFriendly				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:17:		LoadAndWatchFiles			58.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:69:		addFilesToWatcher			64.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:111:		syncContexts				77.3%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:29:		Log					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:36:		log					80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:80:		SetLogFunc				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:30:		Watch					77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:51:		periodicallyWatchSubfolders		75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:86:		generateSeparatePluginPaths		90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:107:		GeneratePluginPaths			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:122:		ListPlugins				68.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:175:		pluginBasePathListForDir		77.3%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:221:		canSendRefresh				77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:242:		HandlePluginEvents			70.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:268:		PopulatePluginsCache			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:294:		HandlePluginReload			80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:330:		Delete					85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:345:		isSubdirectory				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:46:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:80:		getFreePort				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:99:		StartPortForward			52.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:182:	startPortForward			61.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:278:	checkIfPodIsRunning			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:300:	Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:313:	StopOrDeletePortForward			52.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:354:	GetPortForwards				53.3%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:385:	GetPortForwardByID			50.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:16:		portforwardKeyGenerator			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:33:		portforwardstore			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:46:		stopOrDeletePortForward			69.2%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:74:		getPortForwardList			77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:94:		getPortForwardByID			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/utils/utils.go:4:			Contains				100.0%
total:										(statements)				65.2%

Html coverage report download

Changes Include
SettingsCluster.tsx:
- handles error logic from backend to prevent users from entering a name/custom name already in use by another cluster
- introduces new confirm dialog for when users enter clashing names

ConfirmDialog.tsx:
- introduces optional params for disabling the Yes and No button, allowing for single option "continue" dialog

clusterApi.ts:
- reworks the current renameCluster function to now handle renaming for dynamic and non dynamic clusters differently

Signed-off-by: Vincent T <[email protected]>
@vyncent-t vyncent-t force-pushed the improve-cluster-metadata-for-ui branch from cd65438 to edf8bd0 Compare March 25, 2025 14:05
Copy link

Backend Code coverage changed from 64.9% to 65.2%. Change: .3% 😃.

Coverage report
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:100:			ServeHTTP				58.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:149:			fileExists				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:159:			copyReplace				63.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:183:			baseURLReplace				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:211:			getOidcCallbackURL			91.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:238:			serveWithNoCacheHeader			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:247:			defaultKubeConfigPersistenceDir		61.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:275:			defaultKubeConfigPersistenceFile	75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:288:			addPluginRoutes				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:342:			createHeadlampHandler			40.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:739:			parseClusterAndToken			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:756:			decodePayload				85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:770:			getExpiryTime				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:779:			isTokenAboutToExpire			76.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:802:			refreshAndCacheNewToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:825:			getNewTokenFromRefresh			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:849:			cacheRefreshedToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:874:			OIDCTokenRefreshMiddleware		30.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:932:			StartHeadlampServer			35.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:965:			getHelmHandler				53.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:993:			checkHeadlampBackendToken		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1006:			handleClusterHelm			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1096:			handleClusterAPI			51.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1152:			handleClusterRequests			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1160:			getClusters				70.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1221:			parseCustomNameClusters			38.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1275:			parseClusterFromKubeConfig		83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1309:			getConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1320:			addCluster				57.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1355:			decodeClusterRequest			71.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1370:			processClusterRequest			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1379:			processKubeConfig			83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1396:			processManualConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1416:			handleLoadErrors			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1431:			writeKubeConfig				70.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1451:			addContextsToStore			80.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1463:			deleteCluster				0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1515:			getKubeConfigPath			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1527:			handleStatelessClusterRename		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1541:			customNameToExtenstions			63.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1574:			updateCustomContextToCache		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1608:			getPathAndLoadKubeconfig		42.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1660:			renameCluster				63.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1722:			findMatchingContextName			45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1746:			checkUniqueName				58.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1790:			addClusterSetupRoute			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1811:			handleNodeDrain				45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1876:			drainNode				37.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1926:			handleNodeDrainStatus			52.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:124:		NewWSConnLock				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:133:		WriteJSON				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:143:		ReadJSON				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:150:		ReadMessage				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:156:		WriteMessage				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:166:		Close					100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:174:		NewMultiplexer				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:187:		updateStatus				76.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:247:		establishClusterConnection		81.8%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:294:		getClusterConfigWithFallback		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:311:		createConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:335:		dialWebSocket				81.8%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:376:		monitorConnection			54.5%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:401:		reconnect				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:432:		HandleClientWebSocket			72.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:475:		readClientMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:496:		getOrCreateConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:525:		handleConnectionError			75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:547:		writeMessageToCluster			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:565:		handleClusterMessages			85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:583:		processClusterMessage			75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:626:		sendIfNewResourceVersion		75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:669:		sendCompleteMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:700:		sendDataMessage				88.9%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:723:		cleanupConnection			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:740:		createWrapperMessage			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:760:		cleanupConnections			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:777:		getClusterConfig			85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:792:		CloseConnection				81.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:833:		createConnectionKey			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/multiplexer.go:838:		createWebSocketURL			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/server.go:14:			main					0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:17:			MarshalCustomObject			60.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:42:			setKeyInCache				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:69:			handleStatelessReq			51.5%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:141:			parseKubeConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:180:			websocketConnContextKey			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/stateless.go:230:			getContextKeyForRequest			76.9%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:40:			New					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:52:			Set					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:57:			SetWithTTL				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:75:			Delete					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:85:			Get					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:102:		GetAll					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:122:		cleanUp					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/cache/cache.go:140:		UpdateTTL				88.9%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:41:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:63:		Parse					74.4%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:150:		flagset					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:176:		defaultPluginDir			61.5%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:209:		GetDefaultKubeConfigPath		66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:74:			init					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:89:			newCache				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:93:			cacheKey				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:109:			get					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:118:			put					85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:143:			Do					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:168:			GetAuthenticator			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:172:			newAuthenticator			86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:224:			isInteractive				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:300:			UpdateTransportConfig			64.3%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:341:			WrappedRoundTripper			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:345:			RoundTrip				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:371:			credsExpired				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:378:			cert					75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:386:			getCreds				85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:403:			maybeRefreshCreds			80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:419:			refreshCredsLocked			92.5%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/exec.go:531:			wrapCmdRunErrorLocked			90.9%
github.com/headlamp-k8s/headlamp/backend/pkg/exec/syscallattr_other.go:9:	GetSysProcAttr				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/charts.go:27:			listCharts				89.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/charts.go:77:			ListCharts				72.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:35:		NewActionConfig				87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:54:		NewHandler				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:60:		NewHandlerWithSettings			60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:85:		ToRESTConfig				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:89:		ToRawKubeConfigLoader			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:93:		ToDiscoveryClient			83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:109:		ToRESTMapper				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:129:		getReleaseStatus			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:165:		setReleaseStatus			60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/handler.go:188:		setReleaseStatusSilent			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:53:		getReleases				57.1%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:112:		ListRelease				68.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:158:		GetRelease				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:217:		GetReleaseHistory			46.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:276:		UninstallRelease			55.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:332:		uninstallRelease			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:355:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:360:		RollbackRelease				51.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:419:		rollbackRelease				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:451:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:456:		handleError				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:461:		returnResponse				71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:477:		InstallRelease				72.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:511:		getChart				35.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:563:		installRelease				60.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:622:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:627:		UpgradeRelease				60.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:663:		logActionState				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:684:		upgradeRelease				63.6%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:728:		Validate				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/release.go:746:		GetActionStatus				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:35:		createFileIfNotThere			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:47:		lockRepositoryFile			87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:68:		addRepository				61.8%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:131:		AddRepo					72.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:176:		createFullPath				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:184:		listRepositories			69.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:213:		ListRepo				58.3%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:236:		RemoveRepository			64.0%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:279:		RemoveRepo				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:291:		UpdateRepository			68.2%
github.com/headlamp-k8s/headlamp/backend/pkg/helm/repository.go:333:		UpdateRepository			81.8%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:26:	NewContextStore				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:35:	AddContext				84.6%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:64:	GetContexts				85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:80:	GetContext				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:90:	RemoveContext				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:95:	AddContextWithKeyAndTTL			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/contextStore.go:100:	UpdateTTL				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/file.go:14:		WriteToFile				86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/file.go:47:		RemoveContextFromFile			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:67:	DeepCopyObject				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:72:	DeepCopy				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:92:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:103:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:114:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:125:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:138:	Error					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:150:	ClientConfig				80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:184:	RESTConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:195:	makeTransportFor			14.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:239:	OidcConfig				0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:257:	ProxyRequest				83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:271:	ClientSetWithToken			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:285:	SourceStr				80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:299:	SetupProxy				91.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:324:	AuthType				66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:342:	LoadContextsFromFile			92.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:373:	LoadContextsFromBase64String		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:385:	LoadContextsFromMultipleFiles		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:407:	loadContextsFromData			86.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:445:	UnmarshalKubeconfig			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:457:	GetContextsFromKubeconfig		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:473:	ProcessContext				90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:522:	extractContextInfo			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:540:	extractClusterAndUserNames		83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:557:	getClusterAndUser			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:578:	createAndValidateConfig			90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:610:	getNameOrUnknown			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:621:	HandleConfigLoadError			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:662:	checkBase64Errors			90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:685:	checkUserBase64Fields			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:705:	checkClusterBase64Fields		100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:721:	toStringKeyMap				83.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:737:	getCluster				87.5%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:755:	getUser					80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:776:	createKubeConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:799:	convertToContext			85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:840:	LoadContextsFromAPIConfig		76.5%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:879:	splitKubeConfigPath			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:889:	GetInClusterContext			0.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:936:	LoadAndStoreKubeConfigs			91.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/kubeconfig.go:961:	makeDNSFriendly				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:17:		LoadAndWatchFiles			58.3%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:69:		addFilesToWatcher			64.7%
github.com/headlamp-k8s/headlamp/backend/pkg/kubeconfig/watcher.go:111:		syncContexts				77.3%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:29:		Log					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:36:		log					80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/logger/logger.go:80:		SetLogFunc				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:30:		Watch					77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:51:		periodicallyWatchSubfolders		75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:86:		generateSeparatePluginPaths		90.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:107:		GeneratePluginPaths			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:122:		ListPlugins				68.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:175:		pluginBasePathListForDir		77.3%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:221:		canSendRefresh				77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:242:		HandlePluginEvents			70.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:268:		PopulatePluginsCache			66.7%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:294:		HandlePluginReload			80.0%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:330:		Delete					85.7%
github.com/headlamp-k8s/headlamp/backend/pkg/plugins/plugins.go:345:		isSubdirectory				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:46:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:80:		getFreePort				75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:99:		StartPortForward			52.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:182:	startPortForward			61.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:278:	checkIfPodIsRunning			71.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:300:	Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:313:	StopOrDeletePortForward			52.4%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:354:	GetPortForwards				53.3%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/handler.go:385:	GetPortForwardByID			50.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:16:		portforwardKeyGenerator			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:33:		portforwardstore			75.0%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:46:		stopOrDeletePortForward			69.2%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:74:		getPortForwardList			77.8%
github.com/headlamp-k8s/headlamp/backend/pkg/portforward/store.go:94:		getPortForwardByID			100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/utils/utils.go:4:			Contains				100.0%
total:										(statements)				65.2%

Html coverage report download

@k8s-triage-robot
Copy link

Unknown CLA label state. Rechecking for CLA labels.

Send feedback to sig-contributor-experience at kubernetes/community.

/check-cla
/easycla

Copy link

CLA Not Signed

@k8s-ci-robot k8s-ci-robot added the cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. label Apr 1, 2025
@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Apr 9, 2025
@k8s-ci-robot
Copy link
Contributor

PR needs rebase.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@vyncent-t vyncent-t changed the title Fix rename cluster duplicate name issue / improve cluster metadata for UI [OLD] Fix rename cluster duplicate name issue / improve cluster metadata for UI Apr 15, 2025
@k8s-ci-robot k8s-ci-robot added the size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. label Apr 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. frontend Issues related to the frontend needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. size:XL This PR changes 500-999 lines, ignoring generated files. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants