Source code for ecs_composex_msk_cluster.msk_cluster_ecs
# SPDX-License-Identifier: MPL-2.0
# Copyright 2020-2022 John Mille <john@compose-x.io>
from __future__ import annotations
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from ecs_composex.common.settings import ComposeXSettings
from .msk_cluster import MskCluster
from compose_x_common.compose_x_common import keyisset, set_else_none
from ecs_composex.common.logging import LOG
from .msk_cluster_ecs_iam import handle_iam_kafka_resources_access
[docs]def handle_kafka_iam_permissions(resource: MskCluster, settings: ComposeXSettings):
for target in resource.families_targets:
if target[0] and (not target[0].stack or not target[0].template):
continue
if not target[3]:
LOG.warning(
f"{resource.module.res_key}.{resource.name} - Access not defined for {target[0].name}"
)
continue
kafka_access = set_else_none("KafkaAccess", target[-1])
if keyisset("Iam", kafka_access):
handle_iam_kafka_resources_access(
resource, settings, target[0], kafka_access["Iam"]
)