code: def network_delete_event(self, network_info):
          
  
          net_id = network_info['network_id']
          if net_id not in self.network:
              LOG.error('network_delete_event: net_id %s does not exist.',
                        net_id)
              return
  
          segid = self.network[net_id].get('segmentation_id')
          tenant_id = self.network[net_id].get('tenant_id')
          tenant_name = self.get_project_name(tenant_id)
          net = utils.Dict2Obj(self.network[net_id])
          if not tenant_name:
              LOG.error('Project %(tenant_id)s does not exist.',
                        {'tenant_id': tenant_id})
              self.update_network_db(net.id, constants.DELETE_FAIL)
              return
  
          try:
              self.dcnm_client.delete_network(tenant_name, net)
              # Put back the segmentation id into the pool.
              self.seg_drvr.release_segmentation_id(segid)
  
              # Remove entry from database and cache.
              self.delete_network_db(net_id)
              del self.network[net_id]
              snets = [k for k in self.subnet if (
                  self.subnet[k].get('network_id') == net_id)]
              [self.subnet.pop(s) for s in snets]
          except dexc.DfaClientRequestFailed:
              LOG.error('Failed to create network %(net)s.',
                        {'net': net.name})
              self.update_network_db(net_id, constants.DELETE_FAIL)
          # deleting all related VMs
          instances = self.get_vms()
          instances_related = [k for k in instances if k.network_id == net_id]
          for vm in instances_related:
              LOG.debug("deleting vm %s because network is deleted", vm.name)
              self.delete_vm_function(vm.port_id, vm)
          self.network_del_notif(tenant_id, tenant_name, net_id)
docs: Process network delete event.