Handle "File Exists" error when hitting virtualenv

In case of sharding hitting virtualenv errno 17 is possible
and should be retried.

Test: unit tests
Bug: 147424593
Change-Id: Ic1e4ad2ccf8e6baa5f1a13ea611e9189b5243474
(cherry picked from commit 21fab1c0cf8309d52d09eaaaf453855592566337)
Merged-In: Ic1e4ad2ccf8e6baa5f1a13ea611e9189b5243474
diff --git a/harnesses/tradefed/src/com/android/tradefed/targetprep/VtsPythonVirtualenvPreparer.java b/harnesses/tradefed/src/com/android/tradefed/targetprep/VtsPythonVirtualenvPreparer.java
index 0c50cb9..54b5023 100644
--- a/harnesses/tradefed/src/com/android/tradefed/targetprep/VtsPythonVirtualenvPreparer.java
+++ b/harnesses/tradefed/src/com/android/tradefed/targetprep/VtsPythonVirtualenvPreparer.java
@@ -475,7 +475,8 @@
 
             if (c.getStatus() != CommandStatus.SUCCESS) {
                 String message_lower = (c.getStdout() + c.getStderr()).toLowerCase();
-                if (message_lower.contains("errno 26")
+                if (message_lower.contains("errno 17") // File exists
+                        || message_lower.contains("errno 26")
                         || message_lower.contains("text file busy")) {
                     // Race condition, retry.
                     CLog.d("detected the virtualenv path is being created by other process.");