func()

in resource.go [134:174]


func (w *Workflow) resourceExists(url string) (bool, DError) {
	if !strings.HasPrefix(url, "projects/") {
		return false, Errf("partial GCE resource URL %q needs leading \"projects/PROJECT/\"", url)
	}
	switch {
	case machineTypeURLRegex.MatchString(url):
		result := NamedSubexp(machineTypeURLRegex, url)
		return w.machineTypeExists(result["project"], result["zone"], result["machinetype"])
	case instanceURLRgx.MatchString(url):
		result := NamedSubexp(instanceURLRgx, url)
		return w.instanceExists(result["project"], result["zone"], result["instance"])
	case diskURLRgx.MatchString(url):
		result := NamedSubexp(diskURLRgx, url)
		return w.diskExists(result["project"], result["zone"], result["disk"])
	case imageURLRgx.MatchString(url):
		result := NamedSubexp(imageURLRgx, url)
		return w.imageExists(result["project"], result["family"], result["image"])
	case machineImageURLRgx.MatchString(url):
		result := NamedSubexp(machineImageURLRgx, url)
		return w.machineImageExists(result["project"], result["machineImage"])
	case networkURLRegex.MatchString(url):
		result := NamedSubexp(networkURLRegex, url)
		return w.networkExists(result["project"], result["network"])
	case subnetworkURLRegex.MatchString(url):
		result := NamedSubexp(subnetworkURLRegex, url)
		return w.subnetworkExists(result["project"], result["region"], result["subnetwork"])
	case targetInstanceURLRegex.MatchString(url):
		result := NamedSubexp(targetInstanceURLRegex, url)
		return w.targetInstanceExists(result["project"], result["zone"], result["targetInstance"])
	case forwardingRuleURLRegex.MatchString(url):
		result := NamedSubexp(forwardingRuleURLRegex, url)
		return w.forwardingRuleExists(result["project"], result["region"], result["forwardingRule"])
	case firewallRuleURLRegex.MatchString(url):
		result := NamedSubexp(firewallRuleURLRegex, url)
		return w.firewallRuleExists(result["project"], result["firewallRule"])
	case snapshotURLRgx.MatchString(url):
		result := NamedSubexp(snapshotURLRgx, url)
		return w.snapshotExists(result["project"], result["snapshot"])
	}
	return false, Errf("unknown resource type: %q", url)
}