mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-10-31 18:28:13 +00:00 
			
		
		
		
	Update Google Cloud API client import paths
Bump version of golang.org/x/oauth2 Vendor google.golang.org/cloud/ Vendor google.golang.org/api/ Vendor cloud.google.com/go/compute/ Replace google.golang.org/cloud with cloud.google.com/go/ Fixes #30069
This commit is contained in:
		
							
								
								
									
										235
									
								
								Godeps/Godeps.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										235
									
								
								Godeps/Godeps.json
									
									
									
										generated
									
									
									
								
							| @@ -19,13 +19,13 @@ | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "cloud.google.com/go/compute/metadata", | ||||
| 			"Comment": "v0.1.0-119-g8e3c0b2", | ||||
| 			"Rev": "8e3c0b22f89d3d365c5e678011ca2268d8b36c63" | ||||
| 			"Comment": "v0.1.0-115-g3b1ae45", | ||||
| 			"Rev": "3b1ae45394a234c385be014e9a488f2bb6eef821" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "cloud.google.com/go/internal", | ||||
| 			"Comment": "v0.1.0-119-g8e3c0b2", | ||||
| 			"Rev": "8e3c0b22f89d3d365c5e678011ca2268d8b36c63" | ||||
| 			"Comment": "v0.1.0-115-g3b1ae45", | ||||
| 			"Rev": "3b1ae45394a234c385be014e9a488f2bb6eef821" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/Azure/azure-sdk-for-go/arm/compute", | ||||
| @@ -333,7 +333,7 @@ | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/codegangsta/negroni", | ||||
| 			"Comment": "v0.1-62-g8d75e11", | ||||
| 			"Comment": "v0.1.0-62-g8d75e11", | ||||
| 			"Rev": "8d75e11374a1928608c906fe745b538483e7aeb2" | ||||
| 		}, | ||||
| 		{ | ||||
| @@ -1104,208 +1104,208 @@ | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/api", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/cache/memory", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/client/v2", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/collector", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/container", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/container/common", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/container/docker", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/container/libcontainer", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/container/raw", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/container/rkt", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/container/systemd", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/devicemapper", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/events", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/fs", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/healthz", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/http", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/http/mux", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/info/v1", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/info/v1/test", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/info/v2", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/machine", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/manager", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/manager/watcher", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/manager/watcher/raw", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/manager/watcher/rkt", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/metrics", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/pages", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/pages/static", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/storage", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/summary", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/utils", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/utils/cloudinfo", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/utils/cpuload", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/utils/cpuload/netlink", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/utils/docker", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/utils/oomparser", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/utils/sysfs", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/utils/sysinfo", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/utils/tail", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/validate", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/cadvisor/version", | ||||
| 			"Comment": "v0.24.0-alpha1-4-ge380a57", | ||||
| 			"Rev": "e380a578c49d93629e6706019cde9dafbc585585" | ||||
| 			"Comment": "v0.24.0-alpha1-14-gd7a44cb", | ||||
| 			"Rev": "d7a44cb1a2c66e1688ccdc5d09e56069eecb659a" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/google/certificate-transparency/go", | ||||
| @@ -2282,23 +2282,23 @@ | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "golang.org/x/oauth2", | ||||
| 			"Rev": "b5adcc2dcdf009d0391547edc6ecbaff889f5bb9" | ||||
| 			"Rev": "3c3a985cb79f52a3190fbc056984415ca6763d01" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "golang.org/x/oauth2/google", | ||||
| 			"Rev": "b5adcc2dcdf009d0391547edc6ecbaff889f5bb9" | ||||
| 			"Rev": "3c3a985cb79f52a3190fbc056984415ca6763d01" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "golang.org/x/oauth2/internal", | ||||
| 			"Rev": "b5adcc2dcdf009d0391547edc6ecbaff889f5bb9" | ||||
| 			"Rev": "3c3a985cb79f52a3190fbc056984415ca6763d01" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "golang.org/x/oauth2/jws", | ||||
| 			"Rev": "b5adcc2dcdf009d0391547edc6ecbaff889f5bb9" | ||||
| 			"Rev": "3c3a985cb79f52a3190fbc056984415ca6763d01" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "golang.org/x/oauth2/jwt", | ||||
| 			"Rev": "b5adcc2dcdf009d0391547edc6ecbaff889f5bb9" | ||||
| 			"Rev": "3c3a985cb79f52a3190fbc056984415ca6763d01" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "golang.org/x/sys/unix", | ||||
| @@ -2346,39 +2346,63 @@ | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "google.golang.org/api/cloudmonitoring/v2beta2", | ||||
| 			"Rev": "4300f6b0c8a7f09e521dd0af2cee27e28846e037" | ||||
| 			"Rev": "a69f0f19d246419bb931b0ac8f4f8d3f3e6d4feb" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "google.golang.org/api/compute/v1", | ||||
| 			"Rev": "4300f6b0c8a7f09e521dd0af2cee27e28846e037" | ||||
| 			"Rev": "a69f0f19d246419bb931b0ac8f4f8d3f3e6d4feb" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "google.golang.org/api/container/v1", | ||||
| 			"Rev": "4300f6b0c8a7f09e521dd0af2cee27e28846e037" | ||||
| 			"Rev": "a69f0f19d246419bb931b0ac8f4f8d3f3e6d4feb" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "google.golang.org/api/dns/v1", | ||||
| 			"Rev": "4300f6b0c8a7f09e521dd0af2cee27e28846e037" | ||||
| 			"Rev": "a69f0f19d246419bb931b0ac8f4f8d3f3e6d4feb" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "google.golang.org/api/gensupport", | ||||
| 			"Rev": "4300f6b0c8a7f09e521dd0af2cee27e28846e037" | ||||
| 			"Rev": "a69f0f19d246419bb931b0ac8f4f8d3f3e6d4feb" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "google.golang.org/api/googleapi", | ||||
| 			"Rev": "4300f6b0c8a7f09e521dd0af2cee27e28846e037" | ||||
| 			"Rev": "a69f0f19d246419bb931b0ac8f4f8d3f3e6d4feb" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "google.golang.org/api/googleapi/internal/uritemplates", | ||||
| 			"Rev": "4300f6b0c8a7f09e521dd0af2cee27e28846e037" | ||||
| 			"Rev": "a69f0f19d246419bb931b0ac8f4f8d3f3e6d4feb" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "google.golang.org/cloud/compute/metadata", | ||||
| 			"Rev": "eb47ba841d53d93506cfbfbc03927daf9cc48f88" | ||||
| 			"ImportPath": "google.golang.org/appengine", | ||||
| 			"Rev": "4f7eeb5305a4ba1966344836ba4af9996b7b4e05" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "google.golang.org/cloud/internal", | ||||
| 			"Rev": "eb47ba841d53d93506cfbfbc03927daf9cc48f88" | ||||
| 			"ImportPath": "google.golang.org/appengine/internal", | ||||
| 			"Rev": "4f7eeb5305a4ba1966344836ba4af9996b7b4e05" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "google.golang.org/appengine/internal/app_identity", | ||||
| 			"Rev": "4f7eeb5305a4ba1966344836ba4af9996b7b4e05" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "google.golang.org/appengine/internal/base", | ||||
| 			"Rev": "4f7eeb5305a4ba1966344836ba4af9996b7b4e05" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "google.golang.org/appengine/internal/datastore", | ||||
| 			"Rev": "4f7eeb5305a4ba1966344836ba4af9996b7b4e05" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "google.golang.org/appengine/internal/log", | ||||
| 			"Rev": "4f7eeb5305a4ba1966344836ba4af9996b7b4e05" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "google.golang.org/appengine/internal/modules", | ||||
| 			"Rev": "4f7eeb5305a4ba1966344836ba4af9996b7b4e05" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "google.golang.org/appengine/internal/remote_api", | ||||
| 			"Rev": "4f7eeb5305a4ba1966344836ba4af9996b7b4e05" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "google.golang.org/grpc", | ||||
| @@ -2427,22 +2451,27 @@ | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "gopkg.in/gcfg.v1", | ||||
| 			"Comment": "v1.0.0", | ||||
| 			"Rev": "083575c3955c85df16fe9590cceab64d03f5eb6e" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "gopkg.in/gcfg.v1/scanner", | ||||
| 			"Comment": "v1.0.0", | ||||
| 			"Rev": "083575c3955c85df16fe9590cceab64d03f5eb6e" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "gopkg.in/gcfg.v1/token", | ||||
| 			"Comment": "v1.0.0", | ||||
| 			"Rev": "083575c3955c85df16fe9590cceab64d03f5eb6e" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "gopkg.in/gcfg.v1/types", | ||||
| 			"Comment": "v1.0.0", | ||||
| 			"Rev": "083575c3955c85df16fe9590cceab64d03f5eb6e" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "gopkg.in/inf.v0", | ||||
| 			"Comment": "v0.9.0", | ||||
| 			"Rev": "3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4" | ||||
| 		}, | ||||
| 		{ | ||||
|   | ||||
							
								
								
									
										1272
									
								
								Godeps/LICENSES
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1272
									
								
								Godeps/LICENSES
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -20,12 +20,12 @@ package clouddns | ||||
| import ( | ||||
| 	"io" | ||||
|  | ||||
| 	"cloud.google.com/go/compute/metadata" | ||||
| 	"github.com/golang/glog" | ||||
| 	"golang.org/x/oauth2" | ||||
| 	"golang.org/x/oauth2/google" | ||||
| 	compute "google.golang.org/api/compute/v1" | ||||
| 	dns "google.golang.org/api/dns/v1" | ||||
| 	"google.golang.org/cloud/compute/metadata" | ||||
| 	gcfg "gopkg.in/gcfg.v1" | ||||
|  | ||||
| 	"k8s.io/kubernetes/federation/pkg/dnsprovider" | ||||
|   | ||||
| @@ -41,13 +41,13 @@ import ( | ||||
| 	"k8s.io/kubernetes/pkg/util/sets" | ||||
| 	"k8s.io/kubernetes/pkg/util/wait" | ||||
|  | ||||
| 	"cloud.google.com/go/compute/metadata" | ||||
| 	"github.com/golang/glog" | ||||
| 	"golang.org/x/oauth2" | ||||
| 	"golang.org/x/oauth2/google" | ||||
| 	compute "google.golang.org/api/compute/v1" | ||||
| 	container "google.golang.org/api/container/v1" | ||||
| 	"google.golang.org/api/googleapi" | ||||
| 	"google.golang.org/cloud/compute/metadata" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
|   | ||||
| @@ -23,10 +23,10 @@ import ( | ||||
|  | ||||
| 	"k8s.io/kubernetes/pkg/api" | ||||
|  | ||||
| 	gce "cloud.google.com/go/compute/metadata" | ||||
| 	"golang.org/x/oauth2" | ||||
| 	"golang.org/x/oauth2/google" | ||||
| 	gcm "google.golang.org/api/cloudmonitoring/v2beta2" | ||||
| 	gce "google.golang.org/cloud/compute/metadata" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
|   | ||||
							
								
								
									
										20
									
								
								vendor/github.com/google/cadvisor/metrics/prometheus.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								vendor/github.com/google/cadvisor/metrics/prometheus.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -228,6 +228,26 @@ func NewPrometheusCollector(i infoProvider, f ContainerLabelsFunc) *PrometheusCo | ||||
| 						}, | ||||
| 					} | ||||
| 				}, | ||||
| 			}, { | ||||
| 				name:        "container_fs_inodes_free", | ||||
| 				help:        "Number of available Inodes", | ||||
| 				valueType:   prometheus.GaugeValue, | ||||
| 				extraLabels: []string{"device"}, | ||||
| 				getValues: func(s *info.ContainerStats) metricValues { | ||||
| 					return fsValues(s.Filesystem, func(fs *info.FsStats) float64 { | ||||
| 						return float64(fs.InodesFree) | ||||
| 					}) | ||||
| 				}, | ||||
| 			}, { | ||||
| 				name:        "container_fs_inodes_total", | ||||
| 				help:        "Number of Inodes", | ||||
| 				valueType:   prometheus.GaugeValue, | ||||
| 				extraLabels: []string{"device"}, | ||||
| 				getValues: func(s *info.ContainerStats) metricValues { | ||||
| 					return fsValues(s.Filesystem, func(fs *info.FsStats) float64 { | ||||
| 						return float64(fs.Inodes) | ||||
| 					}) | ||||
| 				}, | ||||
| 			}, { | ||||
| 				name:        "container_fs_limit_bytes", | ||||
| 				help:        "Number of bytes that can be consumed by the container on this filesystem.", | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/golang.org/x/oauth2/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/golang.org/x/oauth2/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,8 +1,7 @@ | ||||
| language: go | ||||
|  | ||||
| go: | ||||
|   - 1.3 | ||||
|   - 1.4 | ||||
|   - tip | ||||
|  | ||||
| install: | ||||
|   - export GOPATH="$HOME/gopath" | ||||
|   | ||||
							
								
								
									
										1
									
								
								vendor/golang.org/x/oauth2/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/golang.org/x/oauth2/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,6 +1,7 @@ | ||||
| # OAuth2 for Go | ||||
|  | ||||
| [](https://travis-ci.org/golang/oauth2) | ||||
| [](https://godoc.org/golang.org/x/oauth2) | ||||
|  | ||||
| oauth2 package contains a client implementation for OAuth 2.0 spec. | ||||
|  | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/oauth2/client_appengine.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/oauth2/client_appengine.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,8 +1,8 @@ | ||||
| // Copyright 2014 The oauth2 Authors. All rights reserved. | ||||
| // Copyright 2014 The Go Authors. All rights reserved. | ||||
| // Use of this source code is governed by a BSD-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| // +build appengine appenginevm | ||||
| // +build appengine | ||||
|  | ||||
| // App Engine hooks. | ||||
|  | ||||
|   | ||||
							
								
								
									
										5
									
								
								vendor/golang.org/x/oauth2/google/appengine.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/golang.org/x/oauth2/google/appengine.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| // Copyright 2014 The oauth2 Authors. All rights reserved. | ||||
| // Copyright 2014 The Go Authors. All rights reserved. | ||||
| // Use of this source code is governed by a BSD-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| @@ -14,6 +14,9 @@ import ( | ||||
| 	"golang.org/x/oauth2" | ||||
| ) | ||||
|  | ||||
| // Set at init time by appenginevm_hook.go. If true, we are on App Engine Managed VMs. | ||||
| var appengineVM bool | ||||
|  | ||||
| // Set at init time by appengine_hook.go. If nil, we're not on App Engine. | ||||
| var appengineTokenFunc func(c context.Context, scopes ...string) (token string, expiry time.Time, err error) | ||||
|  | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/oauth2/google/appengine_hook.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/oauth2/google/appengine_hook.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,8 +1,8 @@ | ||||
| // Copyright 2015 The oauth2 Authors. All rights reserved. | ||||
| // Copyright 2015 The Go Authors. All rights reserved. | ||||
| // Use of this source code is governed by a BSD-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| // +build appengine appenginevm | ||||
| // +build appengine | ||||
|  | ||||
| package google | ||||
|  | ||||
|   | ||||
							
								
								
									
										14
									
								
								vendor/golang.org/x/oauth2/google/appenginevm_hook.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								vendor/golang.org/x/oauth2/google/appenginevm_hook.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| // Copyright 2015 The oauth2 Authors. All rights reserved. | ||||
| // Use of this source code is governed by a BSD-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| // +build appenginevm | ||||
|  | ||||
| package google | ||||
|  | ||||
| import "google.golang.org/appengine" | ||||
|  | ||||
| func init() { | ||||
| 	appengineVM = true | ||||
| 	appengineTokenFunc = appengine.AccessToken | ||||
| } | ||||
							
								
								
									
										9
									
								
								vendor/golang.org/x/oauth2/google/default.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/golang.org/x/oauth2/google/default.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| // Copyright 2015 The oauth2 Authors. All rights reserved. | ||||
| // Copyright 2015 The Go Authors. All rights reserved. | ||||
| // Use of this source code is governed by a BSD-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| @@ -14,10 +14,10 @@ import ( | ||||
| 	"path/filepath" | ||||
| 	"runtime" | ||||
|  | ||||
| 	"cloud.google.com/go/compute/metadata" | ||||
| 	"golang.org/x/net/context" | ||||
| 	"golang.org/x/oauth2" | ||||
| 	"golang.org/x/oauth2/jwt" | ||||
| 	"google.golang.org/cloud/compute/metadata" | ||||
| ) | ||||
|  | ||||
| // DefaultClient returns an HTTP Client that uses the | ||||
| @@ -50,7 +50,8 @@ func DefaultClient(ctx context.Context, scope ...string) (*http.Client, error) { | ||||
| //      On Windows, this is %APPDATA%/gcloud/application_default_credentials.json. | ||||
| //      On other systems, $HOME/.config/gcloud/application_default_credentials.json. | ||||
| //   3. On Google App Engine it uses the appengine.AccessToken function. | ||||
| //   4. On Google Compute Engine, it fetches credentials from the metadata server. | ||||
| //   4. On Google Compute Engine and Google App Engine Managed VMs, it fetches | ||||
| //      credentials from the metadata server. | ||||
| //      (In this final case any provided scopes are ignored.) | ||||
| // | ||||
| // For more details, see: | ||||
| @@ -84,7 +85,7 @@ func DefaultTokenSource(ctx context.Context, scope ...string) (oauth2.TokenSourc | ||||
| 	} | ||||
|  | ||||
| 	// Third, if we're on Google App Engine use those credentials. | ||||
| 	if appengineTokenFunc != nil { | ||||
| 	if appengineTokenFunc != nil && !appengineVM { | ||||
| 		return AppEngineTokenSource(ctx, scope...), nil | ||||
| 	} | ||||
|  | ||||
|   | ||||
							
								
								
									
										28
									
								
								vendor/golang.org/x/oauth2/google/google.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								vendor/golang.org/x/oauth2/google/google.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| // Copyright 2014 The oauth2 Authors. All rights reserved. | ||||
| // Copyright 2014 The Go Authors. All rights reserved. | ||||
| // Use of this source code is governed by a BSD-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| @@ -21,9 +21,9 @@ import ( | ||||
| 	"strings" | ||||
| 	"time" | ||||
|  | ||||
| 	"cloud.google.com/go/compute/metadata" | ||||
| 	"golang.org/x/oauth2" | ||||
| 	"golang.org/x/oauth2/jwt" | ||||
| 	"google.golang.org/cloud/compute/metadata" | ||||
| ) | ||||
|  | ||||
| // Endpoint is Google's OAuth 2.0 endpoint. | ||||
| @@ -37,9 +37,10 @@ const JWTTokenURL = "https://accounts.google.com/o/oauth2/token" | ||||
|  | ||||
| // ConfigFromJSON uses a Google Developers Console client_credentials.json | ||||
| // file to construct a config. | ||||
| // client_credentials.json can be downloadable from https://console.developers.google.com, | ||||
| // under "APIs & Auth" > "Credentials". Download the Web application credentials in the | ||||
| // JSON format and provide the contents of the file as jsonKey. | ||||
| // client_credentials.json can be downloaded from | ||||
| // https://console.developers.google.com, under "Credentials". Download the Web | ||||
| // application credentials in the JSON format and provide the contents of the | ||||
| // file as jsonKey. | ||||
| func ConfigFromJSON(jsonKey []byte, scope ...string) (*oauth2.Config, error) { | ||||
| 	type cred struct { | ||||
| 		ClientID     string   `json:"client_id"` | ||||
| @@ -81,22 +82,29 @@ func ConfigFromJSON(jsonKey []byte, scope ...string) (*oauth2.Config, error) { | ||||
|  | ||||
| // JWTConfigFromJSON uses a Google Developers service account JSON key file to read | ||||
| // the credentials that authorize and authenticate the requests. | ||||
| // Create a service account on "Credentials" page under "APIs & Auth" for your | ||||
| // project at https://console.developers.google.com to download a JSON key file. | ||||
| // Create a service account on "Credentials" for your project at | ||||
| // https://console.developers.google.com to download a JSON key file. | ||||
| func JWTConfigFromJSON(jsonKey []byte, scope ...string) (*jwt.Config, error) { | ||||
| 	var key struct { | ||||
| 		Email        string `json:"client_email"` | ||||
| 		PrivateKey   string `json:"private_key"` | ||||
| 		PrivateKeyID string `json:"private_key_id"` | ||||
| 		TokenURL     string `json:"token_uri"` | ||||
| 	} | ||||
| 	if err := json.Unmarshal(jsonKey, &key); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return &jwt.Config{ | ||||
| 	config := &jwt.Config{ | ||||
| 		Email:        key.Email, | ||||
| 		PrivateKey:   []byte(key.PrivateKey), | ||||
| 		PrivateKeyID: key.PrivateKeyID, | ||||
| 		Scopes:       scope, | ||||
| 		TokenURL:   JWTTokenURL, | ||||
| 	}, nil | ||||
| 		TokenURL:     key.TokenURL, | ||||
| 	} | ||||
| 	if config.TokenURL == "" { | ||||
| 		config.TokenURL = JWTTokenURL | ||||
| 	} | ||||
| 	return config, nil | ||||
| } | ||||
|  | ||||
| // ComputeTokenSource returns a token source that fetches access tokens | ||||
|   | ||||
							
								
								
									
										74
									
								
								vendor/golang.org/x/oauth2/google/jwt.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								vendor/golang.org/x/oauth2/google/jwt.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,74 @@ | ||||
| // Copyright 2015 The Go Authors. All rights reserved. | ||||
| // Use of this source code is governed by a BSD-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package google | ||||
|  | ||||
| import ( | ||||
| 	"crypto/rsa" | ||||
| 	"fmt" | ||||
| 	"time" | ||||
|  | ||||
| 	"golang.org/x/oauth2" | ||||
| 	"golang.org/x/oauth2/internal" | ||||
| 	"golang.org/x/oauth2/jws" | ||||
| ) | ||||
|  | ||||
| // JWTAccessTokenSourceFromJSON uses a Google Developers service account JSON | ||||
| // key file to read the credentials that authorize and authenticate the | ||||
| // requests, and returns a TokenSource that does not use any OAuth2 flow but | ||||
| // instead creates a JWT and sends that as the access token. | ||||
| // The audience is typically a URL that specifies the scope of the credentials. | ||||
| // | ||||
| // Note that this is not a standard OAuth flow, but rather an | ||||
| // optimization supported by a few Google services. | ||||
| // Unless you know otherwise, you should use JWTConfigFromJSON instead. | ||||
| func JWTAccessTokenSourceFromJSON(jsonKey []byte, audience string) (oauth2.TokenSource, error) { | ||||
| 	cfg, err := JWTConfigFromJSON(jsonKey) | ||||
| 	if err != nil { | ||||
| 		return nil, fmt.Errorf("google: could not parse JSON key: %v", err) | ||||
| 	} | ||||
| 	pk, err := internal.ParseKey(cfg.PrivateKey) | ||||
| 	if err != nil { | ||||
| 		return nil, fmt.Errorf("google: could not parse key: %v", err) | ||||
| 	} | ||||
| 	ts := &jwtAccessTokenSource{ | ||||
| 		email:    cfg.Email, | ||||
| 		audience: audience, | ||||
| 		pk:       pk, | ||||
| 		pkID:     cfg.PrivateKeyID, | ||||
| 	} | ||||
| 	tok, err := ts.Token() | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return oauth2.ReuseTokenSource(tok, ts), nil | ||||
| } | ||||
|  | ||||
| type jwtAccessTokenSource struct { | ||||
| 	email, audience string | ||||
| 	pk              *rsa.PrivateKey | ||||
| 	pkID            string | ||||
| } | ||||
|  | ||||
| func (ts *jwtAccessTokenSource) Token() (*oauth2.Token, error) { | ||||
| 	iat := time.Now() | ||||
| 	exp := iat.Add(time.Hour) | ||||
| 	cs := &jws.ClaimSet{ | ||||
| 		Iss: ts.email, | ||||
| 		Sub: ts.email, | ||||
| 		Aud: ts.audience, | ||||
| 		Iat: iat.Unix(), | ||||
| 		Exp: exp.Unix(), | ||||
| 	} | ||||
| 	hdr := &jws.Header{ | ||||
| 		Algorithm: "RS256", | ||||
| 		Typ:       "JWT", | ||||
| 		KeyID:     string(ts.pkID), | ||||
| 	} | ||||
| 	msg, err := jws.Encode(hdr, cs, ts.pk) | ||||
| 	if err != nil { | ||||
| 		return nil, fmt.Errorf("google: could not encode JWT: %v", err) | ||||
| 	} | ||||
| 	return &oauth2.Token{AccessToken: msg, TokenType: "Bearer", Expiry: exp}, nil | ||||
| } | ||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/oauth2/google/sdk.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/oauth2/google/sdk.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| // Copyright 2015 The oauth2 Authors. All rights reserved. | ||||
| // Copyright 2015 The Go Authors. All rights reserved. | ||||
| // Use of this source code is governed by a BSD-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/oauth2/internal/oauth2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/oauth2/internal/oauth2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| // Copyright 2014 The oauth2 Authors. All rights reserved. | ||||
| // Copyright 2014 The Go Authors. All rights reserved. | ||||
| // Use of this source code is governed by a BSD-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
|   | ||||
							
								
								
									
										50
									
								
								vendor/golang.org/x/oauth2/internal/token.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										50
									
								
								vendor/golang.org/x/oauth2/internal/token.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| // Copyright 2014 The oauth2 Authors. All rights reserved. | ||||
| // Copyright 2014 The Go Authors. All rights reserved. | ||||
| // Use of this source code is governed by a BSD-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| @@ -91,24 +91,36 @@ func (e *expirationTime) UnmarshalJSON(b []byte) error { | ||||
|  | ||||
| var brokenAuthHeaderProviders = []string{ | ||||
| 	"https://accounts.google.com/", | ||||
| 	"https://www.googleapis.com/", | ||||
| 	"https://github.com/", | ||||
| 	"https://api.instagram.com/", | ||||
| 	"https://www.douban.com/", | ||||
| 	"https://api.dropbox.com/", | ||||
| 	"https://api.soundcloud.com/", | ||||
| 	"https://www.linkedin.com/", | ||||
| 	"https://api.twitch.tv/", | ||||
| 	"https://oauth.vk.com/", | ||||
| 	"https://api.dropboxapi.com/", | ||||
| 	"https://api.instagram.com/", | ||||
| 	"https://api.netatmo.net/", | ||||
| 	"https://api.odnoklassniki.ru/", | ||||
| 	"https://connect.stripe.com/", | ||||
| 	"https://api.pushbullet.com/", | ||||
| 	"https://api.soundcloud.com/", | ||||
| 	"https://api.twitch.tv/", | ||||
| 	"https://app.box.com/", | ||||
| 	"https://connect.stripe.com/", | ||||
| 	"https://login.microsoftonline.com/", | ||||
| 	"https://login.salesforce.com/", | ||||
| 	"https://oauth.sandbox.trainingpeaks.com/", | ||||
| 	"https://oauth.trainingpeaks.com/", | ||||
| 	"https://www.strava.com/oauth/", | ||||
| 	"https://app.box.com/", | ||||
| 	"https://oauth.vk.com/", | ||||
| 	"https://openapi.baidu.com/", | ||||
| 	"https://slack.com/", | ||||
| 	"https://test-sandbox.auth.corp.google.com", | ||||
| 	"https://test.salesforce.com/", | ||||
| 	"https://user.gini.net/", | ||||
| 	"https://www.douban.com/", | ||||
| 	"https://www.googleapis.com/", | ||||
| 	"https://www.linkedin.com/", | ||||
| 	"https://www.strava.com/oauth/", | ||||
| 	"https://www.wunderlist.com/oauth/", | ||||
| 	"https://api.patreon.com/", | ||||
| } | ||||
|  | ||||
| func RegisterBrokenAuthHeaderProvider(tokenURL string) { | ||||
| 	brokenAuthHeaderProviders = append(brokenAuthHeaderProviders, tokenURL) | ||||
| } | ||||
|  | ||||
| // providerAuthHeaderWorks reports whether the OAuth2 server identified by the tokenURL | ||||
| @@ -134,23 +146,23 @@ func providerAuthHeaderWorks(tokenURL string) bool { | ||||
| 	return true | ||||
| } | ||||
|  | ||||
| func RetrieveToken(ctx context.Context, ClientID, ClientSecret, TokenURL string, v url.Values) (*Token, error) { | ||||
| func RetrieveToken(ctx context.Context, clientID, clientSecret, tokenURL string, v url.Values) (*Token, error) { | ||||
| 	hc, err := ContextClient(ctx) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	v.Set("client_id", ClientID) | ||||
| 	bustedAuth := !providerAuthHeaderWorks(TokenURL) | ||||
| 	if bustedAuth && ClientSecret != "" { | ||||
| 		v.Set("client_secret", ClientSecret) | ||||
| 	v.Set("client_id", clientID) | ||||
| 	bustedAuth := !providerAuthHeaderWorks(tokenURL) | ||||
| 	if bustedAuth && clientSecret != "" { | ||||
| 		v.Set("client_secret", clientSecret) | ||||
| 	} | ||||
| 	req, err := http.NewRequest("POST", TokenURL, strings.NewReader(v.Encode())) | ||||
| 	req, err := http.NewRequest("POST", tokenURL, strings.NewReader(v.Encode())) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	req.Header.Set("Content-Type", "application/x-www-form-urlencoded") | ||||
| 	if !bustedAuth { | ||||
| 		req.SetBasicAuth(ClientID, ClientSecret) | ||||
| 		req.SetBasicAuth(clientID, clientSecret) | ||||
| 	} | ||||
| 	r, err := hc.Do(req) | ||||
| 	if err != nil { | ||||
|   | ||||
							
								
								
									
										10
									
								
								vendor/golang.org/x/oauth2/internal/transport.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/golang.org/x/oauth2/internal/transport.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| // Copyright 2014 The oauth2 Authors. All rights reserved. | ||||
| // Copyright 2014 The Go Authors. All rights reserved. | ||||
| // Use of this source code is governed by a BSD-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| @@ -33,6 +33,11 @@ func RegisterContextClientFunc(fn ContextClientFunc) { | ||||
| } | ||||
|  | ||||
| func ContextClient(ctx context.Context) (*http.Client, error) { | ||||
| 	if ctx != nil { | ||||
| 		if hc, ok := ctx.Value(HTTPClient).(*http.Client); ok { | ||||
| 			return hc, nil | ||||
| 		} | ||||
| 	} | ||||
| 	for _, fn := range contextClientFuncs { | ||||
| 		c, err := fn(ctx) | ||||
| 		if err != nil { | ||||
| @@ -42,9 +47,6 @@ func ContextClient(ctx context.Context) (*http.Client, error) { | ||||
| 			return c, nil | ||||
| 		} | ||||
| 	} | ||||
| 	if hc, ok := ctx.Value(HTTPClient).(*http.Client); ok { | ||||
| 		return hc, nil | ||||
| 	} | ||||
| 	return http.DefaultClient, nil | ||||
| } | ||||
|  | ||||
|   | ||||
							
								
								
									
										102
									
								
								vendor/golang.org/x/oauth2/jws/jws.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										102
									
								
								vendor/golang.org/x/oauth2/jws/jws.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,9 +1,17 @@ | ||||
| // Copyright 2014 The oauth2 Authors. All rights reserved. | ||||
| // Copyright 2014 The Go Authors. All rights reserved. | ||||
| // Use of this source code is governed by a BSD-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| // Package jws provides encoding and decoding utilities for | ||||
| // signed JWS messages. | ||||
| // Package jws provides a partial implementation | ||||
| // of JSON Web Signature encoding and decoding. | ||||
| // It exists to support the golang.org/x/oauth2 package. | ||||
| // | ||||
| // See RFC 7515. | ||||
| // | ||||
| // Deprecated: this package is not intended for public use and might be | ||||
| // removed in the future. It exists for internal use only. | ||||
| // Please switch to another JWS package or copy this package into your own | ||||
| // source tree. | ||||
| package jws | ||||
|  | ||||
| import ( | ||||
| @@ -27,8 +35,8 @@ type ClaimSet struct { | ||||
| 	Iss   string `json:"iss"`             // email address of the client_id of the application making the access token request | ||||
| 	Scope string `json:"scope,omitempty"` // space-delimited list of the permissions the application requests | ||||
| 	Aud   string `json:"aud"`             // descriptor of the intended target of the assertion (Optional). | ||||
| 	Exp   int64  `json:"exp"`             // the expiration time of the assertion | ||||
| 	Iat   int64  `json:"iat"`             // the time the assertion was issued. | ||||
| 	Exp   int64  `json:"exp"`             // the expiration time of the assertion (seconds since Unix epoch) | ||||
| 	Iat   int64  `json:"iat"`             // the time the assertion was issued (seconds since Unix epoch) | ||||
| 	Typ   string `json:"typ,omitempty"`   // token type (Optional). | ||||
|  | ||||
| 	// Email for which the application is requesting delegated access (Optional). | ||||
| @@ -41,23 +49,22 @@ type ClaimSet struct { | ||||
| 	// See http://tools.ietf.org/html/draft-jones-json-web-token-10#section-4.3 | ||||
| 	// This array is marshalled using custom code (see (c *ClaimSet) encode()). | ||||
| 	PrivateClaims map[string]interface{} `json:"-"` | ||||
|  | ||||
| 	exp time.Time | ||||
| 	iat time.Time | ||||
| } | ||||
|  | ||||
| func (c *ClaimSet) encode() (string, error) { | ||||
| 	if c.exp.IsZero() || c.iat.IsZero() { | ||||
| 	// Reverting time back for machines whose time is not perfectly in sync. | ||||
| 	// If client machine's time is in the future according | ||||
| 	// to Google servers, an access token will not be issued. | ||||
| 	now := time.Now().Add(-10 * time.Second) | ||||
| 		c.iat = now | ||||
| 		c.exp = now.Add(time.Hour) | ||||
| 	if c.Iat == 0 { | ||||
| 		c.Iat = now.Unix() | ||||
| 	} | ||||
| 	if c.Exp == 0 { | ||||
| 		c.Exp = now.Add(time.Hour).Unix() | ||||
| 	} | ||||
| 	if c.Exp < c.Iat { | ||||
| 		return "", fmt.Errorf("jws: invalid Exp = %v; must be later than Iat = %v", c.Exp, c.Iat) | ||||
| 	} | ||||
|  | ||||
| 	c.Exp = c.exp.Unix() | ||||
| 	c.Iat = c.iat.Unix() | ||||
|  | ||||
| 	b, err := json.Marshal(c) | ||||
| 	if err != nil { | ||||
| @@ -65,7 +72,7 @@ func (c *ClaimSet) encode() (string, error) { | ||||
| 	} | ||||
|  | ||||
| 	if len(c.PrivateClaims) == 0 { | ||||
| 		return base64Encode(b), nil | ||||
| 		return base64.RawURLEncoding.EncodeToString(b), nil | ||||
| 	} | ||||
|  | ||||
| 	// Marshal private claim set and then append it to b. | ||||
| @@ -83,7 +90,7 @@ func (c *ClaimSet) encode() (string, error) { | ||||
| 	} | ||||
| 	b[len(b)-1] = ','         // Replace closing curly brace with a comma. | ||||
| 	b = append(b, prv[1:]...) // Append private claims. | ||||
| 	return base64Encode(b), nil | ||||
| 	return base64.RawURLEncoding.EncodeToString(b), nil | ||||
| } | ||||
|  | ||||
| // Header represents the header for the signed JWS payloads. | ||||
| @@ -93,6 +100,9 @@ type Header struct { | ||||
|  | ||||
| 	// Represents the token type. | ||||
| 	Typ string `json:"typ"` | ||||
|  | ||||
| 	// The optional hint of which key is being used. | ||||
| 	KeyID string `json:"kid,omitempty"` | ||||
| } | ||||
|  | ||||
| func (h *Header) encode() (string, error) { | ||||
| @@ -100,7 +110,7 @@ func (h *Header) encode() (string, error) { | ||||
| 	if err != nil { | ||||
| 		return "", err | ||||
| 	} | ||||
| 	return base64Encode(b), nil | ||||
| 	return base64.RawURLEncoding.EncodeToString(b), nil | ||||
| } | ||||
|  | ||||
| // Decode decodes a claim set from a JWS payload. | ||||
| @@ -111,7 +121,7 @@ func Decode(payload string) (*ClaimSet, error) { | ||||
| 		// TODO(jbd): Provide more context about the error. | ||||
| 		return nil, errors.New("jws: invalid token received") | ||||
| 	} | ||||
| 	decoded, err := base64Decode(s[1]) | ||||
| 	decoded, err := base64.RawURLEncoding.DecodeString(s[1]) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| @@ -120,8 +130,11 @@ func Decode(payload string) (*ClaimSet, error) { | ||||
| 	return c, err | ||||
| } | ||||
|  | ||||
| // Encode encodes a signed JWS with provided header and claim set. | ||||
| func Encode(header *Header, c *ClaimSet, signature *rsa.PrivateKey) (string, error) { | ||||
| // Signer returns a signature for the given data. | ||||
| type Signer func(data []byte) (sig []byte, err error) | ||||
|  | ||||
| // EncodeWithSigner encodes a header and claim set with the provided signer. | ||||
| func EncodeWithSigner(header *Header, c *ClaimSet, sg Signer) (string, error) { | ||||
| 	head, err := header.encode() | ||||
| 	if err != nil { | ||||
| 		return "", err | ||||
| @@ -131,30 +144,39 @@ func Encode(header *Header, c *ClaimSet, signature *rsa.PrivateKey) (string, err | ||||
| 		return "", err | ||||
| 	} | ||||
| 	ss := fmt.Sprintf("%s.%s", head, cs) | ||||
| 	h := sha256.New() | ||||
| 	h.Write([]byte(ss)) | ||||
| 	b, err := rsa.SignPKCS1v15(rand.Reader, signature, crypto.SHA256, h.Sum(nil)) | ||||
| 	sig, err := sg([]byte(ss)) | ||||
| 	if err != nil { | ||||
| 		return "", err | ||||
| 	} | ||||
| 	sig := base64Encode(b) | ||||
| 	return fmt.Sprintf("%s.%s", ss, sig), nil | ||||
| 	return fmt.Sprintf("%s.%s", ss, base64.RawURLEncoding.EncodeToString(sig)), nil | ||||
| } | ||||
|  | ||||
| // base64Encode returns and Base64url encoded version of the input string with any | ||||
| // trailing "=" stripped. | ||||
| func base64Encode(b []byte) string { | ||||
| 	return strings.TrimRight(base64.URLEncoding.EncodeToString(b), "=") | ||||
| } | ||||
|  | ||||
| // base64Decode decodes the Base64url encoded string | ||||
| func base64Decode(s string) ([]byte, error) { | ||||
| 	// add back missing padding | ||||
| 	switch len(s) % 4 { | ||||
| 	case 2: | ||||
| 		s += "==" | ||||
| 	case 3: | ||||
| 		s += "=" | ||||
| // Encode encodes a signed JWS with provided header and claim set. | ||||
| // This invokes EncodeWithSigner using crypto/rsa.SignPKCS1v15 with the given RSA private key. | ||||
| func Encode(header *Header, c *ClaimSet, key *rsa.PrivateKey) (string, error) { | ||||
| 	sg := func(data []byte) (sig []byte, err error) { | ||||
| 		h := sha256.New() | ||||
| 		h.Write(data) | ||||
| 		return rsa.SignPKCS1v15(rand.Reader, key, crypto.SHA256, h.Sum(nil)) | ||||
| 	} | ||||
| 	return base64.URLEncoding.DecodeString(s) | ||||
| 	return EncodeWithSigner(header, c, sg) | ||||
| } | ||||
|  | ||||
| // Verify tests whether the provided JWT token's signature was produced by the private key | ||||
| // associated with the supplied public key. | ||||
| func Verify(token string, key *rsa.PublicKey) error { | ||||
| 	parts := strings.Split(token, ".") | ||||
| 	if len(parts) != 3 { | ||||
| 		return errors.New("jws: invalid token received, token must have 3 parts") | ||||
| 	} | ||||
|  | ||||
| 	signedContent := parts[0] + "." + parts[1] | ||||
| 	signatureString, err := base64.RawURLEncoding.DecodeString(parts[2]) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	h := sha256.New() | ||||
| 	h.Write([]byte(signedContent)) | ||||
| 	return rsa.VerifyPKCS1v15(key, crypto.SHA256, h.Sum(nil), []byte(signatureString)) | ||||
| } | ||||
|   | ||||
							
								
								
									
										12
									
								
								vendor/golang.org/x/oauth2/jwt/jwt.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/golang.org/x/oauth2/jwt/jwt.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| // Copyright 2014 The oauth2 Authors. All rights reserved. | ||||
| // Copyright 2014 The Go Authors. All rights reserved. | ||||
| // Use of this source code is governed by a BSD-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| @@ -46,6 +46,10 @@ type Config struct { | ||||
| 	// | ||||
| 	PrivateKey []byte | ||||
|  | ||||
| 	// PrivateKeyID contains an optional hint indicating which key is being | ||||
| 	// used. | ||||
| 	PrivateKeyID string | ||||
|  | ||||
| 	// Subject is the optional user to impersonate. | ||||
| 	Subject string | ||||
|  | ||||
| @@ -54,6 +58,9 @@ type Config struct { | ||||
|  | ||||
| 	// TokenURL is the endpoint required to complete the 2-legged JWT flow. | ||||
| 	TokenURL string | ||||
|  | ||||
| 	// Expires optionally specifies how long the token is valid for. | ||||
| 	Expires time.Duration | ||||
| } | ||||
|  | ||||
| // TokenSource returns a JWT TokenSource using the configuration | ||||
| @@ -95,6 +102,9 @@ func (js jwtSource) Token() (*oauth2.Token, error) { | ||||
| 		// to be compatible with legacy OAuth 2.0 providers. | ||||
| 		claimSet.Prn = subject | ||||
| 	} | ||||
| 	if t := js.conf.Expires; t > 0 { | ||||
| 		claimSet.Exp = time.Now().Add(t).Unix() | ||||
| 	} | ||||
| 	payload, err := jws.Encode(defaultHeader, claimSet, pk) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
|   | ||||
							
								
								
									
										20
									
								
								vendor/golang.org/x/oauth2/oauth2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								vendor/golang.org/x/oauth2/oauth2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| // Copyright 2014 The oauth2 Authors. All rights reserved. | ||||
| // Copyright 2014 The Go Authors. All rights reserved. | ||||
| // Use of this source code is governed by a BSD-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| @@ -21,10 +21,26 @@ import ( | ||||
|  | ||||
| // NoContext is the default context you should supply if not using | ||||
| // your own context.Context (see https://golang.org/x/net/context). | ||||
| // | ||||
| // Deprecated: Use context.Background() or context.TODO() instead. | ||||
| var NoContext = context.TODO() | ||||
|  | ||||
| // RegisterBrokenAuthHeaderProvider registers an OAuth2 server | ||||
| // identified by the tokenURL prefix as an OAuth2 implementation | ||||
| // which doesn't support the HTTP Basic authentication | ||||
| // scheme to authenticate with the authorization server. | ||||
| // Once a server is registered, credentials (client_id and client_secret) | ||||
| // will be passed as query parameters rather than being present | ||||
| // in the Authorization header. | ||||
| // See https://code.google.com/p/goauth2/issues/detail?id=31 for background. | ||||
| func RegisterBrokenAuthHeaderProvider(tokenURL string) { | ||||
| 	internal.RegisterBrokenAuthHeaderProvider(tokenURL) | ||||
| } | ||||
|  | ||||
| // Config describes a typical 3-legged OAuth2 flow, with both the | ||||
| // client application information and the server's endpoint URLs. | ||||
| // For the client credentials 2-legged OAuth2 flow, see the clientcredentials | ||||
| // package (https://golang.org/x/oauth2/clientcredentials). | ||||
| type Config struct { | ||||
| 	// ClientID is the application's ID. | ||||
| 	ClientID string | ||||
| @@ -283,7 +299,7 @@ func NewClient(ctx context.Context, src TokenSource) *http.Client { | ||||
| 	if src == nil { | ||||
| 		c, err := internal.ContextClient(ctx) | ||||
| 		if err != nil { | ||||
| 			return &http.Client{Transport: internal.ErrorTransport{err}} | ||||
| 			return &http.Client{Transport: internal.ErrorTransport{Err: err}} | ||||
| 		} | ||||
| 		return c | ||||
| 	} | ||||
|   | ||||
							
								
								
									
										25
									
								
								vendor/golang.org/x/oauth2/token.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								vendor/golang.org/x/oauth2/token.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| // Copyright 2014 The oauth2 Authors. All rights reserved. | ||||
| // Copyright 2014 The Go Authors. All rights reserved. | ||||
| // Use of this source code is governed by a BSD-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| @@ -7,6 +7,7 @@ package oauth2 | ||||
| import ( | ||||
| 	"net/http" | ||||
| 	"net/url" | ||||
| 	"strconv" | ||||
| 	"strings" | ||||
| 	"time" | ||||
|  | ||||
| @@ -92,14 +93,28 @@ func (t *Token) WithExtra(extra interface{}) *Token { | ||||
| // Extra fields are key-value pairs returned by the server as a | ||||
| // part of the token retrieval response. | ||||
| func (t *Token) Extra(key string) interface{} { | ||||
| 	if vals, ok := t.raw.(url.Values); ok { | ||||
| 		// TODO(jbd): Cast numeric values to int64 or float64. | ||||
| 		return vals.Get(key) | ||||
| 	} | ||||
| 	if raw, ok := t.raw.(map[string]interface{}); ok { | ||||
| 		return raw[key] | ||||
| 	} | ||||
|  | ||||
| 	vals, ok := t.raw.(url.Values) | ||||
| 	if !ok { | ||||
| 		return nil | ||||
| 	} | ||||
|  | ||||
| 	v := vals.Get(key) | ||||
| 	switch s := strings.TrimSpace(v); strings.Count(s, ".") { | ||||
| 	case 0: // Contains no "."; try to parse as int | ||||
| 		if i, err := strconv.ParseInt(s, 10, 64); err == nil { | ||||
| 			return i | ||||
| 		} | ||||
| 	case 1: // Contains a single "."; try to parse as float | ||||
| 		if f, err := strconv.ParseFloat(s, 64); err == nil { | ||||
| 			return f | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	return v | ||||
| } | ||||
|  | ||||
| // expired reports whether the token is expired. | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/oauth2/transport.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/oauth2/transport.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| // Copyright 2014 The oauth2 Authors. All rights reserved. | ||||
| // Copyright 2014 The Go Authors. All rights reserved. | ||||
| // Use of this source code is governed by a BSD-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
|   | ||||
							
								
								
									
										96
									
								
								vendor/google.golang.org/api/cloudmonitoring/v2beta2/cloudmonitoring-gen.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										96
									
								
								vendor/google.golang.org/api/cloudmonitoring/v2beta2/cloudmonitoring-gen.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -771,25 +771,23 @@ func (c *MetricDescriptorsCreateCall) Context(ctx context.Context) *MetricDescri | ||||
| } | ||||
|  | ||||
| func (c *MetricDescriptorsCreateCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	var body io.Reader = nil | ||||
| 	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metricdescriptor) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	ctype := "application/json" | ||||
| 	reqHeaders.Set("Content-Type", "application/json") | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/metricDescriptors") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("POST", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"project": c.project, | ||||
| 	}) | ||||
| 	req.Header.Set("Content-Type", ctype) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "cloudmonitoring.metricDescriptors.create" call. | ||||
| @@ -824,7 +822,8 @@ func (c *MetricDescriptorsCreateCall) Do(opts ...googleapi.CallOption) (*MetricD | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
| @@ -893,20 +892,19 @@ func (c *MetricDescriptorsDeleteCall) Context(ctx context.Context) *MetricDescri | ||||
| } | ||||
|  | ||||
| func (c *MetricDescriptorsDeleteCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	var body io.Reader = nil | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/metricDescriptors/{metric}") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("DELETE", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"project": c.project, | ||||
| 		"metric":  c.metric, | ||||
| 	}) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "cloudmonitoring.metricDescriptors.delete" call. | ||||
| @@ -941,7 +939,8 @@ func (c *MetricDescriptorsDeleteCall) Do(opts ...googleapi.CallOption) (*DeleteM | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
| @@ -1057,22 +1056,21 @@ func (c *MetricDescriptorsListCall) Context(ctx context.Context) *MetricDescript | ||||
| } | ||||
|  | ||||
| func (c *MetricDescriptorsListCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	var body io.Reader = nil | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/metricDescriptors") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("GET", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"project": c.project, | ||||
| 	}) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		req.Header.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "cloudmonitoring.metricDescriptors.list" call. | ||||
| @@ -1107,7 +1105,8 @@ func (c *MetricDescriptorsListCall) Do(opts ...googleapi.CallOption) (*ListMetri | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
| @@ -1321,23 +1320,22 @@ func (c *TimeseriesListCall) Context(ctx context.Context) *TimeseriesListCall { | ||||
| } | ||||
|  | ||||
| func (c *TimeseriesListCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	var body io.Reader = nil | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/timeseries/{metric}") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("GET", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"project": c.project, | ||||
| 		"metric":  c.metric, | ||||
| 	}) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		req.Header.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "cloudmonitoring.timeseries.list" call. | ||||
| @@ -1372,7 +1370,8 @@ func (c *TimeseriesListCall) Do(opts ...googleapi.CallOption) (*ListTimeseriesRe | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
| @@ -1538,25 +1537,23 @@ func (c *TimeseriesWriteCall) Context(ctx context.Context) *TimeseriesWriteCall | ||||
| } | ||||
|  | ||||
| func (c *TimeseriesWriteCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	var body io.Reader = nil | ||||
| 	body, err := googleapi.WithoutDataWrapper.JSONReader(c.writetimeseriesrequest) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	ctype := "application/json" | ||||
| 	reqHeaders.Set("Content-Type", "application/json") | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/timeseries:write") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("POST", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"project": c.project, | ||||
| 	}) | ||||
| 	req.Header.Set("Content-Type", ctype) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "cloudmonitoring.timeseries.write" call. | ||||
| @@ -1591,7 +1588,8 @@ func (c *TimeseriesWriteCall) Do(opts ...googleapi.CallOption) (*WriteTimeseries | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
| @@ -1766,23 +1764,22 @@ func (c *TimeseriesDescriptorsListCall) Context(ctx context.Context) *Timeseries | ||||
| } | ||||
|  | ||||
| func (c *TimeseriesDescriptorsListCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	var body io.Reader = nil | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/timeseriesDescriptors/{metric}") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("GET", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"project": c.project, | ||||
| 		"metric":  c.metric, | ||||
| 	}) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		req.Header.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "cloudmonitoring.timeseriesDescriptors.list" call. | ||||
| @@ -1818,7 +1815,8 @@ func (c *TimeseriesDescriptorsListCall) Do(opts ...googleapi.CallOption) (*ListT | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
|   | ||||
							
								
								
									
										1630
									
								
								vendor/google.golang.org/api/compute/v1/compute-api.json
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1630
									
								
								vendor/google.golang.org/api/compute/v1/compute-api.json
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										7107
									
								
								vendor/google.golang.org/api/compute/v1/compute-gen.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										7107
									
								
								vendor/google.golang.org/api/compute/v1/compute-gen.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										195
									
								
								vendor/google.golang.org/api/container/v1/container-gen.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										195
									
								
								vendor/google.golang.org/api/container/v1/container-gen.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -878,23 +878,22 @@ func (c *ProjectsZonesGetServerconfigCall) Context(ctx context.Context) *Project | ||||
| } | ||||
|  | ||||
| func (c *ProjectsZonesGetServerconfigCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	var body io.Reader = nil | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/serverconfig") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("GET", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"projectId": c.projectId, | ||||
| 		"zone":      c.zone, | ||||
| 	}) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		req.Header.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "container.projects.zones.getServerconfig" call. | ||||
| @@ -929,7 +928,8 @@ func (c *ProjectsZonesGetServerconfigCall) Do(opts ...googleapi.CallOption) (*Se | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
| @@ -1011,26 +1011,24 @@ func (c *ProjectsZonesClustersCreateCall) Context(ctx context.Context) *Projects | ||||
| } | ||||
|  | ||||
| func (c *ProjectsZonesClustersCreateCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	var body io.Reader = nil | ||||
| 	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createclusterrequest) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	ctype := "application/json" | ||||
| 	reqHeaders.Set("Content-Type", "application/json") | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("POST", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"projectId": c.projectId, | ||||
| 		"zone":      c.zone, | ||||
| 	}) | ||||
| 	req.Header.Set("Content-Type", ctype) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "container.projects.zones.clusters.create" call. | ||||
| @@ -1065,7 +1063,8 @@ func (c *ProjectsZonesClustersCreateCall) Do(opts ...googleapi.CallOption) (*Ope | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
| @@ -1147,21 +1146,20 @@ func (c *ProjectsZonesClustersDeleteCall) Context(ctx context.Context) *Projects | ||||
| } | ||||
|  | ||||
| func (c *ProjectsZonesClustersDeleteCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	var body io.Reader = nil | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("DELETE", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"projectId": c.projectId, | ||||
| 		"zone":      c.zone, | ||||
| 		"clusterId": c.clusterId, | ||||
| 	}) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "container.projects.zones.clusters.delete" call. | ||||
| @@ -1196,7 +1194,8 @@ func (c *ProjectsZonesClustersDeleteCall) Do(opts ...googleapi.CallOption) (*Ope | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
| @@ -1288,24 +1287,23 @@ func (c *ProjectsZonesClustersGetCall) Context(ctx context.Context) *ProjectsZon | ||||
| } | ||||
|  | ||||
| func (c *ProjectsZonesClustersGetCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	var body io.Reader = nil | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("GET", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"projectId": c.projectId, | ||||
| 		"zone":      c.zone, | ||||
| 		"clusterId": c.clusterId, | ||||
| 	}) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		req.Header.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "container.projects.zones.clusters.get" call. | ||||
| @@ -1340,7 +1338,8 @@ func (c *ProjectsZonesClustersGetCall) Do(opts ...googleapi.CallOption) (*Cluste | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
| @@ -1431,23 +1430,22 @@ func (c *ProjectsZonesClustersListCall) Context(ctx context.Context) *ProjectsZo | ||||
| } | ||||
|  | ||||
| func (c *ProjectsZonesClustersListCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	var body io.Reader = nil | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("GET", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"projectId": c.projectId, | ||||
| 		"zone":      c.zone, | ||||
| 	}) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		req.Header.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "container.projects.zones.clusters.list" call. | ||||
| @@ -1482,7 +1480,8 @@ func (c *ProjectsZonesClustersListCall) Do(opts ...googleapi.CallOption) (*ListC | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
| @@ -1558,27 +1557,25 @@ func (c *ProjectsZonesClustersUpdateCall) Context(ctx context.Context) *Projects | ||||
| } | ||||
|  | ||||
| func (c *ProjectsZonesClustersUpdateCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	var body io.Reader = nil | ||||
| 	body, err := googleapi.WithoutDataWrapper.JSONReader(c.updateclusterrequest) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	ctype := "application/json" | ||||
| 	reqHeaders.Set("Content-Type", "application/json") | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("PUT", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"projectId": c.projectId, | ||||
| 		"zone":      c.zone, | ||||
| 		"clusterId": c.clusterId, | ||||
| 	}) | ||||
| 	req.Header.Set("Content-Type", ctype) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "container.projects.zones.clusters.update" call. | ||||
| @@ -1613,7 +1610,8 @@ func (c *ProjectsZonesClustersUpdateCall) Do(opts ...googleapi.CallOption) (*Ope | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
| @@ -1699,27 +1697,25 @@ func (c *ProjectsZonesClustersNodePoolsCreateCall) Context(ctx context.Context) | ||||
| } | ||||
|  | ||||
| func (c *ProjectsZonesClustersNodePoolsCreateCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	var body io.Reader = nil | ||||
| 	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createnodepoolrequest) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	ctype := "application/json" | ||||
| 	reqHeaders.Set("Content-Type", "application/json") | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("POST", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"projectId": c.projectId, | ||||
| 		"zone":      c.zone, | ||||
| 		"clusterId": c.clusterId, | ||||
| 	}) | ||||
| 	req.Header.Set("Content-Type", ctype) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "container.projects.zones.clusters.nodePools.create" call. | ||||
| @@ -1754,7 +1750,8 @@ func (c *ProjectsZonesClustersNodePoolsCreateCall) Do(opts ...googleapi.CallOpti | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
| @@ -1840,22 +1837,21 @@ func (c *ProjectsZonesClustersNodePoolsDeleteCall) Context(ctx context.Context) | ||||
| } | ||||
|  | ||||
| func (c *ProjectsZonesClustersNodePoolsDeleteCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	var body io.Reader = nil | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("DELETE", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"projectId":  c.projectId, | ||||
| 		"zone":       c.zone, | ||||
| 		"clusterId":  c.clusterId, | ||||
| 		"nodePoolId": c.nodePoolId, | ||||
| 	}) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "container.projects.zones.clusters.nodePools.delete" call. | ||||
| @@ -1890,7 +1886,8 @@ func (c *ProjectsZonesClustersNodePoolsDeleteCall) Do(opts ...googleapi.CallOpti | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
| @@ -1991,25 +1988,24 @@ func (c *ProjectsZonesClustersNodePoolsGetCall) Context(ctx context.Context) *Pr | ||||
| } | ||||
|  | ||||
| func (c *ProjectsZonesClustersNodePoolsGetCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	var body io.Reader = nil | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("GET", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"projectId":  c.projectId, | ||||
| 		"zone":       c.zone, | ||||
| 		"clusterId":  c.clusterId, | ||||
| 		"nodePoolId": c.nodePoolId, | ||||
| 	}) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		req.Header.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "container.projects.zones.clusters.nodePools.get" call. | ||||
| @@ -2044,7 +2040,8 @@ func (c *ProjectsZonesClustersNodePoolsGetCall) Do(opts ...googleapi.CallOption) | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
| @@ -2143,24 +2140,23 @@ func (c *ProjectsZonesClustersNodePoolsListCall) Context(ctx context.Context) *P | ||||
| } | ||||
|  | ||||
| func (c *ProjectsZonesClustersNodePoolsListCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	var body io.Reader = nil | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("GET", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"projectId": c.projectId, | ||||
| 		"zone":      c.zone, | ||||
| 		"clusterId": c.clusterId, | ||||
| 	}) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		req.Header.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "container.projects.zones.clusters.nodePools.list" call. | ||||
| @@ -2195,7 +2191,8 @@ func (c *ProjectsZonesClustersNodePoolsListCall) Do(opts ...googleapi.CallOption | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
| @@ -2287,24 +2284,23 @@ func (c *ProjectsZonesOperationsGetCall) Context(ctx context.Context) *ProjectsZ | ||||
| } | ||||
|  | ||||
| func (c *ProjectsZonesOperationsGetCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	var body io.Reader = nil | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/operations/{operationId}") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("GET", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"projectId":   c.projectId, | ||||
| 		"zone":        c.zone, | ||||
| 		"operationId": c.operationId, | ||||
| 	}) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		req.Header.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "container.projects.zones.operations.get" call. | ||||
| @@ -2339,7 +2335,8 @@ func (c *ProjectsZonesOperationsGetCall) Do(opts ...googleapi.CallOption) (*Oper | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
| @@ -2430,23 +2427,22 @@ func (c *ProjectsZonesOperationsListCall) Context(ctx context.Context) *Projects | ||||
| } | ||||
|  | ||||
| func (c *ProjectsZonesOperationsListCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	var body io.Reader = nil | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/operations") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("GET", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"projectId": c.projectId, | ||||
| 		"zone":      c.zone, | ||||
| 	}) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		req.Header.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "container.projects.zones.operations.list" call. | ||||
| @@ -2481,7 +2477,8 @@ func (c *ProjectsZonesOperationsListCall) Do(opts ...googleapi.CallOption) (*Lis | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
|   | ||||
							
								
								
									
										147
									
								
								vendor/google.golang.org/api/dns/v1/dns-gen.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										147
									
								
								vendor/google.golang.org/api/dns/v1/dns-gen.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -509,26 +509,24 @@ func (c *ChangesCreateCall) Context(ctx context.Context) *ChangesCreateCall { | ||||
| } | ||||
|  | ||||
| func (c *ChangesCreateCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	var body io.Reader = nil | ||||
| 	body, err := googleapi.WithoutDataWrapper.JSONReader(c.change) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	ctype := "application/json" | ||||
| 	reqHeaders.Set("Content-Type", "application/json") | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/managedZones/{managedZone}/changes") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("POST", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"project":     c.project, | ||||
| 		"managedZone": c.managedZone, | ||||
| 	}) | ||||
| 	req.Header.Set("Content-Type", ctype) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "dns.changes.create" call. | ||||
| @@ -563,7 +561,8 @@ func (c *ChangesCreateCall) Do(opts ...googleapi.CallOption) (*Change, error) { | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
| @@ -652,24 +651,23 @@ func (c *ChangesGetCall) Context(ctx context.Context) *ChangesGetCall { | ||||
| } | ||||
|  | ||||
| func (c *ChangesGetCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	var body io.Reader = nil | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/managedZones/{managedZone}/changes/{changeId}") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("GET", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"project":     c.project, | ||||
| 		"managedZone": c.managedZone, | ||||
| 		"changeId":    c.changeId, | ||||
| 	}) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		req.Header.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "dns.changes.get" call. | ||||
| @@ -704,7 +702,8 @@ func (c *ChangesGetCall) Do(opts ...googleapi.CallOption) (*Change, error) { | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
| @@ -830,23 +829,22 @@ func (c *ChangesListCall) Context(ctx context.Context) *ChangesListCall { | ||||
| } | ||||
|  | ||||
| func (c *ChangesListCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	var body io.Reader = nil | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/managedZones/{managedZone}/changes") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("GET", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"project":     c.project, | ||||
| 		"managedZone": c.managedZone, | ||||
| 	}) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		req.Header.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "dns.changes.list" call. | ||||
| @@ -881,7 +879,8 @@ func (c *ChangesListCall) Do(opts ...googleapi.CallOption) (*ChangesListResponse | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
| @@ -1005,25 +1004,23 @@ func (c *ManagedZonesCreateCall) Context(ctx context.Context) *ManagedZonesCreat | ||||
| } | ||||
|  | ||||
| func (c *ManagedZonesCreateCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	var body io.Reader = nil | ||||
| 	body, err := googleapi.WithoutDataWrapper.JSONReader(c.managedzone) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	ctype := "application/json" | ||||
| 	reqHeaders.Set("Content-Type", "application/json") | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/managedZones") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("POST", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"project": c.project, | ||||
| 	}) | ||||
| 	req.Header.Set("Content-Type", ctype) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "dns.managedZones.create" call. | ||||
| @@ -1058,7 +1055,8 @@ func (c *ManagedZonesCreateCall) Do(opts ...googleapi.CallOption) (*ManagedZone, | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
| @@ -1127,20 +1125,19 @@ func (c *ManagedZonesDeleteCall) Context(ctx context.Context) *ManagedZonesDelet | ||||
| } | ||||
|  | ||||
| func (c *ManagedZonesDeleteCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	var body io.Reader = nil | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/managedZones/{managedZone}") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("DELETE", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"project":     c.project, | ||||
| 		"managedZone": c.managedZone, | ||||
| 	}) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "dns.managedZones.delete" call. | ||||
| @@ -1232,23 +1229,22 @@ func (c *ManagedZonesGetCall) Context(ctx context.Context) *ManagedZonesGetCall | ||||
| } | ||||
|  | ||||
| func (c *ManagedZonesGetCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	var body io.Reader = nil | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/managedZones/{managedZone}") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("GET", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"project":     c.project, | ||||
| 		"managedZone": c.managedZone, | ||||
| 	}) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		req.Header.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "dns.managedZones.get" call. | ||||
| @@ -1283,7 +1279,8 @@ func (c *ManagedZonesGetCall) Do(opts ...googleapi.CallOption) (*ManagedZone, er | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
| @@ -1391,22 +1388,21 @@ func (c *ManagedZonesListCall) Context(ctx context.Context) *ManagedZonesListCal | ||||
| } | ||||
|  | ||||
| func (c *ManagedZonesListCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	var body io.Reader = nil | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/managedZones") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("GET", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"project": c.project, | ||||
| 	}) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		req.Header.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "dns.managedZones.list" call. | ||||
| @@ -1441,7 +1437,8 @@ func (c *ManagedZonesListCall) Do(opts ...googleapi.CallOption) (*ManagedZonesLi | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
| @@ -1555,22 +1552,21 @@ func (c *ProjectsGetCall) Context(ctx context.Context) *ProjectsGetCall { | ||||
| } | ||||
|  | ||||
| func (c *ProjectsGetCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	var body io.Reader = nil | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("GET", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"project": c.project, | ||||
| 	}) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		req.Header.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "dns.projects.get" call. | ||||
| @@ -1605,7 +1601,8 @@ func (c *ProjectsGetCall) Do(opts ...googleapi.CallOption) (*Project, error) { | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
| @@ -1716,23 +1713,22 @@ func (c *ResourceRecordSetsListCall) Context(ctx context.Context) *ResourceRecor | ||||
| } | ||||
|  | ||||
| func (c *ResourceRecordSetsListCall) doRequest(alt string) (*http.Response, error) { | ||||
| 	reqHeaders := make(http.Header) | ||||
| 	reqHeaders.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	var body io.Reader = nil | ||||
| 	c.urlParams_.Set("alt", alt) | ||||
| 	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/managedZones/{managedZone}/rrsets") | ||||
| 	urls += "?" + c.urlParams_.Encode() | ||||
| 	req, _ := http.NewRequest("GET", urls, body) | ||||
| 	req.Header = reqHeaders | ||||
| 	googleapi.Expand(req.URL, map[string]string{ | ||||
| 		"project":     c.project, | ||||
| 		"managedZone": c.managedZone, | ||||
| 	}) | ||||
| 	req.Header.Set("User-Agent", c.s.userAgent()) | ||||
| 	if c.ifNoneMatch_ != "" { | ||||
| 		req.Header.Set("If-None-Match", c.ifNoneMatch_) | ||||
| 	} | ||||
| 	if c.ctx_ != nil { | ||||
| 		return ctxhttp.Do(c.ctx_, c.s.client, req) | ||||
| 	} | ||||
| 	return c.s.client.Do(req) | ||||
| 	return gensupport.SendRequest(c.ctx_, c.s.client, req) | ||||
| } | ||||
|  | ||||
| // Do executes the "dns.resourceRecordSets.list" call. | ||||
| @@ -1767,7 +1763,8 @@ func (c *ResourceRecordSetsListCall) Do(opts ...googleapi.CallOption) (*Resource | ||||
| 			HTTPStatusCode: res.StatusCode, | ||||
| 		}, | ||||
| 	} | ||||
| 	if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { | ||||
| 	target := &ret | ||||
| 	if err := json.NewDecoder(res.Body).Decode(target); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return ret, nil | ||||
|   | ||||
							
								
								
									
										5
									
								
								vendor/google.golang.org/api/gensupport/resumable.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/google.golang.org/api/gensupport/resumable.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -12,7 +12,6 @@ import ( | ||||
| 	"time" | ||||
|  | ||||
| 	"golang.org/x/net/context" | ||||
| 	"golang.org/x/net/context/ctxhttp" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| @@ -80,7 +79,7 @@ func (rx *ResumableUpload) doUploadRequest(ctx context.Context, data io.Reader, | ||||
| 	req.Header.Set("Content-Range", contentRange) | ||||
| 	req.Header.Set("Content-Type", rx.MediaType) | ||||
| 	req.Header.Set("User-Agent", rx.UserAgent) | ||||
| 	return ctxhttp.Do(ctx, rx.Client, req) | ||||
| 	return SendRequest(ctx, rx.Client, req) | ||||
|  | ||||
| } | ||||
|  | ||||
| @@ -135,6 +134,8 @@ func contextDone(ctx context.Context) bool { | ||||
| // It retries using the provided back off strategy until cancelled or the | ||||
| // strategy indicates to stop retrying. | ||||
| // It is called from the auto-generated API code and is not visible to the user. | ||||
| // Before sending an HTTP request, Upload calls any registered hook functions, | ||||
| // and calls the returned functions after the request returns (see send.go). | ||||
| // rx is private to the auto-generated API code. | ||||
| // Exactly one of resp or err will be nil.  If resp is non-nil, the caller must call resp.Body.Close. | ||||
| func (rx *ResumableUpload) Upload(ctx context.Context) (resp *http.Response, err error) { | ||||
|   | ||||
							
								
								
									
										55
									
								
								vendor/google.golang.org/api/gensupport/send.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								vendor/google.golang.org/api/gensupport/send.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | ||||
| // Copyright 2016 The Go Authors. All rights reserved. | ||||
| // Use of this source code is governed by a BSD-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package gensupport | ||||
|  | ||||
| import ( | ||||
| 	"net/http" | ||||
|  | ||||
| 	"golang.org/x/net/context" | ||||
| 	"golang.org/x/net/context/ctxhttp" | ||||
| ) | ||||
|  | ||||
| // Hook is the type of a function that is called once before each HTTP request | ||||
| // that is sent by a generated API.  It returns a function that is called after | ||||
| // the request returns. | ||||
| // Hooks are not called if the context is nil. | ||||
| type Hook func(ctx context.Context, req *http.Request) func(resp *http.Response) | ||||
|  | ||||
| var hooks []Hook | ||||
|  | ||||
| // RegisterHook registers a Hook to be called before each HTTP request by a | ||||
| // generated API.  Hooks are called in the order they are registered.  Each | ||||
| // hook can return a function; if it is non-nil, it is called after the HTTP | ||||
| // request returns.  These functions are called in the reverse order. | ||||
| // RegisterHook should not be called concurrently with itself or SendRequest. | ||||
| func RegisterHook(h Hook) { | ||||
| 	hooks = append(hooks, h) | ||||
| } | ||||
|  | ||||
| // SendRequest sends a single HTTP request using the given client. | ||||
| // If ctx is non-nil, it calls all hooks, then sends the request with | ||||
| // ctxhttp.Do, then calls any functions returned by the hooks in reverse order. | ||||
| func SendRequest(ctx context.Context, client *http.Client, req *http.Request) (*http.Response, error) { | ||||
| 	if ctx == nil { | ||||
| 		return client.Do(req) | ||||
| 	} | ||||
| 	// Call hooks in order of registration, store returned funcs. | ||||
| 	post := make([]func(resp *http.Response), len(hooks)) | ||||
| 	for i, h := range hooks { | ||||
| 		fn := h(ctx, req) | ||||
| 		post[i] = fn | ||||
| 	} | ||||
|  | ||||
| 	// Send request. | ||||
| 	resp, err := ctxhttp.Do(ctx, client, req) | ||||
|  | ||||
| 	// Call returned funcs in reverse order. | ||||
| 	for i := len(post) - 1; i >= 0; i-- { | ||||
| 		if fn := post[i]; fn != nil { | ||||
| 			fn(resp) | ||||
| 		} | ||||
| 	} | ||||
| 	return resp, err | ||||
| } | ||||
							
								
								
									
										34
									
								
								vendor/google.golang.org/api/googleapi/googleapi.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										34
									
								
								vendor/google.golang.org/api/googleapi/googleapi.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -149,12 +149,12 @@ func IsNotModified(err error) bool { | ||||
| // CheckMediaResponse returns an error (of type *Error) if the response | ||||
| // status code is not 2xx. Unlike CheckResponse it does not assume the | ||||
| // body is a JSON error document. | ||||
| // It is the caller's responsibility to close res.Body. | ||||
| func CheckMediaResponse(res *http.Response) error { | ||||
| 	if res.StatusCode >= 200 && res.StatusCode <= 299 { | ||||
| 		return nil | ||||
| 	} | ||||
| 	slurp, _ := ioutil.ReadAll(io.LimitReader(res.Body, 1<<20)) | ||||
| 	res.Body.Close() | ||||
| 	return &Error{ | ||||
| 		Code: res.StatusCode, | ||||
| 		Body: string(slurp), | ||||
| @@ -278,41 +278,15 @@ func ResolveRelative(basestr, relstr string) string { | ||||
| 	return us | ||||
| } | ||||
|  | ||||
| // has4860Fix is whether this Go environment contains the fix for | ||||
| // http://golang.org/issue/4860 | ||||
| var has4860Fix bool | ||||
|  | ||||
| // init initializes has4860Fix by checking the behavior of the net/http package. | ||||
| func init() { | ||||
| 	r := http.Request{ | ||||
| 		URL: &url.URL{ | ||||
| 			Scheme: "http", | ||||
| 			Opaque: "//opaque", | ||||
| 		}, | ||||
| 	} | ||||
| 	b := &bytes.Buffer{} | ||||
| 	r.Write(b) | ||||
| 	has4860Fix = bytes.HasPrefix(b.Bytes(), []byte("GET http")) | ||||
| } | ||||
|  | ||||
| // SetOpaque sets u.Opaque from u.Path such that HTTP requests to it | ||||
| // don't alter any hex-escaped characters in u.Path. | ||||
| func SetOpaque(u *url.URL) { | ||||
| 	u.Opaque = "//" + u.Host + u.Path | ||||
| 	if !has4860Fix { | ||||
| 		u.Opaque = u.Scheme + ":" + u.Opaque | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // Expand subsitutes any {encoded} strings in the URL passed in using | ||||
| // the map supplied. | ||||
| // | ||||
| // This calls SetOpaque to avoid encoding of the parameters in the URL path. | ||||
| func Expand(u *url.URL, expansions map[string]string) { | ||||
| 	expanded, err := uritemplates.Expand(u.Path, expansions) | ||||
| 	escaped, unescaped, err := uritemplates.Expand(u.Path, expansions) | ||||
| 	if err == nil { | ||||
| 		u.Path = expanded | ||||
| 		SetOpaque(u) | ||||
| 		u.Path = unescaped | ||||
| 		u.RawPath = escaped | ||||
| 	} | ||||
| } | ||||
|  | ||||
|   | ||||
							
								
								
									
										68
									
								
								vendor/google.golang.org/api/googleapi/internal/uritemplates/uritemplates.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										68
									
								
								vendor/google.golang.org/api/googleapi/internal/uritemplates/uritemplates.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -34,11 +34,37 @@ func pctEncode(src []byte) []byte { | ||||
| 	return dst | ||||
| } | ||||
|  | ||||
| func escape(s string, allowReserved bool) string { | ||||
| // pairWriter is a convenience struct which allows escaped and unescaped | ||||
| // versions of the template to be written in parallel. | ||||
| type pairWriter struct { | ||||
| 	escaped, unescaped bytes.Buffer | ||||
| } | ||||
|  | ||||
| // Write writes the provided string directly without any escaping. | ||||
| func (w *pairWriter) Write(s string) { | ||||
| 	w.escaped.WriteString(s) | ||||
| 	w.unescaped.WriteString(s) | ||||
| } | ||||
|  | ||||
| // Escape writes the provided string, escaping the string for the | ||||
| // escaped output. | ||||
| func (w *pairWriter) Escape(s string, allowReserved bool) { | ||||
| 	w.unescaped.WriteString(s) | ||||
| 	if allowReserved { | ||||
| 		return string(reserved.ReplaceAllFunc([]byte(s), pctEncode)) | ||||
| 		w.escaped.Write(reserved.ReplaceAllFunc([]byte(s), pctEncode)) | ||||
| 	} else { | ||||
| 		w.escaped.Write(unreserved.ReplaceAllFunc([]byte(s), pctEncode)) | ||||
| 	} | ||||
| 	return string(unreserved.ReplaceAllFunc([]byte(s), pctEncode)) | ||||
| } | ||||
|  | ||||
| // Escaped returns the escaped string. | ||||
| func (w *pairWriter) Escaped() string { | ||||
| 	return w.escaped.String() | ||||
| } | ||||
|  | ||||
| // Unescaped returns the unescaped string. | ||||
| func (w *pairWriter) Unescaped() string { | ||||
| 	return w.unescaped.String() | ||||
| } | ||||
|  | ||||
| // A uriTemplate is a parsed representation of a URI template. | ||||
| @@ -170,18 +196,20 @@ func parseTerm(term string) (result templateTerm, err error) { | ||||
| 	return result, err | ||||
| } | ||||
|  | ||||
| // Expand expands a URI template with a set of values to produce a string. | ||||
| func (t *uriTemplate) Expand(values map[string]string) string { | ||||
| 	var buf bytes.Buffer | ||||
| // Expand expands a URI template with a set of values to produce the | ||||
| // resultant URI. Two forms of the result are returned: one with all the | ||||
| // elements escaped, and one with the elements unescaped. | ||||
| func (t *uriTemplate) Expand(values map[string]string) (escaped, unescaped string) { | ||||
| 	var w pairWriter | ||||
| 	for _, p := range t.parts { | ||||
| 		p.expand(&buf, values) | ||||
| 		p.expand(&w, values) | ||||
| 	} | ||||
| 	return buf.String() | ||||
| 	return w.Escaped(), w.Unescaped() | ||||
| } | ||||
|  | ||||
| func (tp *templatePart) expand(buf *bytes.Buffer, values map[string]string) { | ||||
| func (tp *templatePart) expand(w *pairWriter, values map[string]string) { | ||||
| 	if len(tp.raw) > 0 { | ||||
| 		buf.WriteString(tp.raw) | ||||
| 		w.Write(tp.raw) | ||||
| 		return | ||||
| 	} | ||||
| 	var first = true | ||||
| @@ -191,30 +219,30 @@ func (tp *templatePart) expand(buf *bytes.Buffer, values map[string]string) { | ||||
| 			continue | ||||
| 		} | ||||
| 		if first { | ||||
| 			buf.WriteString(tp.first) | ||||
| 			w.Write(tp.first) | ||||
| 			first = false | ||||
| 		} else { | ||||
| 			buf.WriteString(tp.sep) | ||||
| 			w.Write(tp.sep) | ||||
| 		} | ||||
| 		tp.expandString(buf, term, value) | ||||
| 		tp.expandString(w, term, value) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func (tp *templatePart) expandName(buf *bytes.Buffer, name string, empty bool) { | ||||
| func (tp *templatePart) expandName(w *pairWriter, name string, empty bool) { | ||||
| 	if tp.named { | ||||
| 		buf.WriteString(name) | ||||
| 		w.Write(name) | ||||
| 		if empty { | ||||
| 			buf.WriteString(tp.ifemp) | ||||
| 			w.Write(tp.ifemp) | ||||
| 		} else { | ||||
| 			buf.WriteString("=") | ||||
| 			w.Write("=") | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func (tp *templatePart) expandString(buf *bytes.Buffer, t templateTerm, s string) { | ||||
| func (tp *templatePart) expandString(w *pairWriter, t templateTerm, s string) { | ||||
| 	if len(s) > t.truncate && t.truncate > 0 { | ||||
| 		s = s[:t.truncate] | ||||
| 	} | ||||
| 	tp.expandName(buf, t.name, len(s) == 0) | ||||
| 	buf.WriteString(escape(s, tp.allowReserved)) | ||||
| 	tp.expandName(w, t.name, len(s) == 0) | ||||
| 	w.Escape(s, tp.allowReserved) | ||||
| } | ||||
|   | ||||
							
								
								
									
										10
									
								
								vendor/google.golang.org/api/googleapi/internal/uritemplates/utils.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/google.golang.org/api/googleapi/internal/uritemplates/utils.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -4,10 +4,14 @@ | ||||
|  | ||||
| package uritemplates | ||||
|  | ||||
| func Expand(path string, values map[string]string) (string, error) { | ||||
| // Expand parses then expands a URI template with a set of values to produce | ||||
| // the resultant URI. Two forms of the result are returned: one with all the | ||||
| // elements escaped, and one with the elements unescaped. | ||||
| func Expand(path string, values map[string]string) (escaped, unescaped string, err error) { | ||||
| 	template, err := parse(path) | ||||
| 	if err != nil { | ||||
| 		return "", err | ||||
| 		return "", "", err | ||||
| 	} | ||||
| 	return template.Expand(values), nil | ||||
| 	escaped, unescaped = template.Expand(values) | ||||
| 	return escaped, unescaped, nil | ||||
| } | ||||
|   | ||||
							
								
								
									
										18
									
								
								vendor/google.golang.org/appengine/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								vendor/google.golang.org/appengine/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| language: go | ||||
|  | ||||
| go: | ||||
|   - 1.6.3 | ||||
|   - 1.7rc6 | ||||
|  | ||||
| install: | ||||
|   - go get -v -t -d google.golang.org/appengine/... | ||||
|   - mkdir sdk | ||||
|   - curl -o sdk.zip "https://storage.googleapis.com/appengine-sdks/featured/go_appengine_sdk_linux_amd64-1.9.40.zip" | ||||
|   - unzip sdk.zip -d sdk | ||||
|   - export APPENGINE_DEV_APPSERVER=$(pwd)/sdk/go_appengine/dev_appserver.py | ||||
|  | ||||
| script: | ||||
|   - go version | ||||
|   - go test -v google.golang.org/appengine/... | ||||
|   - go test -v -race google.golang.org/appengine/... | ||||
|   - sdk/go_appengine/goapp test -v google.golang.org/appengine/... | ||||
							
								
								
									
										2
									
								
								vendor/google.golang.org/cloud/LICENSE → vendor/google.golang.org/appengine/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/google.golang.org/cloud/LICENSE → vendor/google.golang.org/appengine/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -187,7 +187,7 @@ | ||||
|       same "printed page" as the copyright notice for easier | ||||
|       identification within third-party archives. | ||||
| 
 | ||||
|    Copyright 2014 Google Inc. | ||||
|    Copyright [yyyy] [name of copyright owner] | ||||
| 
 | ||||
|    Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|    you may not use this file except in compliance with the License. | ||||
							
								
								
									
										71
									
								
								vendor/google.golang.org/appengine/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								vendor/google.golang.org/appengine/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,71 @@ | ||||
| # Go App Engine packages | ||||
|  | ||||
| [](https://travis-ci.org/golang/appengine) | ||||
|  | ||||
| This repository supports the Go runtime on App Engine, | ||||
| including both the standard App Engine and the | ||||
| "App Engine flexible environment" (formerly known as "Managed VMs"). | ||||
| It provides APIs for interacting with App Engine services. | ||||
| Its canonical import path is `google.golang.org/appengine`. | ||||
|  | ||||
| See https://cloud.google.com/appengine/docs/go/ | ||||
| for more information. | ||||
|  | ||||
| File issue reports and feature requests on the [Google App Engine issue | ||||
| tracker](https://code.google.com/p/googleappengine/issues/entry?template=Go%20defect). | ||||
|  | ||||
| ## Directory structure | ||||
| The top level directory of this repository is the `appengine` package. It | ||||
| contains the | ||||
| basic APIs (e.g. `appengine.NewContext`) that apply across APIs. Specific API | ||||
| packages are in subdirectories (e.g. `datastore`). | ||||
|  | ||||
| There is an `internal` subdirectory that contains service protocol buffers, | ||||
| plus packages required for connectivity to make API calls. App Engine apps | ||||
| should not directly import any package under `internal`. | ||||
|  | ||||
| ## Updating a Go App Engine app | ||||
|  | ||||
| This section describes how to update an older Go App Engine app to use | ||||
| these packages. A provided tool, `aefix`, can help automate steps 2 and 3 | ||||
| (run `go get google.golang.org/appengine/cmd/aefix` to install it), but | ||||
| read the details below since `aefix` can't perform all the changes. | ||||
|  | ||||
| ### 1. Update YAML files (App Engine flexible environment / Managed VMs only) | ||||
|  | ||||
| The `app.yaml` file (and YAML files for modules) should have these new lines added: | ||||
| ``` | ||||
| vm: true | ||||
| ``` | ||||
| See https://cloud.google.com/appengine/docs/go/modules/#Go_Instance_scaling_and_class for details. | ||||
|  | ||||
| ### 2. Update import paths | ||||
|  | ||||
| The import paths for App Engine packages are now fully qualified, based at `google.golang.org/appengine`. | ||||
| You will need to update your code to use import paths starting with that; for instance, | ||||
| code importing `appengine/datastore` will now need to import `google.golang.org/appengine/datastore`. | ||||
|  | ||||
| ### 3. Update code using deprecated, removed or modified APIs | ||||
|  | ||||
| Most App Engine services are available with exactly the same API. | ||||
| A few APIs were cleaned up, and some are not available yet. | ||||
| This list summarises the differences: | ||||
|  | ||||
| * `appengine.Context` has been replaced with the `Context` type from `golang.org/x/net/context`. | ||||
| * Logging methods that were on `appengine.Context` are now functions in `google.golang.org/appengine/log`. | ||||
| * `appengine.Timeout` has been removed. Use `context.WithTimeout` instead. | ||||
| * `appengine.Datacenter` now takes a `context.Context` argument. | ||||
| * `datastore.PropertyLoadSaver` has been simplified to use slices in place of channels. | ||||
| * `delay.Call` now returns an error. | ||||
| * `search.FieldLoadSaver` now handles document metadata. | ||||
| * `urlfetch.Transport` no longer has a Deadline field; set a deadline on the | ||||
|   `context.Context` instead. | ||||
| * `aetest` no longer declares its own Context type, and uses the standard one instead. | ||||
| * `taskqueue.QueueStats` no longer takes a maxTasks argument. That argument has been | ||||
|   deprecated and unused for a long time. | ||||
| * `appengine.BackendHostname` and `appengine.BackendInstance` were for the deprecated backends feature. | ||||
|   Use `appengine.ModuleHostname`and `appengine.ModuleName` instead. | ||||
| * Most of `appengine/file` and parts of `appengine/blobstore` are deprecated. | ||||
|   Use [Google Cloud Storage](https://godoc.org/google.golang.org/cloud/storage) instead. | ||||
| * `appengine/socket` is not required on App Engine flexible environment / Managed VMs. | ||||
|   Use the standard `net` package instead. | ||||
							
								
								
									
										112
									
								
								vendor/google.golang.org/appengine/appengine.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										112
									
								
								vendor/google.golang.org/appengine/appengine.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,112 @@ | ||||
| // Copyright 2011 Google Inc. All rights reserved. | ||||
| // Use of this source code is governed by the Apache 2.0 | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| // Package appengine provides basic functionality for Google App Engine. | ||||
| // | ||||
| // For more information on how to write Go apps for Google App Engine, see: | ||||
| // https://cloud.google.com/appengine/docs/go/ | ||||
| package appengine | ||||
|  | ||||
| import ( | ||||
| 	"net/http" | ||||
|  | ||||
| 	"github.com/golang/protobuf/proto" | ||||
| 	"golang.org/x/net/context" | ||||
|  | ||||
| 	"google.golang.org/appengine/internal" | ||||
| ) | ||||
|  | ||||
| // The gophers party all night; the rabbits provide the beats. | ||||
|  | ||||
| // Main is the principal entry point for an app running in App Engine. | ||||
| // | ||||
| // On App Engine Flexible it installs a trivial health checker if one isn't | ||||
| // already registered, and starts listening on port 8080 (overridden by the | ||||
| // $PORT environment variable). | ||||
| // | ||||
| // See https://cloud.google.com/appengine/docs/flexible/custom-runtimes#health_check_requests | ||||
| // for details on how to do your own health checking. | ||||
| // | ||||
| // Main is not yet supported on App Engine Standard. | ||||
| // | ||||
| // Main never returns. | ||||
| // | ||||
| // Main is designed so that the app's main package looks like this: | ||||
| // | ||||
| //      package main | ||||
| // | ||||
| //      import ( | ||||
| //              "google.golang.org/appengine" | ||||
| // | ||||
| //              _ "myapp/package0" | ||||
| //              _ "myapp/package1" | ||||
| //      ) | ||||
| // | ||||
| //      func main() { | ||||
| //              appengine.Main() | ||||
| //      } | ||||
| // | ||||
| // The "myapp/packageX" packages are expected to register HTTP handlers | ||||
| // in their init functions. | ||||
| func Main() { | ||||
| 	internal.Main() | ||||
| } | ||||
|  | ||||
| // IsDevAppServer reports whether the App Engine app is running in the | ||||
| // development App Server. | ||||
| func IsDevAppServer() bool { | ||||
| 	return internal.IsDevAppServer() | ||||
| } | ||||
|  | ||||
| // NewContext returns a context for an in-flight HTTP request. | ||||
| // This function is cheap. | ||||
| func NewContext(req *http.Request) context.Context { | ||||
| 	return WithContext(context.Background(), req) | ||||
| } | ||||
|  | ||||
| // WithContext returns a copy of the parent context | ||||
| // and associates it with an in-flight HTTP request. | ||||
| // This function is cheap. | ||||
| func WithContext(parent context.Context, req *http.Request) context.Context { | ||||
| 	return internal.WithContext(parent, req) | ||||
| } | ||||
|  | ||||
| // TODO(dsymonds): Add a Call function here? Otherwise other packages can't access internal.Call. | ||||
|  | ||||
| // BlobKey is a key for a blobstore blob. | ||||
| // | ||||
| // Conceptually, this type belongs in the blobstore package, but it lives in | ||||
| // the appengine package to avoid a circular dependency: blobstore depends on | ||||
| // datastore, and datastore needs to refer to the BlobKey type. | ||||
| type BlobKey string | ||||
|  | ||||
| // GeoPoint represents a location as latitude/longitude in degrees. | ||||
| type GeoPoint struct { | ||||
| 	Lat, Lng float64 | ||||
| } | ||||
|  | ||||
| // Valid returns whether a GeoPoint is within [-90, 90] latitude and [-180, 180] longitude. | ||||
| func (g GeoPoint) Valid() bool { | ||||
| 	return -90 <= g.Lat && g.Lat <= 90 && -180 <= g.Lng && g.Lng <= 180 | ||||
| } | ||||
|  | ||||
| // APICallFunc defines a function type for handling an API call. | ||||
| // See WithCallOverride. | ||||
| type APICallFunc func(ctx context.Context, service, method string, in, out proto.Message) error | ||||
|  | ||||
| // WithAPICallFunc returns a copy of the parent context | ||||
| // that will cause API calls to invoke f instead of their normal operation. | ||||
| // | ||||
| // This is intended for advanced users only. | ||||
| func WithAPICallFunc(ctx context.Context, f APICallFunc) context.Context { | ||||
| 	return internal.WithCallOverride(ctx, internal.CallOverrideFunc(f)) | ||||
| } | ||||
|  | ||||
| // APICall performs an API call. | ||||
| // | ||||
| // This is not intended for general use; it is exported for use in conjunction | ||||
| // with WithAPICallFunc. | ||||
| func APICall(ctx context.Context, service, method string, in, out proto.Message) error { | ||||
| 	return internal.Call(ctx, service, method, in, out) | ||||
| } | ||||
							
								
								
									
										20
									
								
								vendor/google.golang.org/appengine/appengine_vm.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								vendor/google.golang.org/appengine/appengine_vm.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| // Copyright 2015 Google Inc. All rights reserved. | ||||
| // Use of this source code is governed by the Apache 2.0 | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| // +build !appengine | ||||
|  | ||||
| package appengine | ||||
|  | ||||
| import ( | ||||
| 	"golang.org/x/net/context" | ||||
|  | ||||
| 	"google.golang.org/appengine/internal" | ||||
| ) | ||||
|  | ||||
| // BackgroundContext returns a context not associated with a request. | ||||
| // This should only be used when not servicing a request. | ||||
| // This only works in App Engine "flexible environment". | ||||
| func BackgroundContext() context.Context { | ||||
| 	return internal.BackgroundContext() | ||||
| } | ||||
							
								
								
									
										46
									
								
								vendor/google.golang.org/appengine/errors.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								vendor/google.golang.org/appengine/errors.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | ||||
| // Copyright 2011 Google Inc. All rights reserved. | ||||
| // Use of this source code is governed by the Apache 2.0 | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| // This file provides error functions for common API failure modes. | ||||
|  | ||||
| package appengine | ||||
|  | ||||
| import ( | ||||
| 	"fmt" | ||||
|  | ||||
| 	"google.golang.org/appengine/internal" | ||||
| ) | ||||
|  | ||||
| // IsOverQuota reports whether err represents an API call failure | ||||
| // due to insufficient available quota. | ||||
| func IsOverQuota(err error) bool { | ||||
| 	callErr, ok := err.(*internal.CallError) | ||||
| 	return ok && callErr.Code == 4 | ||||
| } | ||||
|  | ||||
| // MultiError is returned by batch operations when there are errors with | ||||
| // particular elements. Errors will be in a one-to-one correspondence with | ||||
| // the input elements; successful elements will have a nil entry. | ||||
| type MultiError []error | ||||
|  | ||||
| func (m MultiError) Error() string { | ||||
| 	s, n := "", 0 | ||||
| 	for _, e := range m { | ||||
| 		if e != nil { | ||||
| 			if n == 0 { | ||||
| 				s = e.Error() | ||||
| 			} | ||||
| 			n++ | ||||
| 		} | ||||
| 	} | ||||
| 	switch n { | ||||
| 	case 0: | ||||
| 		return "(0 errors)" | ||||
| 	case 1: | ||||
| 		return s | ||||
| 	case 2: | ||||
| 		return s + " (and 1 other error)" | ||||
| 	} | ||||
| 	return fmt.Sprintf("%s (and %d other errors)", s, n-1) | ||||
| } | ||||
							
								
								
									
										142
									
								
								vendor/google.golang.org/appengine/identity.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										142
									
								
								vendor/google.golang.org/appengine/identity.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,142 @@ | ||||
| // Copyright 2011 Google Inc. All rights reserved. | ||||
| // Use of this source code is governed by the Apache 2.0 | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package appengine | ||||
|  | ||||
| import ( | ||||
| 	"time" | ||||
|  | ||||
| 	"golang.org/x/net/context" | ||||
|  | ||||
| 	"google.golang.org/appengine/internal" | ||||
| 	pb "google.golang.org/appengine/internal/app_identity" | ||||
| 	modpb "google.golang.org/appengine/internal/modules" | ||||
| ) | ||||
|  | ||||
| // AppID returns the application ID for the current application. | ||||
| // The string will be a plain application ID (e.g. "appid"), with a | ||||
| // domain prefix for custom domain deployments (e.g. "example.com:appid"). | ||||
| func AppID(c context.Context) string { return internal.AppID(c) } | ||||
|  | ||||
| // DefaultVersionHostname returns the standard hostname of the default version | ||||
| // of the current application (e.g. "my-app.appspot.com"). This is suitable for | ||||
| // use in constructing URLs. | ||||
| func DefaultVersionHostname(c context.Context) string { | ||||
| 	return internal.DefaultVersionHostname(c) | ||||
| } | ||||
|  | ||||
| // ModuleName returns the module name of the current instance. | ||||
| func ModuleName(c context.Context) string { | ||||
| 	return internal.ModuleName(c) | ||||
| } | ||||
|  | ||||
| // ModuleHostname returns a hostname of a module instance. | ||||
| // If module is the empty string, it refers to the module of the current instance. | ||||
| // If version is empty, it refers to the version of the current instance if valid, | ||||
| // or the default version of the module of the current instance. | ||||
| // If instance is empty, ModuleHostname returns the load-balancing hostname. | ||||
| func ModuleHostname(c context.Context, module, version, instance string) (string, error) { | ||||
| 	req := &modpb.GetHostnameRequest{} | ||||
| 	if module != "" { | ||||
| 		req.Module = &module | ||||
| 	} | ||||
| 	if version != "" { | ||||
| 		req.Version = &version | ||||
| 	} | ||||
| 	if instance != "" { | ||||
| 		req.Instance = &instance | ||||
| 	} | ||||
| 	res := &modpb.GetHostnameResponse{} | ||||
| 	if err := internal.Call(c, "modules", "GetHostname", req, res); err != nil { | ||||
| 		return "", err | ||||
| 	} | ||||
| 	return *res.Hostname, nil | ||||
| } | ||||
|  | ||||
| // VersionID returns the version ID for the current application. | ||||
| // It will be of the form "X.Y", where X is specified in app.yaml, | ||||
| // and Y is a number generated when each version of the app is uploaded. | ||||
| // It does not include a module name. | ||||
| func VersionID(c context.Context) string { return internal.VersionID(c) } | ||||
|  | ||||
| // InstanceID returns a mostly-unique identifier for this instance. | ||||
| func InstanceID() string { return internal.InstanceID() } | ||||
|  | ||||
| // Datacenter returns an identifier for the datacenter that the instance is running in. | ||||
| func Datacenter(c context.Context) string { return internal.Datacenter(c) } | ||||
|  | ||||
| // ServerSoftware returns the App Engine release version. | ||||
| // In production, it looks like "Google App Engine/X.Y.Z". | ||||
| // In the development appserver, it looks like "Development/X.Y". | ||||
| func ServerSoftware() string { return internal.ServerSoftware() } | ||||
|  | ||||
| // RequestID returns a string that uniquely identifies the request. | ||||
| func RequestID(c context.Context) string { return internal.RequestID(c) } | ||||
|  | ||||
| // AccessToken generates an OAuth2 access token for the specified scopes on | ||||
| // behalf of service account of this application. This token will expire after | ||||
| // the returned time. | ||||
| func AccessToken(c context.Context, scopes ...string) (token string, expiry time.Time, err error) { | ||||
| 	req := &pb.GetAccessTokenRequest{Scope: scopes} | ||||
| 	res := &pb.GetAccessTokenResponse{} | ||||
|  | ||||
| 	err = internal.Call(c, "app_identity_service", "GetAccessToken", req, res) | ||||
| 	if err != nil { | ||||
| 		return "", time.Time{}, err | ||||
| 	} | ||||
| 	return res.GetAccessToken(), time.Unix(res.GetExpirationTime(), 0), nil | ||||
| } | ||||
|  | ||||
| // Certificate represents a public certificate for the app. | ||||
| type Certificate struct { | ||||
| 	KeyName string | ||||
| 	Data    []byte // PEM-encoded X.509 certificate | ||||
| } | ||||
|  | ||||
| // PublicCertificates retrieves the public certificates for the app. | ||||
| // They can be used to verify a signature returned by SignBytes. | ||||
| func PublicCertificates(c context.Context) ([]Certificate, error) { | ||||
| 	req := &pb.GetPublicCertificateForAppRequest{} | ||||
| 	res := &pb.GetPublicCertificateForAppResponse{} | ||||
| 	if err := internal.Call(c, "app_identity_service", "GetPublicCertificatesForApp", req, res); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	var cs []Certificate | ||||
| 	for _, pc := range res.PublicCertificateList { | ||||
| 		cs = append(cs, Certificate{ | ||||
| 			KeyName: pc.GetKeyName(), | ||||
| 			Data:    []byte(pc.GetX509CertificatePem()), | ||||
| 		}) | ||||
| 	} | ||||
| 	return cs, nil | ||||
| } | ||||
|  | ||||
| // ServiceAccount returns a string representing the service account name, in | ||||
| // the form of an email address (typically app_id@appspot.gserviceaccount.com). | ||||
| func ServiceAccount(c context.Context) (string, error) { | ||||
| 	req := &pb.GetServiceAccountNameRequest{} | ||||
| 	res := &pb.GetServiceAccountNameResponse{} | ||||
|  | ||||
| 	err := internal.Call(c, "app_identity_service", "GetServiceAccountName", req, res) | ||||
| 	if err != nil { | ||||
| 		return "", err | ||||
| 	} | ||||
| 	return res.GetServiceAccountName(), err | ||||
| } | ||||
|  | ||||
| // SignBytes signs bytes using a private key unique to your application. | ||||
| func SignBytes(c context.Context, bytes []byte) (keyName string, signature []byte, err error) { | ||||
| 	req := &pb.SignForAppRequest{BytesToSign: bytes} | ||||
| 	res := &pb.SignForAppResponse{} | ||||
|  | ||||
| 	if err := internal.Call(c, "app_identity_service", "SignForApp", req, res); err != nil { | ||||
| 		return "", nil, err | ||||
| 	} | ||||
| 	return res.GetKeyName(), res.GetSignatureBytes(), nil | ||||
| } | ||||
|  | ||||
| func init() { | ||||
| 	internal.RegisterErrorCodeMap("app_identity_service", pb.AppIdentityServiceError_ErrorCode_name) | ||||
| 	internal.RegisterErrorCodeMap("modules", modpb.ModulesServiceError_ErrorCode_name) | ||||
| } | ||||
							
								
								
									
										646
									
								
								vendor/google.golang.org/appengine/internal/api.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										646
									
								
								vendor/google.golang.org/appengine/internal/api.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,646 @@ | ||||
| // Copyright 2011 Google Inc. All rights reserved. | ||||
| // Use of this source code is governed by the Apache 2.0 | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| // +build !appengine | ||||
|  | ||||
| package internal | ||||
|  | ||||
| import ( | ||||
| 	"bytes" | ||||
| 	"errors" | ||||
| 	"fmt" | ||||
| 	"io/ioutil" | ||||
| 	"log" | ||||
| 	"net" | ||||
| 	"net/http" | ||||
| 	"net/url" | ||||
| 	"os" | ||||
| 	"runtime" | ||||
| 	"strconv" | ||||
| 	"strings" | ||||
| 	"sync" | ||||
| 	"sync/atomic" | ||||
| 	"time" | ||||
|  | ||||
| 	"github.com/golang/protobuf/proto" | ||||
| 	netcontext "golang.org/x/net/context" | ||||
|  | ||||
| 	basepb "google.golang.org/appengine/internal/base" | ||||
| 	logpb "google.golang.org/appengine/internal/log" | ||||
| 	remotepb "google.golang.org/appengine/internal/remote_api" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| 	apiPath = "/rpc_http" | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	// Incoming headers. | ||||
| 	ticketHeader       = http.CanonicalHeaderKey("X-AppEngine-API-Ticket") | ||||
| 	dapperHeader       = http.CanonicalHeaderKey("X-Google-DapperTraceInfo") | ||||
| 	traceHeader        = http.CanonicalHeaderKey("X-Cloud-Trace-Context") | ||||
| 	curNamespaceHeader = http.CanonicalHeaderKey("X-AppEngine-Current-Namespace") | ||||
| 	userIPHeader       = http.CanonicalHeaderKey("X-AppEngine-User-IP") | ||||
| 	remoteAddrHeader   = http.CanonicalHeaderKey("X-AppEngine-Remote-Addr") | ||||
|  | ||||
| 	// Outgoing headers. | ||||
| 	apiEndpointHeader      = http.CanonicalHeaderKey("X-Google-RPC-Service-Endpoint") | ||||
| 	apiEndpointHeaderValue = []string{"app-engine-apis"} | ||||
| 	apiMethodHeader        = http.CanonicalHeaderKey("X-Google-RPC-Service-Method") | ||||
| 	apiMethodHeaderValue   = []string{"/VMRemoteAPI.CallRemoteAPI"} | ||||
| 	apiDeadlineHeader      = http.CanonicalHeaderKey("X-Google-RPC-Service-Deadline") | ||||
| 	apiContentType         = http.CanonicalHeaderKey("Content-Type") | ||||
| 	apiContentTypeValue    = []string{"application/octet-stream"} | ||||
| 	logFlushHeader         = http.CanonicalHeaderKey("X-AppEngine-Log-Flush-Count") | ||||
|  | ||||
| 	apiHTTPClient = &http.Client{ | ||||
| 		Transport: &http.Transport{ | ||||
| 			Proxy: http.ProxyFromEnvironment, | ||||
| 			Dial:  limitDial, | ||||
| 		}, | ||||
| 	} | ||||
| ) | ||||
|  | ||||
| func apiURL() *url.URL { | ||||
| 	host, port := "appengine.googleapis.internal", "10001" | ||||
| 	if h := os.Getenv("API_HOST"); h != "" { | ||||
| 		host = h | ||||
| 	} | ||||
| 	if p := os.Getenv("API_PORT"); p != "" { | ||||
| 		port = p | ||||
| 	} | ||||
| 	return &url.URL{ | ||||
| 		Scheme: "http", | ||||
| 		Host:   host + ":" + port, | ||||
| 		Path:   apiPath, | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func handleHTTP(w http.ResponseWriter, r *http.Request) { | ||||
| 	c := &context{ | ||||
| 		req:       r, | ||||
| 		outHeader: w.Header(), | ||||
| 		apiURL:    apiURL(), | ||||
| 	} | ||||
| 	stopFlushing := make(chan int) | ||||
|  | ||||
| 	ctxs.Lock() | ||||
| 	ctxs.m[r] = c | ||||
| 	ctxs.Unlock() | ||||
| 	defer func() { | ||||
| 		ctxs.Lock() | ||||
| 		delete(ctxs.m, r) | ||||
| 		ctxs.Unlock() | ||||
| 	}() | ||||
|  | ||||
| 	// Patch up RemoteAddr so it looks reasonable. | ||||
| 	if addr := r.Header.Get(userIPHeader); addr != "" { | ||||
| 		r.RemoteAddr = addr | ||||
| 	} else if addr = r.Header.Get(remoteAddrHeader); addr != "" { | ||||
| 		r.RemoteAddr = addr | ||||
| 	} else { | ||||
| 		// Should not normally reach here, but pick a sensible default anyway. | ||||
| 		r.RemoteAddr = "127.0.0.1" | ||||
| 	} | ||||
| 	// The address in the headers will most likely be of these forms: | ||||
| 	//	123.123.123.123 | ||||
| 	//	2001:db8::1 | ||||
| 	// net/http.Request.RemoteAddr is specified to be in "IP:port" form. | ||||
| 	if _, _, err := net.SplitHostPort(r.RemoteAddr); err != nil { | ||||
| 		// Assume the remote address is only a host; add a default port. | ||||
| 		r.RemoteAddr = net.JoinHostPort(r.RemoteAddr, "80") | ||||
| 	} | ||||
|  | ||||
| 	// Start goroutine responsible for flushing app logs. | ||||
| 	// This is done after adding c to ctx.m (and stopped before removing it) | ||||
| 	// because flushing logs requires making an API call. | ||||
| 	go c.logFlusher(stopFlushing) | ||||
|  | ||||
| 	executeRequestSafely(c, r) | ||||
| 	c.outHeader = nil // make sure header changes aren't respected any more | ||||
|  | ||||
| 	stopFlushing <- 1 // any logging beyond this point will be dropped | ||||
|  | ||||
| 	// Flush any pending logs asynchronously. | ||||
| 	c.pendingLogs.Lock() | ||||
| 	flushes := c.pendingLogs.flushes | ||||
| 	if len(c.pendingLogs.lines) > 0 { | ||||
| 		flushes++ | ||||
| 	} | ||||
| 	c.pendingLogs.Unlock() | ||||
| 	go c.flushLog(false) | ||||
| 	w.Header().Set(logFlushHeader, strconv.Itoa(flushes)) | ||||
|  | ||||
| 	// Avoid nil Write call if c.Write is never called. | ||||
| 	if c.outCode != 0 { | ||||
| 		w.WriteHeader(c.outCode) | ||||
| 	} | ||||
| 	if c.outBody != nil { | ||||
| 		w.Write(c.outBody) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func executeRequestSafely(c *context, r *http.Request) { | ||||
| 	defer func() { | ||||
| 		if x := recover(); x != nil { | ||||
| 			logf(c, 4, "%s", renderPanic(x)) // 4 == critical | ||||
| 			c.outCode = 500 | ||||
| 		} | ||||
| 	}() | ||||
|  | ||||
| 	http.DefaultServeMux.ServeHTTP(c, r) | ||||
| } | ||||
|  | ||||
| func renderPanic(x interface{}) string { | ||||
| 	buf := make([]byte, 16<<10) // 16 KB should be plenty | ||||
| 	buf = buf[:runtime.Stack(buf, false)] | ||||
|  | ||||
| 	// Remove the first few stack frames: | ||||
| 	//   this func | ||||
| 	//   the recover closure in the caller | ||||
| 	// That will root the stack trace at the site of the panic. | ||||
| 	const ( | ||||
| 		skipStart  = "internal.renderPanic" | ||||
| 		skipFrames = 2 | ||||
| 	) | ||||
| 	start := bytes.Index(buf, []byte(skipStart)) | ||||
| 	p := start | ||||
| 	for i := 0; i < skipFrames*2 && p+1 < len(buf); i++ { | ||||
| 		p = bytes.IndexByte(buf[p+1:], '\n') + p + 1 | ||||
| 		if p < 0 { | ||||
| 			break | ||||
| 		} | ||||
| 	} | ||||
| 	if p >= 0 { | ||||
| 		// buf[start:p+1] is the block to remove. | ||||
| 		// Copy buf[p+1:] over buf[start:] and shrink buf. | ||||
| 		copy(buf[start:], buf[p+1:]) | ||||
| 		buf = buf[:len(buf)-(p+1-start)] | ||||
| 	} | ||||
|  | ||||
| 	// Add panic heading. | ||||
| 	head := fmt.Sprintf("panic: %v\n\n", x) | ||||
| 	if len(head) > len(buf) { | ||||
| 		// Extremely unlikely to happen. | ||||
| 		return head | ||||
| 	} | ||||
| 	copy(buf[len(head):], buf) | ||||
| 	copy(buf, head) | ||||
|  | ||||
| 	return string(buf) | ||||
| } | ||||
|  | ||||
| var ctxs = struct { | ||||
| 	sync.Mutex | ||||
| 	m  map[*http.Request]*context | ||||
| 	bg *context // background context, lazily initialized | ||||
| 	// dec is used by tests to decorate the netcontext.Context returned | ||||
| 	// for a given request. This allows tests to add overrides (such as | ||||
| 	// WithAppIDOverride) to the context. The map is nil outside tests. | ||||
| 	dec map[*http.Request]func(netcontext.Context) netcontext.Context | ||||
| }{ | ||||
| 	m: make(map[*http.Request]*context), | ||||
| } | ||||
|  | ||||
| // context represents the context of an in-flight HTTP request. | ||||
| // It implements the appengine.Context and http.ResponseWriter interfaces. | ||||
| type context struct { | ||||
| 	req *http.Request | ||||
|  | ||||
| 	outCode   int | ||||
| 	outHeader http.Header | ||||
| 	outBody   []byte | ||||
|  | ||||
| 	pendingLogs struct { | ||||
| 		sync.Mutex | ||||
| 		lines   []*logpb.UserAppLogLine | ||||
| 		flushes int | ||||
| 	} | ||||
|  | ||||
| 	apiURL *url.URL | ||||
| } | ||||
|  | ||||
| var contextKey = "holds a *context" | ||||
|  | ||||
| func fromContext(ctx netcontext.Context) *context { | ||||
| 	c, _ := ctx.Value(&contextKey).(*context) | ||||
| 	return c | ||||
| } | ||||
|  | ||||
| func withContext(parent netcontext.Context, c *context) netcontext.Context { | ||||
| 	ctx := netcontext.WithValue(parent, &contextKey, c) | ||||
| 	if ns := c.req.Header.Get(curNamespaceHeader); ns != "" { | ||||
| 		ctx = withNamespace(ctx, ns) | ||||
| 	} | ||||
| 	return ctx | ||||
| } | ||||
|  | ||||
| func toContext(c *context) netcontext.Context { | ||||
| 	return withContext(netcontext.Background(), c) | ||||
| } | ||||
|  | ||||
| func IncomingHeaders(ctx netcontext.Context) http.Header { | ||||
| 	if c := fromContext(ctx); c != nil { | ||||
| 		return c.req.Header | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func WithContext(parent netcontext.Context, req *http.Request) netcontext.Context { | ||||
| 	ctxs.Lock() | ||||
| 	c := ctxs.m[req] | ||||
| 	d := ctxs.dec[req] | ||||
| 	ctxs.Unlock() | ||||
|  | ||||
| 	if d != nil { | ||||
| 		parent = d(parent) | ||||
| 	} | ||||
|  | ||||
| 	if c == nil { | ||||
| 		// Someone passed in an http.Request that is not in-flight. | ||||
| 		// We panic here rather than panicking at a later point | ||||
| 		// so that stack traces will be more sensible. | ||||
| 		log.Panic("appengine: NewContext passed an unknown http.Request") | ||||
| 	} | ||||
| 	return withContext(parent, c) | ||||
| } | ||||
|  | ||||
| func BackgroundContext() netcontext.Context { | ||||
| 	ctxs.Lock() | ||||
| 	defer ctxs.Unlock() | ||||
|  | ||||
| 	if ctxs.bg != nil { | ||||
| 		return toContext(ctxs.bg) | ||||
| 	} | ||||
|  | ||||
| 	// Compute background security ticket. | ||||
| 	appID := partitionlessAppID() | ||||
| 	escAppID := strings.Replace(strings.Replace(appID, ":", "_", -1), ".", "_", -1) | ||||
| 	majVersion := VersionID(nil) | ||||
| 	if i := strings.Index(majVersion, "."); i > 0 { | ||||
| 		majVersion = majVersion[:i] | ||||
| 	} | ||||
| 	ticket := fmt.Sprintf("%s/%s.%s.%s", escAppID, ModuleName(nil), majVersion, InstanceID()) | ||||
|  | ||||
| 	ctxs.bg = &context{ | ||||
| 		req: &http.Request{ | ||||
| 			Header: http.Header{ | ||||
| 				ticketHeader: []string{ticket}, | ||||
| 			}, | ||||
| 		}, | ||||
| 		apiURL: apiURL(), | ||||
| 	} | ||||
|  | ||||
| 	// TODO(dsymonds): Wire up the shutdown handler to do a final flush. | ||||
| 	go ctxs.bg.logFlusher(make(chan int)) | ||||
|  | ||||
| 	return toContext(ctxs.bg) | ||||
| } | ||||
|  | ||||
| // RegisterTestRequest registers the HTTP request req for testing, such that | ||||
| // any API calls are sent to the provided URL. It returns a closure to delete | ||||
| // the registration. | ||||
| // It should only be used by aetest package. | ||||
| func RegisterTestRequest(req *http.Request, apiURL *url.URL, decorate func(netcontext.Context) netcontext.Context) func() { | ||||
| 	c := &context{ | ||||
| 		req:    req, | ||||
| 		apiURL: apiURL, | ||||
| 	} | ||||
| 	ctxs.Lock() | ||||
| 	defer ctxs.Unlock() | ||||
| 	if _, ok := ctxs.m[req]; ok { | ||||
| 		log.Panic("req already associated with context") | ||||
| 	} | ||||
| 	if _, ok := ctxs.dec[req]; ok { | ||||
| 		log.Panic("req already associated with context") | ||||
| 	} | ||||
| 	if ctxs.dec == nil { | ||||
| 		ctxs.dec = make(map[*http.Request]func(netcontext.Context) netcontext.Context) | ||||
| 	} | ||||
| 	ctxs.m[req] = c | ||||
| 	ctxs.dec[req] = decorate | ||||
|  | ||||
| 	return func() { | ||||
| 		ctxs.Lock() | ||||
| 		delete(ctxs.m, req) | ||||
| 		delete(ctxs.dec, req) | ||||
| 		ctxs.Unlock() | ||||
| 	} | ||||
| } | ||||
|  | ||||
| var errTimeout = &CallError{ | ||||
| 	Detail:  "Deadline exceeded", | ||||
| 	Code:    int32(remotepb.RpcError_CANCELLED), | ||||
| 	Timeout: true, | ||||
| } | ||||
|  | ||||
| func (c *context) Header() http.Header { return c.outHeader } | ||||
|  | ||||
| // Copied from $GOROOT/src/pkg/net/http/transfer.go. Some response status | ||||
| // codes do not permit a response body (nor response entity headers such as | ||||
| // Content-Length, Content-Type, etc). | ||||
| func bodyAllowedForStatus(status int) bool { | ||||
| 	switch { | ||||
| 	case status >= 100 && status <= 199: | ||||
| 		return false | ||||
| 	case status == 204: | ||||
| 		return false | ||||
| 	case status == 304: | ||||
| 		return false | ||||
| 	} | ||||
| 	return true | ||||
| } | ||||
|  | ||||
| func (c *context) Write(b []byte) (int, error) { | ||||
| 	if c.outCode == 0 { | ||||
| 		c.WriteHeader(http.StatusOK) | ||||
| 	} | ||||
| 	if len(b) > 0 && !bodyAllowedForStatus(c.outCode) { | ||||
| 		return 0, http.ErrBodyNotAllowed | ||||
| 	} | ||||
| 	c.outBody = append(c.outBody, b...) | ||||
| 	return len(b), nil | ||||
| } | ||||
|  | ||||
| func (c *context) WriteHeader(code int) { | ||||
| 	if c.outCode != 0 { | ||||
| 		logf(c, 3, "WriteHeader called multiple times on request.") // error level | ||||
| 		return | ||||
| 	} | ||||
| 	c.outCode = code | ||||
| } | ||||
|  | ||||
| func (c *context) post(body []byte, timeout time.Duration) (b []byte, err error) { | ||||
| 	hreq := &http.Request{ | ||||
| 		Method: "POST", | ||||
| 		URL:    c.apiURL, | ||||
| 		Header: http.Header{ | ||||
| 			apiEndpointHeader: apiEndpointHeaderValue, | ||||
| 			apiMethodHeader:   apiMethodHeaderValue, | ||||
| 			apiContentType:    apiContentTypeValue, | ||||
| 			apiDeadlineHeader: []string{strconv.FormatFloat(timeout.Seconds(), 'f', -1, 64)}, | ||||
| 		}, | ||||
| 		Body:          ioutil.NopCloser(bytes.NewReader(body)), | ||||
| 		ContentLength: int64(len(body)), | ||||
| 		Host:          c.apiURL.Host, | ||||
| 	} | ||||
| 	if info := c.req.Header.Get(dapperHeader); info != "" { | ||||
| 		hreq.Header.Set(dapperHeader, info) | ||||
| 	} | ||||
| 	if info := c.req.Header.Get(traceHeader); info != "" { | ||||
| 		hreq.Header.Set(traceHeader, info) | ||||
| 	} | ||||
|  | ||||
| 	tr := apiHTTPClient.Transport.(*http.Transport) | ||||
|  | ||||
| 	var timedOut int32 // atomic; set to 1 if timed out | ||||
| 	t := time.AfterFunc(timeout, func() { | ||||
| 		atomic.StoreInt32(&timedOut, 1) | ||||
| 		tr.CancelRequest(hreq) | ||||
| 	}) | ||||
| 	defer t.Stop() | ||||
| 	defer func() { | ||||
| 		// Check if timeout was exceeded. | ||||
| 		if atomic.LoadInt32(&timedOut) != 0 { | ||||
| 			err = errTimeout | ||||
| 		} | ||||
| 	}() | ||||
|  | ||||
| 	hresp, err := apiHTTPClient.Do(hreq) | ||||
| 	if err != nil { | ||||
| 		return nil, &CallError{ | ||||
| 			Detail: fmt.Sprintf("service bridge HTTP failed: %v", err), | ||||
| 			Code:   int32(remotepb.RpcError_UNKNOWN), | ||||
| 		} | ||||
| 	} | ||||
| 	defer hresp.Body.Close() | ||||
| 	hrespBody, err := ioutil.ReadAll(hresp.Body) | ||||
| 	if hresp.StatusCode != 200 { | ||||
| 		return nil, &CallError{ | ||||
| 			Detail: fmt.Sprintf("service bridge returned HTTP %d (%q)", hresp.StatusCode, hrespBody), | ||||
| 			Code:   int32(remotepb.RpcError_UNKNOWN), | ||||
| 		} | ||||
| 	} | ||||
| 	if err != nil { | ||||
| 		return nil, &CallError{ | ||||
| 			Detail: fmt.Sprintf("service bridge response bad: %v", err), | ||||
| 			Code:   int32(remotepb.RpcError_UNKNOWN), | ||||
| 		} | ||||
| 	} | ||||
| 	return hrespBody, nil | ||||
| } | ||||
|  | ||||
| func Call(ctx netcontext.Context, service, method string, in, out proto.Message) error { | ||||
| 	if ns := NamespaceFromContext(ctx); ns != "" { | ||||
| 		if fn, ok := NamespaceMods[service]; ok { | ||||
| 			fn(in, ns) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	if f, ctx, ok := callOverrideFromContext(ctx); ok { | ||||
| 		return f(ctx, service, method, in, out) | ||||
| 	} | ||||
|  | ||||
| 	// Handle already-done contexts quickly. | ||||
| 	select { | ||||
| 	case <-ctx.Done(): | ||||
| 		return ctx.Err() | ||||
| 	default: | ||||
| 	} | ||||
|  | ||||
| 	c := fromContext(ctx) | ||||
| 	if c == nil { | ||||
| 		// Give a good error message rather than a panic lower down. | ||||
| 		return errors.New("not an App Engine context") | ||||
| 	} | ||||
|  | ||||
| 	// Apply transaction modifications if we're in a transaction. | ||||
| 	if t := transactionFromContext(ctx); t != nil { | ||||
| 		if t.finished { | ||||
| 			return errors.New("transaction context has expired") | ||||
| 		} | ||||
| 		applyTransaction(in, &t.transaction) | ||||
| 	} | ||||
|  | ||||
| 	// Default RPC timeout is 60s. | ||||
| 	timeout := 60 * time.Second | ||||
| 	if deadline, ok := ctx.Deadline(); ok { | ||||
| 		timeout = deadline.Sub(time.Now()) | ||||
| 	} | ||||
|  | ||||
| 	data, err := proto.Marshal(in) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	ticket := c.req.Header.Get(ticketHeader) | ||||
| 	req := &remotepb.Request{ | ||||
| 		ServiceName: &service, | ||||
| 		Method:      &method, | ||||
| 		Request:     data, | ||||
| 		RequestId:   &ticket, | ||||
| 	} | ||||
| 	hreqBody, err := proto.Marshal(req) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	hrespBody, err := c.post(hreqBody, timeout) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	res := &remotepb.Response{} | ||||
| 	if err := proto.Unmarshal(hrespBody, res); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if res.RpcError != nil { | ||||
| 		ce := &CallError{ | ||||
| 			Detail: res.RpcError.GetDetail(), | ||||
| 			Code:   *res.RpcError.Code, | ||||
| 		} | ||||
| 		switch remotepb.RpcError_ErrorCode(ce.Code) { | ||||
| 		case remotepb.RpcError_CANCELLED, remotepb.RpcError_DEADLINE_EXCEEDED: | ||||
| 			ce.Timeout = true | ||||
| 		} | ||||
| 		return ce | ||||
| 	} | ||||
| 	if res.ApplicationError != nil { | ||||
| 		return &APIError{ | ||||
| 			Service: *req.ServiceName, | ||||
| 			Detail:  res.ApplicationError.GetDetail(), | ||||
| 			Code:    *res.ApplicationError.Code, | ||||
| 		} | ||||
| 	} | ||||
| 	if res.Exception != nil || res.JavaException != nil { | ||||
| 		// This shouldn't happen, but let's be defensive. | ||||
| 		return &CallError{ | ||||
| 			Detail: "service bridge returned exception", | ||||
| 			Code:   int32(remotepb.RpcError_UNKNOWN), | ||||
| 		} | ||||
| 	} | ||||
| 	return proto.Unmarshal(res.Response, out) | ||||
| } | ||||
|  | ||||
| func (c *context) Request() *http.Request { | ||||
| 	return c.req | ||||
| } | ||||
|  | ||||
| func (c *context) addLogLine(ll *logpb.UserAppLogLine) { | ||||
| 	// Truncate long log lines. | ||||
| 	// TODO(dsymonds): Check if this is still necessary. | ||||
| 	const lim = 8 << 10 | ||||
| 	if len(*ll.Message) > lim { | ||||
| 		suffix := fmt.Sprintf("...(length %d)", len(*ll.Message)) | ||||
| 		ll.Message = proto.String((*ll.Message)[:lim-len(suffix)] + suffix) | ||||
| 	} | ||||
|  | ||||
| 	c.pendingLogs.Lock() | ||||
| 	c.pendingLogs.lines = append(c.pendingLogs.lines, ll) | ||||
| 	c.pendingLogs.Unlock() | ||||
| } | ||||
|  | ||||
| var logLevelName = map[int64]string{ | ||||
| 	0: "DEBUG", | ||||
| 	1: "INFO", | ||||
| 	2: "WARNING", | ||||
| 	3: "ERROR", | ||||
| 	4: "CRITICAL", | ||||
| } | ||||
|  | ||||
| func logf(c *context, level int64, format string, args ...interface{}) { | ||||
| 	s := fmt.Sprintf(format, args...) | ||||
| 	s = strings.TrimRight(s, "\n") // Remove any trailing newline characters. | ||||
| 	c.addLogLine(&logpb.UserAppLogLine{ | ||||
| 		TimestampUsec: proto.Int64(time.Now().UnixNano() / 1e3), | ||||
| 		Level:         &level, | ||||
| 		Message:       &s, | ||||
| 	}) | ||||
| 	log.Print(logLevelName[level] + ": " + s) | ||||
| } | ||||
|  | ||||
| // flushLog attempts to flush any pending logs to the appserver. | ||||
| // It should not be called concurrently. | ||||
| func (c *context) flushLog(force bool) (flushed bool) { | ||||
| 	c.pendingLogs.Lock() | ||||
| 	// Grab up to 30 MB. We can get away with up to 32 MB, but let's be cautious. | ||||
| 	n, rem := 0, 30<<20 | ||||
| 	for ; n < len(c.pendingLogs.lines); n++ { | ||||
| 		ll := c.pendingLogs.lines[n] | ||||
| 		// Each log line will require about 3 bytes of overhead. | ||||
| 		nb := proto.Size(ll) + 3 | ||||
| 		if nb > rem { | ||||
| 			break | ||||
| 		} | ||||
| 		rem -= nb | ||||
| 	} | ||||
| 	lines := c.pendingLogs.lines[:n] | ||||
| 	c.pendingLogs.lines = c.pendingLogs.lines[n:] | ||||
| 	c.pendingLogs.Unlock() | ||||
|  | ||||
| 	if len(lines) == 0 && !force { | ||||
| 		// Nothing to flush. | ||||
| 		return false | ||||
| 	} | ||||
|  | ||||
| 	rescueLogs := false | ||||
| 	defer func() { | ||||
| 		if rescueLogs { | ||||
| 			c.pendingLogs.Lock() | ||||
| 			c.pendingLogs.lines = append(lines, c.pendingLogs.lines...) | ||||
| 			c.pendingLogs.Unlock() | ||||
| 		} | ||||
| 	}() | ||||
|  | ||||
| 	buf, err := proto.Marshal(&logpb.UserAppLogGroup{ | ||||
| 		LogLine: lines, | ||||
| 	}) | ||||
| 	if err != nil { | ||||
| 		log.Printf("internal.flushLog: marshaling UserAppLogGroup: %v", err) | ||||
| 		rescueLogs = true | ||||
| 		return false | ||||
| 	} | ||||
|  | ||||
| 	req := &logpb.FlushRequest{ | ||||
| 		Logs: buf, | ||||
| 	} | ||||
| 	res := &basepb.VoidProto{} | ||||
| 	c.pendingLogs.Lock() | ||||
| 	c.pendingLogs.flushes++ | ||||
| 	c.pendingLogs.Unlock() | ||||
| 	if err := Call(toContext(c), "logservice", "Flush", req, res); err != nil { | ||||
| 		log.Printf("internal.flushLog: Flush RPC: %v", err) | ||||
| 		rescueLogs = true | ||||
| 		return false | ||||
| 	} | ||||
| 	return true | ||||
| } | ||||
|  | ||||
| const ( | ||||
| 	// Log flushing parameters. | ||||
| 	flushInterval      = 1 * time.Second | ||||
| 	forceFlushInterval = 60 * time.Second | ||||
| ) | ||||
|  | ||||
| func (c *context) logFlusher(stop <-chan int) { | ||||
| 	lastFlush := time.Now() | ||||
| 	tick := time.NewTicker(flushInterval) | ||||
| 	for { | ||||
| 		select { | ||||
| 		case <-stop: | ||||
| 			// Request finished. | ||||
| 			tick.Stop() | ||||
| 			return | ||||
| 		case <-tick.C: | ||||
| 			force := time.Now().Sub(lastFlush) > forceFlushInterval | ||||
| 			if c.flushLog(force) { | ||||
| 				lastFlush = time.Now() | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func ContextForTesting(req *http.Request) netcontext.Context { | ||||
| 	return toContext(&context{req: req}) | ||||
| } | ||||
							
								
								
									
										159
									
								
								vendor/google.golang.org/appengine/internal/api_classic.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										159
									
								
								vendor/google.golang.org/appengine/internal/api_classic.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,159 @@ | ||||
| // Copyright 2015 Google Inc. All rights reserved. | ||||
| // Use of this source code is governed by the Apache 2.0 | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| // +build appengine | ||||
|  | ||||
| package internal | ||||
|  | ||||
| import ( | ||||
| 	"errors" | ||||
| 	"fmt" | ||||
| 	"net/http" | ||||
| 	"time" | ||||
|  | ||||
| 	"appengine" | ||||
| 	"appengine_internal" | ||||
| 	basepb "appengine_internal/base" | ||||
|  | ||||
| 	"github.com/golang/protobuf/proto" | ||||
| 	netcontext "golang.org/x/net/context" | ||||
| ) | ||||
|  | ||||
| var contextKey = "holds an appengine.Context" | ||||
|  | ||||
| func fromContext(ctx netcontext.Context) appengine.Context { | ||||
| 	c, _ := ctx.Value(&contextKey).(appengine.Context) | ||||
| 	return c | ||||
| } | ||||
|  | ||||
| // This is only for classic App Engine adapters. | ||||
| func ClassicContextFromContext(ctx netcontext.Context) appengine.Context { | ||||
| 	return fromContext(ctx) | ||||
| } | ||||
|  | ||||
| func withContext(parent netcontext.Context, c appengine.Context) netcontext.Context { | ||||
| 	ctx := netcontext.WithValue(parent, &contextKey, c) | ||||
|  | ||||
| 	s := &basepb.StringProto{} | ||||
| 	c.Call("__go__", "GetNamespace", &basepb.VoidProto{}, s, nil) | ||||
| 	if ns := s.GetValue(); ns != "" { | ||||
| 		ctx = NamespacedContext(ctx, ns) | ||||
| 	} | ||||
|  | ||||
| 	return ctx | ||||
| } | ||||
|  | ||||
| func IncomingHeaders(ctx netcontext.Context) http.Header { | ||||
| 	if c := fromContext(ctx); c != nil { | ||||
| 		if req, ok := c.Request().(*http.Request); ok { | ||||
| 			return req.Header | ||||
| 		} | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func WithContext(parent netcontext.Context, req *http.Request) netcontext.Context { | ||||
| 	c := appengine.NewContext(req) | ||||
| 	return withContext(parent, c) | ||||
| } | ||||
|  | ||||
| type testingContext struct { | ||||
| 	appengine.Context | ||||
|  | ||||
| 	req *http.Request | ||||
| } | ||||
|  | ||||
| func (t *testingContext) FullyQualifiedAppID() string { return "dev~testcontext" } | ||||
| func (t *testingContext) Call(service, method string, _, _ appengine_internal.ProtoMessage, _ *appengine_internal.CallOptions) error { | ||||
| 	if service == "__go__" && method == "GetNamespace" { | ||||
| 		return nil | ||||
| 	} | ||||
| 	return fmt.Errorf("testingContext: unsupported Call") | ||||
| } | ||||
| func (t *testingContext) Request() interface{} { return t.req } | ||||
|  | ||||
| func ContextForTesting(req *http.Request) netcontext.Context { | ||||
| 	return withContext(netcontext.Background(), &testingContext{req: req}) | ||||
| } | ||||
|  | ||||
| func Call(ctx netcontext.Context, service, method string, in, out proto.Message) error { | ||||
| 	if ns := NamespaceFromContext(ctx); ns != "" { | ||||
| 		if fn, ok := NamespaceMods[service]; ok { | ||||
| 			fn(in, ns) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	if f, ctx, ok := callOverrideFromContext(ctx); ok { | ||||
| 		return f(ctx, service, method, in, out) | ||||
| 	} | ||||
|  | ||||
| 	// Handle already-done contexts quickly. | ||||
| 	select { | ||||
| 	case <-ctx.Done(): | ||||
| 		return ctx.Err() | ||||
| 	default: | ||||
| 	} | ||||
|  | ||||
| 	c := fromContext(ctx) | ||||
| 	if c == nil { | ||||
| 		// Give a good error message rather than a panic lower down. | ||||
| 		return errors.New("not an App Engine context") | ||||
| 	} | ||||
|  | ||||
| 	// Apply transaction modifications if we're in a transaction. | ||||
| 	if t := transactionFromContext(ctx); t != nil { | ||||
| 		if t.finished { | ||||
| 			return errors.New("transaction context has expired") | ||||
| 		} | ||||
| 		applyTransaction(in, &t.transaction) | ||||
| 	} | ||||
|  | ||||
| 	var opts *appengine_internal.CallOptions | ||||
| 	if d, ok := ctx.Deadline(); ok { | ||||
| 		opts = &appengine_internal.CallOptions{ | ||||
| 			Timeout: d.Sub(time.Now()), | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	err := c.Call(service, method, in, out, opts) | ||||
| 	switch v := err.(type) { | ||||
| 	case *appengine_internal.APIError: | ||||
| 		return &APIError{ | ||||
| 			Service: v.Service, | ||||
| 			Detail:  v.Detail, | ||||
| 			Code:    v.Code, | ||||
| 		} | ||||
| 	case *appengine_internal.CallError: | ||||
| 		return &CallError{ | ||||
| 			Detail:  v.Detail, | ||||
| 			Code:    v.Code, | ||||
| 			Timeout: v.Timeout, | ||||
| 		} | ||||
| 	} | ||||
| 	return err | ||||
| } | ||||
|  | ||||
| func handleHTTP(w http.ResponseWriter, r *http.Request) { | ||||
| 	panic("handleHTTP called; this should be impossible") | ||||
| } | ||||
|  | ||||
| func logf(c appengine.Context, level int64, format string, args ...interface{}) { | ||||
| 	var fn func(format string, args ...interface{}) | ||||
| 	switch level { | ||||
| 	case 0: | ||||
| 		fn = c.Debugf | ||||
| 	case 1: | ||||
| 		fn = c.Infof | ||||
| 	case 2: | ||||
| 		fn = c.Warningf | ||||
| 	case 3: | ||||
| 		fn = c.Errorf | ||||
| 	case 4: | ||||
| 		fn = c.Criticalf | ||||
| 	default: | ||||
| 		// This shouldn't happen. | ||||
| 		fn = c.Criticalf | ||||
| 	} | ||||
| 	fn(format, args...) | ||||
| } | ||||
							
								
								
									
										86
									
								
								vendor/google.golang.org/appengine/internal/api_common.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								vendor/google.golang.org/appengine/internal/api_common.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,86 @@ | ||||
| // Copyright 2015 Google Inc. All rights reserved. | ||||
| // Use of this source code is governed by the Apache 2.0 | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package internal | ||||
|  | ||||
| import ( | ||||
| 	"github.com/golang/protobuf/proto" | ||||
| 	netcontext "golang.org/x/net/context" | ||||
| ) | ||||
|  | ||||
| type CallOverrideFunc func(ctx netcontext.Context, service, method string, in, out proto.Message) error | ||||
|  | ||||
| var callOverrideKey = "holds []CallOverrideFunc" | ||||
|  | ||||
| func WithCallOverride(ctx netcontext.Context, f CallOverrideFunc) netcontext.Context { | ||||
| 	// We avoid appending to any existing call override | ||||
| 	// so we don't risk overwriting a popped stack below. | ||||
| 	var cofs []CallOverrideFunc | ||||
| 	if uf, ok := ctx.Value(&callOverrideKey).([]CallOverrideFunc); ok { | ||||
| 		cofs = append(cofs, uf...) | ||||
| 	} | ||||
| 	cofs = append(cofs, f) | ||||
| 	return netcontext.WithValue(ctx, &callOverrideKey, cofs) | ||||
| } | ||||
|  | ||||
| func callOverrideFromContext(ctx netcontext.Context) (CallOverrideFunc, netcontext.Context, bool) { | ||||
| 	cofs, _ := ctx.Value(&callOverrideKey).([]CallOverrideFunc) | ||||
| 	if len(cofs) == 0 { | ||||
| 		return nil, nil, false | ||||
| 	} | ||||
| 	// We found a list of overrides; grab the last, and reconstitute a | ||||
| 	// context that will hide it. | ||||
| 	f := cofs[len(cofs)-1] | ||||
| 	ctx = netcontext.WithValue(ctx, &callOverrideKey, cofs[:len(cofs)-1]) | ||||
| 	return f, ctx, true | ||||
| } | ||||
|  | ||||
| type logOverrideFunc func(level int64, format string, args ...interface{}) | ||||
|  | ||||
| var logOverrideKey = "holds a logOverrideFunc" | ||||
|  | ||||
| func WithLogOverride(ctx netcontext.Context, f logOverrideFunc) netcontext.Context { | ||||
| 	return netcontext.WithValue(ctx, &logOverrideKey, f) | ||||
| } | ||||
|  | ||||
| var appIDOverrideKey = "holds a string, being the full app ID" | ||||
|  | ||||
| func WithAppIDOverride(ctx netcontext.Context, appID string) netcontext.Context { | ||||
| 	return netcontext.WithValue(ctx, &appIDOverrideKey, appID) | ||||
| } | ||||
|  | ||||
| var namespaceKey = "holds the namespace string" | ||||
|  | ||||
| func withNamespace(ctx netcontext.Context, ns string) netcontext.Context { | ||||
| 	return netcontext.WithValue(ctx, &namespaceKey, ns) | ||||
| } | ||||
|  | ||||
| func NamespaceFromContext(ctx netcontext.Context) string { | ||||
| 	// If there's no namespace, return the empty string. | ||||
| 	ns, _ := ctx.Value(&namespaceKey).(string) | ||||
| 	return ns | ||||
| } | ||||
|  | ||||
| // FullyQualifiedAppID returns the fully-qualified application ID. | ||||
| // This may contain a partition prefix (e.g. "s~" for High Replication apps), | ||||
| // or a domain prefix (e.g. "example.com:"). | ||||
| func FullyQualifiedAppID(ctx netcontext.Context) string { | ||||
| 	if id, ok := ctx.Value(&appIDOverrideKey).(string); ok { | ||||
| 		return id | ||||
| 	} | ||||
| 	return fullyQualifiedAppID(ctx) | ||||
| } | ||||
|  | ||||
| func Logf(ctx netcontext.Context, level int64, format string, args ...interface{}) { | ||||
| 	if f, ok := ctx.Value(&logOverrideKey).(logOverrideFunc); ok { | ||||
| 		f(level, format, args...) | ||||
| 		return | ||||
| 	} | ||||
| 	logf(fromContext(ctx), level, format, args...) | ||||
| } | ||||
|  | ||||
| // NamespacedContext wraps a Context to support namespaces. | ||||
| func NamespacedContext(ctx netcontext.Context, namespace string) netcontext.Context { | ||||
| 	return withNamespace(ctx, namespace) | ||||
| } | ||||
							
								
								
									
										28
									
								
								vendor/google.golang.org/appengine/internal/app_id.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								vendor/google.golang.org/appengine/internal/app_id.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | ||||
| // Copyright 2011 Google Inc. All rights reserved. | ||||
| // Use of this source code is governed by the Apache 2.0 | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package internal | ||||
|  | ||||
| import ( | ||||
| 	"strings" | ||||
| ) | ||||
|  | ||||
| func parseFullAppID(appid string) (partition, domain, displayID string) { | ||||
| 	if i := strings.Index(appid, "~"); i != -1 { | ||||
| 		partition, appid = appid[:i], appid[i+1:] | ||||
| 	} | ||||
| 	if i := strings.Index(appid, ":"); i != -1 { | ||||
| 		domain, appid = appid[:i], appid[i+1:] | ||||
| 	} | ||||
| 	return partition, domain, appid | ||||
| } | ||||
|  | ||||
| // appID returns "appid" or "domain.com:appid". | ||||
| func appID(fullAppID string) string { | ||||
| 	_, dom, dis := parseFullAppID(fullAppID) | ||||
| 	if dom != "" { | ||||
| 		return dom + ":" + dis | ||||
| 	} | ||||
| 	return dis | ||||
| } | ||||
							
								
								
									
										296
									
								
								vendor/google.golang.org/appengine/internal/app_identity/app_identity_service.pb.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										296
									
								
								vendor/google.golang.org/appengine/internal/app_identity/app_identity_service.pb.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,296 @@ | ||||
| // Code generated by protoc-gen-go. | ||||
| // source: google.golang.org/appengine/internal/app_identity/app_identity_service.proto | ||||
| // DO NOT EDIT! | ||||
|  | ||||
| /* | ||||
| Package app_identity is a generated protocol buffer package. | ||||
|  | ||||
| It is generated from these files: | ||||
| 	google.golang.org/appengine/internal/app_identity/app_identity_service.proto | ||||
|  | ||||
| It has these top-level messages: | ||||
| 	AppIdentityServiceError | ||||
| 	SignForAppRequest | ||||
| 	SignForAppResponse | ||||
| 	GetPublicCertificateForAppRequest | ||||
| 	PublicCertificate | ||||
| 	GetPublicCertificateForAppResponse | ||||
| 	GetServiceAccountNameRequest | ||||
| 	GetServiceAccountNameResponse | ||||
| 	GetAccessTokenRequest | ||||
| 	GetAccessTokenResponse | ||||
| 	GetDefaultGcsBucketNameRequest | ||||
| 	GetDefaultGcsBucketNameResponse | ||||
| */ | ||||
| package app_identity | ||||
|  | ||||
| import proto "github.com/golang/protobuf/proto" | ||||
| import fmt "fmt" | ||||
| import math "math" | ||||
|  | ||||
| // Reference imports to suppress errors if they are not otherwise used. | ||||
| var _ = proto.Marshal | ||||
| var _ = fmt.Errorf | ||||
| var _ = math.Inf | ||||
|  | ||||
| type AppIdentityServiceError_ErrorCode int32 | ||||
|  | ||||
| const ( | ||||
| 	AppIdentityServiceError_SUCCESS           AppIdentityServiceError_ErrorCode = 0 | ||||
| 	AppIdentityServiceError_UNKNOWN_SCOPE     AppIdentityServiceError_ErrorCode = 9 | ||||
| 	AppIdentityServiceError_BLOB_TOO_LARGE    AppIdentityServiceError_ErrorCode = 1000 | ||||
| 	AppIdentityServiceError_DEADLINE_EXCEEDED AppIdentityServiceError_ErrorCode = 1001 | ||||
| 	AppIdentityServiceError_NOT_A_VALID_APP   AppIdentityServiceError_ErrorCode = 1002 | ||||
| 	AppIdentityServiceError_UNKNOWN_ERROR     AppIdentityServiceError_ErrorCode = 1003 | ||||
| 	AppIdentityServiceError_NOT_ALLOWED       AppIdentityServiceError_ErrorCode = 1005 | ||||
| 	AppIdentityServiceError_NOT_IMPLEMENTED   AppIdentityServiceError_ErrorCode = 1006 | ||||
| ) | ||||
|  | ||||
| var AppIdentityServiceError_ErrorCode_name = map[int32]string{ | ||||
| 	0:    "SUCCESS", | ||||
| 	9:    "UNKNOWN_SCOPE", | ||||
| 	1000: "BLOB_TOO_LARGE", | ||||
| 	1001: "DEADLINE_EXCEEDED", | ||||
| 	1002: "NOT_A_VALID_APP", | ||||
| 	1003: "UNKNOWN_ERROR", | ||||
| 	1005: "NOT_ALLOWED", | ||||
| 	1006: "NOT_IMPLEMENTED", | ||||
| } | ||||
| var AppIdentityServiceError_ErrorCode_value = map[string]int32{ | ||||
| 	"SUCCESS":           0, | ||||
| 	"UNKNOWN_SCOPE":     9, | ||||
| 	"BLOB_TOO_LARGE":    1000, | ||||
| 	"DEADLINE_EXCEEDED": 1001, | ||||
| 	"NOT_A_VALID_APP":   1002, | ||||
| 	"UNKNOWN_ERROR":     1003, | ||||
| 	"NOT_ALLOWED":       1005, | ||||
| 	"NOT_IMPLEMENTED":   1006, | ||||
| } | ||||
|  | ||||
| func (x AppIdentityServiceError_ErrorCode) Enum() *AppIdentityServiceError_ErrorCode { | ||||
| 	p := new(AppIdentityServiceError_ErrorCode) | ||||
| 	*p = x | ||||
| 	return p | ||||
| } | ||||
| func (x AppIdentityServiceError_ErrorCode) String() string { | ||||
| 	return proto.EnumName(AppIdentityServiceError_ErrorCode_name, int32(x)) | ||||
| } | ||||
| func (x *AppIdentityServiceError_ErrorCode) UnmarshalJSON(data []byte) error { | ||||
| 	value, err := proto.UnmarshalJSONEnum(AppIdentityServiceError_ErrorCode_value, data, "AppIdentityServiceError_ErrorCode") | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	*x = AppIdentityServiceError_ErrorCode(value) | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| type AppIdentityServiceError struct { | ||||
| 	XXX_unrecognized []byte `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *AppIdentityServiceError) Reset()         { *m = AppIdentityServiceError{} } | ||||
| func (m *AppIdentityServiceError) String() string { return proto.CompactTextString(m) } | ||||
| func (*AppIdentityServiceError) ProtoMessage()    {} | ||||
|  | ||||
| type SignForAppRequest struct { | ||||
| 	BytesToSign      []byte `protobuf:"bytes,1,opt,name=bytes_to_sign" json:"bytes_to_sign,omitempty"` | ||||
| 	XXX_unrecognized []byte `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *SignForAppRequest) Reset()         { *m = SignForAppRequest{} } | ||||
| func (m *SignForAppRequest) String() string { return proto.CompactTextString(m) } | ||||
| func (*SignForAppRequest) ProtoMessage()    {} | ||||
|  | ||||
| func (m *SignForAppRequest) GetBytesToSign() []byte { | ||||
| 	if m != nil { | ||||
| 		return m.BytesToSign | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| type SignForAppResponse struct { | ||||
| 	KeyName          *string `protobuf:"bytes,1,opt,name=key_name" json:"key_name,omitempty"` | ||||
| 	SignatureBytes   []byte  `protobuf:"bytes,2,opt,name=signature_bytes" json:"signature_bytes,omitempty"` | ||||
| 	XXX_unrecognized []byte  `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *SignForAppResponse) Reset()         { *m = SignForAppResponse{} } | ||||
| func (m *SignForAppResponse) String() string { return proto.CompactTextString(m) } | ||||
| func (*SignForAppResponse) ProtoMessage()    {} | ||||
|  | ||||
| func (m *SignForAppResponse) GetKeyName() string { | ||||
| 	if m != nil && m.KeyName != nil { | ||||
| 		return *m.KeyName | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *SignForAppResponse) GetSignatureBytes() []byte { | ||||
| 	if m != nil { | ||||
| 		return m.SignatureBytes | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| type GetPublicCertificateForAppRequest struct { | ||||
| 	XXX_unrecognized []byte `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *GetPublicCertificateForAppRequest) Reset()         { *m = GetPublicCertificateForAppRequest{} } | ||||
| func (m *GetPublicCertificateForAppRequest) String() string { return proto.CompactTextString(m) } | ||||
| func (*GetPublicCertificateForAppRequest) ProtoMessage()    {} | ||||
|  | ||||
| type PublicCertificate struct { | ||||
| 	KeyName            *string `protobuf:"bytes,1,opt,name=key_name" json:"key_name,omitempty"` | ||||
| 	X509CertificatePem *string `protobuf:"bytes,2,opt,name=x509_certificate_pem" json:"x509_certificate_pem,omitempty"` | ||||
| 	XXX_unrecognized   []byte  `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *PublicCertificate) Reset()         { *m = PublicCertificate{} } | ||||
| func (m *PublicCertificate) String() string { return proto.CompactTextString(m) } | ||||
| func (*PublicCertificate) ProtoMessage()    {} | ||||
|  | ||||
| func (m *PublicCertificate) GetKeyName() string { | ||||
| 	if m != nil && m.KeyName != nil { | ||||
| 		return *m.KeyName | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *PublicCertificate) GetX509CertificatePem() string { | ||||
| 	if m != nil && m.X509CertificatePem != nil { | ||||
| 		return *m.X509CertificatePem | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| type GetPublicCertificateForAppResponse struct { | ||||
| 	PublicCertificateList      []*PublicCertificate `protobuf:"bytes,1,rep,name=public_certificate_list" json:"public_certificate_list,omitempty"` | ||||
| 	MaxClientCacheTimeInSecond *int64               `protobuf:"varint,2,opt,name=max_client_cache_time_in_second" json:"max_client_cache_time_in_second,omitempty"` | ||||
| 	XXX_unrecognized           []byte               `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *GetPublicCertificateForAppResponse) Reset()         { *m = GetPublicCertificateForAppResponse{} } | ||||
| func (m *GetPublicCertificateForAppResponse) String() string { return proto.CompactTextString(m) } | ||||
| func (*GetPublicCertificateForAppResponse) ProtoMessage()    {} | ||||
|  | ||||
| func (m *GetPublicCertificateForAppResponse) GetPublicCertificateList() []*PublicCertificate { | ||||
| 	if m != nil { | ||||
| 		return m.PublicCertificateList | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (m *GetPublicCertificateForAppResponse) GetMaxClientCacheTimeInSecond() int64 { | ||||
| 	if m != nil && m.MaxClientCacheTimeInSecond != nil { | ||||
| 		return *m.MaxClientCacheTimeInSecond | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| type GetServiceAccountNameRequest struct { | ||||
| 	XXX_unrecognized []byte `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *GetServiceAccountNameRequest) Reset()         { *m = GetServiceAccountNameRequest{} } | ||||
| func (m *GetServiceAccountNameRequest) String() string { return proto.CompactTextString(m) } | ||||
| func (*GetServiceAccountNameRequest) ProtoMessage()    {} | ||||
|  | ||||
| type GetServiceAccountNameResponse struct { | ||||
| 	ServiceAccountName *string `protobuf:"bytes,1,opt,name=service_account_name" json:"service_account_name,omitempty"` | ||||
| 	XXX_unrecognized   []byte  `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *GetServiceAccountNameResponse) Reset()         { *m = GetServiceAccountNameResponse{} } | ||||
| func (m *GetServiceAccountNameResponse) String() string { return proto.CompactTextString(m) } | ||||
| func (*GetServiceAccountNameResponse) ProtoMessage()    {} | ||||
|  | ||||
| func (m *GetServiceAccountNameResponse) GetServiceAccountName() string { | ||||
| 	if m != nil && m.ServiceAccountName != nil { | ||||
| 		return *m.ServiceAccountName | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| type GetAccessTokenRequest struct { | ||||
| 	Scope              []string `protobuf:"bytes,1,rep,name=scope" json:"scope,omitempty"` | ||||
| 	ServiceAccountId   *int64   `protobuf:"varint,2,opt,name=service_account_id" json:"service_account_id,omitempty"` | ||||
| 	ServiceAccountName *string  `protobuf:"bytes,3,opt,name=service_account_name" json:"service_account_name,omitempty"` | ||||
| 	XXX_unrecognized   []byte   `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *GetAccessTokenRequest) Reset()         { *m = GetAccessTokenRequest{} } | ||||
| func (m *GetAccessTokenRequest) String() string { return proto.CompactTextString(m) } | ||||
| func (*GetAccessTokenRequest) ProtoMessage()    {} | ||||
|  | ||||
| func (m *GetAccessTokenRequest) GetScope() []string { | ||||
| 	if m != nil { | ||||
| 		return m.Scope | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (m *GetAccessTokenRequest) GetServiceAccountId() int64 { | ||||
| 	if m != nil && m.ServiceAccountId != nil { | ||||
| 		return *m.ServiceAccountId | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *GetAccessTokenRequest) GetServiceAccountName() string { | ||||
| 	if m != nil && m.ServiceAccountName != nil { | ||||
| 		return *m.ServiceAccountName | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| type GetAccessTokenResponse struct { | ||||
| 	AccessToken      *string `protobuf:"bytes,1,opt,name=access_token" json:"access_token,omitempty"` | ||||
| 	ExpirationTime   *int64  `protobuf:"varint,2,opt,name=expiration_time" json:"expiration_time,omitempty"` | ||||
| 	XXX_unrecognized []byte  `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *GetAccessTokenResponse) Reset()         { *m = GetAccessTokenResponse{} } | ||||
| func (m *GetAccessTokenResponse) String() string { return proto.CompactTextString(m) } | ||||
| func (*GetAccessTokenResponse) ProtoMessage()    {} | ||||
|  | ||||
| func (m *GetAccessTokenResponse) GetAccessToken() string { | ||||
| 	if m != nil && m.AccessToken != nil { | ||||
| 		return *m.AccessToken | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *GetAccessTokenResponse) GetExpirationTime() int64 { | ||||
| 	if m != nil && m.ExpirationTime != nil { | ||||
| 		return *m.ExpirationTime | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| type GetDefaultGcsBucketNameRequest struct { | ||||
| 	XXX_unrecognized []byte `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *GetDefaultGcsBucketNameRequest) Reset()         { *m = GetDefaultGcsBucketNameRequest{} } | ||||
| func (m *GetDefaultGcsBucketNameRequest) String() string { return proto.CompactTextString(m) } | ||||
| func (*GetDefaultGcsBucketNameRequest) ProtoMessage()    {} | ||||
|  | ||||
| type GetDefaultGcsBucketNameResponse struct { | ||||
| 	DefaultGcsBucketName *string `protobuf:"bytes,1,opt,name=default_gcs_bucket_name" json:"default_gcs_bucket_name,omitempty"` | ||||
| 	XXX_unrecognized     []byte  `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *GetDefaultGcsBucketNameResponse) Reset()         { *m = GetDefaultGcsBucketNameResponse{} } | ||||
| func (m *GetDefaultGcsBucketNameResponse) String() string { return proto.CompactTextString(m) } | ||||
| func (*GetDefaultGcsBucketNameResponse) ProtoMessage()    {} | ||||
|  | ||||
| func (m *GetDefaultGcsBucketNameResponse) GetDefaultGcsBucketName() string { | ||||
| 	if m != nil && m.DefaultGcsBucketName != nil { | ||||
| 		return *m.DefaultGcsBucketName | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func init() { | ||||
| } | ||||
							
								
								
									
										64
									
								
								vendor/google.golang.org/appengine/internal/app_identity/app_identity_service.proto
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								vendor/google.golang.org/appengine/internal/app_identity/app_identity_service.proto
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,64 @@ | ||||
| syntax = "proto2"; | ||||
| option go_package = "app_identity"; | ||||
|  | ||||
| package appengine; | ||||
|  | ||||
| message AppIdentityServiceError { | ||||
|   enum ErrorCode { | ||||
|     SUCCESS = 0; | ||||
|     UNKNOWN_SCOPE = 9; | ||||
|     BLOB_TOO_LARGE = 1000; | ||||
|     DEADLINE_EXCEEDED = 1001; | ||||
|     NOT_A_VALID_APP = 1002; | ||||
|     UNKNOWN_ERROR = 1003; | ||||
|     NOT_ALLOWED = 1005; | ||||
|     NOT_IMPLEMENTED = 1006; | ||||
|   } | ||||
| } | ||||
|  | ||||
| message SignForAppRequest { | ||||
|   optional bytes bytes_to_sign = 1; | ||||
| } | ||||
|  | ||||
| message SignForAppResponse { | ||||
|   optional string key_name = 1; | ||||
|   optional bytes signature_bytes = 2; | ||||
| } | ||||
|  | ||||
| message GetPublicCertificateForAppRequest { | ||||
| } | ||||
|  | ||||
| message PublicCertificate { | ||||
|   optional string key_name = 1; | ||||
|   optional string x509_certificate_pem = 2; | ||||
| } | ||||
|  | ||||
| message GetPublicCertificateForAppResponse { | ||||
|   repeated PublicCertificate public_certificate_list = 1; | ||||
|   optional int64 max_client_cache_time_in_second = 2; | ||||
| } | ||||
|  | ||||
| message GetServiceAccountNameRequest { | ||||
| } | ||||
|  | ||||
| message GetServiceAccountNameResponse { | ||||
|   optional string service_account_name = 1; | ||||
| } | ||||
|  | ||||
| message GetAccessTokenRequest { | ||||
|   repeated string scope = 1; | ||||
|   optional int64 service_account_id = 2; | ||||
|   optional string service_account_name = 3; | ||||
| } | ||||
|  | ||||
| message GetAccessTokenResponse { | ||||
|   optional string access_token = 1; | ||||
|   optional int64 expiration_time = 2; | ||||
| } | ||||
|  | ||||
| message GetDefaultGcsBucketNameRequest { | ||||
| } | ||||
|  | ||||
| message GetDefaultGcsBucketNameResponse { | ||||
|   optional string default_gcs_bucket_name = 1; | ||||
| } | ||||
							
								
								
									
										133
									
								
								vendor/google.golang.org/appengine/internal/base/api_base.pb.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										133
									
								
								vendor/google.golang.org/appengine/internal/base/api_base.pb.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,133 @@ | ||||
| // Code generated by protoc-gen-go. | ||||
| // source: google.golang.org/appengine/internal/base/api_base.proto | ||||
| // DO NOT EDIT! | ||||
|  | ||||
| /* | ||||
| Package base is a generated protocol buffer package. | ||||
|  | ||||
| It is generated from these files: | ||||
| 	google.golang.org/appengine/internal/base/api_base.proto | ||||
|  | ||||
| It has these top-level messages: | ||||
| 	StringProto | ||||
| 	Integer32Proto | ||||
| 	Integer64Proto | ||||
| 	BoolProto | ||||
| 	DoubleProto | ||||
| 	BytesProto | ||||
| 	VoidProto | ||||
| */ | ||||
| package base | ||||
|  | ||||
| import proto "github.com/golang/protobuf/proto" | ||||
| import fmt "fmt" | ||||
| import math "math" | ||||
|  | ||||
| // Reference imports to suppress errors if they are not otherwise used. | ||||
| var _ = proto.Marshal | ||||
| var _ = fmt.Errorf | ||||
| var _ = math.Inf | ||||
|  | ||||
| type StringProto struct { | ||||
| 	Value            *string `protobuf:"bytes,1,req,name=value" json:"value,omitempty"` | ||||
| 	XXX_unrecognized []byte  `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *StringProto) Reset()         { *m = StringProto{} } | ||||
| func (m *StringProto) String() string { return proto.CompactTextString(m) } | ||||
| func (*StringProto) ProtoMessage()    {} | ||||
|  | ||||
| func (m *StringProto) GetValue() string { | ||||
| 	if m != nil && m.Value != nil { | ||||
| 		return *m.Value | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| type Integer32Proto struct { | ||||
| 	Value            *int32 `protobuf:"varint,1,req,name=value" json:"value,omitempty"` | ||||
| 	XXX_unrecognized []byte `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *Integer32Proto) Reset()         { *m = Integer32Proto{} } | ||||
| func (m *Integer32Proto) String() string { return proto.CompactTextString(m) } | ||||
| func (*Integer32Proto) ProtoMessage()    {} | ||||
|  | ||||
| func (m *Integer32Proto) GetValue() int32 { | ||||
| 	if m != nil && m.Value != nil { | ||||
| 		return *m.Value | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| type Integer64Proto struct { | ||||
| 	Value            *int64 `protobuf:"varint,1,req,name=value" json:"value,omitempty"` | ||||
| 	XXX_unrecognized []byte `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *Integer64Proto) Reset()         { *m = Integer64Proto{} } | ||||
| func (m *Integer64Proto) String() string { return proto.CompactTextString(m) } | ||||
| func (*Integer64Proto) ProtoMessage()    {} | ||||
|  | ||||
| func (m *Integer64Proto) GetValue() int64 { | ||||
| 	if m != nil && m.Value != nil { | ||||
| 		return *m.Value | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| type BoolProto struct { | ||||
| 	Value            *bool  `protobuf:"varint,1,req,name=value" json:"value,omitempty"` | ||||
| 	XXX_unrecognized []byte `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *BoolProto) Reset()         { *m = BoolProto{} } | ||||
| func (m *BoolProto) String() string { return proto.CompactTextString(m) } | ||||
| func (*BoolProto) ProtoMessage()    {} | ||||
|  | ||||
| func (m *BoolProto) GetValue() bool { | ||||
| 	if m != nil && m.Value != nil { | ||||
| 		return *m.Value | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
|  | ||||
| type DoubleProto struct { | ||||
| 	Value            *float64 `protobuf:"fixed64,1,req,name=value" json:"value,omitempty"` | ||||
| 	XXX_unrecognized []byte   `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *DoubleProto) Reset()         { *m = DoubleProto{} } | ||||
| func (m *DoubleProto) String() string { return proto.CompactTextString(m) } | ||||
| func (*DoubleProto) ProtoMessage()    {} | ||||
|  | ||||
| func (m *DoubleProto) GetValue() float64 { | ||||
| 	if m != nil && m.Value != nil { | ||||
| 		return *m.Value | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| type BytesProto struct { | ||||
| 	Value            []byte `protobuf:"bytes,1,req,name=value" json:"value,omitempty"` | ||||
| 	XXX_unrecognized []byte `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *BytesProto) Reset()         { *m = BytesProto{} } | ||||
| func (m *BytesProto) String() string { return proto.CompactTextString(m) } | ||||
| func (*BytesProto) ProtoMessage()    {} | ||||
|  | ||||
| func (m *BytesProto) GetValue() []byte { | ||||
| 	if m != nil { | ||||
| 		return m.Value | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| type VoidProto struct { | ||||
| 	XXX_unrecognized []byte `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *VoidProto) Reset()         { *m = VoidProto{} } | ||||
| func (m *VoidProto) String() string { return proto.CompactTextString(m) } | ||||
| func (*VoidProto) ProtoMessage()    {} | ||||
							
								
								
									
										33
									
								
								vendor/google.golang.org/appengine/internal/base/api_base.proto
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								vendor/google.golang.org/appengine/internal/base/api_base.proto
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| // Built-in base types for API calls. Primarily useful as return types. | ||||
|  | ||||
| syntax = "proto2"; | ||||
| option go_package = "base"; | ||||
|  | ||||
| package appengine.base; | ||||
|  | ||||
| message StringProto { | ||||
|   required string value = 1; | ||||
| } | ||||
|  | ||||
| message Integer32Proto { | ||||
|   required int32 value = 1; | ||||
| } | ||||
|  | ||||
| message Integer64Proto { | ||||
|   required int64 value = 1; | ||||
| } | ||||
|  | ||||
| message BoolProto { | ||||
|   required bool value = 1; | ||||
| } | ||||
|  | ||||
| message DoubleProto { | ||||
|   required double value = 1; | ||||
| } | ||||
|  | ||||
| message BytesProto { | ||||
|   required bytes value = 1 [ctype=CORD]; | ||||
| } | ||||
|  | ||||
| message VoidProto { | ||||
| } | ||||
							
								
								
									
										2778
									
								
								vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2778
									
								
								vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										541
									
								
								vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto
									
									
									
										generated
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										541
									
								
								vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto
									
									
									
										generated
									
									
										vendored
									
									
										Executable file
									
								
							| @@ -0,0 +1,541 @@ | ||||
| syntax = "proto2"; | ||||
| option go_package = "datastore"; | ||||
|  | ||||
| package appengine; | ||||
|  | ||||
| message Action{} | ||||
|  | ||||
| message PropertyValue { | ||||
|   optional int64 int64Value = 1; | ||||
|   optional bool booleanValue = 2; | ||||
|   optional string stringValue = 3; | ||||
|   optional double doubleValue = 4; | ||||
|  | ||||
|   optional group PointValue = 5 { | ||||
|     required double x = 6; | ||||
|     required double y = 7; | ||||
|   } | ||||
|  | ||||
|   optional group UserValue = 8 { | ||||
|     required string email = 9; | ||||
|     required string auth_domain = 10; | ||||
|     optional string nickname = 11; | ||||
|     optional string federated_identity = 21; | ||||
|     optional string federated_provider = 22; | ||||
|   } | ||||
|  | ||||
|   optional group ReferenceValue = 12 { | ||||
|     required string app = 13; | ||||
|     optional string name_space = 20; | ||||
|     repeated group PathElement = 14 { | ||||
|       required string type = 15; | ||||
|       optional int64 id = 16; | ||||
|       optional string name = 17; | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
| message Property { | ||||
|   enum Meaning { | ||||
|     NO_MEANING = 0; | ||||
|     BLOB = 14; | ||||
|     TEXT = 15; | ||||
|     BYTESTRING = 16; | ||||
|  | ||||
|     ATOM_CATEGORY = 1; | ||||
|     ATOM_LINK = 2; | ||||
|     ATOM_TITLE = 3; | ||||
|     ATOM_CONTENT = 4; | ||||
|     ATOM_SUMMARY = 5; | ||||
|     ATOM_AUTHOR = 6; | ||||
|  | ||||
|     GD_WHEN = 7; | ||||
|     GD_EMAIL = 8; | ||||
|     GEORSS_POINT = 9; | ||||
|     GD_IM = 10; | ||||
|  | ||||
|     GD_PHONENUMBER = 11; | ||||
|     GD_POSTALADDRESS = 12; | ||||
|  | ||||
|     GD_RATING = 13; | ||||
|  | ||||
|     BLOBKEY = 17; | ||||
|     ENTITY_PROTO = 19; | ||||
|  | ||||
|     INDEX_VALUE = 18; | ||||
|   }; | ||||
|  | ||||
|   optional Meaning meaning = 1 [default = NO_MEANING]; | ||||
|   optional string meaning_uri = 2; | ||||
|  | ||||
|   required string name = 3; | ||||
|  | ||||
|   required PropertyValue value = 5; | ||||
|  | ||||
|   required bool multiple = 4; | ||||
|  | ||||
|   optional bool searchable = 6 [default=false]; | ||||
|  | ||||
|   enum FtsTokenizationOption { | ||||
|     HTML = 1; | ||||
|     ATOM = 2; | ||||
|   } | ||||
|  | ||||
|   optional FtsTokenizationOption fts_tokenization_option = 8; | ||||
|  | ||||
|   optional string locale = 9 [default = "en"]; | ||||
| } | ||||
|  | ||||
| message Path { | ||||
|   repeated group Element = 1 { | ||||
|     required string type = 2; | ||||
|     optional int64 id = 3; | ||||
|     optional string name = 4; | ||||
|   } | ||||
| } | ||||
|  | ||||
| message Reference { | ||||
|   required string app = 13; | ||||
|   optional string name_space = 20; | ||||
|   required Path path = 14; | ||||
| } | ||||
|  | ||||
| message User { | ||||
|   required string email = 1; | ||||
|   required string auth_domain = 2; | ||||
|   optional string nickname = 3; | ||||
|   optional string federated_identity = 6; | ||||
|   optional string federated_provider = 7; | ||||
| } | ||||
|  | ||||
| message EntityProto { | ||||
|   required Reference key = 13; | ||||
|   required Path entity_group = 16; | ||||
|   optional User owner = 17; | ||||
|  | ||||
|   enum Kind { | ||||
|     GD_CONTACT = 1; | ||||
|     GD_EVENT = 2; | ||||
|     GD_MESSAGE = 3; | ||||
|   } | ||||
|   optional Kind kind = 4; | ||||
|   optional string kind_uri = 5; | ||||
|  | ||||
|   repeated Property property = 14; | ||||
|   repeated Property raw_property = 15; | ||||
|  | ||||
|   optional int32 rank = 18; | ||||
| } | ||||
|  | ||||
| message CompositeProperty { | ||||
|   required int64 index_id = 1; | ||||
|   repeated string value = 2; | ||||
| } | ||||
|  | ||||
| message Index { | ||||
|   required string entity_type = 1; | ||||
|   required bool ancestor = 5; | ||||
|   repeated group Property = 2 { | ||||
|     required string name = 3; | ||||
|     enum Direction { | ||||
|       ASCENDING = 1; | ||||
|       DESCENDING = 2; | ||||
|     } | ||||
|     optional Direction direction = 4 [default = ASCENDING]; | ||||
|   } | ||||
| } | ||||
|  | ||||
| message CompositeIndex { | ||||
|   required string app_id = 1; | ||||
|   required int64 id = 2; | ||||
|   required Index definition = 3; | ||||
|  | ||||
|   enum State { | ||||
|     WRITE_ONLY = 1; | ||||
|     READ_WRITE = 2; | ||||
|     DELETED = 3; | ||||
|     ERROR = 4; | ||||
|   } | ||||
|   required State state = 4; | ||||
|  | ||||
|   optional bool only_use_if_required = 6 [default = false]; | ||||
| } | ||||
|  | ||||
| message IndexPostfix { | ||||
|   message IndexValue { | ||||
|     required string property_name = 1; | ||||
|     required PropertyValue value = 2; | ||||
|   } | ||||
|  | ||||
|   repeated IndexValue index_value = 1; | ||||
|  | ||||
|   optional Reference key = 2; | ||||
|  | ||||
|   optional bool before = 3 [default=true]; | ||||
| } | ||||
|  | ||||
| message IndexPosition { | ||||
|   optional string key = 1; | ||||
|  | ||||
|   optional bool before = 2 [default=true]; | ||||
| } | ||||
|  | ||||
| message Snapshot { | ||||
|   enum Status { | ||||
|     INACTIVE = 0; | ||||
|     ACTIVE = 1; | ||||
|   } | ||||
|  | ||||
|   required int64 ts = 1; | ||||
| } | ||||
|  | ||||
| message InternalHeader { | ||||
|   optional string qos = 1; | ||||
| } | ||||
|  | ||||
| message Transaction { | ||||
|   optional InternalHeader header = 4; | ||||
|   required fixed64 handle = 1; | ||||
|   required string app = 2; | ||||
|   optional bool mark_changes = 3 [default = false]; | ||||
| } | ||||
|  | ||||
| message Query { | ||||
|   optional InternalHeader header = 39; | ||||
|  | ||||
|   required string app = 1; | ||||
|   optional string name_space = 29; | ||||
|  | ||||
|   optional string kind = 3; | ||||
|   optional Reference ancestor = 17; | ||||
|  | ||||
|   repeated group Filter = 4 { | ||||
|     enum Operator { | ||||
|       LESS_THAN = 1; | ||||
|       LESS_THAN_OR_EQUAL = 2; | ||||
|       GREATER_THAN = 3; | ||||
|       GREATER_THAN_OR_EQUAL = 4; | ||||
|       EQUAL = 5; | ||||
|       IN = 6; | ||||
|       EXISTS = 7; | ||||
|     } | ||||
|  | ||||
|     required Operator op = 6; | ||||
|     repeated Property property = 14; | ||||
|   } | ||||
|  | ||||
|   optional string search_query = 8; | ||||
|  | ||||
|   repeated group Order = 9 { | ||||
|     enum Direction { | ||||
|       ASCENDING = 1; | ||||
|       DESCENDING = 2; | ||||
|     } | ||||
|  | ||||
|     required string property = 10; | ||||
|     optional Direction direction = 11 [default = ASCENDING]; | ||||
|   } | ||||
|  | ||||
|   enum Hint { | ||||
|     ORDER_FIRST = 1; | ||||
|     ANCESTOR_FIRST = 2; | ||||
|     FILTER_FIRST = 3; | ||||
|   } | ||||
|   optional Hint hint = 18; | ||||
|  | ||||
|   optional int32 count = 23; | ||||
|  | ||||
|   optional int32 offset = 12 [default = 0]; | ||||
|  | ||||
|   optional int32 limit = 16; | ||||
|  | ||||
|   optional CompiledCursor compiled_cursor = 30; | ||||
|   optional CompiledCursor end_compiled_cursor = 31; | ||||
|  | ||||
|   repeated CompositeIndex composite_index = 19; | ||||
|  | ||||
|   optional bool require_perfect_plan = 20 [default = false]; | ||||
|  | ||||
|   optional bool keys_only = 21 [default = false]; | ||||
|  | ||||
|   optional Transaction transaction = 22; | ||||
|  | ||||
|   optional bool compile = 25 [default = false]; | ||||
|  | ||||
|   optional int64 failover_ms = 26; | ||||
|  | ||||
|   optional bool strong = 32; | ||||
|  | ||||
|   repeated string property_name = 33; | ||||
|  | ||||
|   repeated string group_by_property_name = 34; | ||||
|  | ||||
|   optional bool distinct = 24; | ||||
|  | ||||
|   optional int64 min_safe_time_seconds = 35; | ||||
|  | ||||
|   repeated string safe_replica_name = 36; | ||||
|  | ||||
|   optional bool persist_offset = 37 [default=false]; | ||||
| } | ||||
|  | ||||
| message CompiledQuery { | ||||
|   required group PrimaryScan = 1 { | ||||
|     optional string index_name = 2; | ||||
|  | ||||
|     optional string start_key = 3; | ||||
|     optional bool start_inclusive = 4; | ||||
|     optional string end_key = 5; | ||||
|     optional bool end_inclusive = 6; | ||||
|  | ||||
|     repeated string start_postfix_value = 22; | ||||
|     repeated string end_postfix_value = 23; | ||||
|  | ||||
|     optional int64 end_unapplied_log_timestamp_us = 19; | ||||
|   } | ||||
|  | ||||
|   repeated group MergeJoinScan = 7 { | ||||
|     required string index_name = 8; | ||||
|  | ||||
|     repeated string prefix_value = 9; | ||||
|  | ||||
|     optional bool value_prefix = 20 [default=false]; | ||||
|   } | ||||
|  | ||||
|   optional Index index_def = 21; | ||||
|  | ||||
|   optional int32 offset = 10 [default = 0]; | ||||
|  | ||||
|   optional int32 limit = 11; | ||||
|  | ||||
|   required bool keys_only = 12; | ||||
|  | ||||
|   repeated string property_name = 24; | ||||
|  | ||||
|   optional int32 distinct_infix_size = 25; | ||||
|  | ||||
|   optional group EntityFilter = 13 { | ||||
|     optional bool distinct = 14 [default=false]; | ||||
|  | ||||
|     optional string kind = 17; | ||||
|     optional Reference ancestor = 18; | ||||
|   } | ||||
| } | ||||
|  | ||||
| message CompiledCursor { | ||||
|   optional group Position = 2 { | ||||
|     optional string start_key = 27; | ||||
|  | ||||
|     repeated group IndexValue = 29 { | ||||
|       optional string property = 30; | ||||
|       required PropertyValue value = 31; | ||||
|     } | ||||
|  | ||||
|     optional Reference key = 32; | ||||
|  | ||||
|     optional bool start_inclusive = 28 [default=true]; | ||||
|   } | ||||
| } | ||||
|  | ||||
| message Cursor { | ||||
|   required fixed64 cursor = 1; | ||||
|  | ||||
|   optional string app = 2; | ||||
| } | ||||
|  | ||||
| message Error { | ||||
|   enum ErrorCode { | ||||
|     BAD_REQUEST = 1; | ||||
|     CONCURRENT_TRANSACTION = 2; | ||||
|     INTERNAL_ERROR = 3; | ||||
|     NEED_INDEX = 4; | ||||
|     TIMEOUT = 5; | ||||
|     PERMISSION_DENIED = 6; | ||||
|     BIGTABLE_ERROR = 7; | ||||
|     COMMITTED_BUT_STILL_APPLYING = 8; | ||||
|     CAPABILITY_DISABLED = 9; | ||||
|     TRY_ALTERNATE_BACKEND = 10; | ||||
|     SAFE_TIME_TOO_OLD = 11; | ||||
|   } | ||||
| } | ||||
|  | ||||
| message Cost { | ||||
|   optional int32 index_writes = 1; | ||||
|   optional int32 index_write_bytes = 2; | ||||
|   optional int32 entity_writes = 3; | ||||
|   optional int32 entity_write_bytes = 4; | ||||
|   optional group CommitCost = 5 { | ||||
|     optional int32 requested_entity_puts = 6; | ||||
|     optional int32 requested_entity_deletes = 7; | ||||
|   }; | ||||
|   optional int32 approximate_storage_delta = 8; | ||||
|   optional int32 id_sequence_updates = 9; | ||||
| } | ||||
|  | ||||
| message GetRequest { | ||||
|   optional InternalHeader header = 6; | ||||
|  | ||||
|   repeated Reference key = 1; | ||||
|   optional Transaction transaction = 2; | ||||
|  | ||||
|   optional int64 failover_ms = 3; | ||||
|  | ||||
|   optional bool strong = 4; | ||||
|  | ||||
|   optional bool allow_deferred = 5 [default=false]; | ||||
| } | ||||
|  | ||||
| message GetResponse { | ||||
|   repeated group Entity = 1 { | ||||
|     optional EntityProto entity = 2; | ||||
|     optional Reference key = 4; | ||||
|  | ||||
|     optional int64 version = 3; | ||||
|   } | ||||
|  | ||||
|   repeated Reference deferred = 5; | ||||
|  | ||||
|   optional bool in_order = 6 [default=true]; | ||||
| } | ||||
|  | ||||
| message PutRequest { | ||||
|   optional InternalHeader header = 11; | ||||
|  | ||||
|   repeated EntityProto entity = 1; | ||||
|   optional Transaction transaction = 2; | ||||
|   repeated CompositeIndex composite_index = 3; | ||||
|  | ||||
|   optional bool trusted = 4 [default = false]; | ||||
|  | ||||
|   optional bool force = 7 [default = false]; | ||||
|  | ||||
|   optional bool mark_changes = 8 [default = false]; | ||||
|   repeated Snapshot snapshot = 9; | ||||
|  | ||||
|   enum AutoIdPolicy { | ||||
|     CURRENT = 0; | ||||
|     SEQUENTIAL = 1; | ||||
|   } | ||||
|   optional AutoIdPolicy auto_id_policy = 10 [default = CURRENT]; | ||||
| } | ||||
|  | ||||
| message PutResponse { | ||||
|   repeated Reference key = 1; | ||||
|   optional Cost cost = 2; | ||||
|   repeated int64 version = 3; | ||||
| } | ||||
|  | ||||
| message TouchRequest { | ||||
|   optional InternalHeader header = 10; | ||||
|  | ||||
|   repeated Reference key = 1; | ||||
|   repeated CompositeIndex composite_index = 2; | ||||
|   optional bool force = 3 [default = false]; | ||||
|   repeated Snapshot snapshot = 9; | ||||
| } | ||||
|  | ||||
| message TouchResponse { | ||||
|   optional Cost cost = 1; | ||||
| } | ||||
|  | ||||
| message DeleteRequest { | ||||
|   optional InternalHeader header = 10; | ||||
|  | ||||
|   repeated Reference key = 6; | ||||
|   optional Transaction transaction = 5; | ||||
|  | ||||
|   optional bool trusted = 4 [default = false]; | ||||
|  | ||||
|   optional bool force = 7 [default = false]; | ||||
|  | ||||
|   optional bool mark_changes = 8 [default = false]; | ||||
|   repeated Snapshot snapshot = 9; | ||||
| } | ||||
|  | ||||
| message DeleteResponse { | ||||
|   optional Cost cost = 1; | ||||
|   repeated int64 version = 3; | ||||
| } | ||||
|  | ||||
| message NextRequest { | ||||
|   optional InternalHeader header = 5; | ||||
|  | ||||
|   required Cursor cursor = 1; | ||||
|   optional int32 count = 2; | ||||
|  | ||||
|   optional int32 offset = 4 [default = 0]; | ||||
|  | ||||
|   optional bool compile = 3 [default = false]; | ||||
| } | ||||
|  | ||||
| message QueryResult { | ||||
|   optional Cursor cursor = 1; | ||||
|  | ||||
|   repeated EntityProto result = 2; | ||||
|  | ||||
|   optional int32 skipped_results = 7; | ||||
|  | ||||
|   required bool more_results = 3; | ||||
|  | ||||
|   optional bool keys_only = 4; | ||||
|  | ||||
|   optional bool index_only = 9; | ||||
|  | ||||
|   optional bool small_ops = 10; | ||||
|  | ||||
|   optional CompiledQuery compiled_query = 5; | ||||
|  | ||||
|   optional CompiledCursor compiled_cursor = 6; | ||||
|  | ||||
|   repeated CompositeIndex index = 8; | ||||
|  | ||||
|   repeated int64 version = 11; | ||||
| } | ||||
|  | ||||
| message AllocateIdsRequest { | ||||
|   optional InternalHeader header = 4; | ||||
|  | ||||
|   optional Reference model_key = 1; | ||||
|  | ||||
|   optional int64 size = 2; | ||||
|  | ||||
|   optional int64 max = 3; | ||||
|  | ||||
|   repeated Reference reserve = 5; | ||||
| } | ||||
|  | ||||
| message AllocateIdsResponse { | ||||
|   required int64 start = 1; | ||||
|   required int64 end = 2; | ||||
|   optional Cost cost = 3; | ||||
| } | ||||
|  | ||||
| message CompositeIndices { | ||||
|   repeated CompositeIndex index = 1; | ||||
| } | ||||
|  | ||||
| message AddActionsRequest { | ||||
|   optional InternalHeader header = 3; | ||||
|  | ||||
|   required Transaction transaction = 1; | ||||
|   repeated Action action = 2; | ||||
| } | ||||
|  | ||||
| message AddActionsResponse { | ||||
| } | ||||
|  | ||||
| message BeginTransactionRequest { | ||||
|   optional InternalHeader header = 3; | ||||
|  | ||||
|   required string app = 1; | ||||
|   optional bool allow_multiple_eg = 2 [default = false]; | ||||
| } | ||||
|  | ||||
| message CommitResponse { | ||||
|   optional Cost cost = 1; | ||||
|  | ||||
|   repeated group Version = 3 { | ||||
|     required Reference root_entity_key = 4; | ||||
|     required int64 version = 5; | ||||
|   } | ||||
| } | ||||
							
								
								
									
										14
									
								
								vendor/google.golang.org/appengine/internal/identity.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								vendor/google.golang.org/appengine/internal/identity.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| // Copyright 2011 Google Inc. All rights reserved. | ||||
| // Use of this source code is governed by the Apache 2.0 | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package internal | ||||
|  | ||||
| import netcontext "golang.org/x/net/context" | ||||
|  | ||||
| // These functions are implementations of the wrapper functions | ||||
| // in ../appengine/identity.go. See that file for commentary. | ||||
|  | ||||
| func AppID(c netcontext.Context) string { | ||||
| 	return appID(FullyQualifiedAppID(c)) | ||||
| } | ||||
							
								
								
									
										27
									
								
								vendor/google.golang.org/appengine/internal/identity_classic.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								vendor/google.golang.org/appengine/internal/identity_classic.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| // Copyright 2015 Google Inc. All rights reserved. | ||||
| // Use of this source code is governed by the Apache 2.0 | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| // +build appengine | ||||
|  | ||||
| package internal | ||||
|  | ||||
| import ( | ||||
| 	"appengine" | ||||
|  | ||||
| 	netcontext "golang.org/x/net/context" | ||||
| ) | ||||
|  | ||||
| func DefaultVersionHostname(ctx netcontext.Context) string { | ||||
| 	return appengine.DefaultVersionHostname(fromContext(ctx)) | ||||
| } | ||||
|  | ||||
| func RequestID(ctx netcontext.Context) string  { return appengine.RequestID(fromContext(ctx)) } | ||||
| func Datacenter(_ netcontext.Context) string   { return appengine.Datacenter() } | ||||
| func ServerSoftware() string                   { return appengine.ServerSoftware() } | ||||
| func ModuleName(ctx netcontext.Context) string { return appengine.ModuleName(fromContext(ctx)) } | ||||
| func VersionID(ctx netcontext.Context) string  { return appengine.VersionID(fromContext(ctx)) } | ||||
| func InstanceID() string                       { return appengine.InstanceID() } | ||||
| func IsDevAppServer() bool                     { return appengine.IsDevAppServer() } | ||||
|  | ||||
| func fullyQualifiedAppID(ctx netcontext.Context) string { return fromContext(ctx).FullyQualifiedAppID() } | ||||
							
								
								
									
										97
									
								
								vendor/google.golang.org/appengine/internal/identity_vm.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								vendor/google.golang.org/appengine/internal/identity_vm.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,97 @@ | ||||
| // Copyright 2011 Google Inc. All rights reserved. | ||||
| // Use of this source code is governed by the Apache 2.0 | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| // +build !appengine | ||||
|  | ||||
| package internal | ||||
|  | ||||
| import ( | ||||
| 	"net/http" | ||||
| 	"os" | ||||
|  | ||||
| 	netcontext "golang.org/x/net/context" | ||||
| ) | ||||
|  | ||||
| // These functions are implementations of the wrapper functions | ||||
| // in ../appengine/identity.go. See that file for commentary. | ||||
|  | ||||
| const ( | ||||
| 	hDefaultVersionHostname = "X-AppEngine-Default-Version-Hostname" | ||||
| 	hRequestLogId           = "X-AppEngine-Request-Log-Id" | ||||
| 	hDatacenter             = "X-AppEngine-Datacenter" | ||||
| ) | ||||
|  | ||||
| func ctxHeaders(ctx netcontext.Context) http.Header { | ||||
| 	return fromContext(ctx).Request().Header | ||||
| } | ||||
|  | ||||
| func DefaultVersionHostname(ctx netcontext.Context) string { | ||||
| 	return ctxHeaders(ctx).Get(hDefaultVersionHostname) | ||||
| } | ||||
|  | ||||
| func RequestID(ctx netcontext.Context) string { | ||||
| 	return ctxHeaders(ctx).Get(hRequestLogId) | ||||
| } | ||||
|  | ||||
| func Datacenter(ctx netcontext.Context) string { | ||||
| 	return ctxHeaders(ctx).Get(hDatacenter) | ||||
| } | ||||
|  | ||||
| func ServerSoftware() string { | ||||
| 	// TODO(dsymonds): Remove fallback when we've verified this. | ||||
| 	if s := os.Getenv("SERVER_SOFTWARE"); s != "" { | ||||
| 		return s | ||||
| 	} | ||||
| 	return "Google App Engine/1.x.x" | ||||
| } | ||||
|  | ||||
| // TODO(dsymonds): Remove the metadata fetches. | ||||
|  | ||||
| func ModuleName(_ netcontext.Context) string { | ||||
| 	if s := os.Getenv("GAE_MODULE_NAME"); s != "" { | ||||
| 		return s | ||||
| 	} | ||||
| 	return string(mustGetMetadata("instance/attributes/gae_backend_name")) | ||||
| } | ||||
|  | ||||
| func VersionID(_ netcontext.Context) string { | ||||
| 	if s1, s2 := os.Getenv("GAE_MODULE_VERSION"), os.Getenv("GAE_MINOR_VERSION"); s1 != "" && s2 != "" { | ||||
| 		return s1 + "." + s2 | ||||
| 	} | ||||
| 	return string(mustGetMetadata("instance/attributes/gae_backend_version")) + "." + string(mustGetMetadata("instance/attributes/gae_backend_minor_version")) | ||||
| } | ||||
|  | ||||
| func InstanceID() string { | ||||
| 	if s := os.Getenv("GAE_MODULE_INSTANCE"); s != "" { | ||||
| 		return s | ||||
| 	} | ||||
| 	return string(mustGetMetadata("instance/attributes/gae_backend_instance")) | ||||
| } | ||||
|  | ||||
| func partitionlessAppID() string { | ||||
| 	// gae_project has everything except the partition prefix. | ||||
| 	appID := os.Getenv("GAE_LONG_APP_ID") | ||||
| 	if appID == "" { | ||||
| 		appID = string(mustGetMetadata("instance/attributes/gae_project")) | ||||
| 	} | ||||
| 	return appID | ||||
| } | ||||
|  | ||||
| func fullyQualifiedAppID(_ netcontext.Context) string { | ||||
| 	appID := partitionlessAppID() | ||||
|  | ||||
| 	part := os.Getenv("GAE_PARTITION") | ||||
| 	if part == "" { | ||||
| 		part = string(mustGetMetadata("instance/attributes/gae_partition")) | ||||
| 	} | ||||
|  | ||||
| 	if part != "" { | ||||
| 		appID = part + "~" + appID | ||||
| 	} | ||||
| 	return appID | ||||
| } | ||||
|  | ||||
| func IsDevAppServer() bool { | ||||
| 	return os.Getenv("RUN_WITH_DEVAPPSERVER") != "" | ||||
| } | ||||
							
								
								
									
										110
									
								
								vendor/google.golang.org/appengine/internal/internal.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								vendor/google.golang.org/appengine/internal/internal.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,110 @@ | ||||
| // Copyright 2011 Google Inc. All rights reserved. | ||||
| // Use of this source code is governed by the Apache 2.0 | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| // Package internal provides support for package appengine. | ||||
| // | ||||
| // Programs should not use this package directly. Its API is not stable. | ||||
| // Use packages appengine and appengine/* instead. | ||||
| package internal | ||||
|  | ||||
| import ( | ||||
| 	"fmt" | ||||
|  | ||||
| 	"github.com/golang/protobuf/proto" | ||||
|  | ||||
| 	remotepb "google.golang.org/appengine/internal/remote_api" | ||||
| ) | ||||
|  | ||||
| // errorCodeMaps is a map of service name to the error code map for the service. | ||||
| var errorCodeMaps = make(map[string]map[int32]string) | ||||
|  | ||||
| // RegisterErrorCodeMap is called from API implementations to register their | ||||
| // error code map. This should only be called from init functions. | ||||
| func RegisterErrorCodeMap(service string, m map[int32]string) { | ||||
| 	errorCodeMaps[service] = m | ||||
| } | ||||
|  | ||||
| type timeoutCodeKey struct { | ||||
| 	service string | ||||
| 	code    int32 | ||||
| } | ||||
|  | ||||
| // timeoutCodes is the set of service+code pairs that represent timeouts. | ||||
| var timeoutCodes = make(map[timeoutCodeKey]bool) | ||||
|  | ||||
| func RegisterTimeoutErrorCode(service string, code int32) { | ||||
| 	timeoutCodes[timeoutCodeKey{service, code}] = true | ||||
| } | ||||
|  | ||||
| // APIError is the type returned by appengine.Context's Call method | ||||
| // when an API call fails in an API-specific way. This may be, for instance, | ||||
| // a taskqueue API call failing with TaskQueueServiceError::UNKNOWN_QUEUE. | ||||
| type APIError struct { | ||||
| 	Service string | ||||
| 	Detail  string | ||||
| 	Code    int32 // API-specific error code | ||||
| } | ||||
|  | ||||
| func (e *APIError) Error() string { | ||||
| 	if e.Code == 0 { | ||||
| 		if e.Detail == "" { | ||||
| 			return "APIError <empty>" | ||||
| 		} | ||||
| 		return e.Detail | ||||
| 	} | ||||
| 	s := fmt.Sprintf("API error %d", e.Code) | ||||
| 	if m, ok := errorCodeMaps[e.Service]; ok { | ||||
| 		s += " (" + e.Service + ": " + m[e.Code] + ")" | ||||
| 	} else { | ||||
| 		// Shouldn't happen, but provide a bit more detail if it does. | ||||
| 		s = e.Service + " " + s | ||||
| 	} | ||||
| 	if e.Detail != "" { | ||||
| 		s += ": " + e.Detail | ||||
| 	} | ||||
| 	return s | ||||
| } | ||||
|  | ||||
| func (e *APIError) IsTimeout() bool { | ||||
| 	return timeoutCodes[timeoutCodeKey{e.Service, e.Code}] | ||||
| } | ||||
|  | ||||
| // CallError is the type returned by appengine.Context's Call method when an | ||||
| // API call fails in a generic way, such as RpcError::CAPABILITY_DISABLED. | ||||
| type CallError struct { | ||||
| 	Detail string | ||||
| 	Code   int32 | ||||
| 	// TODO: Remove this if we get a distinguishable error code. | ||||
| 	Timeout bool | ||||
| } | ||||
|  | ||||
| func (e *CallError) Error() string { | ||||
| 	var msg string | ||||
| 	switch remotepb.RpcError_ErrorCode(e.Code) { | ||||
| 	case remotepb.RpcError_UNKNOWN: | ||||
| 		return e.Detail | ||||
| 	case remotepb.RpcError_OVER_QUOTA: | ||||
| 		msg = "Over quota" | ||||
| 	case remotepb.RpcError_CAPABILITY_DISABLED: | ||||
| 		msg = "Capability disabled" | ||||
| 	case remotepb.RpcError_CANCELLED: | ||||
| 		msg = "Canceled" | ||||
| 	default: | ||||
| 		msg = fmt.Sprintf("Call error %d", e.Code) | ||||
| 	} | ||||
| 	s := msg + ": " + e.Detail | ||||
| 	if e.Timeout { | ||||
| 		s += " (timeout)" | ||||
| 	} | ||||
| 	return s | ||||
| } | ||||
|  | ||||
| func (e *CallError) IsTimeout() bool { | ||||
| 	return e.Timeout | ||||
| } | ||||
|  | ||||
| // NamespaceMods is a map from API service to a function that will mutate an RPC request to attach a namespace. | ||||
| // The function should be prepared to be called on the same message more than once; it should only modify the | ||||
| // RPC request the first time. | ||||
| var NamespaceMods = make(map[string]func(m proto.Message, namespace string)) | ||||
							
								
								
									
										899
									
								
								vendor/google.golang.org/appengine/internal/log/log_service.pb.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										899
									
								
								vendor/google.golang.org/appengine/internal/log/log_service.pb.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,899 @@ | ||||
| // Code generated by protoc-gen-go. | ||||
| // source: google.golang.org/appengine/internal/log/log_service.proto | ||||
| // DO NOT EDIT! | ||||
|  | ||||
| /* | ||||
| Package log is a generated protocol buffer package. | ||||
|  | ||||
| It is generated from these files: | ||||
| 	google.golang.org/appengine/internal/log/log_service.proto | ||||
|  | ||||
| It has these top-level messages: | ||||
| 	LogServiceError | ||||
| 	UserAppLogLine | ||||
| 	UserAppLogGroup | ||||
| 	FlushRequest | ||||
| 	SetStatusRequest | ||||
| 	LogOffset | ||||
| 	LogLine | ||||
| 	RequestLog | ||||
| 	LogModuleVersion | ||||
| 	LogReadRequest | ||||
| 	LogReadResponse | ||||
| 	LogUsageRecord | ||||
| 	LogUsageRequest | ||||
| 	LogUsageResponse | ||||
| */ | ||||
| package log | ||||
|  | ||||
| import proto "github.com/golang/protobuf/proto" | ||||
| import fmt "fmt" | ||||
| import math "math" | ||||
|  | ||||
| // Reference imports to suppress errors if they are not otherwise used. | ||||
| var _ = proto.Marshal | ||||
| var _ = fmt.Errorf | ||||
| var _ = math.Inf | ||||
|  | ||||
| type LogServiceError_ErrorCode int32 | ||||
|  | ||||
| const ( | ||||
| 	LogServiceError_OK              LogServiceError_ErrorCode = 0 | ||||
| 	LogServiceError_INVALID_REQUEST LogServiceError_ErrorCode = 1 | ||||
| 	LogServiceError_STORAGE_ERROR   LogServiceError_ErrorCode = 2 | ||||
| ) | ||||
|  | ||||
| var LogServiceError_ErrorCode_name = map[int32]string{ | ||||
| 	0: "OK", | ||||
| 	1: "INVALID_REQUEST", | ||||
| 	2: "STORAGE_ERROR", | ||||
| } | ||||
| var LogServiceError_ErrorCode_value = map[string]int32{ | ||||
| 	"OK":              0, | ||||
| 	"INVALID_REQUEST": 1, | ||||
| 	"STORAGE_ERROR":   2, | ||||
| } | ||||
|  | ||||
| func (x LogServiceError_ErrorCode) Enum() *LogServiceError_ErrorCode { | ||||
| 	p := new(LogServiceError_ErrorCode) | ||||
| 	*p = x | ||||
| 	return p | ||||
| } | ||||
| func (x LogServiceError_ErrorCode) String() string { | ||||
| 	return proto.EnumName(LogServiceError_ErrorCode_name, int32(x)) | ||||
| } | ||||
| func (x *LogServiceError_ErrorCode) UnmarshalJSON(data []byte) error { | ||||
| 	value, err := proto.UnmarshalJSONEnum(LogServiceError_ErrorCode_value, data, "LogServiceError_ErrorCode") | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	*x = LogServiceError_ErrorCode(value) | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| type LogServiceError struct { | ||||
| 	XXX_unrecognized []byte `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *LogServiceError) Reset()         { *m = LogServiceError{} } | ||||
| func (m *LogServiceError) String() string { return proto.CompactTextString(m) } | ||||
| func (*LogServiceError) ProtoMessage()    {} | ||||
|  | ||||
| type UserAppLogLine struct { | ||||
| 	TimestampUsec    *int64  `protobuf:"varint,1,req,name=timestamp_usec" json:"timestamp_usec,omitempty"` | ||||
| 	Level            *int64  `protobuf:"varint,2,req,name=level" json:"level,omitempty"` | ||||
| 	Message          *string `protobuf:"bytes,3,req,name=message" json:"message,omitempty"` | ||||
| 	XXX_unrecognized []byte  `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *UserAppLogLine) Reset()         { *m = UserAppLogLine{} } | ||||
| func (m *UserAppLogLine) String() string { return proto.CompactTextString(m) } | ||||
| func (*UserAppLogLine) ProtoMessage()    {} | ||||
|  | ||||
| func (m *UserAppLogLine) GetTimestampUsec() int64 { | ||||
| 	if m != nil && m.TimestampUsec != nil { | ||||
| 		return *m.TimestampUsec | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *UserAppLogLine) GetLevel() int64 { | ||||
| 	if m != nil && m.Level != nil { | ||||
| 		return *m.Level | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *UserAppLogLine) GetMessage() string { | ||||
| 	if m != nil && m.Message != nil { | ||||
| 		return *m.Message | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| type UserAppLogGroup struct { | ||||
| 	LogLine          []*UserAppLogLine `protobuf:"bytes,2,rep,name=log_line" json:"log_line,omitempty"` | ||||
| 	XXX_unrecognized []byte            `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *UserAppLogGroup) Reset()         { *m = UserAppLogGroup{} } | ||||
| func (m *UserAppLogGroup) String() string { return proto.CompactTextString(m) } | ||||
| func (*UserAppLogGroup) ProtoMessage()    {} | ||||
|  | ||||
| func (m *UserAppLogGroup) GetLogLine() []*UserAppLogLine { | ||||
| 	if m != nil { | ||||
| 		return m.LogLine | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| type FlushRequest struct { | ||||
| 	Logs             []byte `protobuf:"bytes,1,opt,name=logs" json:"logs,omitempty"` | ||||
| 	XXX_unrecognized []byte `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *FlushRequest) Reset()         { *m = FlushRequest{} } | ||||
| func (m *FlushRequest) String() string { return proto.CompactTextString(m) } | ||||
| func (*FlushRequest) ProtoMessage()    {} | ||||
|  | ||||
| func (m *FlushRequest) GetLogs() []byte { | ||||
| 	if m != nil { | ||||
| 		return m.Logs | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| type SetStatusRequest struct { | ||||
| 	Status           *string `protobuf:"bytes,1,req,name=status" json:"status,omitempty"` | ||||
| 	XXX_unrecognized []byte  `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *SetStatusRequest) Reset()         { *m = SetStatusRequest{} } | ||||
| func (m *SetStatusRequest) String() string { return proto.CompactTextString(m) } | ||||
| func (*SetStatusRequest) ProtoMessage()    {} | ||||
|  | ||||
| func (m *SetStatusRequest) GetStatus() string { | ||||
| 	if m != nil && m.Status != nil { | ||||
| 		return *m.Status | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| type LogOffset struct { | ||||
| 	RequestId        []byte `protobuf:"bytes,1,opt,name=request_id" json:"request_id,omitempty"` | ||||
| 	XXX_unrecognized []byte `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *LogOffset) Reset()         { *m = LogOffset{} } | ||||
| func (m *LogOffset) String() string { return proto.CompactTextString(m) } | ||||
| func (*LogOffset) ProtoMessage()    {} | ||||
|  | ||||
| func (m *LogOffset) GetRequestId() []byte { | ||||
| 	if m != nil { | ||||
| 		return m.RequestId | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| type LogLine struct { | ||||
| 	Time             *int64  `protobuf:"varint,1,req,name=time" json:"time,omitempty"` | ||||
| 	Level            *int32  `protobuf:"varint,2,req,name=level" json:"level,omitempty"` | ||||
| 	LogMessage       *string `protobuf:"bytes,3,req,name=log_message" json:"log_message,omitempty"` | ||||
| 	XXX_unrecognized []byte  `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *LogLine) Reset()         { *m = LogLine{} } | ||||
| func (m *LogLine) String() string { return proto.CompactTextString(m) } | ||||
| func (*LogLine) ProtoMessage()    {} | ||||
|  | ||||
| func (m *LogLine) GetTime() int64 { | ||||
| 	if m != nil && m.Time != nil { | ||||
| 		return *m.Time | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *LogLine) GetLevel() int32 { | ||||
| 	if m != nil && m.Level != nil { | ||||
| 		return *m.Level | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *LogLine) GetLogMessage() string { | ||||
| 	if m != nil && m.LogMessage != nil { | ||||
| 		return *m.LogMessage | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| type RequestLog struct { | ||||
| 	AppId                   *string    `protobuf:"bytes,1,req,name=app_id" json:"app_id,omitempty"` | ||||
| 	ModuleId                *string    `protobuf:"bytes,37,opt,name=module_id,def=default" json:"module_id,omitempty"` | ||||
| 	VersionId               *string    `protobuf:"bytes,2,req,name=version_id" json:"version_id,omitempty"` | ||||
| 	RequestId               []byte     `protobuf:"bytes,3,req,name=request_id" json:"request_id,omitempty"` | ||||
| 	Offset                  *LogOffset `protobuf:"bytes,35,opt,name=offset" json:"offset,omitempty"` | ||||
| 	Ip                      *string    `protobuf:"bytes,4,req,name=ip" json:"ip,omitempty"` | ||||
| 	Nickname                *string    `protobuf:"bytes,5,opt,name=nickname" json:"nickname,omitempty"` | ||||
| 	StartTime               *int64     `protobuf:"varint,6,req,name=start_time" json:"start_time,omitempty"` | ||||
| 	EndTime                 *int64     `protobuf:"varint,7,req,name=end_time" json:"end_time,omitempty"` | ||||
| 	Latency                 *int64     `protobuf:"varint,8,req,name=latency" json:"latency,omitempty"` | ||||
| 	Mcycles                 *int64     `protobuf:"varint,9,req,name=mcycles" json:"mcycles,omitempty"` | ||||
| 	Method                  *string    `protobuf:"bytes,10,req,name=method" json:"method,omitempty"` | ||||
| 	Resource                *string    `protobuf:"bytes,11,req,name=resource" json:"resource,omitempty"` | ||||
| 	HttpVersion             *string    `protobuf:"bytes,12,req,name=http_version" json:"http_version,omitempty"` | ||||
| 	Status                  *int32     `protobuf:"varint,13,req,name=status" json:"status,omitempty"` | ||||
| 	ResponseSize            *int64     `protobuf:"varint,14,req,name=response_size" json:"response_size,omitempty"` | ||||
| 	Referrer                *string    `protobuf:"bytes,15,opt,name=referrer" json:"referrer,omitempty"` | ||||
| 	UserAgent               *string    `protobuf:"bytes,16,opt,name=user_agent" json:"user_agent,omitempty"` | ||||
| 	UrlMapEntry             *string    `protobuf:"bytes,17,req,name=url_map_entry" json:"url_map_entry,omitempty"` | ||||
| 	Combined                *string    `protobuf:"bytes,18,req,name=combined" json:"combined,omitempty"` | ||||
| 	ApiMcycles              *int64     `protobuf:"varint,19,opt,name=api_mcycles" json:"api_mcycles,omitempty"` | ||||
| 	Host                    *string    `protobuf:"bytes,20,opt,name=host" json:"host,omitempty"` | ||||
| 	Cost                    *float64   `protobuf:"fixed64,21,opt,name=cost" json:"cost,omitempty"` | ||||
| 	TaskQueueName           *string    `protobuf:"bytes,22,opt,name=task_queue_name" json:"task_queue_name,omitempty"` | ||||
| 	TaskName                *string    `protobuf:"bytes,23,opt,name=task_name" json:"task_name,omitempty"` | ||||
| 	WasLoadingRequest       *bool      `protobuf:"varint,24,opt,name=was_loading_request" json:"was_loading_request,omitempty"` | ||||
| 	PendingTime             *int64     `protobuf:"varint,25,opt,name=pending_time" json:"pending_time,omitempty"` | ||||
| 	ReplicaIndex            *int32     `protobuf:"varint,26,opt,name=replica_index,def=-1" json:"replica_index,omitempty"` | ||||
| 	Finished                *bool      `protobuf:"varint,27,opt,name=finished,def=1" json:"finished,omitempty"` | ||||
| 	CloneKey                []byte     `protobuf:"bytes,28,opt,name=clone_key" json:"clone_key,omitempty"` | ||||
| 	Line                    []*LogLine `protobuf:"bytes,29,rep,name=line" json:"line,omitempty"` | ||||
| 	LinesIncomplete         *bool      `protobuf:"varint,36,opt,name=lines_incomplete" json:"lines_incomplete,omitempty"` | ||||
| 	AppEngineRelease        []byte     `protobuf:"bytes,38,opt,name=app_engine_release" json:"app_engine_release,omitempty"` | ||||
| 	ExitReason              *int32     `protobuf:"varint,30,opt,name=exit_reason" json:"exit_reason,omitempty"` | ||||
| 	WasThrottledForTime     *bool      `protobuf:"varint,31,opt,name=was_throttled_for_time" json:"was_throttled_for_time,omitempty"` | ||||
| 	WasThrottledForRequests *bool      `protobuf:"varint,32,opt,name=was_throttled_for_requests" json:"was_throttled_for_requests,omitempty"` | ||||
| 	ThrottledTime           *int64     `protobuf:"varint,33,opt,name=throttled_time" json:"throttled_time,omitempty"` | ||||
| 	ServerName              []byte     `protobuf:"bytes,34,opt,name=server_name" json:"server_name,omitempty"` | ||||
| 	XXX_unrecognized        []byte     `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) Reset()         { *m = RequestLog{} } | ||||
| func (m *RequestLog) String() string { return proto.CompactTextString(m) } | ||||
| func (*RequestLog) ProtoMessage()    {} | ||||
|  | ||||
| const Default_RequestLog_ModuleId string = "default" | ||||
| const Default_RequestLog_ReplicaIndex int32 = -1 | ||||
| const Default_RequestLog_Finished bool = true | ||||
|  | ||||
| func (m *RequestLog) GetAppId() string { | ||||
| 	if m != nil && m.AppId != nil { | ||||
| 		return *m.AppId | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetModuleId() string { | ||||
| 	if m != nil && m.ModuleId != nil { | ||||
| 		return *m.ModuleId | ||||
| 	} | ||||
| 	return Default_RequestLog_ModuleId | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetVersionId() string { | ||||
| 	if m != nil && m.VersionId != nil { | ||||
| 		return *m.VersionId | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetRequestId() []byte { | ||||
| 	if m != nil { | ||||
| 		return m.RequestId | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetOffset() *LogOffset { | ||||
| 	if m != nil { | ||||
| 		return m.Offset | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetIp() string { | ||||
| 	if m != nil && m.Ip != nil { | ||||
| 		return *m.Ip | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetNickname() string { | ||||
| 	if m != nil && m.Nickname != nil { | ||||
| 		return *m.Nickname | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetStartTime() int64 { | ||||
| 	if m != nil && m.StartTime != nil { | ||||
| 		return *m.StartTime | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetEndTime() int64 { | ||||
| 	if m != nil && m.EndTime != nil { | ||||
| 		return *m.EndTime | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetLatency() int64 { | ||||
| 	if m != nil && m.Latency != nil { | ||||
| 		return *m.Latency | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetMcycles() int64 { | ||||
| 	if m != nil && m.Mcycles != nil { | ||||
| 		return *m.Mcycles | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetMethod() string { | ||||
| 	if m != nil && m.Method != nil { | ||||
| 		return *m.Method | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetResource() string { | ||||
| 	if m != nil && m.Resource != nil { | ||||
| 		return *m.Resource | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetHttpVersion() string { | ||||
| 	if m != nil && m.HttpVersion != nil { | ||||
| 		return *m.HttpVersion | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetStatus() int32 { | ||||
| 	if m != nil && m.Status != nil { | ||||
| 		return *m.Status | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetResponseSize() int64 { | ||||
| 	if m != nil && m.ResponseSize != nil { | ||||
| 		return *m.ResponseSize | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetReferrer() string { | ||||
| 	if m != nil && m.Referrer != nil { | ||||
| 		return *m.Referrer | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetUserAgent() string { | ||||
| 	if m != nil && m.UserAgent != nil { | ||||
| 		return *m.UserAgent | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetUrlMapEntry() string { | ||||
| 	if m != nil && m.UrlMapEntry != nil { | ||||
| 		return *m.UrlMapEntry | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetCombined() string { | ||||
| 	if m != nil && m.Combined != nil { | ||||
| 		return *m.Combined | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetApiMcycles() int64 { | ||||
| 	if m != nil && m.ApiMcycles != nil { | ||||
| 		return *m.ApiMcycles | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetHost() string { | ||||
| 	if m != nil && m.Host != nil { | ||||
| 		return *m.Host | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetCost() float64 { | ||||
| 	if m != nil && m.Cost != nil { | ||||
| 		return *m.Cost | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetTaskQueueName() string { | ||||
| 	if m != nil && m.TaskQueueName != nil { | ||||
| 		return *m.TaskQueueName | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetTaskName() string { | ||||
| 	if m != nil && m.TaskName != nil { | ||||
| 		return *m.TaskName | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetWasLoadingRequest() bool { | ||||
| 	if m != nil && m.WasLoadingRequest != nil { | ||||
| 		return *m.WasLoadingRequest | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetPendingTime() int64 { | ||||
| 	if m != nil && m.PendingTime != nil { | ||||
| 		return *m.PendingTime | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetReplicaIndex() int32 { | ||||
| 	if m != nil && m.ReplicaIndex != nil { | ||||
| 		return *m.ReplicaIndex | ||||
| 	} | ||||
| 	return Default_RequestLog_ReplicaIndex | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetFinished() bool { | ||||
| 	if m != nil && m.Finished != nil { | ||||
| 		return *m.Finished | ||||
| 	} | ||||
| 	return Default_RequestLog_Finished | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetCloneKey() []byte { | ||||
| 	if m != nil { | ||||
| 		return m.CloneKey | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetLine() []*LogLine { | ||||
| 	if m != nil { | ||||
| 		return m.Line | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetLinesIncomplete() bool { | ||||
| 	if m != nil && m.LinesIncomplete != nil { | ||||
| 		return *m.LinesIncomplete | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetAppEngineRelease() []byte { | ||||
| 	if m != nil { | ||||
| 		return m.AppEngineRelease | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetExitReason() int32 { | ||||
| 	if m != nil && m.ExitReason != nil { | ||||
| 		return *m.ExitReason | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetWasThrottledForTime() bool { | ||||
| 	if m != nil && m.WasThrottledForTime != nil { | ||||
| 		return *m.WasThrottledForTime | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetWasThrottledForRequests() bool { | ||||
| 	if m != nil && m.WasThrottledForRequests != nil { | ||||
| 		return *m.WasThrottledForRequests | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetThrottledTime() int64 { | ||||
| 	if m != nil && m.ThrottledTime != nil { | ||||
| 		return *m.ThrottledTime | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *RequestLog) GetServerName() []byte { | ||||
| 	if m != nil { | ||||
| 		return m.ServerName | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| type LogModuleVersion struct { | ||||
| 	ModuleId         *string `protobuf:"bytes,1,opt,name=module_id,def=default" json:"module_id,omitempty"` | ||||
| 	VersionId        *string `protobuf:"bytes,2,opt,name=version_id" json:"version_id,omitempty"` | ||||
| 	XXX_unrecognized []byte  `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *LogModuleVersion) Reset()         { *m = LogModuleVersion{} } | ||||
| func (m *LogModuleVersion) String() string { return proto.CompactTextString(m) } | ||||
| func (*LogModuleVersion) ProtoMessage()    {} | ||||
|  | ||||
| const Default_LogModuleVersion_ModuleId string = "default" | ||||
|  | ||||
| func (m *LogModuleVersion) GetModuleId() string { | ||||
| 	if m != nil && m.ModuleId != nil { | ||||
| 		return *m.ModuleId | ||||
| 	} | ||||
| 	return Default_LogModuleVersion_ModuleId | ||||
| } | ||||
|  | ||||
| func (m *LogModuleVersion) GetVersionId() string { | ||||
| 	if m != nil && m.VersionId != nil { | ||||
| 		return *m.VersionId | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| type LogReadRequest struct { | ||||
| 	AppId             *string             `protobuf:"bytes,1,req,name=app_id" json:"app_id,omitempty"` | ||||
| 	VersionId         []string            `protobuf:"bytes,2,rep,name=version_id" json:"version_id,omitempty"` | ||||
| 	ModuleVersion     []*LogModuleVersion `protobuf:"bytes,19,rep,name=module_version" json:"module_version,omitempty"` | ||||
| 	StartTime         *int64              `protobuf:"varint,3,opt,name=start_time" json:"start_time,omitempty"` | ||||
| 	EndTime           *int64              `protobuf:"varint,4,opt,name=end_time" json:"end_time,omitempty"` | ||||
| 	Offset            *LogOffset          `protobuf:"bytes,5,opt,name=offset" json:"offset,omitempty"` | ||||
| 	RequestId         [][]byte            `protobuf:"bytes,6,rep,name=request_id" json:"request_id,omitempty"` | ||||
| 	MinimumLogLevel   *int32              `protobuf:"varint,7,opt,name=minimum_log_level" json:"minimum_log_level,omitempty"` | ||||
| 	IncludeIncomplete *bool               `protobuf:"varint,8,opt,name=include_incomplete" json:"include_incomplete,omitempty"` | ||||
| 	Count             *int64              `protobuf:"varint,9,opt,name=count" json:"count,omitempty"` | ||||
| 	CombinedLogRegex  *string             `protobuf:"bytes,14,opt,name=combined_log_regex" json:"combined_log_regex,omitempty"` | ||||
| 	HostRegex         *string             `protobuf:"bytes,15,opt,name=host_regex" json:"host_regex,omitempty"` | ||||
| 	ReplicaIndex      *int32              `protobuf:"varint,16,opt,name=replica_index" json:"replica_index,omitempty"` | ||||
| 	IncludeAppLogs    *bool               `protobuf:"varint,10,opt,name=include_app_logs" json:"include_app_logs,omitempty"` | ||||
| 	AppLogsPerRequest *int32              `protobuf:"varint,17,opt,name=app_logs_per_request" json:"app_logs_per_request,omitempty"` | ||||
| 	IncludeHost       *bool               `protobuf:"varint,11,opt,name=include_host" json:"include_host,omitempty"` | ||||
| 	IncludeAll        *bool               `protobuf:"varint,12,opt,name=include_all" json:"include_all,omitempty"` | ||||
| 	CacheIterator     *bool               `protobuf:"varint,13,opt,name=cache_iterator" json:"cache_iterator,omitempty"` | ||||
| 	NumShards         *int32              `protobuf:"varint,18,opt,name=num_shards" json:"num_shards,omitempty"` | ||||
| 	XXX_unrecognized  []byte              `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *LogReadRequest) Reset()         { *m = LogReadRequest{} } | ||||
| func (m *LogReadRequest) String() string { return proto.CompactTextString(m) } | ||||
| func (*LogReadRequest) ProtoMessage()    {} | ||||
|  | ||||
| func (m *LogReadRequest) GetAppId() string { | ||||
| 	if m != nil && m.AppId != nil { | ||||
| 		return *m.AppId | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *LogReadRequest) GetVersionId() []string { | ||||
| 	if m != nil { | ||||
| 		return m.VersionId | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (m *LogReadRequest) GetModuleVersion() []*LogModuleVersion { | ||||
| 	if m != nil { | ||||
| 		return m.ModuleVersion | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (m *LogReadRequest) GetStartTime() int64 { | ||||
| 	if m != nil && m.StartTime != nil { | ||||
| 		return *m.StartTime | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *LogReadRequest) GetEndTime() int64 { | ||||
| 	if m != nil && m.EndTime != nil { | ||||
| 		return *m.EndTime | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *LogReadRequest) GetOffset() *LogOffset { | ||||
| 	if m != nil { | ||||
| 		return m.Offset | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (m *LogReadRequest) GetRequestId() [][]byte { | ||||
| 	if m != nil { | ||||
| 		return m.RequestId | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (m *LogReadRequest) GetMinimumLogLevel() int32 { | ||||
| 	if m != nil && m.MinimumLogLevel != nil { | ||||
| 		return *m.MinimumLogLevel | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *LogReadRequest) GetIncludeIncomplete() bool { | ||||
| 	if m != nil && m.IncludeIncomplete != nil { | ||||
| 		return *m.IncludeIncomplete | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
|  | ||||
| func (m *LogReadRequest) GetCount() int64 { | ||||
| 	if m != nil && m.Count != nil { | ||||
| 		return *m.Count | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *LogReadRequest) GetCombinedLogRegex() string { | ||||
| 	if m != nil && m.CombinedLogRegex != nil { | ||||
| 		return *m.CombinedLogRegex | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *LogReadRequest) GetHostRegex() string { | ||||
| 	if m != nil && m.HostRegex != nil { | ||||
| 		return *m.HostRegex | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *LogReadRequest) GetReplicaIndex() int32 { | ||||
| 	if m != nil && m.ReplicaIndex != nil { | ||||
| 		return *m.ReplicaIndex | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *LogReadRequest) GetIncludeAppLogs() bool { | ||||
| 	if m != nil && m.IncludeAppLogs != nil { | ||||
| 		return *m.IncludeAppLogs | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
|  | ||||
| func (m *LogReadRequest) GetAppLogsPerRequest() int32 { | ||||
| 	if m != nil && m.AppLogsPerRequest != nil { | ||||
| 		return *m.AppLogsPerRequest | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *LogReadRequest) GetIncludeHost() bool { | ||||
| 	if m != nil && m.IncludeHost != nil { | ||||
| 		return *m.IncludeHost | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
|  | ||||
| func (m *LogReadRequest) GetIncludeAll() bool { | ||||
| 	if m != nil && m.IncludeAll != nil { | ||||
| 		return *m.IncludeAll | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
|  | ||||
| func (m *LogReadRequest) GetCacheIterator() bool { | ||||
| 	if m != nil && m.CacheIterator != nil { | ||||
| 		return *m.CacheIterator | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
|  | ||||
| func (m *LogReadRequest) GetNumShards() int32 { | ||||
| 	if m != nil && m.NumShards != nil { | ||||
| 		return *m.NumShards | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| type LogReadResponse struct { | ||||
| 	Log              []*RequestLog `protobuf:"bytes,1,rep,name=log" json:"log,omitempty"` | ||||
| 	Offset           *LogOffset    `protobuf:"bytes,2,opt,name=offset" json:"offset,omitempty"` | ||||
| 	LastEndTime      *int64        `protobuf:"varint,3,opt,name=last_end_time" json:"last_end_time,omitempty"` | ||||
| 	XXX_unrecognized []byte        `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *LogReadResponse) Reset()         { *m = LogReadResponse{} } | ||||
| func (m *LogReadResponse) String() string { return proto.CompactTextString(m) } | ||||
| func (*LogReadResponse) ProtoMessage()    {} | ||||
|  | ||||
| func (m *LogReadResponse) GetLog() []*RequestLog { | ||||
| 	if m != nil { | ||||
| 		return m.Log | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (m *LogReadResponse) GetOffset() *LogOffset { | ||||
| 	if m != nil { | ||||
| 		return m.Offset | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (m *LogReadResponse) GetLastEndTime() int64 { | ||||
| 	if m != nil && m.LastEndTime != nil { | ||||
| 		return *m.LastEndTime | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| type LogUsageRecord struct { | ||||
| 	VersionId        *string `protobuf:"bytes,1,opt,name=version_id" json:"version_id,omitempty"` | ||||
| 	StartTime        *int32  `protobuf:"varint,2,opt,name=start_time" json:"start_time,omitempty"` | ||||
| 	EndTime          *int32  `protobuf:"varint,3,opt,name=end_time" json:"end_time,omitempty"` | ||||
| 	Count            *int64  `protobuf:"varint,4,opt,name=count" json:"count,omitempty"` | ||||
| 	TotalSize        *int64  `protobuf:"varint,5,opt,name=total_size" json:"total_size,omitempty"` | ||||
| 	Records          *int32  `protobuf:"varint,6,opt,name=records" json:"records,omitempty"` | ||||
| 	XXX_unrecognized []byte  `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *LogUsageRecord) Reset()         { *m = LogUsageRecord{} } | ||||
| func (m *LogUsageRecord) String() string { return proto.CompactTextString(m) } | ||||
| func (*LogUsageRecord) ProtoMessage()    {} | ||||
|  | ||||
| func (m *LogUsageRecord) GetVersionId() string { | ||||
| 	if m != nil && m.VersionId != nil { | ||||
| 		return *m.VersionId | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *LogUsageRecord) GetStartTime() int32 { | ||||
| 	if m != nil && m.StartTime != nil { | ||||
| 		return *m.StartTime | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *LogUsageRecord) GetEndTime() int32 { | ||||
| 	if m != nil && m.EndTime != nil { | ||||
| 		return *m.EndTime | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *LogUsageRecord) GetCount() int64 { | ||||
| 	if m != nil && m.Count != nil { | ||||
| 		return *m.Count | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *LogUsageRecord) GetTotalSize() int64 { | ||||
| 	if m != nil && m.TotalSize != nil { | ||||
| 		return *m.TotalSize | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *LogUsageRecord) GetRecords() int32 { | ||||
| 	if m != nil && m.Records != nil { | ||||
| 		return *m.Records | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| type LogUsageRequest struct { | ||||
| 	AppId            *string  `protobuf:"bytes,1,req,name=app_id" json:"app_id,omitempty"` | ||||
| 	VersionId        []string `protobuf:"bytes,2,rep,name=version_id" json:"version_id,omitempty"` | ||||
| 	StartTime        *int32   `protobuf:"varint,3,opt,name=start_time" json:"start_time,omitempty"` | ||||
| 	EndTime          *int32   `protobuf:"varint,4,opt,name=end_time" json:"end_time,omitempty"` | ||||
| 	ResolutionHours  *uint32  `protobuf:"varint,5,opt,name=resolution_hours,def=1" json:"resolution_hours,omitempty"` | ||||
| 	CombineVersions  *bool    `protobuf:"varint,6,opt,name=combine_versions" json:"combine_versions,omitempty"` | ||||
| 	UsageVersion     *int32   `protobuf:"varint,7,opt,name=usage_version" json:"usage_version,omitempty"` | ||||
| 	VersionsOnly     *bool    `protobuf:"varint,8,opt,name=versions_only" json:"versions_only,omitempty"` | ||||
| 	XXX_unrecognized []byte   `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *LogUsageRequest) Reset()         { *m = LogUsageRequest{} } | ||||
| func (m *LogUsageRequest) String() string { return proto.CompactTextString(m) } | ||||
| func (*LogUsageRequest) ProtoMessage()    {} | ||||
|  | ||||
| const Default_LogUsageRequest_ResolutionHours uint32 = 1 | ||||
|  | ||||
| func (m *LogUsageRequest) GetAppId() string { | ||||
| 	if m != nil && m.AppId != nil { | ||||
| 		return *m.AppId | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *LogUsageRequest) GetVersionId() []string { | ||||
| 	if m != nil { | ||||
| 		return m.VersionId | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (m *LogUsageRequest) GetStartTime() int32 { | ||||
| 	if m != nil && m.StartTime != nil { | ||||
| 		return *m.StartTime | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *LogUsageRequest) GetEndTime() int32 { | ||||
| 	if m != nil && m.EndTime != nil { | ||||
| 		return *m.EndTime | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *LogUsageRequest) GetResolutionHours() uint32 { | ||||
| 	if m != nil && m.ResolutionHours != nil { | ||||
| 		return *m.ResolutionHours | ||||
| 	} | ||||
| 	return Default_LogUsageRequest_ResolutionHours | ||||
| } | ||||
|  | ||||
| func (m *LogUsageRequest) GetCombineVersions() bool { | ||||
| 	if m != nil && m.CombineVersions != nil { | ||||
| 		return *m.CombineVersions | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
|  | ||||
| func (m *LogUsageRequest) GetUsageVersion() int32 { | ||||
| 	if m != nil && m.UsageVersion != nil { | ||||
| 		return *m.UsageVersion | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *LogUsageRequest) GetVersionsOnly() bool { | ||||
| 	if m != nil && m.VersionsOnly != nil { | ||||
| 		return *m.VersionsOnly | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
|  | ||||
| type LogUsageResponse struct { | ||||
| 	Usage            []*LogUsageRecord `protobuf:"bytes,1,rep,name=usage" json:"usage,omitempty"` | ||||
| 	Summary          *LogUsageRecord   `protobuf:"bytes,2,opt,name=summary" json:"summary,omitempty"` | ||||
| 	XXX_unrecognized []byte            `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *LogUsageResponse) Reset()         { *m = LogUsageResponse{} } | ||||
| func (m *LogUsageResponse) String() string { return proto.CompactTextString(m) } | ||||
| func (*LogUsageResponse) ProtoMessage()    {} | ||||
|  | ||||
| func (m *LogUsageResponse) GetUsage() []*LogUsageRecord { | ||||
| 	if m != nil { | ||||
| 		return m.Usage | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (m *LogUsageResponse) GetSummary() *LogUsageRecord { | ||||
| 	if m != nil { | ||||
| 		return m.Summary | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func init() { | ||||
| } | ||||
							
								
								
									
										150
									
								
								vendor/google.golang.org/appengine/internal/log/log_service.proto
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										150
									
								
								vendor/google.golang.org/appengine/internal/log/log_service.proto
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,150 @@ | ||||
| syntax = "proto2"; | ||||
| option go_package = "log"; | ||||
|  | ||||
| package appengine; | ||||
|  | ||||
| message LogServiceError { | ||||
|   enum ErrorCode { | ||||
|     OK  = 0; | ||||
|     INVALID_REQUEST = 1; | ||||
|     STORAGE_ERROR = 2; | ||||
|   } | ||||
| } | ||||
|  | ||||
| message UserAppLogLine { | ||||
|   required int64 timestamp_usec = 1; | ||||
|   required int64 level = 2; | ||||
|   required string message = 3; | ||||
| } | ||||
|  | ||||
| message UserAppLogGroup { | ||||
|   repeated UserAppLogLine log_line = 2; | ||||
| } | ||||
|  | ||||
| message FlushRequest { | ||||
|   optional bytes logs = 1; | ||||
| } | ||||
|  | ||||
| message SetStatusRequest { | ||||
|   required string status = 1; | ||||
| } | ||||
|  | ||||
|  | ||||
| message LogOffset { | ||||
|   optional bytes request_id = 1; | ||||
| } | ||||
|  | ||||
| message LogLine { | ||||
|   required int64 time = 1; | ||||
|   required int32 level = 2; | ||||
|   required string log_message = 3; | ||||
| } | ||||
|  | ||||
| message RequestLog { | ||||
|   required string app_id = 1; | ||||
|   optional string module_id = 37 [default="default"]; | ||||
|   required string version_id = 2; | ||||
|   required bytes request_id = 3; | ||||
|   optional LogOffset offset = 35; | ||||
|   required string ip = 4; | ||||
|   optional string nickname = 5; | ||||
|   required int64 start_time = 6; | ||||
|   required int64 end_time = 7; | ||||
|   required int64 latency = 8; | ||||
|   required int64 mcycles = 9; | ||||
|   required string method = 10; | ||||
|   required string resource = 11; | ||||
|   required string http_version = 12; | ||||
|   required int32 status = 13; | ||||
|   required int64 response_size = 14; | ||||
|   optional string referrer = 15; | ||||
|   optional string user_agent = 16; | ||||
|   required string url_map_entry = 17; | ||||
|   required string combined = 18; | ||||
|   optional int64 api_mcycles = 19; | ||||
|   optional string host = 20; | ||||
|   optional double cost = 21; | ||||
|  | ||||
|   optional string task_queue_name = 22; | ||||
|   optional string task_name = 23; | ||||
|  | ||||
|   optional bool was_loading_request = 24; | ||||
|   optional int64 pending_time = 25; | ||||
|   optional int32 replica_index = 26 [default = -1]; | ||||
|   optional bool finished = 27 [default = true]; | ||||
|   optional bytes clone_key = 28; | ||||
|  | ||||
|   repeated LogLine line = 29; | ||||
|  | ||||
|   optional bool lines_incomplete = 36; | ||||
|   optional bytes app_engine_release = 38; | ||||
|  | ||||
|   optional int32 exit_reason = 30; | ||||
|   optional bool was_throttled_for_time = 31; | ||||
|   optional bool was_throttled_for_requests = 32; | ||||
|   optional int64 throttled_time = 33; | ||||
|  | ||||
|   optional bytes server_name = 34; | ||||
| } | ||||
|  | ||||
| message LogModuleVersion { | ||||
|   optional string module_id = 1 [default="default"]; | ||||
|   optional string version_id = 2; | ||||
| } | ||||
|  | ||||
| message LogReadRequest { | ||||
|   required string app_id = 1; | ||||
|   repeated string version_id = 2; | ||||
|   repeated LogModuleVersion module_version = 19; | ||||
|  | ||||
|   optional int64 start_time = 3; | ||||
|   optional int64 end_time = 4; | ||||
|   optional LogOffset offset = 5; | ||||
|   repeated bytes request_id = 6; | ||||
|  | ||||
|   optional int32 minimum_log_level = 7; | ||||
|   optional bool include_incomplete = 8; | ||||
|   optional int64 count = 9; | ||||
|  | ||||
|   optional string combined_log_regex = 14; | ||||
|   optional string host_regex = 15; | ||||
|   optional int32 replica_index = 16; | ||||
|  | ||||
|   optional bool include_app_logs = 10; | ||||
|   optional int32 app_logs_per_request = 17; | ||||
|   optional bool include_host = 11; | ||||
|   optional bool include_all = 12; | ||||
|   optional bool cache_iterator = 13; | ||||
|   optional int32 num_shards = 18; | ||||
| } | ||||
|  | ||||
| message LogReadResponse { | ||||
|   repeated RequestLog log = 1; | ||||
|   optional LogOffset offset = 2; | ||||
|   optional int64 last_end_time = 3; | ||||
| } | ||||
|  | ||||
| message LogUsageRecord { | ||||
|   optional string version_id = 1; | ||||
|   optional int32 start_time = 2; | ||||
|   optional int32 end_time = 3; | ||||
|   optional int64 count = 4; | ||||
|   optional int64 total_size = 5; | ||||
|   optional int32 records = 6; | ||||
| } | ||||
|  | ||||
| message LogUsageRequest { | ||||
|   required string app_id = 1; | ||||
|   repeated string version_id = 2; | ||||
|   optional int32 start_time = 3; | ||||
|   optional int32 end_time = 4; | ||||
|   optional uint32 resolution_hours = 5 [default = 1]; | ||||
|   optional bool combine_versions = 6; | ||||
|   optional int32 usage_version = 7; | ||||
|   optional bool versions_only = 8; | ||||
| } | ||||
|  | ||||
| message LogUsageResponse { | ||||
|   repeated LogUsageRecord usage = 1; | ||||
|   optional LogUsageRecord summary = 2; | ||||
| } | ||||
							
								
								
									
										15
									
								
								vendor/google.golang.org/appengine/internal/main.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								vendor/google.golang.org/appengine/internal/main.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| // Copyright 2011 Google Inc. All rights reserved. | ||||
| // Use of this source code is governed by the Apache 2.0 | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| // +build appengine | ||||
|  | ||||
| package internal | ||||
|  | ||||
| import ( | ||||
| 	"appengine_internal" | ||||
| ) | ||||
|  | ||||
| func Main() { | ||||
| 	appengine_internal.Main() | ||||
| } | ||||
							
								
								
									
										44
									
								
								vendor/google.golang.org/appengine/internal/main_vm.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								vendor/google.golang.org/appengine/internal/main_vm.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | ||||
| // Copyright 2011 Google Inc. All rights reserved. | ||||
| // Use of this source code is governed by the Apache 2.0 | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| // +build !appengine | ||||
|  | ||||
| package internal | ||||
|  | ||||
| import ( | ||||
| 	"io" | ||||
| 	"log" | ||||
| 	"net/http" | ||||
| 	"net/url" | ||||
| 	"os" | ||||
| ) | ||||
|  | ||||
| func Main() { | ||||
| 	installHealthChecker(http.DefaultServeMux) | ||||
|  | ||||
| 	port := "8080" | ||||
| 	if s := os.Getenv("PORT"); s != "" { | ||||
| 		port = s | ||||
| 	} | ||||
|  | ||||
| 	if err := http.ListenAndServe(":"+port, http.HandlerFunc(handleHTTP)); err != nil { | ||||
| 		log.Fatalf("http.ListenAndServe: %v", err) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func installHealthChecker(mux *http.ServeMux) { | ||||
| 	// If no health check handler has been installed by this point, add a trivial one. | ||||
| 	const healthPath = "/_ah/health" | ||||
| 	hreq := &http.Request{ | ||||
| 		Method: "GET", | ||||
| 		URL: &url.URL{ | ||||
| 			Path: healthPath, | ||||
| 		}, | ||||
| 	} | ||||
| 	if _, pat := mux.Handler(hreq); pat != healthPath { | ||||
| 		mux.HandleFunc(healthPath, func(w http.ResponseWriter, r *http.Request) { | ||||
| 			io.WriteString(w, "ok") | ||||
| 		}) | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										61
									
								
								vendor/google.golang.org/appengine/internal/metadata.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								vendor/google.golang.org/appengine/internal/metadata.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,61 @@ | ||||
| // Copyright 2014 Google Inc. All rights reserved. | ||||
| // Use of this source code is governed by the Apache 2.0 | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package internal | ||||
|  | ||||
| // This file has code for accessing metadata. | ||||
| // | ||||
| // References: | ||||
| //	https://cloud.google.com/compute/docs/metadata | ||||
|  | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"io/ioutil" | ||||
| 	"log" | ||||
| 	"net/http" | ||||
| 	"net/url" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| 	metadataHost = "metadata" | ||||
| 	metadataPath = "/computeMetadata/v1/" | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	metadataRequestHeaders = http.Header{ | ||||
| 		"Metadata-Flavor": []string{"Google"}, | ||||
| 	} | ||||
| ) | ||||
|  | ||||
| // TODO(dsymonds): Do we need to support default values, like Python? | ||||
| func mustGetMetadata(key string) []byte { | ||||
| 	b, err := getMetadata(key) | ||||
| 	if err != nil { | ||||
| 		log.Fatalf("Metadata fetch failed: %v", err) | ||||
| 	} | ||||
| 	return b | ||||
| } | ||||
|  | ||||
| func getMetadata(key string) ([]byte, error) { | ||||
| 	// TODO(dsymonds): May need to use url.Parse to support keys with query args. | ||||
| 	req := &http.Request{ | ||||
| 		Method: "GET", | ||||
| 		URL: &url.URL{ | ||||
| 			Scheme: "http", | ||||
| 			Host:   metadataHost, | ||||
| 			Path:   metadataPath + key, | ||||
| 		}, | ||||
| 		Header: metadataRequestHeaders, | ||||
| 		Host:   metadataHost, | ||||
| 	} | ||||
| 	resp, err := http.DefaultClient.Do(req) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	defer resp.Body.Close() | ||||
| 	if resp.StatusCode != 200 { | ||||
| 		return nil, fmt.Errorf("metadata server returned HTTP %d", resp.StatusCode) | ||||
| 	} | ||||
| 	return ioutil.ReadAll(resp.Body) | ||||
| } | ||||
							
								
								
									
										375
									
								
								vendor/google.golang.org/appengine/internal/modules/modules_service.pb.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										375
									
								
								vendor/google.golang.org/appengine/internal/modules/modules_service.pb.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,375 @@ | ||||
| // Code generated by protoc-gen-go. | ||||
| // source: google.golang.org/appengine/internal/modules/modules_service.proto | ||||
| // DO NOT EDIT! | ||||
|  | ||||
| /* | ||||
| Package modules is a generated protocol buffer package. | ||||
|  | ||||
| It is generated from these files: | ||||
| 	google.golang.org/appengine/internal/modules/modules_service.proto | ||||
|  | ||||
| It has these top-level messages: | ||||
| 	ModulesServiceError | ||||
| 	GetModulesRequest | ||||
| 	GetModulesResponse | ||||
| 	GetVersionsRequest | ||||
| 	GetVersionsResponse | ||||
| 	GetDefaultVersionRequest | ||||
| 	GetDefaultVersionResponse | ||||
| 	GetNumInstancesRequest | ||||
| 	GetNumInstancesResponse | ||||
| 	SetNumInstancesRequest | ||||
| 	SetNumInstancesResponse | ||||
| 	StartModuleRequest | ||||
| 	StartModuleResponse | ||||
| 	StopModuleRequest | ||||
| 	StopModuleResponse | ||||
| 	GetHostnameRequest | ||||
| 	GetHostnameResponse | ||||
| */ | ||||
| package modules | ||||
|  | ||||
| import proto "github.com/golang/protobuf/proto" | ||||
| import fmt "fmt" | ||||
| import math "math" | ||||
|  | ||||
| // Reference imports to suppress errors if they are not otherwise used. | ||||
| var _ = proto.Marshal | ||||
| var _ = fmt.Errorf | ||||
| var _ = math.Inf | ||||
|  | ||||
| type ModulesServiceError_ErrorCode int32 | ||||
|  | ||||
| const ( | ||||
| 	ModulesServiceError_OK                ModulesServiceError_ErrorCode = 0 | ||||
| 	ModulesServiceError_INVALID_MODULE    ModulesServiceError_ErrorCode = 1 | ||||
| 	ModulesServiceError_INVALID_VERSION   ModulesServiceError_ErrorCode = 2 | ||||
| 	ModulesServiceError_INVALID_INSTANCES ModulesServiceError_ErrorCode = 3 | ||||
| 	ModulesServiceError_TRANSIENT_ERROR   ModulesServiceError_ErrorCode = 4 | ||||
| 	ModulesServiceError_UNEXPECTED_STATE  ModulesServiceError_ErrorCode = 5 | ||||
| ) | ||||
|  | ||||
| var ModulesServiceError_ErrorCode_name = map[int32]string{ | ||||
| 	0: "OK", | ||||
| 	1: "INVALID_MODULE", | ||||
| 	2: "INVALID_VERSION", | ||||
| 	3: "INVALID_INSTANCES", | ||||
| 	4: "TRANSIENT_ERROR", | ||||
| 	5: "UNEXPECTED_STATE", | ||||
| } | ||||
| var ModulesServiceError_ErrorCode_value = map[string]int32{ | ||||
| 	"OK":                0, | ||||
| 	"INVALID_MODULE":    1, | ||||
| 	"INVALID_VERSION":   2, | ||||
| 	"INVALID_INSTANCES": 3, | ||||
| 	"TRANSIENT_ERROR":   4, | ||||
| 	"UNEXPECTED_STATE":  5, | ||||
| } | ||||
|  | ||||
| func (x ModulesServiceError_ErrorCode) Enum() *ModulesServiceError_ErrorCode { | ||||
| 	p := new(ModulesServiceError_ErrorCode) | ||||
| 	*p = x | ||||
| 	return p | ||||
| } | ||||
| func (x ModulesServiceError_ErrorCode) String() string { | ||||
| 	return proto.EnumName(ModulesServiceError_ErrorCode_name, int32(x)) | ||||
| } | ||||
| func (x *ModulesServiceError_ErrorCode) UnmarshalJSON(data []byte) error { | ||||
| 	value, err := proto.UnmarshalJSONEnum(ModulesServiceError_ErrorCode_value, data, "ModulesServiceError_ErrorCode") | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	*x = ModulesServiceError_ErrorCode(value) | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| type ModulesServiceError struct { | ||||
| 	XXX_unrecognized []byte `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *ModulesServiceError) Reset()         { *m = ModulesServiceError{} } | ||||
| func (m *ModulesServiceError) String() string { return proto.CompactTextString(m) } | ||||
| func (*ModulesServiceError) ProtoMessage()    {} | ||||
|  | ||||
| type GetModulesRequest struct { | ||||
| 	XXX_unrecognized []byte `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *GetModulesRequest) Reset()         { *m = GetModulesRequest{} } | ||||
| func (m *GetModulesRequest) String() string { return proto.CompactTextString(m) } | ||||
| func (*GetModulesRequest) ProtoMessage()    {} | ||||
|  | ||||
| type GetModulesResponse struct { | ||||
| 	Module           []string `protobuf:"bytes,1,rep,name=module" json:"module,omitempty"` | ||||
| 	XXX_unrecognized []byte   `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *GetModulesResponse) Reset()         { *m = GetModulesResponse{} } | ||||
| func (m *GetModulesResponse) String() string { return proto.CompactTextString(m) } | ||||
| func (*GetModulesResponse) ProtoMessage()    {} | ||||
|  | ||||
| func (m *GetModulesResponse) GetModule() []string { | ||||
| 	if m != nil { | ||||
| 		return m.Module | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| type GetVersionsRequest struct { | ||||
| 	Module           *string `protobuf:"bytes,1,opt,name=module" json:"module,omitempty"` | ||||
| 	XXX_unrecognized []byte  `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *GetVersionsRequest) Reset()         { *m = GetVersionsRequest{} } | ||||
| func (m *GetVersionsRequest) String() string { return proto.CompactTextString(m) } | ||||
| func (*GetVersionsRequest) ProtoMessage()    {} | ||||
|  | ||||
| func (m *GetVersionsRequest) GetModule() string { | ||||
| 	if m != nil && m.Module != nil { | ||||
| 		return *m.Module | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| type GetVersionsResponse struct { | ||||
| 	Version          []string `protobuf:"bytes,1,rep,name=version" json:"version,omitempty"` | ||||
| 	XXX_unrecognized []byte   `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *GetVersionsResponse) Reset()         { *m = GetVersionsResponse{} } | ||||
| func (m *GetVersionsResponse) String() string { return proto.CompactTextString(m) } | ||||
| func (*GetVersionsResponse) ProtoMessage()    {} | ||||
|  | ||||
| func (m *GetVersionsResponse) GetVersion() []string { | ||||
| 	if m != nil { | ||||
| 		return m.Version | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| type GetDefaultVersionRequest struct { | ||||
| 	Module           *string `protobuf:"bytes,1,opt,name=module" json:"module,omitempty"` | ||||
| 	XXX_unrecognized []byte  `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *GetDefaultVersionRequest) Reset()         { *m = GetDefaultVersionRequest{} } | ||||
| func (m *GetDefaultVersionRequest) String() string { return proto.CompactTextString(m) } | ||||
| func (*GetDefaultVersionRequest) ProtoMessage()    {} | ||||
|  | ||||
| func (m *GetDefaultVersionRequest) GetModule() string { | ||||
| 	if m != nil && m.Module != nil { | ||||
| 		return *m.Module | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| type GetDefaultVersionResponse struct { | ||||
| 	Version          *string `protobuf:"bytes,1,req,name=version" json:"version,omitempty"` | ||||
| 	XXX_unrecognized []byte  `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *GetDefaultVersionResponse) Reset()         { *m = GetDefaultVersionResponse{} } | ||||
| func (m *GetDefaultVersionResponse) String() string { return proto.CompactTextString(m) } | ||||
| func (*GetDefaultVersionResponse) ProtoMessage()    {} | ||||
|  | ||||
| func (m *GetDefaultVersionResponse) GetVersion() string { | ||||
| 	if m != nil && m.Version != nil { | ||||
| 		return *m.Version | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| type GetNumInstancesRequest struct { | ||||
| 	Module           *string `protobuf:"bytes,1,opt,name=module" json:"module,omitempty"` | ||||
| 	Version          *string `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"` | ||||
| 	XXX_unrecognized []byte  `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *GetNumInstancesRequest) Reset()         { *m = GetNumInstancesRequest{} } | ||||
| func (m *GetNumInstancesRequest) String() string { return proto.CompactTextString(m) } | ||||
| func (*GetNumInstancesRequest) ProtoMessage()    {} | ||||
|  | ||||
| func (m *GetNumInstancesRequest) GetModule() string { | ||||
| 	if m != nil && m.Module != nil { | ||||
| 		return *m.Module | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *GetNumInstancesRequest) GetVersion() string { | ||||
| 	if m != nil && m.Version != nil { | ||||
| 		return *m.Version | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| type GetNumInstancesResponse struct { | ||||
| 	Instances        *int64 `protobuf:"varint,1,req,name=instances" json:"instances,omitempty"` | ||||
| 	XXX_unrecognized []byte `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *GetNumInstancesResponse) Reset()         { *m = GetNumInstancesResponse{} } | ||||
| func (m *GetNumInstancesResponse) String() string { return proto.CompactTextString(m) } | ||||
| func (*GetNumInstancesResponse) ProtoMessage()    {} | ||||
|  | ||||
| func (m *GetNumInstancesResponse) GetInstances() int64 { | ||||
| 	if m != nil && m.Instances != nil { | ||||
| 		return *m.Instances | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| type SetNumInstancesRequest struct { | ||||
| 	Module           *string `protobuf:"bytes,1,opt,name=module" json:"module,omitempty"` | ||||
| 	Version          *string `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"` | ||||
| 	Instances        *int64  `protobuf:"varint,3,req,name=instances" json:"instances,omitempty"` | ||||
| 	XXX_unrecognized []byte  `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *SetNumInstancesRequest) Reset()         { *m = SetNumInstancesRequest{} } | ||||
| func (m *SetNumInstancesRequest) String() string { return proto.CompactTextString(m) } | ||||
| func (*SetNumInstancesRequest) ProtoMessage()    {} | ||||
|  | ||||
| func (m *SetNumInstancesRequest) GetModule() string { | ||||
| 	if m != nil && m.Module != nil { | ||||
| 		return *m.Module | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *SetNumInstancesRequest) GetVersion() string { | ||||
| 	if m != nil && m.Version != nil { | ||||
| 		return *m.Version | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *SetNumInstancesRequest) GetInstances() int64 { | ||||
| 	if m != nil && m.Instances != nil { | ||||
| 		return *m.Instances | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| type SetNumInstancesResponse struct { | ||||
| 	XXX_unrecognized []byte `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *SetNumInstancesResponse) Reset()         { *m = SetNumInstancesResponse{} } | ||||
| func (m *SetNumInstancesResponse) String() string { return proto.CompactTextString(m) } | ||||
| func (*SetNumInstancesResponse) ProtoMessage()    {} | ||||
|  | ||||
| type StartModuleRequest struct { | ||||
| 	Module           *string `protobuf:"bytes,1,req,name=module" json:"module,omitempty"` | ||||
| 	Version          *string `protobuf:"bytes,2,req,name=version" json:"version,omitempty"` | ||||
| 	XXX_unrecognized []byte  `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *StartModuleRequest) Reset()         { *m = StartModuleRequest{} } | ||||
| func (m *StartModuleRequest) String() string { return proto.CompactTextString(m) } | ||||
| func (*StartModuleRequest) ProtoMessage()    {} | ||||
|  | ||||
| func (m *StartModuleRequest) GetModule() string { | ||||
| 	if m != nil && m.Module != nil { | ||||
| 		return *m.Module | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *StartModuleRequest) GetVersion() string { | ||||
| 	if m != nil && m.Version != nil { | ||||
| 		return *m.Version | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| type StartModuleResponse struct { | ||||
| 	XXX_unrecognized []byte `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *StartModuleResponse) Reset()         { *m = StartModuleResponse{} } | ||||
| func (m *StartModuleResponse) String() string { return proto.CompactTextString(m) } | ||||
| func (*StartModuleResponse) ProtoMessage()    {} | ||||
|  | ||||
| type StopModuleRequest struct { | ||||
| 	Module           *string `protobuf:"bytes,1,opt,name=module" json:"module,omitempty"` | ||||
| 	Version          *string `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"` | ||||
| 	XXX_unrecognized []byte  `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *StopModuleRequest) Reset()         { *m = StopModuleRequest{} } | ||||
| func (m *StopModuleRequest) String() string { return proto.CompactTextString(m) } | ||||
| func (*StopModuleRequest) ProtoMessage()    {} | ||||
|  | ||||
| func (m *StopModuleRequest) GetModule() string { | ||||
| 	if m != nil && m.Module != nil { | ||||
| 		return *m.Module | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *StopModuleRequest) GetVersion() string { | ||||
| 	if m != nil && m.Version != nil { | ||||
| 		return *m.Version | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| type StopModuleResponse struct { | ||||
| 	XXX_unrecognized []byte `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *StopModuleResponse) Reset()         { *m = StopModuleResponse{} } | ||||
| func (m *StopModuleResponse) String() string { return proto.CompactTextString(m) } | ||||
| func (*StopModuleResponse) ProtoMessage()    {} | ||||
|  | ||||
| type GetHostnameRequest struct { | ||||
| 	Module           *string `protobuf:"bytes,1,opt,name=module" json:"module,omitempty"` | ||||
| 	Version          *string `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"` | ||||
| 	Instance         *string `protobuf:"bytes,3,opt,name=instance" json:"instance,omitempty"` | ||||
| 	XXX_unrecognized []byte  `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *GetHostnameRequest) Reset()         { *m = GetHostnameRequest{} } | ||||
| func (m *GetHostnameRequest) String() string { return proto.CompactTextString(m) } | ||||
| func (*GetHostnameRequest) ProtoMessage()    {} | ||||
|  | ||||
| func (m *GetHostnameRequest) GetModule() string { | ||||
| 	if m != nil && m.Module != nil { | ||||
| 		return *m.Module | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *GetHostnameRequest) GetVersion() string { | ||||
| 	if m != nil && m.Version != nil { | ||||
| 		return *m.Version | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *GetHostnameRequest) GetInstance() string { | ||||
| 	if m != nil && m.Instance != nil { | ||||
| 		return *m.Instance | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| type GetHostnameResponse struct { | ||||
| 	Hostname         *string `protobuf:"bytes,1,req,name=hostname" json:"hostname,omitempty"` | ||||
| 	XXX_unrecognized []byte  `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *GetHostnameResponse) Reset()         { *m = GetHostnameResponse{} } | ||||
| func (m *GetHostnameResponse) String() string { return proto.CompactTextString(m) } | ||||
| func (*GetHostnameResponse) ProtoMessage()    {} | ||||
|  | ||||
| func (m *GetHostnameResponse) GetHostname() string { | ||||
| 	if m != nil && m.Hostname != nil { | ||||
| 		return *m.Hostname | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func init() { | ||||
| } | ||||
							
								
								
									
										80
									
								
								vendor/google.golang.org/appengine/internal/modules/modules_service.proto
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								vendor/google.golang.org/appengine/internal/modules/modules_service.proto
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,80 @@ | ||||
| syntax = "proto2"; | ||||
| option go_package = "modules"; | ||||
|  | ||||
| package appengine; | ||||
|  | ||||
| message ModulesServiceError { | ||||
|   enum ErrorCode { | ||||
|     OK  = 0; | ||||
|     INVALID_MODULE = 1; | ||||
|     INVALID_VERSION = 2; | ||||
|     INVALID_INSTANCES = 3; | ||||
|     TRANSIENT_ERROR = 4; | ||||
|     UNEXPECTED_STATE = 5; | ||||
|   } | ||||
| } | ||||
|  | ||||
| message GetModulesRequest { | ||||
| } | ||||
|  | ||||
| message GetModulesResponse { | ||||
|   repeated string module = 1; | ||||
| } | ||||
|  | ||||
| message GetVersionsRequest { | ||||
|   optional string module = 1; | ||||
| } | ||||
|  | ||||
| message GetVersionsResponse { | ||||
|   repeated string version = 1; | ||||
| } | ||||
|  | ||||
| message GetDefaultVersionRequest { | ||||
|   optional string module = 1; | ||||
| } | ||||
|  | ||||
| message GetDefaultVersionResponse { | ||||
|   required string version = 1; | ||||
| } | ||||
|  | ||||
| message GetNumInstancesRequest { | ||||
|   optional string module = 1; | ||||
|   optional string version = 2; | ||||
| } | ||||
|  | ||||
| message GetNumInstancesResponse { | ||||
|   required int64 instances = 1; | ||||
| } | ||||
|  | ||||
| message SetNumInstancesRequest { | ||||
|   optional string module = 1; | ||||
|   optional string version = 2; | ||||
|   required int64 instances = 3; | ||||
| } | ||||
|  | ||||
| message SetNumInstancesResponse {} | ||||
|  | ||||
| message StartModuleRequest { | ||||
|   required string module = 1; | ||||
|   required string version = 2; | ||||
| } | ||||
|  | ||||
| message StartModuleResponse {} | ||||
|  | ||||
| message StopModuleRequest { | ||||
|   optional string module = 1; | ||||
|   optional string version = 2; | ||||
| } | ||||
|  | ||||
| message StopModuleResponse {} | ||||
|  | ||||
| message GetHostnameRequest { | ||||
|   optional string module = 1; | ||||
|   optional string version = 2; | ||||
|   optional string instance = 3; | ||||
| } | ||||
|  | ||||
| message GetHostnameResponse { | ||||
|   required string hostname = 1; | ||||
| } | ||||
|  | ||||
							
								
								
									
										56
									
								
								vendor/google.golang.org/appengine/internal/net.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								vendor/google.golang.org/appengine/internal/net.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,56 @@ | ||||
| // Copyright 2014 Google Inc. All rights reserved. | ||||
| // Use of this source code is governed by the Apache 2.0 | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package internal | ||||
|  | ||||
| // This file implements a network dialer that limits the number of concurrent connections. | ||||
| // It is only used for API calls. | ||||
|  | ||||
| import ( | ||||
| 	"log" | ||||
| 	"net" | ||||
| 	"runtime" | ||||
| 	"sync" | ||||
| 	"time" | ||||
| ) | ||||
|  | ||||
| var limitSem = make(chan int, 100) // TODO(dsymonds): Use environment variable. | ||||
|  | ||||
| func limitRelease() { | ||||
| 	// non-blocking | ||||
| 	select { | ||||
| 	case <-limitSem: | ||||
| 	default: | ||||
| 		// This should not normally happen. | ||||
| 		log.Print("appengine: unbalanced limitSem release!") | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func limitDial(network, addr string) (net.Conn, error) { | ||||
| 	limitSem <- 1 | ||||
|  | ||||
| 	// Dial with a timeout in case the API host is MIA. | ||||
| 	// The connection should normally be very fast. | ||||
| 	conn, err := net.DialTimeout(network, addr, 500*time.Millisecond) | ||||
| 	if err != nil { | ||||
| 		limitRelease() | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	lc := &limitConn{Conn: conn} | ||||
| 	runtime.SetFinalizer(lc, (*limitConn).Close) // shouldn't usually be required | ||||
| 	return lc, nil | ||||
| } | ||||
|  | ||||
| type limitConn struct { | ||||
| 	close sync.Once | ||||
| 	net.Conn | ||||
| } | ||||
|  | ||||
| func (lc *limitConn) Close() error { | ||||
| 	defer lc.close.Do(func() { | ||||
| 		limitRelease() | ||||
| 		runtime.SetFinalizer(lc, nil) | ||||
| 	}) | ||||
| 	return lc.Conn.Close() | ||||
| } | ||||
							
								
								
									
										40
									
								
								vendor/google.golang.org/appengine/internal/regen.sh
									
									
									
										generated
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										40
									
								
								vendor/google.golang.org/appengine/internal/regen.sh
									
									
									
										generated
									
									
										vendored
									
									
										Executable file
									
								
							| @@ -0,0 +1,40 @@ | ||||
| #!/bin/bash -e | ||||
| # | ||||
| # This script rebuilds the generated code for the protocol buffers. | ||||
| # To run this you will need protoc and goprotobuf installed; | ||||
| # see https://github.com/golang/protobuf for instructions. | ||||
|  | ||||
| PKG=google.golang.org/appengine | ||||
|  | ||||
| function die() { | ||||
| 	echo 1>&2 $* | ||||
| 	exit 1 | ||||
| } | ||||
|  | ||||
| # Sanity check that the right tools are accessible. | ||||
| for tool in go protoc protoc-gen-go; do | ||||
| 	q=$(which $tool) || die "didn't find $tool" | ||||
| 	echo 1>&2 "$tool: $q" | ||||
| done | ||||
|  | ||||
| echo -n 1>&2 "finding package dir... " | ||||
| pkgdir=$(go list -f '{{.Dir}}' $PKG) | ||||
| echo 1>&2 $pkgdir | ||||
| base=$(echo $pkgdir | sed "s,/$PKG\$,,") | ||||
| echo 1>&2 "base: $base" | ||||
| cd $base | ||||
|  | ||||
| # Run protoc once per package. | ||||
| for dir in $(find $PKG/internal -name '*.proto' | xargs dirname | sort | uniq); do | ||||
| 	echo 1>&2 "* $dir" | ||||
| 	protoc --go_out=. $dir/*.proto | ||||
| done | ||||
|  | ||||
| for f in $(find $PKG/internal -name '*.pb.go'); do | ||||
|   # Remove proto.RegisterEnum calls. | ||||
|   # These cause duplicate registration panics when these packages | ||||
|   # are used on classic App Engine. proto.RegisterEnum only affects | ||||
|   # parsing the text format; we don't care about that. | ||||
|   # https://code.google.com/p/googleappengine/issues/detail?id=11670#c17 | ||||
|   sed -i '/proto.RegisterEnum/d' $f | ||||
| done | ||||
							
								
								
									
										231
									
								
								vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										231
									
								
								vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,231 @@ | ||||
| // Code generated by protoc-gen-go. | ||||
| // source: google.golang.org/appengine/internal/remote_api/remote_api.proto | ||||
| // DO NOT EDIT! | ||||
|  | ||||
| /* | ||||
| Package remote_api is a generated protocol buffer package. | ||||
|  | ||||
| It is generated from these files: | ||||
| 	google.golang.org/appengine/internal/remote_api/remote_api.proto | ||||
|  | ||||
| It has these top-level messages: | ||||
| 	Request | ||||
| 	ApplicationError | ||||
| 	RpcError | ||||
| 	Response | ||||
| */ | ||||
| package remote_api | ||||
|  | ||||
| import proto "github.com/golang/protobuf/proto" | ||||
| import fmt "fmt" | ||||
| import math "math" | ||||
|  | ||||
| // Reference imports to suppress errors if they are not otherwise used. | ||||
| var _ = proto.Marshal | ||||
| var _ = fmt.Errorf | ||||
| var _ = math.Inf | ||||
|  | ||||
| type RpcError_ErrorCode int32 | ||||
|  | ||||
| const ( | ||||
| 	RpcError_UNKNOWN             RpcError_ErrorCode = 0 | ||||
| 	RpcError_CALL_NOT_FOUND      RpcError_ErrorCode = 1 | ||||
| 	RpcError_PARSE_ERROR         RpcError_ErrorCode = 2 | ||||
| 	RpcError_SECURITY_VIOLATION  RpcError_ErrorCode = 3 | ||||
| 	RpcError_OVER_QUOTA          RpcError_ErrorCode = 4 | ||||
| 	RpcError_REQUEST_TOO_LARGE   RpcError_ErrorCode = 5 | ||||
| 	RpcError_CAPABILITY_DISABLED RpcError_ErrorCode = 6 | ||||
| 	RpcError_FEATURE_DISABLED    RpcError_ErrorCode = 7 | ||||
| 	RpcError_BAD_REQUEST         RpcError_ErrorCode = 8 | ||||
| 	RpcError_RESPONSE_TOO_LARGE  RpcError_ErrorCode = 9 | ||||
| 	RpcError_CANCELLED           RpcError_ErrorCode = 10 | ||||
| 	RpcError_REPLAY_ERROR        RpcError_ErrorCode = 11 | ||||
| 	RpcError_DEADLINE_EXCEEDED   RpcError_ErrorCode = 12 | ||||
| ) | ||||
|  | ||||
| var RpcError_ErrorCode_name = map[int32]string{ | ||||
| 	0:  "UNKNOWN", | ||||
| 	1:  "CALL_NOT_FOUND", | ||||
| 	2:  "PARSE_ERROR", | ||||
| 	3:  "SECURITY_VIOLATION", | ||||
| 	4:  "OVER_QUOTA", | ||||
| 	5:  "REQUEST_TOO_LARGE", | ||||
| 	6:  "CAPABILITY_DISABLED", | ||||
| 	7:  "FEATURE_DISABLED", | ||||
| 	8:  "BAD_REQUEST", | ||||
| 	9:  "RESPONSE_TOO_LARGE", | ||||
| 	10: "CANCELLED", | ||||
| 	11: "REPLAY_ERROR", | ||||
| 	12: "DEADLINE_EXCEEDED", | ||||
| } | ||||
| var RpcError_ErrorCode_value = map[string]int32{ | ||||
| 	"UNKNOWN":             0, | ||||
| 	"CALL_NOT_FOUND":      1, | ||||
| 	"PARSE_ERROR":         2, | ||||
| 	"SECURITY_VIOLATION":  3, | ||||
| 	"OVER_QUOTA":          4, | ||||
| 	"REQUEST_TOO_LARGE":   5, | ||||
| 	"CAPABILITY_DISABLED": 6, | ||||
| 	"FEATURE_DISABLED":    7, | ||||
| 	"BAD_REQUEST":         8, | ||||
| 	"RESPONSE_TOO_LARGE":  9, | ||||
| 	"CANCELLED":           10, | ||||
| 	"REPLAY_ERROR":        11, | ||||
| 	"DEADLINE_EXCEEDED":   12, | ||||
| } | ||||
|  | ||||
| func (x RpcError_ErrorCode) Enum() *RpcError_ErrorCode { | ||||
| 	p := new(RpcError_ErrorCode) | ||||
| 	*p = x | ||||
| 	return p | ||||
| } | ||||
| func (x RpcError_ErrorCode) String() string { | ||||
| 	return proto.EnumName(RpcError_ErrorCode_name, int32(x)) | ||||
| } | ||||
| func (x *RpcError_ErrorCode) UnmarshalJSON(data []byte) error { | ||||
| 	value, err := proto.UnmarshalJSONEnum(RpcError_ErrorCode_value, data, "RpcError_ErrorCode") | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	*x = RpcError_ErrorCode(value) | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| type Request struct { | ||||
| 	ServiceName      *string `protobuf:"bytes,2,req,name=service_name" json:"service_name,omitempty"` | ||||
| 	Method           *string `protobuf:"bytes,3,req,name=method" json:"method,omitempty"` | ||||
| 	Request          []byte  `protobuf:"bytes,4,req,name=request" json:"request,omitempty"` | ||||
| 	RequestId        *string `protobuf:"bytes,5,opt,name=request_id" json:"request_id,omitempty"` | ||||
| 	XXX_unrecognized []byte  `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *Request) Reset()         { *m = Request{} } | ||||
| func (m *Request) String() string { return proto.CompactTextString(m) } | ||||
| func (*Request) ProtoMessage()    {} | ||||
|  | ||||
| func (m *Request) GetServiceName() string { | ||||
| 	if m != nil && m.ServiceName != nil { | ||||
| 		return *m.ServiceName | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *Request) GetMethod() string { | ||||
| 	if m != nil && m.Method != nil { | ||||
| 		return *m.Method | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| func (m *Request) GetRequest() []byte { | ||||
| 	if m != nil { | ||||
| 		return m.Request | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (m *Request) GetRequestId() string { | ||||
| 	if m != nil && m.RequestId != nil { | ||||
| 		return *m.RequestId | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| type ApplicationError struct { | ||||
| 	Code             *int32  `protobuf:"varint,1,req,name=code" json:"code,omitempty"` | ||||
| 	Detail           *string `protobuf:"bytes,2,req,name=detail" json:"detail,omitempty"` | ||||
| 	XXX_unrecognized []byte  `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *ApplicationError) Reset()         { *m = ApplicationError{} } | ||||
| func (m *ApplicationError) String() string { return proto.CompactTextString(m) } | ||||
| func (*ApplicationError) ProtoMessage()    {} | ||||
|  | ||||
| func (m *ApplicationError) GetCode() int32 { | ||||
| 	if m != nil && m.Code != nil { | ||||
| 		return *m.Code | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *ApplicationError) GetDetail() string { | ||||
| 	if m != nil && m.Detail != nil { | ||||
| 		return *m.Detail | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| type RpcError struct { | ||||
| 	Code             *int32  `protobuf:"varint,1,req,name=code" json:"code,omitempty"` | ||||
| 	Detail           *string `protobuf:"bytes,2,opt,name=detail" json:"detail,omitempty"` | ||||
| 	XXX_unrecognized []byte  `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *RpcError) Reset()         { *m = RpcError{} } | ||||
| func (m *RpcError) String() string { return proto.CompactTextString(m) } | ||||
| func (*RpcError) ProtoMessage()    {} | ||||
|  | ||||
| func (m *RpcError) GetCode() int32 { | ||||
| 	if m != nil && m.Code != nil { | ||||
| 		return *m.Code | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func (m *RpcError) GetDetail() string { | ||||
| 	if m != nil && m.Detail != nil { | ||||
| 		return *m.Detail | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| type Response struct { | ||||
| 	Response         []byte            `protobuf:"bytes,1,opt,name=response" json:"response,omitempty"` | ||||
| 	Exception        []byte            `protobuf:"bytes,2,opt,name=exception" json:"exception,omitempty"` | ||||
| 	ApplicationError *ApplicationError `protobuf:"bytes,3,opt,name=application_error" json:"application_error,omitempty"` | ||||
| 	JavaException    []byte            `protobuf:"bytes,4,opt,name=java_exception" json:"java_exception,omitempty"` | ||||
| 	RpcError         *RpcError         `protobuf:"bytes,5,opt,name=rpc_error" json:"rpc_error,omitempty"` | ||||
| 	XXX_unrecognized []byte            `json:"-"` | ||||
| } | ||||
|  | ||||
| func (m *Response) Reset()         { *m = Response{} } | ||||
| func (m *Response) String() string { return proto.CompactTextString(m) } | ||||
| func (*Response) ProtoMessage()    {} | ||||
|  | ||||
| func (m *Response) GetResponse() []byte { | ||||
| 	if m != nil { | ||||
| 		return m.Response | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (m *Response) GetException() []byte { | ||||
| 	if m != nil { | ||||
| 		return m.Exception | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (m *Response) GetApplicationError() *ApplicationError { | ||||
| 	if m != nil { | ||||
| 		return m.ApplicationError | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (m *Response) GetJavaException() []byte { | ||||
| 	if m != nil { | ||||
| 		return m.JavaException | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (m *Response) GetRpcError() *RpcError { | ||||
| 	if m != nil { | ||||
| 		return m.RpcError | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func init() { | ||||
| } | ||||
							
								
								
									
										44
									
								
								vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | ||||
| syntax = "proto2"; | ||||
| option go_package = "remote_api"; | ||||
|  | ||||
| package remote_api; | ||||
|  | ||||
| message Request { | ||||
|   required string service_name = 2; | ||||
|   required string method = 3; | ||||
|   required bytes request = 4; | ||||
|   optional string request_id = 5; | ||||
| } | ||||
|  | ||||
| message ApplicationError { | ||||
|   required int32 code = 1; | ||||
|   required string detail = 2; | ||||
| } | ||||
|  | ||||
| message RpcError { | ||||
|   enum ErrorCode { | ||||
|     UNKNOWN = 0; | ||||
|     CALL_NOT_FOUND = 1; | ||||
|     PARSE_ERROR = 2; | ||||
|     SECURITY_VIOLATION = 3; | ||||
|     OVER_QUOTA = 4; | ||||
|     REQUEST_TOO_LARGE = 5; | ||||
|     CAPABILITY_DISABLED = 6; | ||||
|     FEATURE_DISABLED = 7; | ||||
|     BAD_REQUEST = 8; | ||||
|     RESPONSE_TOO_LARGE = 9; | ||||
|     CANCELLED = 10; | ||||
|     REPLAY_ERROR = 11; | ||||
|     DEADLINE_EXCEEDED = 12; | ||||
|   } | ||||
|   required int32 code = 1; | ||||
|   optional string detail = 2; | ||||
| } | ||||
|  | ||||
| message Response { | ||||
|   optional bytes response = 1; | ||||
|   optional bytes exception = 2; | ||||
|   optional ApplicationError application_error = 3; | ||||
|   optional bytes java_exception = 4; | ||||
|   optional RpcError rpc_error = 5; | ||||
| } | ||||
							
								
								
									
										107
									
								
								vendor/google.golang.org/appengine/internal/transaction.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										107
									
								
								vendor/google.golang.org/appengine/internal/transaction.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,107 @@ | ||||
| // Copyright 2014 Google Inc. All rights reserved. | ||||
| // Use of this source code is governed by the Apache 2.0 | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package internal | ||||
|  | ||||
| // This file implements hooks for applying datastore transactions. | ||||
|  | ||||
| import ( | ||||
| 	"errors" | ||||
| 	"reflect" | ||||
|  | ||||
| 	"github.com/golang/protobuf/proto" | ||||
| 	netcontext "golang.org/x/net/context" | ||||
|  | ||||
| 	basepb "google.golang.org/appengine/internal/base" | ||||
| 	pb "google.golang.org/appengine/internal/datastore" | ||||
| ) | ||||
|  | ||||
| var transactionSetters = make(map[reflect.Type]reflect.Value) | ||||
|  | ||||
| // RegisterTransactionSetter registers a function that sets transaction information | ||||
| // in a protocol buffer message. f should be a function with two arguments, | ||||
| // the first being a protocol buffer type, and the second being *datastore.Transaction. | ||||
| func RegisterTransactionSetter(f interface{}) { | ||||
| 	v := reflect.ValueOf(f) | ||||
| 	transactionSetters[v.Type().In(0)] = v | ||||
| } | ||||
|  | ||||
| // applyTransaction applies the transaction t to message pb | ||||
| // by using the relevant setter passed to RegisterTransactionSetter. | ||||
| func applyTransaction(pb proto.Message, t *pb.Transaction) { | ||||
| 	v := reflect.ValueOf(pb) | ||||
| 	if f, ok := transactionSetters[v.Type()]; ok { | ||||
| 		f.Call([]reflect.Value{v, reflect.ValueOf(t)}) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| var transactionKey = "used for *Transaction" | ||||
|  | ||||
| func transactionFromContext(ctx netcontext.Context) *transaction { | ||||
| 	t, _ := ctx.Value(&transactionKey).(*transaction) | ||||
| 	return t | ||||
| } | ||||
|  | ||||
| func withTransaction(ctx netcontext.Context, t *transaction) netcontext.Context { | ||||
| 	return netcontext.WithValue(ctx, &transactionKey, t) | ||||
| } | ||||
|  | ||||
| type transaction struct { | ||||
| 	transaction pb.Transaction | ||||
| 	finished    bool | ||||
| } | ||||
|  | ||||
| var ErrConcurrentTransaction = errors.New("internal: concurrent transaction") | ||||
|  | ||||
| func RunTransactionOnce(c netcontext.Context, f func(netcontext.Context) error, xg bool) error { | ||||
| 	if transactionFromContext(c) != nil { | ||||
| 		return errors.New("nested transactions are not supported") | ||||
| 	} | ||||
|  | ||||
| 	// Begin the transaction. | ||||
| 	t := &transaction{} | ||||
| 	req := &pb.BeginTransactionRequest{ | ||||
| 		App: proto.String(FullyQualifiedAppID(c)), | ||||
| 	} | ||||
| 	if xg { | ||||
| 		req.AllowMultipleEg = proto.Bool(true) | ||||
| 	} | ||||
| 	if err := Call(c, "datastore_v3", "BeginTransaction", req, &t.transaction); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	// Call f, rolling back the transaction if f returns a non-nil error, or panics. | ||||
| 	// The panic is not recovered. | ||||
| 	defer func() { | ||||
| 		if t.finished { | ||||
| 			return | ||||
| 		} | ||||
| 		t.finished = true | ||||
| 		// Ignore the error return value, since we are already returning a non-nil | ||||
| 		// error (or we're panicking). | ||||
| 		Call(c, "datastore_v3", "Rollback", &t.transaction, &basepb.VoidProto{}) | ||||
| 	}() | ||||
| 	if err := f(withTransaction(c, t)); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	t.finished = true | ||||
|  | ||||
| 	// Commit the transaction. | ||||
| 	res := &pb.CommitResponse{} | ||||
| 	err := Call(c, "datastore_v3", "Commit", &t.transaction, res) | ||||
| 	if ae, ok := err.(*APIError); ok { | ||||
| 		/* TODO: restore this conditional | ||||
| 		if appengine.IsDevAppServer() { | ||||
| 		*/ | ||||
| 		// The Python Dev AppServer raises an ApplicationError with error code 2 (which is | ||||
| 		// Error.CONCURRENT_TRANSACTION) and message "Concurrency exception.". | ||||
| 		if ae.Code == int32(pb.Error_BAD_REQUEST) && ae.Detail == "ApplicationError: 2 Concurrency exception." { | ||||
| 			return ErrConcurrentTransaction | ||||
| 		} | ||||
| 		if ae.Code == int32(pb.Error_CONCURRENT_TRANSACTION) { | ||||
| 			return ErrConcurrentTransaction | ||||
| 		} | ||||
| 	} | ||||
| 	return err | ||||
| } | ||||
							
								
								
									
										25
									
								
								vendor/google.golang.org/appengine/namespace.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								vendor/google.golang.org/appengine/namespace.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | ||||
| // Copyright 2012 Google Inc. All rights reserved. | ||||
| // Use of this source code is governed by the Apache 2.0 | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package appengine | ||||
|  | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"regexp" | ||||
|  | ||||
| 	"golang.org/x/net/context" | ||||
|  | ||||
| 	"google.golang.org/appengine/internal" | ||||
| ) | ||||
|  | ||||
| // Namespace returns a replacement context that operates within the given namespace. | ||||
| func Namespace(c context.Context, namespace string) (context.Context, error) { | ||||
| 	if !validNamespace.MatchString(namespace) { | ||||
| 		return nil, fmt.Errorf("appengine: namespace %q does not match /%s/", namespace, validNamespace) | ||||
| 	} | ||||
| 	return internal.NamespacedContext(c, namespace), nil | ||||
| } | ||||
|  | ||||
| // validNamespace matches valid namespace names. | ||||
| var validNamespace = regexp.MustCompile(`^[0-9A-Za-z._-]{0,100}$`) | ||||
							
								
								
									
										20
									
								
								vendor/google.golang.org/appengine/timeout.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								vendor/google.golang.org/appengine/timeout.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| // Copyright 2013 Google Inc. All rights reserved. | ||||
| // Use of this source code is governed by the Apache 2.0 | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package appengine | ||||
|  | ||||
| import "golang.org/x/net/context" | ||||
|  | ||||
| // IsTimeoutError reports whether err is a timeout error. | ||||
| func IsTimeoutError(err error) bool { | ||||
| 	if err == context.DeadlineExceeded { | ||||
| 		return true | ||||
| 	} | ||||
| 	if t, ok := err.(interface { | ||||
| 		IsTimeout() bool | ||||
| 	}); ok { | ||||
| 		return t.IsTimeout() | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
							
								
								
									
										382
									
								
								vendor/google.golang.org/cloud/compute/metadata/metadata.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										382
									
								
								vendor/google.golang.org/cloud/compute/metadata/metadata.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,382 +0,0 @@ | ||||
| // Copyright 2014 Google Inc. All Rights Reserved. | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| //      http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
|  | ||||
| // Package metadata provides access to Google Compute Engine (GCE) | ||||
| // metadata and API service accounts. | ||||
| // | ||||
| // This package is a wrapper around the GCE metadata service, | ||||
| // as documented at https://developers.google.com/compute/docs/metadata. | ||||
| package metadata | ||||
|  | ||||
| import ( | ||||
| 	"encoding/json" | ||||
| 	"fmt" | ||||
| 	"io/ioutil" | ||||
| 	"net" | ||||
| 	"net/http" | ||||
| 	"net/url" | ||||
| 	"os" | ||||
| 	"strings" | ||||
| 	"sync" | ||||
| 	"time" | ||||
|  | ||||
| 	"golang.org/x/net/context" | ||||
| 	"golang.org/x/net/context/ctxhttp" | ||||
|  | ||||
| 	"google.golang.org/cloud/internal" | ||||
| ) | ||||
|  | ||||
| // metadataIP is the documented metadata server IP address. | ||||
| const metadataIP = "169.254.169.254" | ||||
|  | ||||
| type cachedValue struct { | ||||
| 	k    string | ||||
| 	trim bool | ||||
| 	mu   sync.Mutex | ||||
| 	v    string | ||||
| } | ||||
|  | ||||
| var ( | ||||
| 	projID  = &cachedValue{k: "project/project-id", trim: true} | ||||
| 	projNum = &cachedValue{k: "project/numeric-project-id", trim: true} | ||||
| 	instID  = &cachedValue{k: "instance/id", trim: true} | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	metaClient = &http.Client{ | ||||
| 		Transport: &internal.Transport{ | ||||
| 			Base: &http.Transport{ | ||||
| 				Dial: (&net.Dialer{ | ||||
| 					Timeout:   2 * time.Second, | ||||
| 					KeepAlive: 30 * time.Second, | ||||
| 				}).Dial, | ||||
| 				ResponseHeaderTimeout: 2 * time.Second, | ||||
| 			}, | ||||
| 		}, | ||||
| 	} | ||||
| 	subscribeClient = &http.Client{ | ||||
| 		Transport: &internal.Transport{ | ||||
| 			Base: &http.Transport{ | ||||
| 				Dial: (&net.Dialer{ | ||||
| 					Timeout:   2 * time.Second, | ||||
| 					KeepAlive: 30 * time.Second, | ||||
| 				}).Dial, | ||||
| 			}, | ||||
| 		}, | ||||
| 	} | ||||
| ) | ||||
|  | ||||
| // NotDefinedError is returned when requested metadata is not defined. | ||||
| // | ||||
| // The underlying string is the suffix after "/computeMetadata/v1/". | ||||
| // | ||||
| // This error is not returned if the value is defined to be the empty | ||||
| // string. | ||||
| type NotDefinedError string | ||||
|  | ||||
| func (suffix NotDefinedError) Error() string { | ||||
| 	return fmt.Sprintf("metadata: GCE metadata %q not defined", string(suffix)) | ||||
| } | ||||
|  | ||||
| // Get returns a value from the metadata service. | ||||
| // The suffix is appended to "http://${GCE_METADATA_HOST}/computeMetadata/v1/". | ||||
| // | ||||
| // If the GCE_METADATA_HOST environment variable is not defined, a default of | ||||
| // 169.254.169.254 will be used instead. | ||||
| // | ||||
| // If the requested metadata is not defined, the returned error will | ||||
| // be of type NotDefinedError. | ||||
| func Get(suffix string) (string, error) { | ||||
| 	val, _, err := getETag(metaClient, suffix) | ||||
| 	return val, err | ||||
| } | ||||
|  | ||||
| // getETag returns a value from the metadata service as well as the associated | ||||
| // ETag using the provided client. This func is otherwise equivalent to Get. | ||||
| func getETag(client *http.Client, suffix string) (value, etag string, err error) { | ||||
| 	// Using a fixed IP makes it very difficult to spoof the metadata service in | ||||
| 	// a container, which is an important use-case for local testing of cloud | ||||
| 	// deployments. To enable spoofing of the metadata service, the environment | ||||
| 	// variable GCE_METADATA_HOST is first inspected to decide where metadata | ||||
| 	// requests shall go. | ||||
| 	host := os.Getenv("GCE_METADATA_HOST") | ||||
| 	if host == "" { | ||||
| 		// Using 169.254.169.254 instead of "metadata" here because Go | ||||
| 		// binaries built with the "netgo" tag and without cgo won't | ||||
| 		// know the search suffix for "metadata" is | ||||
| 		// ".google.internal", and this IP address is documented as | ||||
| 		// being stable anyway. | ||||
| 		host = metadataIP | ||||
| 	} | ||||
| 	url := "http://" + host + "/computeMetadata/v1/" + suffix | ||||
| 	req, _ := http.NewRequest("GET", url, nil) | ||||
| 	req.Header.Set("Metadata-Flavor", "Google") | ||||
| 	res, err := client.Do(req) | ||||
| 	if err != nil { | ||||
| 		return "", "", err | ||||
| 	} | ||||
| 	defer res.Body.Close() | ||||
| 	if res.StatusCode == http.StatusNotFound { | ||||
| 		return "", "", NotDefinedError(suffix) | ||||
| 	} | ||||
| 	if res.StatusCode != 200 { | ||||
| 		return "", "", fmt.Errorf("status code %d trying to fetch %s", res.StatusCode, url) | ||||
| 	} | ||||
| 	all, err := ioutil.ReadAll(res.Body) | ||||
| 	if err != nil { | ||||
| 		return "", "", err | ||||
| 	} | ||||
| 	return string(all), res.Header.Get("Etag"), nil | ||||
| } | ||||
|  | ||||
| func getTrimmed(suffix string) (s string, err error) { | ||||
| 	s, err = Get(suffix) | ||||
| 	s = strings.TrimSpace(s) | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func (c *cachedValue) get() (v string, err error) { | ||||
| 	defer c.mu.Unlock() | ||||
| 	c.mu.Lock() | ||||
| 	if c.v != "" { | ||||
| 		return c.v, nil | ||||
| 	} | ||||
| 	if c.trim { | ||||
| 		v, err = getTrimmed(c.k) | ||||
| 	} else { | ||||
| 		v, err = Get(c.k) | ||||
| 	} | ||||
| 	if err == nil { | ||||
| 		c.v = v | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
|  | ||||
| var onGCE struct { | ||||
| 	sync.Mutex | ||||
| 	set bool | ||||
| 	v   bool | ||||
| } | ||||
|  | ||||
| // OnGCE reports whether this process is running on Google Compute Engine. | ||||
| func OnGCE() bool { | ||||
| 	defer onGCE.Unlock() | ||||
| 	onGCE.Lock() | ||||
| 	if onGCE.set { | ||||
| 		return onGCE.v | ||||
| 	} | ||||
| 	onGCE.set = true | ||||
| 	onGCE.v = testOnGCE() | ||||
| 	return onGCE.v | ||||
| } | ||||
|  | ||||
| func testOnGCE() bool { | ||||
| 	ctx, cancel := context.WithCancel(context.Background()) | ||||
| 	defer cancel() | ||||
|  | ||||
| 	resc := make(chan bool, 2) | ||||
|  | ||||
| 	// Try two strategies in parallel. | ||||
| 	// See https://github.com/GoogleCloudPlatform/gcloud-golang/issues/194 | ||||
| 	go func() { | ||||
| 		res, err := ctxhttp.Get(ctx, metaClient, "http://"+metadataIP) | ||||
| 		if err != nil { | ||||
| 			resc <- false | ||||
| 			return | ||||
| 		} | ||||
| 		defer res.Body.Close() | ||||
| 		resc <- res.Header.Get("Metadata-Flavor") == "Google" | ||||
| 	}() | ||||
|  | ||||
| 	go func() { | ||||
| 		addrs, err := net.LookupHost("metadata.google.internal") | ||||
| 		if err != nil || len(addrs) == 0 { | ||||
| 			resc <- false | ||||
| 			return | ||||
| 		} | ||||
| 		resc <- strsContains(addrs, metadataIP) | ||||
| 	}() | ||||
|  | ||||
| 	return <-resc | ||||
| } | ||||
|  | ||||
| // Subscribe subscribes to a value from the metadata service. | ||||
| // The suffix is appended to "http://${GCE_METADATA_HOST}/computeMetadata/v1/". | ||||
| // The suffix may contain query parameters. | ||||
| // | ||||
| // Subscribe calls fn with the latest metadata value indicated by the provided | ||||
| // suffix. If the metadata value is deleted, fn is called with the empty string | ||||
| // and ok false. Subscribe blocks until fn returns a non-nil error or the value | ||||
| // is deleted. Subscribe returns the error value returned from the last call to | ||||
| // fn, which may be nil when ok == false. | ||||
| func Subscribe(suffix string, fn func(v string, ok bool) error) error { | ||||
| 	const failedSubscribeSleep = time.Second * 5 | ||||
|  | ||||
| 	// First check to see if the metadata value exists at all. | ||||
| 	val, lastETag, err := getETag(subscribeClient, suffix) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	if err := fn(val, true); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	ok := true | ||||
| 	if strings.ContainsRune(suffix, '?') { | ||||
| 		suffix += "&wait_for_change=true&last_etag=" | ||||
| 	} else { | ||||
| 		suffix += "?wait_for_change=true&last_etag=" | ||||
| 	} | ||||
| 	for { | ||||
| 		val, etag, err := getETag(subscribeClient, suffix+url.QueryEscape(lastETag)) | ||||
| 		if err != nil { | ||||
| 			if _, deleted := err.(NotDefinedError); !deleted { | ||||
| 				time.Sleep(failedSubscribeSleep) | ||||
| 				continue // Retry on other errors. | ||||
| 			} | ||||
| 			ok = false | ||||
| 		} | ||||
| 		lastETag = etag | ||||
|  | ||||
| 		if err := fn(val, ok); err != nil || !ok { | ||||
| 			return err | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // ProjectID returns the current instance's project ID string. | ||||
| func ProjectID() (string, error) { return projID.get() } | ||||
|  | ||||
| // NumericProjectID returns the current instance's numeric project ID. | ||||
| func NumericProjectID() (string, error) { return projNum.get() } | ||||
|  | ||||
| // InternalIP returns the instance's primary internal IP address. | ||||
| func InternalIP() (string, error) { | ||||
| 	return getTrimmed("instance/network-interfaces/0/ip") | ||||
| } | ||||
|  | ||||
| // ExternalIP returns the instance's primary external (public) IP address. | ||||
| func ExternalIP() (string, error) { | ||||
| 	return getTrimmed("instance/network-interfaces/0/access-configs/0/external-ip") | ||||
| } | ||||
|  | ||||
| // Hostname returns the instance's hostname. This will be of the form | ||||
| // "<instanceID>.c.<projID>.internal". | ||||
| func Hostname() (string, error) { | ||||
| 	return getTrimmed("instance/hostname") | ||||
| } | ||||
|  | ||||
| // InstanceTags returns the list of user-defined instance tags, | ||||
| // assigned when initially creating a GCE instance. | ||||
| func InstanceTags() ([]string, error) { | ||||
| 	var s []string | ||||
| 	j, err := Get("instance/tags") | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	if err := json.NewDecoder(strings.NewReader(j)).Decode(&s); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return s, nil | ||||
| } | ||||
|  | ||||
| // InstanceID returns the current VM's numeric instance ID. | ||||
| func InstanceID() (string, error) { | ||||
| 	return instID.get() | ||||
| } | ||||
|  | ||||
| // InstanceName returns the current VM's instance ID string. | ||||
| func InstanceName() (string, error) { | ||||
| 	host, err := Hostname() | ||||
| 	if err != nil { | ||||
| 		return "", err | ||||
| 	} | ||||
| 	return strings.Split(host, ".")[0], nil | ||||
| } | ||||
|  | ||||
| // Zone returns the current VM's zone, such as "us-central1-b". | ||||
| func Zone() (string, error) { | ||||
| 	zone, err := getTrimmed("instance/zone") | ||||
| 	// zone is of the form "projects/<projNum>/zones/<zoneName>". | ||||
| 	if err != nil { | ||||
| 		return "", err | ||||
| 	} | ||||
| 	return zone[strings.LastIndex(zone, "/")+1:], nil | ||||
| } | ||||
|  | ||||
| // InstanceAttributes returns the list of user-defined attributes, | ||||
| // assigned when initially creating a GCE VM instance. The value of an | ||||
| // attribute can be obtained with InstanceAttributeValue. | ||||
| func InstanceAttributes() ([]string, error) { return lines("instance/attributes/") } | ||||
|  | ||||
| // ProjectAttributes returns the list of user-defined attributes | ||||
| // applying to the project as a whole, not just this VM.  The value of | ||||
| // an attribute can be obtained with ProjectAttributeValue. | ||||
| func ProjectAttributes() ([]string, error) { return lines("project/attributes/") } | ||||
|  | ||||
| func lines(suffix string) ([]string, error) { | ||||
| 	j, err := Get(suffix) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	s := strings.Split(strings.TrimSpace(j), "\n") | ||||
| 	for i := range s { | ||||
| 		s[i] = strings.TrimSpace(s[i]) | ||||
| 	} | ||||
| 	return s, nil | ||||
| } | ||||
|  | ||||
| // InstanceAttributeValue returns the value of the provided VM | ||||
| // instance attribute. | ||||
| // | ||||
| // If the requested attribute is not defined, the returned error will | ||||
| // be of type NotDefinedError. | ||||
| // | ||||
| // InstanceAttributeValue may return ("", nil) if the attribute was | ||||
| // defined to be the empty string. | ||||
| func InstanceAttributeValue(attr string) (string, error) { | ||||
| 	return Get("instance/attributes/" + attr) | ||||
| } | ||||
|  | ||||
| // ProjectAttributeValue returns the value of the provided | ||||
| // project attribute. | ||||
| // | ||||
| // If the requested attribute is not defined, the returned error will | ||||
| // be of type NotDefinedError. | ||||
| // | ||||
| // ProjectAttributeValue may return ("", nil) if the attribute was | ||||
| // defined to be the empty string. | ||||
| func ProjectAttributeValue(attr string) (string, error) { | ||||
| 	return Get("project/attributes/" + attr) | ||||
| } | ||||
|  | ||||
| // Scopes returns the service account scopes for the given account. | ||||
| // The account may be empty or the string "default" to use the instance's | ||||
| // main account. | ||||
| func Scopes(serviceAccount string) ([]string, error) { | ||||
| 	if serviceAccount == "" { | ||||
| 		serviceAccount = "default" | ||||
| 	} | ||||
| 	return lines("instance/service-accounts/" + serviceAccount + "/scopes") | ||||
| } | ||||
|  | ||||
| func strsContains(ss []string, s string) bool { | ||||
| 	for _, v := range ss { | ||||
| 		if v == s { | ||||
| 			return true | ||||
| 		} | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
							
								
								
									
										128
									
								
								vendor/google.golang.org/cloud/internal/cloud.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										128
									
								
								vendor/google.golang.org/cloud/internal/cloud.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,128 +0,0 @@ | ||||
| // Copyright 2014 Google Inc. All Rights Reserved. | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| //      http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
|  | ||||
| // Package internal provides support for the cloud packages. | ||||
| // | ||||
| // Users should not import this package directly. | ||||
| package internal | ||||
|  | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"net/http" | ||||
| 	"sync" | ||||
|  | ||||
| 	"golang.org/x/net/context" | ||||
| ) | ||||
|  | ||||
| type contextKey struct{} | ||||
|  | ||||
| func WithContext(parent context.Context, projID string, c *http.Client) context.Context { | ||||
| 	if c == nil { | ||||
| 		panic("nil *http.Client passed to WithContext") | ||||
| 	} | ||||
| 	if projID == "" { | ||||
| 		panic("empty project ID passed to WithContext") | ||||
| 	} | ||||
| 	return context.WithValue(parent, contextKey{}, &cloudContext{ | ||||
| 		ProjectID:  projID, | ||||
| 		HTTPClient: c, | ||||
| 	}) | ||||
| } | ||||
|  | ||||
| const userAgent = "gcloud-golang/0.1" | ||||
|  | ||||
| type cloudContext struct { | ||||
| 	ProjectID  string | ||||
| 	HTTPClient *http.Client | ||||
|  | ||||
| 	mu  sync.Mutex             // guards svc | ||||
| 	svc map[string]interface{} // e.g. "storage" => *rawStorage.Service | ||||
| } | ||||
|  | ||||
| // Service returns the result of the fill function if it's never been | ||||
| // called before for the given name (which is assumed to be an API | ||||
| // service name, like "datastore"). If it has already been cached, the fill | ||||
| // func is not run. | ||||
| // It's safe for concurrent use by multiple goroutines. | ||||
| func Service(ctx context.Context, name string, fill func(*http.Client) interface{}) interface{} { | ||||
| 	return cc(ctx).service(name, fill) | ||||
| } | ||||
|  | ||||
| func (c *cloudContext) service(name string, fill func(*http.Client) interface{}) interface{} { | ||||
| 	c.mu.Lock() | ||||
| 	defer c.mu.Unlock() | ||||
|  | ||||
| 	if c.svc == nil { | ||||
| 		c.svc = make(map[string]interface{}) | ||||
| 	} else if v, ok := c.svc[name]; ok { | ||||
| 		return v | ||||
| 	} | ||||
| 	v := fill(c.HTTPClient) | ||||
| 	c.svc[name] = v | ||||
| 	return v | ||||
| } | ||||
|  | ||||
| // Transport is an http.RoundTripper that appends | ||||
| // Google Cloud client's user-agent to the original | ||||
| // request's user-agent header. | ||||
| type Transport struct { | ||||
| 	// Base is the actual http.RoundTripper | ||||
| 	// requests will use. It must not be nil. | ||||
| 	Base http.RoundTripper | ||||
| } | ||||
|  | ||||
| // RoundTrip appends a user-agent to the existing user-agent | ||||
| // header and delegates the request to the base http.RoundTripper. | ||||
| func (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) { | ||||
| 	req = cloneRequest(req) | ||||
| 	ua := req.Header.Get("User-Agent") | ||||
| 	if ua == "" { | ||||
| 		ua = userAgent | ||||
| 	} else { | ||||
| 		ua = fmt.Sprintf("%s %s", ua, userAgent) | ||||
| 	} | ||||
| 	req.Header.Set("User-Agent", ua) | ||||
| 	return t.Base.RoundTrip(req) | ||||
| } | ||||
|  | ||||
| // cloneRequest returns a clone of the provided *http.Request. | ||||
| // The clone is a shallow copy of the struct and its Header map. | ||||
| func cloneRequest(r *http.Request) *http.Request { | ||||
| 	// shallow copy of the struct | ||||
| 	r2 := new(http.Request) | ||||
| 	*r2 = *r | ||||
| 	// deep copy of the Header | ||||
| 	r2.Header = make(http.Header) | ||||
| 	for k, s := range r.Header { | ||||
| 		r2.Header[k] = s | ||||
| 	} | ||||
| 	return r2 | ||||
| } | ||||
|  | ||||
| func ProjID(ctx context.Context) string { | ||||
| 	return cc(ctx).ProjectID | ||||
| } | ||||
|  | ||||
| func HTTPClient(ctx context.Context) *http.Client { | ||||
| 	return cc(ctx).HTTPClient | ||||
| } | ||||
|  | ||||
| // cc returns the internal *cloudContext (cc) state for a context.Context. | ||||
| // It panics if the user did it wrong. | ||||
| func cc(ctx context.Context) *cloudContext { | ||||
| 	if c, ok := ctx.Value(contextKey{}).(*cloudContext); ok { | ||||
| 		return c | ||||
| 	} | ||||
| 	panic("invalid context.Context type; it should be created with cloud.NewContext") | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Davanum Srinivas
					Davanum Srinivas