in UpdateMembers/src/GetMembers/index.py [0:0]
def convert_exceptions(response):
"""
Convert exceptions from DynamoDB into simpler dictionary format
"""
exceptions = dict()
for control in response["Items"]:
exceptions[control["ControlId"]["S"]] = dict()
try:
exceptions[control["ControlId"]["S"]]["Disabled"] = [
entry["S"] for entry in control["Disabled"]["L"]
]
except KeyError:
logger.info('%s: No "Disabled" exceptions', control["ControlId"]["S"])
exceptions[control["ControlId"]["S"]]["Disabled"] = []
try:
exceptions[control["ControlId"]["S"]]["Enabled"] = [
entry["S"] for entry in control["Enabled"]["L"]
]
except KeyError:
logger.info('%s: No "Enabled" exceptions', control["ControlId"]["S"])
exceptions[control["ControlId"]["S"]]["Enabled"] = []
try:
if control["DisabledReason"]["S"] != "":
exceptions[control["ControlId"]["S"]]["DisabledReason"] = control[
"DisabledReason"
]["S"]
else:
logger.info(
'%s: No "DisabledReason". Replace by "%s"',
control["ControlId"]["S"],
DISABLED_REASON,
)
exceptions[control["ControlId"]["S"]][
"DisabledReason"
] = DISABLED_REASON
except KeyError:
logger.info(
'%s: No "DisabledReason". Replace by "%s"',
control["ControlId"]["S"],
DISABLED_REASON,
)
exceptions[control["ControlId"]["S"]]["DisabledReason"] = DISABLED_REASON
return exceptions