Support dev builds.

First draft for this change. Depending on how we decide to archive dev builds this may change.

Change-Id: I4e167967e9c343d2582275075b8eb1291962a02f

BUG=chromium-os:11712
TEST=Ran w/ lab_test tool on cautotest.

Review URL: http://codereview.chromium.org/6312162
diff --git a/client/common_lib/cros/autoupdater.py b/client/common_lib/cros/autoupdater.py
index 3ed6105..244cbbd 100644
--- a/client/common_lib/cros/autoupdater.py
+++ b/client/common_lib/cros/autoupdater.py
@@ -134,6 +134,8 @@
 
     def check_version(self):
         booted_version = self.get_build_id()
+        if not booted_version:
+            booted_version = self.get_dev_build_id()
         if not booted_version in self.update_version:
             logging.error('Expected Chromium OS version: %s.'
                           'Found Chromium OS %s',
@@ -147,19 +149,22 @@
     def get_build_id(self):
         """Turns the CHROMEOS_RELEASE_DESCRIPTION into a string that
         matches the build ID."""
-        # TODO(seano): handle dev build naming schemes.
         version = self._run('grep CHROMEOS_RELEASE_DESCRIPTION'
                             ' /etc/lsb-release').stdout
         build_re = (r'CHROMEOS_RELEASE_DESCRIPTION='
                     '(\d+\.\d+\.\d+\.\d+) \(\w+ \w+ (\w+)(.*)\)')
         version_match = re.match(build_re, version)
-        if not version_match:
-            raise ChromiumOSError('Unable to get build ID from %s. Found "%s"',
-                                  self.host.hostname, version)
-        version, build_id, builder = version_match.groups()
-        build_match = re.match(r'.*: (\d+)', builder)
-        if build_match:
-            builder_num = '-b%s' % build_match.group(1)
-        else:
-            builder_num = ''
-        return '%s-r%s%s' % (version, build_id, builder_num)
+        if version_match:
+            version, build_id, builder = version_match.groups()
+            build_match = re.match(r'.*: (\d+)', builder)
+            if build_match:
+                builder_num = '-b%s' % build_match.group(1)
+            else:
+                builder_num = ''
+            return '%s-r%s%s' % (version, build_id, builder_num)
+
+
+    def get_dev_build_id(self):
+        """Pulls the CHROMEOS_RELEASE_VERSION string from /etc/lsb-release."""
+        return self._run('grep CHROMEOS_RELEASE_VERSION'
+                         ' /etc/lsb-release').stdout.split('=')[1].strip()