You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by ma...@apache.org on 2015/11/10 00:38:17 UTC

aurora git commit: Callback should only be called on drained hosts.

Repository: aurora
Updated Branches:
  refs/heads/master 24f377673 -> 06d8666f0


Callback should only be called on drained hosts.

Bugs closed: AURORA-1537

Reviewed at https://reviews.apache.org/r/40104/


Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/06d8666f
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/06d8666f
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/06d8666f

Branch: refs/heads/master
Commit: 06d8666f0e2c5f7e10a1bdcfa4beaab05c10ab34
Parents: 24f3776
Author: David Robinson <dr...@twopensource.com>
Authored: Mon Nov 9 15:37:53 2015 -0800
Committer: Maxim Khutornenko <ma...@apache.org>
Committed: Mon Nov 9 15:37:53 2015 -0800

----------------------------------------------------------------------
 src/main/python/apache/aurora/admin/host_maintenance.py |  6 +++---
 .../python/apache/aurora/admin/test_host_maintenance.py | 12 ++++++++----
 2 files changed, 11 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/aurora/blob/06d8666f/src/main/python/apache/aurora/admin/host_maintenance.py
----------------------------------------------------------------------
diff --git a/src/main/python/apache/aurora/admin/host_maintenance.py b/src/main/python/apache/aurora/admin/host_maintenance.py
index cfb13de..677f870 100644
--- a/src/main/python/apache/aurora/admin/host_maintenance.py
+++ b/src/main/python/apache/aurora/admin/host_maintenance.py
@@ -161,11 +161,11 @@ class HostMaintenance(object):
     """Perform a given operation on a list of hosts that are ready for maintenance.
 
     :param drained_hosts: Hosts that have been drained (via _drain_hosts)
-    :type drained_hosts: gen.apache.aurora.ttypes.Hosts
+    :type drained_hosts: list of strings
     :param callback: Function to call one hostname at a time
     :type callback: function
     """
-    for hostname in drained_hosts.hostNames:
+    for hostname in drained_hosts:
       callback(hostname)
 
   def perform_maintenance(self, hostnames, grouping_function=DEFAULT_GROUPING,
@@ -215,7 +215,7 @@ class HostMaintenance(object):
       not_drained_hostnames |= self._drain_hosts(hosts)
 
       if callback:
-        self._operate_on_hosts(hosts, callback)
+        self._operate_on_hosts(hosts.hostNames - not_drained_hostnames, callback)
 
     if not_drained_hostnames:
       output = '\n'.join(list(not_drained_hostnames))

http://git-wip-us.apache.org/repos/asf/aurora/blob/06d8666f/src/test/python/apache/aurora/admin/test_host_maintenance.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/admin/test_host_maintenance.py b/src/test/python/apache/aurora/admin/test_host_maintenance.py
index 6264d0c..868dd18 100644
--- a/src/test/python/apache/aurora/admin/test_host_maintenance.py
+++ b/src/test/python/apache/aurora/admin/test_host_maintenance.py
@@ -175,9 +175,8 @@ class TestHostMaintenance(unittest.TestCase):
 
   def test_operate_on_hosts(self):
     mock_callback = mock.Mock()
-    test_hosts = Hosts(TEST_HOSTNAMES)
     maintenance = HostMaintenance(DEFAULT_CLUSTER, 'quiet')
-    maintenance._operate_on_hosts(test_hosts, mock_callback)
+    maintenance._operate_on_hosts(TEST_HOSTNAMES, mock_callback)
     assert mock_callback.call_count == 3
 
   @mock.patch("apache.aurora.admin.host_maintenance.HostMaintenance._drain_hosts",
@@ -193,6 +192,11 @@ class TestHostMaintenance(unittest.TestCase):
     mock_callback = mock.Mock()
     mock_check_sla.return_value = set()
     mock_start_maintenance.return_value = TEST_HOSTNAMES
+    drain_hosts_results = [set() for _ in TEST_HOSTNAMES]
+    drain_hosts_results[0] = set([TEST_HOSTNAMES[0]])
+    def drain_hosts_result(*args):
+      return drain_hosts_results.pop(0)
+    mock_drain_hosts.side_effect = drain_hosts_result
     maintenance = HostMaintenance(DEFAULT_CLUSTER, 'quiet')
     maintenance.perform_maintenance(TEST_HOSTNAMES, callback=mock_callback)
     mock_start_maintenance.assert_called_once_with(TEST_HOSTNAMES)
@@ -201,8 +205,8 @@ class TestHostMaintenance(unittest.TestCase):
     assert mock_drain_hosts.call_args_list == [
         mock.call(Hosts(set([hostname]))) for hostname in TEST_HOSTNAMES]
     assert mock_operate_on_hosts.call_count == 3
-    assert mock_operate_on_hosts.call_args_list == [
-        mock.call(Hosts(set([hostname])), mock_callback) for hostname in TEST_HOSTNAMES]
+    assert mock_operate_on_hosts.call_args_list == [mock.call(set(), mock_callback)] + [
+        mock.call(set([hostname]), mock_callback) for hostname in TEST_HOSTNAMES[1:]]
 
   @mock.patch("apache.aurora.admin.host_maintenance.HostMaintenance._drain_hosts",
               spec=HostMaintenance._drain_hosts)