Skip to content

Commit 6c532db

Browse files
authored
use dp endpoint to create workload identity
1 parent 7eb1604 commit 6c532db

File tree

2 files changed

+17
-10
lines changed

2 files changed

+17
-10
lines changed

src/bedrock_agentcore/services/identity.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ def __init__(self, region: str):
6565
self.cp_client = boto3.client(
6666
"bedrock-agentcore-control", region_name=region, endpoint_url=get_control_plane_endpoint(region)
6767
)
68+
self.identity_client = boto3.client(
69+
"bedrock-agentcore-control", region_name=region, endpoint_url=get_data_plane_endpoint(region)
70+
)
6871
self.dp_client = boto3.client(
6972
"bedrock-agentcore", region_name=region, endpoint_url=get_data_plane_endpoint(region)
7073
)
@@ -104,7 +107,7 @@ def create_workload_identity(self, name: Optional[str] = None) -> Dict:
104107
self.logger.info("Creating workload identity...")
105108
if not name:
106109
name = f"workload-{uuid.uuid4().hex[:8]}"
107-
return self.cp_client.create_workload_identity(name=name)
110+
return self.identity_client.create_workload_identity(name=name)
108111

109112
async def get_token(
110113
self,

tests/bedrock_agentcore/services/test_identity.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -328,8 +328,9 @@ def test_get_workload_access_token_with_user_token(self):
328328

329329
with patch("boto3.client") as mock_boto_client:
330330
mock_cp_client = Mock()
331+
mock_identity_client = Mock()
331332
mock_dp_client = Mock()
332-
mock_boto_client.side_effect = [mock_cp_client, mock_dp_client]
333+
mock_boto_client.side_effect = [mock_cp_client, mock_identity_client, mock_dp_client]
333334

334335
identity_client = IdentityClient(region)
335336

@@ -357,8 +358,9 @@ def test_get_workload_access_token_with_user_id(self):
357358

358359
with patch("boto3.client") as mock_boto_client:
359360
mock_cp_client = Mock()
361+
mock_identity_client = Mock()
360362
mock_dp_client = Mock()
361-
mock_boto_client.side_effect = [mock_cp_client, mock_dp_client]
363+
mock_boto_client.side_effect = [mock_cp_client, mock_identity_client, mock_dp_client]
362364

363365
identity_client = IdentityClient(region)
364366

@@ -385,8 +387,9 @@ def test_get_workload_access_token_without_user_info(self):
385387

386388
with patch("boto3.client") as mock_boto_client:
387389
mock_cp_client = Mock()
390+
mock_identity_client = Mock()
388391
mock_dp_client = Mock()
389-
mock_boto_client.side_effect = [mock_cp_client, mock_dp_client]
392+
mock_boto_client.side_effect = [mock_cp_client, mock_identity_client, mock_dp_client]
390393

391394
identity_client = IdentityClient(region)
392395

@@ -410,33 +413,34 @@ def test_create_workload_identity(self):
410413

411414
with patch("boto3.client") as mock_boto_client:
412415
mock_cp_client = Mock()
416+
mock_identity_client = Mock()
413417
mock_dp_client = Mock()
414-
mock_boto_client.side_effect = [mock_cp_client, mock_dp_client]
418+
mock_boto_client.side_effect = [mock_cp_client, mock_identity_client, mock_dp_client]
415419

416420
identity_client = IdentityClient(region)
417421

418422
# Test with provided name
419423
custom_name = "my-custom-workload"
420424
expected_response = {"name": custom_name, "workloadIdentityId": "workload-123"}
421-
mock_cp_client.create_workload_identity.return_value = expected_response
425+
mock_identity_client.create_workload_identity.return_value = expected_response
422426

423427
result = identity_client.create_workload_identity(name=custom_name)
424428

425429
assert result == expected_response
426-
mock_cp_client.create_workload_identity.assert_called_with(name=custom_name)
430+
mock_identity_client.create_workload_identity.assert_called_with(name=custom_name)
427431

428432
# Test without provided name (auto-generated)
429-
mock_cp_client.reset_mock()
433+
mock_identity_client.reset_mock()
430434
expected_response_auto = {"name": "workload-abcd1234", "workloadIdentityId": "workload-456"}
431-
mock_cp_client.create_workload_identity.return_value = expected_response_auto
435+
mock_identity_client.create_workload_identity.return_value = expected_response_auto
432436

433437
with patch("uuid.uuid4") as mock_uuid:
434438
mock_uuid.return_value.hex = "abcd1234efgh5678"
435439

436440
result = identity_client.create_workload_identity()
437441

438442
assert result == expected_response_auto
439-
mock_cp_client.create_workload_identity.assert_called_with(name="workload-abcd1234")
443+
mock_identity_client.create_workload_identity.assert_called_with(name="workload-abcd1234")
440444

441445

442446
class TestDefaultApiTokenPoller:

0 commit comments

Comments
 (0)