code: func conflictingInstance(c context.Context, vm *model.VM) error {
  	// Hostnames are required to be unique per project.
  	// A conflict only occurs in the case of name collision.
  	srv := getCompute(c).Instances
  	call := srv.Get(vm.Attributes.GetProject(), vm.Attributes.GetZone(), vm.Hostname)
  	inst, err := call.Context(c).Do()
  	if err != nil {
  		if gerr, ok := err.(*googleapi.Error); ok {
  			if gerr.Code == http.StatusNotFound {
  				// Instance doesn't exist in this zone.
  				metrics.UpdateFailures(c, 1, vm)
  				if err := deleteVM(c, vm.ID, vm.Hostname); err != nil {
  					return errors.Annotate(err, "instance exists in another zone").Err()
  				}
  				return errors.Reason("instance exists in another zone").Err()
  			}
  			logErrors(c, gerr)
  		}
  		return errors.Annotate(err, "failed to fetch instance").Err()
  	}
  	// Instance exists in this zone.
  	logging.Debugf(c, "instance exists: %s", inst.SelfLink)
  	t, err := time.Parse(time.RFC3339, inst.CreationTimestamp)
  	if err != nil {
  		return errors.Annotate(err, "failed to parse instance creation time").Err()
  	}
  	return setCreated(c, vm.ID, inst.SelfLink, t)
  }
docs: // conflictingInstance deals with a GCE instance creation conflict.