Index: service/info/support/namespace.go |
diff --git a/service/info/support/namespace.go b/service/info/support/namespace.go |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6cb2e90ebf5ac5a29fb6b3a0cca2a6b4e92f16f1 |
--- /dev/null |
+++ b/service/info/support/namespace.go |
@@ -0,0 +1,24 @@ |
+// Copyright 2015 The LUCI Authors. All rights reserved. |
+// Use of this source code is governed under the Apache License, Version 2.0 |
+// that can be found in the LICENSE file. |
+ |
+// Package support provides Info-related support functionality. It is designed |
+// to be used by implementing packages. |
+package support |
+ |
+import ( |
+ "fmt" |
+ "regexp" |
+) |
+ |
+// validNamespace matches valid namespace names. |
+var validNamespace = regexp.MustCompile(`^[0-9A-Za-z._-]{0,100}$`) |
dnj
2016/09/01 15:25:40
Added this package b/c both impl/memory and impl/c
iannucci
2016/09/16 01:01:14
maybe it should move to service/datastore?
dnj
2016/09/16 05:44:43
I think namespace is a concept owned by "info" ser
|
+ |
+// ValidNamespace will return an error if the supplied string is not a valid |
+// namespace. |
+func ValidNamespace(ns string) error { |
+ if validNamespace.MatchString(ns) { |
+ return nil |
+ } |
+ return fmt.Errorf("appengine: namespace %q does not match /%s/", ns, validNamespace) |
+} |