Skip to content

Commit 3fa9afe

Browse files
authored
fix(identity): update endpoint for Create/UpdateWorkloadIdentity (#249)
1 parent cb44b79 commit 3fa9afe

File tree

2 files changed

+18
-30
lines changed

2 files changed

+18
-30
lines changed

src/bedrock_agentcore/services/identity.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,6 @@ def __init__(self, region: str):
7878
self.cp_client = boto3.client(
7979
"bedrock-agentcore-control", region_name=region, endpoint_url=get_control_plane_endpoint(region)
8080
)
81-
self.identity_client = boto3.client(
82-
"bedrock-agentcore-control", region_name=region, endpoint_url=get_data_plane_endpoint(region)
83-
)
8481
self.dp_client = boto3.client(
8582
"bedrock-agentcore", region_name=region, endpoint_url=get_data_plane_endpoint(region)
8683
)
@@ -122,7 +119,7 @@ def create_workload_identity(
122119
self.logger.info("Creating workload identity...")
123120
if not name:
124121
name = f"workload-{uuid.uuid4().hex[:8]}"
125-
return self.identity_client.create_workload_identity(
122+
return self.cp_client.create_workload_identity(
126123
name=name, allowedResourceOauth2ReturnUrls=allowed_resource_oauth_2_return_urls or []
127124
)
128125

@@ -131,7 +128,7 @@ def update_workload_identity(self, name: str, allowed_resource_oauth_2_return_ur
131128
self.logger.info(
132129
"Updating workload identity '%s' with callback urls: %s", name, allowed_resource_oauth_2_return_urls
133130
)
134-
return self.identity_client.update_workload_identity(
131+
return self.cp_client.update_workload_identity(
135132
name=name, allowedResourceOauth2ReturnUrls=allowed_resource_oauth_2_return_urls
136133
)
137134

tests/bedrock_agentcore/services/test_identity.py

Lines changed: 16 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -376,9 +376,8 @@ def test_get_workload_access_token_with_user_token(self):
376376

377377
with patch("boto3.client") as mock_boto_client:
378378
mock_cp_client = Mock()
379-
mock_identity_client = Mock()
380379
mock_dp_client = Mock()
381-
mock_boto_client.side_effect = [mock_cp_client, mock_identity_client, mock_dp_client]
380+
mock_boto_client.side_effect = [mock_cp_client, mock_dp_client]
382381

383382
identity_client = IdentityClient(region)
384383

@@ -406,9 +405,8 @@ def test_get_workload_access_token_with_user_id(self):
406405

407406
with patch("boto3.client") as mock_boto_client:
408407
mock_cp_client = Mock()
409-
mock_identity_client = Mock()
410408
mock_dp_client = Mock()
411-
mock_boto_client.side_effect = [mock_cp_client, mock_identity_client, mock_dp_client]
409+
mock_boto_client.side_effect = [mock_cp_client, mock_dp_client]
412410

413411
identity_client = IdentityClient(region)
414412

@@ -435,9 +433,8 @@ def test_get_workload_access_token_without_user_info(self):
435433

436434
with patch("boto3.client") as mock_boto_client:
437435
mock_cp_client = Mock()
438-
mock_identity_client = Mock()
439436
mock_dp_client = Mock()
440-
mock_boto_client.side_effect = [mock_cp_client, mock_identity_client, mock_dp_client]
437+
mock_boto_client.side_effect = [mock_cp_client, mock_dp_client]
441438

442439
identity_client = IdentityClient(region)
443440

@@ -461,36 +458,35 @@ def test_create_workload_identity(self):
461458

462459
with patch("boto3.client") as mock_boto_client:
463460
mock_cp_client = Mock()
464-
mock_identity_client = Mock()
465461
mock_dp_client = Mock()
466-
mock_boto_client.side_effect = [mock_cp_client, mock_identity_client, mock_dp_client]
462+
mock_boto_client.side_effect = [mock_cp_client, mock_dp_client]
467463

468464
identity_client = IdentityClient(region)
469465

470466
# Test with provided name
471467
custom_name = "my-custom-workload"
472468
expected_response = {"name": custom_name, "workloadIdentityId": "workload-123"}
473-
mock_identity_client.create_workload_identity.return_value = expected_response
469+
mock_cp_client.create_workload_identity.return_value = expected_response
474470

475471
result = identity_client.create_workload_identity(name=custom_name)
476472

477473
assert result == expected_response
478-
mock_identity_client.create_workload_identity.assert_called_with(
474+
mock_cp_client.create_workload_identity.assert_called_with(
479475
name=custom_name, allowedResourceOauth2ReturnUrls=[]
480476
)
481477

482478
# Test without provided name (auto-generated)
483-
mock_identity_client.reset_mock()
479+
mock_cp_client.reset_mock()
484480
expected_response_auto = {"name": "workload-abcd1234", "workloadIdentityId": "workload-456"}
485-
mock_identity_client.create_workload_identity.return_value = expected_response_auto
481+
mock_cp_client.create_workload_identity.return_value = expected_response_auto
486482

487483
with patch("uuid.uuid4") as mock_uuid:
488484
mock_uuid.return_value.hex = "abcd1234efgh5678"
489485

490486
result = identity_client.create_workload_identity()
491487

492488
assert result == expected_response_auto
493-
mock_identity_client.create_workload_identity.assert_called_with(
489+
mock_cp_client.create_workload_identity.assert_called_with(
494490
name="workload-abcd1234", allowedResourceOauth2ReturnUrls=[]
495491
)
496492

@@ -499,22 +495,21 @@ def test_update_workload_identity(self):
499495

500496
with patch("boto3.client") as mock_boto_client:
501497
mock_cp_client = Mock()
502-
mock_identity_client = Mock()
503498
mock_dp_client = Mock()
504-
mock_boto_client.side_effect = [mock_cp_client, mock_identity_client, mock_dp_client]
499+
mock_boto_client.side_effect = [mock_cp_client, mock_dp_client]
505500

506501
identity_client = IdentityClient(region)
507502

508503
workload_name = "test-workload"
509504
allowed_urls = ["https://unit-test.com/callback", "https://test.com/oauth"]
510505
expected_response = {"name": workload_name, "allowedResourceOauth2ReturnUrls": allowed_urls}
511506

512-
mock_identity_client.update_workload_identity.return_value = expected_response
507+
mock_cp_client.update_workload_identity.return_value = expected_response
513508

514509
result = identity_client.update_workload_identity(workload_name, allowed_urls)
515510

516511
assert result == expected_response
517-
mock_identity_client.update_workload_identity.assert_called_once_with(
512+
mock_cp_client.update_workload_identity.assert_called_once_with(
518513
name=workload_name, allowedResourceOauth2ReturnUrls=allowed_urls
519514
)
520515

@@ -523,9 +518,8 @@ def test_get_workload_identity(self):
523518

524519
with patch("boto3.client") as mock_boto_client:
525520
mock_cp_client = Mock()
526-
mock_identity_client = Mock()
527521
mock_dp_client = Mock()
528-
mock_boto_client.side_effect = [mock_cp_client, mock_identity_client, mock_dp_client]
522+
mock_boto_client.side_effect = [mock_cp_client, mock_dp_client]
529523

530524
identity_client = IdentityClient(region)
531525

@@ -545,9 +539,8 @@ def test_complete_resource_token_auth_with_user_id(self):
545539

546540
with patch("boto3.client") as mock_boto_client:
547541
mock_cp_client = Mock()
548-
mock_identity_client = Mock()
549542
mock_dp_client = Mock()
550-
mock_boto_client.side_effect = [mock_cp_client, mock_identity_client, mock_dp_client]
543+
mock_boto_client.side_effect = [mock_cp_client, mock_dp_client]
551544

552545
identity_client = IdentityClient(region)
553546

@@ -570,9 +563,8 @@ def test_complete_resource_token_auth_with_user_token(self):
570563

571564
with patch("boto3.client") as mock_boto_client:
572565
mock_cp_client = Mock()
573-
mock_identity_client = Mock()
574566
mock_dp_client = Mock()
575-
mock_boto_client.side_effect = [mock_cp_client, mock_identity_client, mock_dp_client]
567+
mock_boto_client.side_effect = [mock_cp_client, mock_dp_client]
576568

577569
identity_client = IdentityClient(region)
578570

@@ -595,9 +587,8 @@ def test_complete_resource_token_auth_with_invalid_identifier(self):
595587

596588
with patch("boto3.client") as mock_boto_client:
597589
mock_cp_client = Mock()
598-
mock_identity_client = Mock()
599590
mock_dp_client = Mock()
600-
mock_boto_client.side_effect = [mock_cp_client, mock_identity_client, mock_dp_client]
591+
mock_boto_client.side_effect = [mock_cp_client, mock_dp_client]
601592

602593
identity_client = IdentityClient(region)
603594

0 commit comments

Comments
 (0)