in modular_api_cli/modular_handler/policy_handler.py [0:0]
def delete_policy_handler(self, policy: str) -> CommandResponse:
"""
Delete policy from ModularPolicy table
:param policy: Policy name to delete
:return: CommandResponse
"""
_LOG.info(f'Going to delete policy \'{policy}\'')
policy_item = self.policy_service.describe_policy(policy_name=policy)
if not policy_item:
_LOG.error('Policy does not exist')
raise ModularApiBadRequestException(
f'Policy with name \'{policy}\' does not exist. Nothing to '
f'delete')
if policy_item.state != ACTIVATED_STATE:
_LOG.error('Policy blocked or deleted')
raise ModularApiBadRequestException(
f'Policy with name \'{policy}\' already blocked or deleted. '
f'To get more detailed information please execute command:'
f'{line_sep}modular policy describe --policy {policy}')
if self.policy_service.calculate_policy_hash(policy_item) != \
policy_item.hash:
click.confirm(
f'Policy with name {policy} is compromised. Command execution '
f'leads to policy entity hash sum recalculation. Are you sure?',
abort=True)
self._check_policy_in_groups(policy_name=policy)
policy_item.state = REMOVED_STATE
policy_item.last_modification_date = utc_time_now().isoformat()
policy_hash_sum = self.policy_service.calculate_policy_hash(
policy_item=policy_item)
policy_item.hash = policy_hash_sum
self.policy_service.save_policy(policy_item=policy_item)
_LOG.info('Policy successfully deleted')
return CommandResponse(
message=f'Policy with name \'{policy}\' successfully deleted')