fix(oci): use home region for audit configuration API call (#10347)

Co-authored-by: Hugo P.Brito <hugopbrit@gmail.com>
This commit is contained in:
Kristofer JussmannandHugo P.Brito authored and GitHub committed 2026-05-21 16:09:29 +01:00
1 parent 0fd952ae2b
commit 6177fc6286
5 files changed
+135 -23

No files matched your search

@@ -255,3 +255,61 @@ class TestOraclecloudProviderInit:
assert provider.compartments == mock_compartments
assert provider.home_region == "us-ashburn-1"
mock_set_global.assert_called_once_with(provider)
def test_home_region_uses_full_subscription_list_not_region_filter(self):
"""Home region must come from the full subscription list, not the --region filter.
When auditing a single non-home region, the tenancy home region must still be
resolved correctly so tenancy-level APIs (e.g. the Audit configuration) target it.
"""
mock_session = OCISession(
config={"region": "eu-frankfurt-1"}, signer=None, profile="DEFAULT"
)
mock_identity = OCIIdentityInfo(
tenancy_id="ocid1.tenancy.oc1..aaaaaaaexample",
tenancy_name="test-tenancy",
user_id="ocid1.user.oc1..aaaaaaaexample",
region="eu-frankfurt-1",
profile="DEFAULT",
audited_regions=set(),
audited_compartments=[],
)
# The audited set is the non-home region; the full subscription list includes home
audited_regions = [
OCIRegion(
key="eu-frankfurt-1", name="eu-frankfurt-1", is_home_region=False
),
]
all_subscribed_regions = [
OCIRegion(
key="eu-frankfurt-1", name="eu-frankfurt-1", is_home_region=False
),
OCIRegion(key="us-ashburn-1", name="us-ashburn-1", is_home_region=True),
]
with (
patch(
"prowler.providers.oraclecloud.oraclecloud_provider.OraclecloudProvider.setup_session",
return_value=mock_session,
),
patch(
"prowler.providers.oraclecloud.oraclecloud_provider.OraclecloudProvider.set_identity",
return_value=mock_identity,
),
patch(
"prowler.providers.oraclecloud.oraclecloud_provider.OraclecloudProvider.get_regions_to_audit",
side_effect=[audited_regions, all_subscribed_regions],
),
patch(
"prowler.providers.oraclecloud.oraclecloud_provider.OraclecloudProvider.get_compartments_to_audit",
return_value=["ocid1.compartment.oc1..aaaaaaaexample"],
),
patch("prowler.providers.common.provider.Provider.set_global_provider"),
):
provider = OraclecloudProvider(
region={"eu-frankfurt-1"},
config_content={"dummy": True},
mutelist_content={"Accounts": {}},
)
assert provider.regions == audited_regions
assert provider.home_region == "us-ashburn-1"