Remote XBuddy function.

Locate artifacts on GS, given aliases for versions.
BUG=chromium:252942
TEST=Unittests, Manual
xbuddy_unittests.py updated for new functions
Run devserver and query xbuddy using any path with remote aliases.
e.g.
http://{your_ip}:8080/xbuddy/parrot/latest-stable/test
http://{your_ip}:8080/xbuddy/parrot/latest-official/test
http://{your_ip}:8080/xbuddy/parrot/latest-official-paladin/test
http://{your_ip}:8080/xbuddy/parrot/latest-R27/test

Change-Id: I171e23cbfbaa6ce181b09393c2c6e6dfb12baca5
Reviewed-on: https://gerrit.chromium.org/gerrit/61802
Commit-Queue: Joy Chen <joychen@chromium.org>
Reviewed-by: Joy Chen <joychen@chromium.org>
Tested-by: Joy Chen <joychen@chromium.org>
diff --git a/devserver_constants.py b/devserver_constants.py
index d63a61d..4af7830 100644
--- a/devserver_constants.py
+++ b/devserver_constants.py
@@ -6,7 +6,14 @@
 
 #### Google Storage locations and names. ####
 # TODO (joyc) move the google storage filenames of artfacts here
-GOOGLE_STORAGE_IMAGE_DIR = 'gs://chromeos-image-archive'
+GS_IMAGE_DIR = 'gs://chromeos-image-archive'
+GS_LATEST_MASTER = GS_IMAGE_DIR + '/%(board)s-%(suffix)s/LATEST-master'
+IMAGE_DIR = '%(board)s-%(suffix)s/%(version)s'
+
+GS_RELEASES_DIR = 'gs://chromeos-releases'
+GS_CHANNEL_DIR = GS_RELEASES_DIR + '/%(channel)s-channel/%(board)s/'
+
+VERSION_RE = 'R?[-0-9\.]+'
 
 #### Local storage locations and names. ####
 AUTOTEST_DIR = 'autotest'