You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@reef.apache.org by ju...@apache.org on 2015/04/24 01:22:55 UTC

incubator-reef git commit: [REEF-235] Remove account key from ReefFunctionalTest.cs

Repository: incubator-reef
Updated Branches:
  refs/heads/master 576ea5c0d -> 0b464ec0f


[REEF-235] Remove account key from ReefFunctionalTest.cs

This change removes the account key from `ReefFunctionalTest.cs` and
replaces it with the use of environment variables.

JIRA:
  [REEF-235](https://issues.apache.org/jira/browse/REEF-235)

Pull Request:
  This closes #161

Author:    Markus Weimer <we...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/incubator-reef/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-reef/commit/0b464ec0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-reef/tree/0b464ec0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-reef/diff/0b464ec0

Branch: refs/heads/master
Commit: 0b464ec0f93ca8f2d5d5addb0b75c94452bdc5ba
Parents: 576ea5c
Author: Markus Weimer <we...@apache.org>
Authored: Thu Apr 23 12:40:56 2015 -0700
Committer: Julia Wang <jw...@yahoo.com>
Committed: Thu Apr 23 16:20:09 2015 -0700

----------------------------------------------------------------------
 .../Functional/ReefFunctionalTest.cs            | 51 ++++++++++++++++++--
 1 file changed, 47 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/0b464ec0/lang/cs/Org.Apache.REEF.Tests/Functional/ReefFunctionalTest.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Tests/Functional/ReefFunctionalTest.cs b/lang/cs/Org.Apache.REEF.Tests/Functional/ReefFunctionalTest.cs
index 08430b7..06cd003 100644
--- a/lang/cs/Org.Apache.REEF.Tests/Functional/ReefFunctionalTest.cs
+++ b/lang/cs/Org.Apache.REEF.Tests/Functional/ReefFunctionalTest.cs
@@ -32,6 +32,7 @@ using Org.Apache.REEF.Driver;
 using Org.Apache.REEF.Driver.Bridge;
 using Org.Apache.REEF.Tang.Interface;
 using Org.Apache.REEF.Utilities;
+using Org.Apache.REEF.Utilities.Diagnostics;
 using Org.Apache.REEF.Utilities.Logging;
 using Timer = System.Timers.Timer;
 
@@ -43,9 +44,11 @@ namespace Org.Apache.REEF.Tests.Functional
         protected const string _stderr = "driver.stderr";
         protected const string _cmdFile = "run.cmd";
         protected const string _binFolder = ".";
-        // TODO: we will need a proper way to hide this when we are OSS'ed
-        protected const string _blobStorageConnectionString =
-            @"DefaultEndpointsProtocol=https;AccountName=reeftestlog;AccountKey=cuUmPRF9DiG56bciNc37O/SfHAoh1jFfJW6AsXAtWLPnjlOzXJGWgXhkyDFOGEHIMscqDU41ElUKnjcsJjWD9w==";
+        private const string StorageAccountKeyEnvironmentVariable = "REEFTestStorageAccountKey";
+        private const string StorageAccountNameEnvironmentVariable = "REEFTestStorageAccountName";
+
+        private static Logger Logger = Logger.GetLogger(typeof(ReefFunctionalTest));
+            
 
         private bool _testSuccess = false;
         private bool _onLocalRuntime = false;
@@ -181,7 +184,7 @@ namespace Org.Apache.REEF.Tests.Functional
         {
             string driverStdout = GetLogFile(_stdout);
             string driverStderr = GetLogFile(_stderr);
-            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(_blobStorageConnectionString);
+            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(GetStorageConnectionString());
             CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
             CloudBlobContainer container = blobClient.GetContainerReference(DateTime.Now.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture));   
             container.CreateIfNotExists();
@@ -196,5 +199,45 @@ namespace Org.Apache.REEF.Tests.Functional
             blob.UploadFromStream(fs);
             fs.Close();
         }
+
+        /// <summary>
+        /// Assembles the storage account connection string from the envrionment.
+        /// </summary>
+        /// <returns>the storage account connection string assembled from the envrionment.</returns>
+        /// <exception cref="Exception">If the environment variables aren't set.</exception>
+        private static string GetStorageConnectionString()
+        {
+            var accountName = GetEnvironmentVariabe(StorageAccountNameEnvironmentVariable,
+                "Please set " + StorageAccountNameEnvironmentVariable +
+                " to the storage account name to be used for the tests");
+
+            var accountKey = GetEnvironmentVariabe(StorageAccountKeyEnvironmentVariable,
+                "Please set " + StorageAccountKeyEnvironmentVariable +
+                " to the key of the storage account to be used for the tests");
+
+            var result = @"DefaultEndpointsProtocol=https;AccountName=" + accountName + ";AccountKey=" + accountKey;
+            return result;
+        }
+
+        /// <summary>
+        /// Fetchs the value of the given environment variable
+        /// </summary>
+        /// <param name="variableName"></param>
+        /// <param name="errorMessageIfNotAvailable"></param>
+        /// <returns>the value of the given environment variable</returns>
+        /// <exception cref="Exception">
+        /// If the environment variables is not set. The message is taken from
+        /// errorMessageIfNotAvailable
+        /// </exception>
+        private static string GetEnvironmentVariabe(string variableName, string errorMessageIfNotAvailable)
+        {
+            var result = Environment.GetEnvironmentVariable(variableName);
+            if (string.IsNullOrWhiteSpace(result))
+            {
+                Exceptions.Throw(new Exception(errorMessageIfNotAvailable), Logger);
+            }
+            return result;
+        }
+
     }
 }
\ No newline at end of file