code: def _delete_fw_fab_dev(self, tenant_id, drvr_name, fw_dict):
          
          is_fw_virt = self.is_device_virtual()
          if self.fwid_attr[tenant_id].is_fw_drvr_created():
              ret = self.delete_fw_device(tenant_id, fw_dict.get('fw_id'),
                                          fw_dict)
              if not ret:
                  LOG.error("Error in delete_fabric_fw device for tenant "
                            "%s", tenant_id)
                  return False
              else:
                  self.fwid_attr[tenant_id].fw_drvr_created(False)
                  self.update_fw_db_dev_status(fw_dict.get('fw_id'), '')
          ret = self.fabric.delete_fabric_fw(tenant_id, fw_dict, is_fw_virt,
                                             fw_constants.RESULT_FW_DELETE_INIT)
          if not ret:
              LOG.error("Error in delete_fabric_fw for tenant %s",
                        tenant_id)
              return False
          self.update_fw_db_final_result(fw_dict.get('fw_id'), (
              fw_constants.RESULT_FW_DELETE_DONE))
          self.delete_fw(fw_dict.get('fw_id'))
          return True
docs: 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.