ambari-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dmitriu...@apache.org
Subject [2/2] ambari git commit: AMBARI-13014. RU: Installing version stuck on host (dlysnichenko)
Date Wed, 09 Sep 2015 08:48:13 GMT
AMBARI-13014. RU: Installing version stuck on host (dlysnichenko)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/6d9b9975
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/6d9b9975
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/6d9b9975

Branch: refs/heads/branch-2.1
Commit: 6d9b99751597365221048021e34af20607942b25
Parents: 8c25433
Author: Lisnichenko Dmitro <dlysnichenko@hortonworks.com>
Authored: Wed Sep 9 11:47:12 2015 +0300
Committer: Lisnichenko Dmitro <dlysnichenko@hortonworks.com>
Committed: Wed Sep 9 11:48:24 2015 +0300

----------------------------------------------------------------------
 .../libraries/functions/repo_version_history.py | 10 ++-
 .../custom_actions/TestRepoVersionHistory.py    | 71 ++++++++++++++++++++
 2 files changed, 80 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/6d9b9975/ambari-common/src/main/python/resource_management/libraries/functions/repo_version_history.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/libraries/functions/repo_version_history.py
b/ambari-common/src/main/python/resource_management/libraries/functions/repo_version_history.py
index f8ea7c9..d585dea 100644
--- a/ambari-common/src/main/python/resource_management/libraries/functions/repo_version_history.py
+++ b/ambari-common/src/main/python/resource_management/libraries/functions/repo_version_history.py
@@ -78,7 +78,15 @@ def write_actual_version_to_history_file(repository_version, actual_version):
   value = repository_version + "," + actual_version
   key_exists = False
   try:
-    if read_actual_version_from_history_file(repository_version) is None:
+    if os.path.isfile(REPO_VERSION_HISTORY_FILE):
+      with open(REPO_VERSION_HISTORY_FILE, "r") as f:
+        for line in f.readlines():
+          line_parts = line.split(",")
+          if line_parts and len(line_parts) == 2 and line_parts[0] == repository_version
and line_parts[1] == actual_version:
+            key_exists = True
+            break
+
+    if not key_exists:
       with open(REPO_VERSION_HISTORY_FILE, "a") as f:
         f.write(repository_version + "," + actual_version + "\n")
         wrote_value = True

http://git-wip-us.apache.org/repos/asf/ambari/blob/6d9b9975/ambari-server/src/test/python/custom_actions/TestRepoVersionHistory.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/custom_actions/TestRepoVersionHistory.py b/ambari-server/src/test/python/custom_actions/TestRepoVersionHistory.py
new file mode 100644
index 0000000..1eccb2f
--- /dev/null
+++ b/ambari-server/src/test/python/custom_actions/TestRepoVersionHistory.py
@@ -0,0 +1,71 @@
+#!/usr/bin/env python
+
+'''
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+'''
+import os
+import tempfile
+from stacks.utils.RMFTestCase import *
+from resource_management.libraries.functions import repo_version_history
+import logging
+
+from only_for_platform import not_for_platform, PLATFORM_WINDOWS
+
+@not_for_platform(PLATFORM_WINDOWS)
+class TestRepoVersionHistory(RMFTestCase):
+
+
+
+  def test_read_and_write_repo_version_history(self):
+    f, filename = tempfile.mkstemp()
+
+
+    try:
+      # Check read of empty file
+      repo_version_history.REPO_VERSION_HISTORY_FILE = filename
+      repo_version_history.Logger = logging.getLogger()
+      result = repo_version_history.read_actual_version_from_history_file('2.3.2.0')
+      self.assertEquals(result, None)
+
+      # Check read of single value
+      repo_version_history.write_actual_version_to_history_file('2.3.2.0', '2.3.2.0-210')
+      result = repo_version_history.read_actual_version_from_history_file('2.3.2.0')
+      self.assertEquals(result, '2.3.2.0-210')
+
+      # Check read after update
+      repo_version_history.write_actual_version_to_history_file('2.3.2.0', '2.3.2.0-2716')
+      result = repo_version_history.read_actual_version_from_history_file('2.3.2.0')
+      self.assertEquals(result, '2.3.2.0-2716')
+
+      # Check read after update
+      repo_version_history.write_actual_version_to_history_file('2.3.2.0', '2.3.2.0-2758')
+      result = repo_version_history.read_actual_version_from_history_file('2.3.2.0')
+      self.assertEquals(result, '2.3.2.0-2758')
+
+      # Check read after writing down version for another stack
+      repo_version_history.write_actual_version_to_history_file('2.3.1.0', '2.3.1.0-27')
+      result = repo_version_history.read_actual_version_from_history_file('2.3.1.0')
+      self.assertEquals(result, '2.3.1.0-27')
+      result = repo_version_history.read_actual_version_from_history_file('2.3.2.0')
+      self.assertEquals(result, '2.3.2.0-2758')
+
+      # Check read of another stack
+      result = repo_version_history.read_actual_version_from_history_file('2.3.0.0')
+      self.assertEquals(result, None)
+
+    finally:
+      os.unlink(filename)


Mime
View raw message