Skip to content
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

app: backend: Add flag for watching plugins changes #2939

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

skoeva
Copy link
Contributor

@skoeva skoeva commented Feb 21, 2025

This change creates a CLI flag in the backend + desktop for watching changes to the plugins or their directory.

Fixes: #2894

Testing

Backend

  • Run make backend
  • Run cd backend && ./headlamp-server -watch-plugins-changes false

Desktop

  • Run cd app && npm run build
  • Run cd dist/linux-unpacked && ./headlamp -watch-plugins-changes false and ensure that the flag is passed in

@skoeva skoeva added backend Issues related to the backend plugins app labels Feb 21, 2025
@skoeva skoeva self-assigned this Feb 21, 2025
@skoeva skoeva linked an issue Feb 21, 2025 that may be closed by this pull request
@dosubot dosubot bot added the size:S This PR changes 10-29 lines, ignoring generated files. label Feb 21, 2025
@skoeva skoeva force-pushed the plugins-watch-option branch from ebff55f to 1aee38b Compare February 21, 2025 15:38
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.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:738:			parseClusterAndToken			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:755:			decodePayload				85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:769:			getExpiryTime				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:778:			isTokenAboutToExpire			76.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:801:			refreshAndCacheNewToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:824:			getNewTokenFromRefresh			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:848:			cacheRefreshedToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:873:			OIDCTokenRefreshMiddleware		30.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:931:			StartHeadlampServer			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:945:			getHelmHandler				53.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:973:			checkHeadlampBackendToken		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:986:			handleClusterHelm			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1076:			handleClusterAPI			51.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1132:			handleClusterRequests			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1140:			getClusters				64.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1190:			parseCustomNameClusters			38.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1244:			parseClusterFromKubeConfig		83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1278:			getConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1289:			addCluster				57.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1324:			decodeClusterRequest			71.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1339:			processClusterRequest			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1348:			processKubeConfig			83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1365:			processManualConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1385:			handleLoadErrors			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1400:			writeKubeConfig				70.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1420:			addContextsToStore			80.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1432:			deleteCluster				0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1481:			getKubeConfigPath			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1490:			handleStatelessClusterRename		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1504:			customNameToExtenstions			45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1537:			updateCustomContextToCache		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1570:			getPathAndLoadKubeconfig		55.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1593:			renameCluster				53.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1656:			addClusterSetupRoute			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1677:			handleNodeDrain				45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1742:			drainNode				37.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1792:			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: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					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		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.2%

Html coverage report download

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.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:738:			parseClusterAndToken			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:755:			decodePayload				85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:769:			getExpiryTime				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:778:			isTokenAboutToExpire			76.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:801:			refreshAndCacheNewToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:824:			getNewTokenFromRefresh			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:848:			cacheRefreshedToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:873:			OIDCTokenRefreshMiddleware		30.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:931:			StartHeadlampServer			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:945:			getHelmHandler				53.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:973:			checkHeadlampBackendToken		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:986:			handleClusterHelm			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1076:			handleClusterAPI			51.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1132:			handleClusterRequests			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1140:			getClusters				64.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1190:			parseCustomNameClusters			38.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1244:			parseClusterFromKubeConfig		83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1278:			getConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1289:			addCluster				57.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1324:			decodeClusterRequest			71.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1339:			processClusterRequest			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1348:			processKubeConfig			83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1365:			processManualConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1385:			handleLoadErrors			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1400:			writeKubeConfig				70.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1420:			addContextsToStore			80.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1432:			deleteCluster				0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1481:			getKubeConfigPath			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1490:			handleStatelessClusterRename		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1504:			customNameToExtenstions			45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1537:			updateCustomContextToCache		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1570:			getPathAndLoadKubeconfig		55.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1593:			renameCluster				53.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1656:			addClusterSetupRoute			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1677:			handleNodeDrain				45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1742:			drainNode				37.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1792:			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: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					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.1%

Html coverage report download

@joaquimrocha joaquimrocha requested a review from illume February 25, 2025 13:02
@skoeva skoeva changed the title app: backend: Add flag to disable plugins watch app: backend: Add flag for watching plugins changes Feb 25, 2025
@skoeva skoeva force-pushed the plugins-watch-option branch from 1aee38b to 7b99366 Compare February 25, 2025 13:28
Copy link

Backend Code coverage changed from 65.1% to 65.0%. 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			38.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:738:			parseClusterAndToken			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:755:			decodePayload				85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:769:			getExpiryTime				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:778:			isTokenAboutToExpire			76.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:801:			refreshAndCacheNewToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:824:			getNewTokenFromRefresh			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:848:			cacheRefreshedToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:873:			OIDCTokenRefreshMiddleware		30.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:931:			StartHeadlampServer			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:945:			getHelmHandler				53.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:973:			checkHeadlampBackendToken		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:986:			handleClusterHelm			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1076:			handleClusterAPI			51.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1132:			handleClusterRequests			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1140:			getClusters				64.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1190:			parseCustomNameClusters			38.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1244:			parseClusterFromKubeConfig		83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1278:			getConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1289:			addCluster				57.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1324:			decodeClusterRequest			71.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1339:			processClusterRequest			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1348:			processKubeConfig			83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1365:			processManualConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1385:			handleLoadErrors			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1400:			writeKubeConfig				70.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1420:			addContextsToStore			80.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1432:			deleteCluster				0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1481:			getKubeConfigPath			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1490:			handleStatelessClusterRename		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1504:			customNameToExtenstions			45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1537:			updateCustomContextToCache		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1570:			getPathAndLoadKubeconfig		55.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1593:			renameCluster				53.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1656:			addClusterSetupRoute			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1677:			handleNodeDrain				45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1742:			drainNode				37.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1792:			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: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					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.0%

Html coverage report download

@illume illume force-pushed the plugins-watch-option branch 2 times, most recently from 91ffcee to 4441ebe Compare February 26, 2025 06:31
Copy link

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

Coverage report
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:101:			ServeHTTP				58.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:150:			fileExists				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:160:			copyReplace				63.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:184:			baseURLReplace				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:212:			getOidcCallbackURL			91.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:239:			serveWithNoCacheHeader			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:248:			defaultKubeConfigPersistenceDir		61.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:276:			defaultKubeConfigPersistenceFile	75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:289:			addPluginRoutes				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:343:			createHeadlampHandler			39.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:740:			parseClusterAndToken			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:757:			decodePayload				85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:771:			getExpiryTime				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:780:			isTokenAboutToExpire			76.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:803:			refreshAndCacheNewToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:826:			getNewTokenFromRefresh			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:850:			cacheRefreshedToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:875:			OIDCTokenRefreshMiddleware		30.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:933:			StartHeadlampServer			71.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:949:			getHelmHandler				53.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:977:			checkHeadlampBackendToken		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:990:			handleClusterHelm			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1080:			handleClusterAPI			51.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1136:			handleClusterRequests			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1144:			getClusters				64.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1194:			parseCustomNameClusters			38.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1248:			parseClusterFromKubeConfig		83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1282:			getConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1293:			addCluster				57.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1328:			decodeClusterRequest			71.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1343:			processClusterRequest			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1352:			processKubeConfig			83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1369:			processManualConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1389:			handleLoadErrors			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1404:			writeKubeConfig				70.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1424:			addContextsToStore			80.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1436:			deleteCluster				0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1485:			getKubeConfigPath			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1494:			handleStatelessClusterRename		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1508:			customNameToExtenstions			45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1541:			updateCustomContextToCache		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1574:			getPathAndLoadKubeconfig		55.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1597:			renameCluster				53.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1660:			addClusterSetupRoute			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1681:			handleNodeDrain				45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1746:			drainNode				37.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1796:			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:42:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:64:		Parse					74.4%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:151:		flagset					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:178:		defaultPluginDir			61.5%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:211:		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.0%

Html coverage report download

@illume
Copy link
Collaborator

illume commented Feb 26, 2025

A few small changes...

  • Rebased against main to fix conflict
  • Changed to -watch-plugins-changes in PR description away from old flag
  • Used -watch-plugins-changes false in the container image inside Dockerfile
  • Added a usage of -watch-plugins-changes to doc

Dockerfile Outdated
@@ -95,4 +95,4 @@ USER headlamp
EXPOSE 4466

ENV HEADLAMP_STATIC_PLUGINS_DIR=/headlamp/static-plugins
ENTRYPOINT ["/headlamp/headlamp-server", "-html-static-dir", "/headlamp/frontend", "-plugins-dir", "/headlamp/plugins"]
ENTRYPOINT ["/headlamp/headlamp-server", "-html-static-dir", "/headlamp/frontend", "-plugins-dir", "/headlamp/plugins", "-watch-plugins-changes", "false"]
Copy link
Collaborator

Choose a reason for hiding this comment

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

Added this. @joaquimrocha please review?

Copy link
Collaborator

Choose a reason for hiding this comment

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

Hrmm… Adding this seems to stop the container tests from passing.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Is there a good reason for keeping this here? If it's being problematic I suppose we could remove it

Copy link

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

Coverage report
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:101:			ServeHTTP				58.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:150:			fileExists				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:160:			copyReplace				63.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:184:			baseURLReplace				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:212:			getOidcCallbackURL			91.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:239:			serveWithNoCacheHeader			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:248:			defaultKubeConfigPersistenceDir		61.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:276:			defaultKubeConfigPersistenceFile	75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:289:			addPluginRoutes				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:343:			createHeadlampHandler			39.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:740:			parseClusterAndToken			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:757:			decodePayload				85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:771:			getExpiryTime				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:780:			isTokenAboutToExpire			76.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:803:			refreshAndCacheNewToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:826:			getNewTokenFromRefresh			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:850:			cacheRefreshedToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:875:			OIDCTokenRefreshMiddleware		30.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:933:			StartHeadlampServer			71.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:949:			getHelmHandler				53.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:977:			checkHeadlampBackendToken		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:990:			handleClusterHelm			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1080:			handleClusterAPI			51.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1136:			handleClusterRequests			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1144:			getClusters				64.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1194:			parseCustomNameClusters			38.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1248:			parseClusterFromKubeConfig		83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1282:			getConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1293:			addCluster				57.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1328:			decodeClusterRequest			71.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1343:			processClusterRequest			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1352:			processKubeConfig			83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1369:			processManualConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1389:			handleLoadErrors			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1404:			writeKubeConfig				70.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1424:			addContextsToStore			80.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1436:			deleteCluster				0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1485:			getKubeConfigPath			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1494:			handleStatelessClusterRename		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1508:			customNameToExtenstions			45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1541:			updateCustomContextToCache		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1574:			getPathAndLoadKubeconfig		55.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1597:			renameCluster				53.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1660:			addClusterSetupRoute			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1681:			handleNodeDrain				45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1746:			drainNode				37.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1796:			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:42:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:64:		Parse					74.4%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:151:		flagset					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:178:		defaultPluginDir			61.5%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:211:		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.0%

Html coverage report download

Copy link
Collaborator

@illume illume left a comment

Choose a reason for hiding this comment

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

👍 thanks

@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label Feb 26, 2025
@illume illume requested a review from joaquimrocha February 26, 2025 06:43
Copy link
Collaborator

@illume illume left a comment

Choose a reason for hiding this comment

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

The container tests are failing now that I added the watch false option into the container and I’m not sure why yet.

(restarted them twice)

@dosubot dosubot bot removed the lgtm This PR has been approved by a maintainer label Feb 26, 2025
Copy link
Collaborator

@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.

Found a possible issue, as commented in line.
Also would it make sense to have it as false by default? It would break the behavior we currently have (where it's on unless -in-cluster), but I feel like the use cases for having it on by default are less than otherwise. I am fine if we don't make it false by default on the grounds of keeping the behavior we had.

@illume illume added this to the v0.30.0 milestone Feb 26, 2025
@skoeva skoeva force-pushed the plugins-watch-option branch from 4441ebe to aac4f48 Compare February 26, 2025 20:27
Copy link

Backend Code coverage changed from 65.0% to 65.3%. Change: .3% 😃.

Coverage report
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:101:			ServeHTTP				58.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:150:			fileExists				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:160:			copyReplace				63.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:184:			baseURLReplace				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:212:			getOidcCallbackURL			91.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:239:			serveWithNoCacheHeader			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:248:			defaultKubeConfigPersistenceDir		61.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:276:			defaultKubeConfigPersistenceFile	75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:289:			addPluginRoutes				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:343:			createHeadlampHandler			40.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:740:			parseClusterAndToken			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:757:			decodePayload				85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:771:			getExpiryTime				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:780:			isTokenAboutToExpire			76.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:803:			refreshAndCacheNewToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:826:			getNewTokenFromRefresh			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:850:			cacheRefreshedToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:875:			OIDCTokenRefreshMiddleware		30.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:933:			StartHeadlampServer			71.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:949:			getHelmHandler				53.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:977:			checkHeadlampBackendToken		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:990:			handleClusterHelm			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1080:			handleClusterAPI			51.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1136:			handleClusterRequests			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1144:			getClusters				64.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1194:			parseCustomNameClusters			38.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1248:			parseClusterFromKubeConfig		83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1282:			getConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1293:			addCluster				57.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1328:			decodeClusterRequest			71.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1343:			processClusterRequest			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1352:			processKubeConfig			83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1369:			processManualConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1389:			handleLoadErrors			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1404:			writeKubeConfig				70.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1424:			addContextsToStore			80.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1436:			deleteCluster				0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1485:			getKubeConfigPath			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1494:			handleStatelessClusterRename		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1508:			customNameToExtenstions			45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1541:			updateCustomContextToCache		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1574:			getPathAndLoadKubeconfig		55.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1597:			renameCluster				53.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1660:			addClusterSetupRoute			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1681:			handleNodeDrain				45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1746:			drainNode				37.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1796:			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:42:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:64:		Parse					74.4%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:151:		flagset					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:178:		defaultPluginDir			61.5%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:211:		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		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.3%

Html coverage report download

This change creates a CLI flag in the backend + desktop for watching
changes to the plugins or their directory.

Stops watching for plugin changes in the container image.

Fixes: #2894

Signed-off-by: Evangelos Skopelitis <eskopelitis@microsoft.com>
Signed-off-by: René Dudfield <renedudfield@microsoft.com>
@skoeva skoeva force-pushed the plugins-watch-option branch from aac4f48 to deb2603 Compare March 3, 2025 14:09
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:101:			ServeHTTP				58.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:150:			fileExists				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:160:			copyReplace				63.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:184:			baseURLReplace				100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:212:			getOidcCallbackURL			91.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:239:			serveWithNoCacheHeader			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:248:			defaultKubeConfigPersistenceDir		61.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:276:			defaultKubeConfigPersistenceFile	75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:289:			addPluginRoutes				50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:343:			createHeadlampHandler			40.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:740:			parseClusterAndToken			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:757:			decodePayload				85.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:771:			getExpiryTime				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:780:			isTokenAboutToExpire			76.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:803:			refreshAndCacheNewToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:826:			getNewTokenFromRefresh			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:850:			cacheRefreshedToken			0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:875:			OIDCTokenRefreshMiddleware		30.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:933:			StartHeadlampServer			35.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:966:			getHelmHandler				53.8%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:994:			checkHeadlampBackendToken		100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1007:			handleClusterHelm			33.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1097:			handleClusterAPI			51.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1153:			handleClusterRequests			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1161:			getClusters				64.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1211:			parseCustomNameClusters			38.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1265:			parseClusterFromKubeConfig		83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1299:			getConfig				75.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1310:			addCluster				57.9%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1345:			decodeClusterRequest			71.4%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1360:			processClusterRequest			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1369:			processKubeConfig			83.3%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1386:			processManualConfig			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1406:			handleLoadErrors			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1421:			writeKubeConfig				70.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1441:			addContextsToStore			80.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1453:			deleteCluster				0.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1502:			getKubeConfigPath			66.7%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1511:			handleStatelessClusterRename		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1525:			customNameToExtenstions			45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1558:			updateCustomContextToCache		50.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1591:			getPathAndLoadKubeconfig		55.6%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1614:			renameCluster				53.1%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1677:			addClusterSetupRoute			100.0%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1698:			handleNodeDrain				45.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1763:			drainNode				37.5%
github.com/headlamp-k8s/headlamp/backend/cmd/headlamp.go:1813:			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:42:		Validate				100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:64:		Parse					74.4%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:151:		flagset					100.0%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:178:		defaultPluginDir			61.5%
github.com/headlamp-k8s/headlamp/backend/pkg/config/config.go:211:		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

@skoeva skoeva requested a review from illume March 3, 2025 17:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
app backend Issues related to the backend plugins size:S This PR changes 10-29 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add flag to disable plugins watch
3 participants