@@ -11,8 +11,11 @@ import software.amazon.awssdk.services.codewhispererruntime.CodeWhispererRuntime
1111import software.amazon.awssdk.services.codewhispererruntime.model.FeatureValue
1212import software.amazon.awssdk.services.codewhispererruntime.model.ListAvailableCustomizationsRequest
1313import software.aws.toolkits.core.utils.debug
14+ import software.aws.toolkits.core.utils.error
1415import software.aws.toolkits.core.utils.getLogger
1516import software.aws.toolkits.jetbrains.core.awsClient
17+ import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
18+ import software.aws.toolkits.jetbrains.core.credentials.pinning.QConnection
1619import software.aws.toolkits.jetbrains.utils.isQExpired
1720
1821@Service
@@ -22,12 +25,17 @@ class CodeWhispererFeatureConfigService {
2225 @RequiresBackgroundThread
2326 fun fetchFeatureConfigs (project : Project ) {
2427 if (isQExpired(project)) return
28+ val connection = connection(project)
29+ if (connection == null ) {
30+ LOG .error { " No connection found even after validating Q connection" }
31+ return
32+ }
2533
2634 LOG .debug { " Fetching feature configs" }
2735 try {
28- val response = project .awsClient<CodeWhispererRuntimeClient >().listFeatureEvaluations {
36+ val response = connection.getConnectionSettings() .awsClient<CodeWhispererRuntimeClient >().listFeatureEvaluations {
2937 it.userContext(codeWhispererUserContext())
30- }
38+ } ? : return
3139
3240 // Simply force overwrite feature configs from server response, no needed to check existing values.
3341 response.featureEvaluations().forEach {
@@ -51,7 +59,7 @@ class CodeWhispererFeatureConfigService {
5159 val availableCustomizations =
5260 calculateIfIamIdentityCenterConnection(project) {
5361 try {
54- project .awsClient<CodeWhispererRuntimeClient >().listAvailableCustomizationsPaginator(
62+ connection.getConnectionSettings() .awsClient<CodeWhispererRuntimeClient >().listAvailableCustomizationsPaginator(
5563 ListAvailableCustomizationsRequest .builder().build()
5664 )
5765 .stream()
@@ -116,6 +124,9 @@ class CodeWhispererFeatureConfigService {
116124 featureConfigs[name]?.value ? : FEATURE_DEFINITIONS [name]?.value
117125 ? : FeatureValue .builder().boolValue(false ).build()
118126
127+ private fun connection (project : Project ) =
128+ ToolkitConnectionManager .getInstance(project).activeConnectionForFeature(QConnection .getInstance())
129+
119130 companion object {
120131 fun getInstance (): CodeWhispererFeatureConfigService = service()
121132 private const val TEST_FEATURE_NAME = " testFeature"
0 commit comments