in src/lambdas/r8s_api_handler/processors/shape_rule_processor.py [0:0]
def delete(self, event):
_LOG.debug(f'Remove shape rule event: {event}')
validate_params(event, (ID_ATTR,))
rule_id = event.get(ID_ATTR)
applications = self.application_service.resolve_application(
event=event)
if not applications:
_LOG.warning(f'No application found matching given query.')
return build_response(
code=RESPONSE_BAD_REQUEST_CODE,
content=f'No application found matching given query.'
)
app_ids = [application.application_id for application in applications]
parents = self.get_parents(application_ids=app_ids)
if not parents:
_LOG.warning(f'No parents found matching given query.')
return build_response(
code=RESPONSE_BAD_REQUEST_CODE,
content=f'No parents found matching given query.'
)
target_parent = self.get_parent_with_rule(
parents=parents,
rule_id=rule_id
)
if not target_parent:
_LOG.warning(f'Shape rule \'{rule_id}\' does not exist.')
return build_response(
code=RESPONSE_RESOURCE_NOT_FOUND_CODE,
content=f'Shape rule \'{rule_id}\' does not exist.'
)
_LOG.debug(f'Going to delete rule \'{rule_id}\' from '
f'parent \'{target_parent.parent_id}\'')
parent_meta = self.parent_service.get_parent_meta(
parent=target_parent)
self.parent_service.remove_shape_rule_from_application(
parent_meta=parent_meta,
rule_id=rule_id
)
_LOG.debug(f'Rule \'{rule_id}\' removed from parent '
f'\'{target_parent.parent_id}\'.')
self.parent_service.set_parent_meta(
parent=target_parent,
meta=parent_meta
)
_LOG.debug(f'Parent meta updated.')
self.parent_service.save(parent=target_parent)
_LOG.debug(f'Updated parent saved.')
return build_response(
code=RESPONSE_OK_CODE,
content=f'Shape rule \'{rule_id}\' was deleted from parent '
f'\'{target_parent.application_id}\''
)