def _delete_fw_fab_dev(self, tenant_id, drvr_name, fw_dict):
is_fw_virt = self.is_device_virtual()<EOL>if self.fwid_attr[tenant_id].is_fw_drvr_created():<EOL><INDENT>ret = self.delete_fw_device(tenant_id, fw_dict.get('<STR_LIT>'),<EOL>fw_dict)<EOL>if not ret:<EOL><INDENT>LOG.error("<STR_LIT>"<EOL>"<STR_LIT:%s>", tenant_id)<EOL>return False<EOL><DEDENT>else:<EOL><INDENT>self.fwid_attr[tenant_id].fw_drvr_created(False)<EOL>self.update_fw_db_dev_status(fw_dict.get('<STR_LIT>'), '<STR_LIT>')<EOL><DEDENT><DEDENT>ret = self.fabric.delete_fabric_fw(tenant_id, fw_dict, is_fw_virt,<EOL>fw_constants.RESULT_FW_DELETE_INIT)<EOL>if not ret:<EOL><INDENT>LOG.error("<STR_LIT>",<EOL>tenant_id)<EOL>return False<EOL><DEDENT>self.update_fw_db_final_result(fw_dict.get('<STR_LIT>'), (<EOL>fw_constants.RESULT_FW_DELETE_DONE))<EOL>self.delete_fw(fw_dict.get('<STR_LIT>'))<EOL>return True<EOL>
Deletes the Firewall.

        This routine calls the fabric class to delete the fabric when
        a firewall is deleted. It also calls the device manager to
        unconfigure the device. It updates the database with the final
        result.