Bugfix:iperf benchmark run failed "privateip1 is undefined" 61/21161/2
authorzhifeng.jiang <jiang.zhifeng@zte.com.cn>
Thu, 15 Sep 2016 07:01:38 +0000 (15:01 +0800)
committerzhifeng.jiang <jiang.zhifeng@zte.com.cn>
Thu, 15 Sep 2016 07:56:44 +0000 (15:56 +0800)
modification:
    get privatedip1 var when role is '2-host'
    run on localhost once instead of twice

Change-Id: I4155f2d0c45208c4a2a0e2844fdf87acb5c8575e
Signed-off-by: zhifeng.jiang <jiang.zhifeng@zte.com.cn>
func/driver.py
func/env_setup.py
tests/driver_test.py
tests/output/hosts

index 859e7f3..726016a 100644 (file)
@@ -45,12 +45,16 @@ class Driver:
     def get_special_var_json(self, role, roles, benchmark_detail, pip_dict):
         special_json = {}
         index = roles.index(role) + 1
-        special_json.update({'role': role[0]})
-        private_ip = pip_dict[0][1] if pip_dict[0][1][0] else 'NONE'
+        private_ip = pip_dict[0][1][0] if pip_dict[0][1][0] else 'NONE'
         map(lambda x: special_json.update({'ip' + str(index): x}), role[1])\
             if benchmark_detail and (role[0] == '1-server') else None
         map(lambda x: special_json.update({'privateip' + str(index): private_ip}), role[1])\
             if benchmark_detail and (role[0] == '1-server') else None
+        special_json = self.get_special_var_json(filter(lambda x: x[0] == '1-server', roles)[0],
+                                                 roles,
+                                                 benchmark_detail,
+                                                 pip_dict) if role[0] == '2-host' else special_json
+        special_json.update({'role': role[0]})
         return special_json
 
     def run_ansible_playbook(self, benchmark, extra_vars):
index f6b1d43..96f984c 100644 (file)
@@ -54,8 +54,6 @@ class Env_setup:
             num = len(role[k])
             for x in range(num):
                 f_name_2.write(role[k][x] + '\n')
-        f_name_2.write('[localhost]\n')
-        f_name_2.write('127.0.0.1\n')
         f_name_2.close()
 
     @staticmethod
index 71f01b0..9162ca1 100644 (file)
@@ -41,7 +41,7 @@ class TestClass:
            'ip1': '10.20.0.13',
            'ip2': '',
            'installer': 'joid',
-           "privateip1": "NONE",
+           'privateip1': 'NONE',
            'workingdir': '/home',
            'fname': 'iperf_vm.yaml',
            'username': 'ubuntu',
@@ -50,9 +50,10 @@ class TestClass:
            'bandwidthGbps': 0,
            "role": "1-server"},
           {'Dest_dir': 'results',
-           'ip1': '',
+           'ip1': '10.20.0.13',
            'ip2': '',
            'installer': 'joid',
+           'privateip1': 'NONE',
            'workingdir': '/home',
            'fname': 'iperf_vm.yaml',
            'username': 'ubuntu',
@@ -61,13 +62,13 @@ class TestClass:
            'bandwidthGbps': 0,
            "role": "2-host"}])
     ])
-    @mock.patch('func.driver.AnsibleApi')
+    @mock.patch('func.driver.AnsibleApi.execute_playbook')
     def test_driver_success(self, mock_ansible, test_input, expected):
-        mock_ansible.execute_playbook.return_value = True
+        mock_ansible.return_value = True
         dri = Driver()
         dri.drive_bench(test_input[0], test_input[1], test_input[2], test_input[3],
                         test_input[4], test_input[5], test_input[6], test_input[7])
-        call_list = mock_ansible.execute_playbook.call_args_list
+        call_list = mock_ansible.call_args_list
         for call in call_list:
             call_args, call_kwargs = call
             real_call = call_args[3]
index b380e47..9b47df0 100644 (file)
@@ -1,5 +1,3 @@
 [host]
 10.20.0.29
 10.20.0.28
-[localhost]
-127.0.0.1