def delete_policy_handler()

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')