You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jl...@apache.org on 2017/10/09 06:01:28 UTC
[30/50] [abbrv] ambari git commit: AMBARI-22141. Intermittent failure
of test_stack_advisor_perf
AMBARI-22141. Intermittent failure of test_stack_advisor_perf
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/0ed128fb
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/0ed128fb
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/0ed128fb
Branch: refs/heads/branch-feature-AMBARI-14714
Commit: 0ed128fb6403f061e376050fae7ab41e621659f2
Parents: 5370297
Author: Attila Doroszlai <ad...@hortonworks.com>
Authored: Thu Oct 5 10:36:45 2017 +0200
Committer: Attila Doroszlai <ad...@hortonworks.com>
Committed: Thu Oct 5 19:03:32 2017 +0200
----------------------------------------------------------------------
.../2.2/common/test_stack_advisor_perf.py | 66 ++++++++++++--------
1 file changed, 40 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/0ed128fb/ambari-server/src/test/python/stacks/2.2/common/test_stack_advisor_perf.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.2/common/test_stack_advisor_perf.py b/ambari-server/src/test/python/stacks/2.2/common/test_stack_advisor_perf.py
index 82cef1b..77dbb66 100644
--- a/ambari-server/src/test/python/stacks/2.2/common/test_stack_advisor_perf.py
+++ b/ambari-server/src/test/python/stacks/2.2/common/test_stack_advisor_perf.py
@@ -23,43 +23,57 @@ import imp
from unittest import TestCase
from mock.mock import patch
-class TestHDP22StackAdvisor(TestCase):
-
- def instantiate_stack_advisor(self, testDirectory):
- default_stack_advisor_path = os.path.join(testDirectory, '../../../../../main/resources/stacks/stack_advisor.py')
- hdp_206_stack_advisor_path = os.path.join(testDirectory, '../../../../../main/resources/stacks/HDP/2.0.6/services/stack_advisor.py')
- hdp_21_stack_advisor_path = os.path.join(testDirectory, '../../../../../main/resources/stacks/HDP/2.1/services/stack_advisor.py')
- hdp_22_stack_advisor_path = os.path.join(testDirectory, '../../../../../main/resources/stacks/HDP/2.2/services/stack_advisor.py')
- hdp_206_stack_advisor_classname = 'HDP206StackAdvisor'
-
- with open(default_stack_advisor_path, 'rb') as fp:
- imp.load_module('stack_advisor', fp, default_stack_advisor_path, ('.py', 'rb', imp.PY_SOURCE))
- with open(hdp_206_stack_advisor_path, 'rb') as fp:
- imp.load_module('stack_advisor_impl', fp, hdp_206_stack_advisor_path, ('.py', 'rb', imp.PY_SOURCE))
- with open(hdp_21_stack_advisor_path, 'rb') as fp:
- imp.load_module('stack_advisor_impl', fp, hdp_21_stack_advisor_path, ('.py', 'rb', imp.PY_SOURCE))
- with open(hdp_22_stack_advisor_path, 'rb') as fp:
- stack_advisor_impl = imp.load_module('stack_advisor_impl', fp, hdp_22_stack_advisor_path, ('.py', 'rb', imp.PY_SOURCE))
- clazz = getattr(stack_advisor_impl, hdp_206_stack_advisor_classname)
+class TestStackAdvisorPerformance(TestCase):
+
+ TIME_ALLOWED = 0.2 # somewhat arbitrary, based on test runs
+
+ def setUp(self):
+ self.testDirectory = os.path.dirname(os.path.abspath(__file__))
+
+ def instantiate_stack_advisor(self):
+ self.load_stack_advisor('main/resources/stacks/stack_advisor.py', 'stack_advisor')
+
+ stack_advisors = (
+ 'main/resources/stacks/HDP/2.0.6/services/stack_advisor.py',
+ 'main/resources/stacks/HDP/2.1/services/stack_advisor.py',
+ 'main/resources/stacks/HDP/2.2/services/stack_advisor.py',
+ 'main/resources/stacks/HDP/2.3/services/stack_advisor.py',
+ 'main/resources/stacks/HDP/2.4/services/stack_advisor.py',
+ 'main/resources/stacks/HDP/2.5/services/stack_advisor.py',
+ 'main/resources/stacks/HDP/2.6/services/stack_advisor.py',
+ )
+
+ for filename in stack_advisors:
+ stack_advisor_impl = self.load_stack_advisor(filename, 'stack_advisor_impl')
+
+ current_stack_advisor_classname = 'HDP26StackAdvisor'
+ clazz = getattr(stack_advisor_impl, current_stack_advisor_classname)
return clazz()
+
+ def load_stack_advisor(self, filename, module_name):
+ path = os.path.join(self.testDirectory, '../../../../..', filename)
+ with open(path, 'rb') as fp:
+ return imp.load_module(module_name, fp, path, ('.py', 'rb', imp.PY_SOURCE))
+
+
@patch('socket.getfqdn')
def test_performance(self, getfqdn_method):
getfqdn_method.side_effect = lambda host='perf400-a-1.c.pramod-thangali.internal': host
- testDirectory = os.path.dirname(os.path.abspath(__file__))
- current_stack_advisor_path = os.path.join(testDirectory, '../../../../../main/resources/stacks/stack_advisor.py')
for folder_name in ['1', '2']:
- services = json.load(open(os.path.join(testDirectory, folder_name + '/services.json')))
- hosts = json.load(open(os.path.join(testDirectory, folder_name + '/hosts.json')))
+ with open(os.path.join(self.testDirectory, folder_name, 'services.json')) as fp:
+ services = json.load(fp)
+ with open(os.path.join(self.testDirectory, folder_name, 'hosts.json')) as fp:
+ hosts = json.load(fp)
+
+ stack_advisor = self.instantiate_stack_advisor()
- stack_advisor = self.instantiate_stack_advisor(testDirectory)
start = time.time()
recommendation = stack_advisor.recommendComponentLayout(services, hosts)
time_taken = time.time() - start
- print "time taken by current stack_advisor.py = " + str(time_taken)
-
- self.assertTrue(time_taken < 0.1)
+ print "Current stack advisor elapsed {0}, allowed {1}".format(time_taken, TestStackAdvisorPerformance.TIME_ALLOWED)
+ self.assertTrue(time_taken < TestStackAdvisorPerformance.TIME_ALLOWED) # Python 2.7: assertLess