Add client attribute object to FAFT test

This enables us to define some per-platform attributes and take
different action during test.

BUG=chrome-os-partner:10874
TEST=Check we can get attribute in test.

Change-Id: I6051aa6e6f1da5ff4a4229853939554973ab6aeb
Reviewed-on: https://gerrit.chromium.org/gerrit/26092
Reviewed-by: Tom Wai-Hong Tam <waihong@chromium.org>
Commit-Ready: Vic Yang <victoryang@chromium.org>
Tested-by: Vic Yang <victoryang@chromium.org>
diff --git a/server/cros/faft_client_attribute.py b/server/cros/faft_client_attribute.py
new file mode 100644
index 0000000..bebffdd
--- /dev/null
+++ b/server/cros/faft_client_attribute.py
@@ -0,0 +1,29 @@
+# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+class FAFTClientAttribute(object):
+    """Class that tests platform name and gives client machine attributes."""
+    version = 1
+
+    DEFAULT_SETTING = {'keyboard_dev': True}
+
+    def __init__(self, platform):
+        """Initialized.
+
+        Args:
+          platform: Platform name returned by FAFT client.
+        """
+        self.__dict__.update(self.DEFAULT_SETTING)
+        self.__dict__.update(self._get_platform_setting(platform))
+
+
+    def _get_platform_setting(self, platform):
+        """Return platform-specific settings."""
+        setting = dict()
+
+        if platform in ['Aebl', 'Alex', 'Kaen', 'Lumpy', 'Mario', 'Seaboard',
+                        'Stumpy', 'ZGB']:
+            setting['keyboard_dev'] = False
+
+        return setting