def perform_tls_enablement_test(self, input_params): print ("Executing the test ", input_params.get('testcase_name')) file_info_dir = input_params['global_data']['file_info_dir'] is_containerized = input_params['global_data']['is_containerized'] perform_on = input_params['perform_on'] if perform_on is None or not perform_on: print ("Perform on should be mentioned either at test level " + "or test case level") msg = { 'message': 'Perform on should be mentioned either at test ' + 'level or test case level'} return (404, json.dumps([msg]), []) os_hostobj_list = input_params['os_host_list'] base_dir = os.path.dirname(cloudpulse.__file__) flist = [base_dir + "/scenario/plugins/security_pulse" + "/testcase/TLS_Enablement_Check.py"] ans_runner = ansible_runner(os_hostobj_list) container_name = None if is_containerized: container_name = input_params['input']['container_name'] result = ans_runner.execute_cmd( "python " + TMP_LOCATION + "TLS_Enablement_Check.py ", file_list=flist, container_name=container_name) Result = ans_runner.get_parsed_ansible_output(result) os.system('rm -rf ' + file_info_dir + 'output') return Result
def load(self): self.os_node_info_obj = openstack_node_info_reader( cfg.CONF.operator_test.operator_setup_file) openstack_node_list = self.os_node_info_obj.get_host_list() self.ans_runner = ansible_runner(openstack_node_list) inventory = self.ans_runner.init_ansible_inventory(openstack_node_list) self.ans_runner.set_ansible_inventory(inventory)
def load(self): self.os_node_info_obj = openstack_node_info_reader( cfg.CONF.operator_test.operator_setup_file) openstack_node_list = self.os_node_info_obj.get_host_list() self.ans_runner = ansible_runner(openstack_node_list) inventory = self.ans_runner.init_ansible_inventory(openstack_node_list) self.ans_runner.set_ansible_inventory(inventory)
def perform_mysql_tls_enablement_test(self, input_params): try: file_info_dir = input_params['global_data']['file_info_dir'] is_containerized = input_params['global_data']['is_containerized'] perform_on = input_params['perform_on'] if perform_on is None or not perform_on: print ("Perform on should be mentioned either at test level \ or test case level") message = { 'message': 'Perform on should be mentioned either at \ test level or test case level'} return (404, json.dumps([message]), []) os_hostobj_list = input_params['os_host_list'] base_dir = os.path.dirname(cloudpulse.__file__) flist = [base_dir + "/scenario/plugins/security_pulse" + "/testcase/remote_mysql_tls_enablement_check.py"] ans_runner = ansible_runner(os_hostobj_list) container_name = None if is_containerized: container_name = input_params['input']['container_name'] result = ans_runner.execute_cmd( "python " + TMP_LOCATION + "remote_mysql_tls_enablement_check.py ", file_list=flist, container_name=container_name) Result = ans_runner.get_parsed_ansible_output(result) os.system('rm -rf ' + file_info_dir + 'output') return Result except Exception as msg: print ( "Exception while executing perform_mysql_tls_enablement_test") print (msg) message = { 'message': 'Test case execution failed due to some exception'} return (404, json.dumps([message]), [])
def perform_tls_enablement_test(self, input_params): print("Executing the test ", input_params.get('testcase_name')) file_info_dir = input_params['global_data']['file_info_dir'] perform_on = input_params['perform_on'] if perform_on is None or not perform_on: print("Perform on should be mentioned either at test level " + "or test case level") return os_hostobj_list = input_params['os_host_list'] base_dir = os.path.dirname(cloudpulse.__file__) flist = [ base_dir + "/scenario/plugins/security_pulse" + "/testcase/TLS_Enablement_Check.py" ] # print os_hostobj_list ans_runner = ansible_runner(os_hostobj_list) ans_runner.execute_cmd("python " + TMP_LOCATION + "TLS_Enablement_Check.py " + TMP_LOCATION, file_list=flist) result = ans_runner.get_results() if not result: return result os.system('rm -rf ' + file_info_dir + 'output') for key in result.keys(): return result[key]
def perform_ks_admin_token_check_test(self, input_params): print ("Executing the test ", input_params.get('testcase_name')) file_info_dir = input_params['global_data']['file_info_dir'] perform_on = input_params['perform_on'] if perform_on is None or not perform_on: print ("Perform on should be mentioned either at \ test level or test case level") return os_hostobj_list = input_params['os_host_list'] base_dir = os.path.dirname(cloudpulse.__file__) flist = [base_dir + "/scenario/plugins/security_pulse/testcase/" + "keystone_admin_token_check.py"] ans_runner = ansible_runner(os_hostobj_list) ans_runner.execute_cmd("python " + TMP_LOCATION + "keystone_admin_token_check.py " + TMP_LOCATION, file_list=flist) result = ans_runner.get_results() if not result: return result result_row = [] for key in result.keys(): obj = eval(result[key]) for r in obj: result = r.split(" - ") result_row.append([result[0], result[1], result[2]]) os.system('rm -rf ' + file_info_dir + 'output') return result_row
def perform_ks_admin_token_check_test(self, input_params): print("Executing the test ", input_params.get('testcase_name')) file_info_dir = input_params['global_data']['file_info_dir'] perform_on = input_params['perform_on'] if perform_on is None or not perform_on: print("Perform on should be mentioned either at \ test level or test case level") return os_hostobj_list = input_params['os_host_list'] base_dir = os.path.dirname(cloudpulse.__file__) flist = [ base_dir + "/scenario/plugins/security_pulse/testcase/" + "keystone_admin_token_check.py" ] ans_runner = ansible_runner(os_hostobj_list) ans_runner.execute_cmd("python " + TMP_LOCATION + "keystone_admin_token_check.py " + TMP_LOCATION, file_list=flist) result = ans_runner.get_results() if not result: return result result_row = [] for key in result.keys(): obj = eval(result[key]) for r in obj: result = r.split(" - ") result_row.append([result[0], result[1], result[2]]) os.system('rm -rf ' + file_info_dir + 'output') return result_row
def perform_password_encryption_test(self, input_params): try: print ("Executing the test ", input_params.get('testcase_name')) file_info_dir = input_params['global_data']['file_info_dir'] perform_on = input_params['perform_on'] if perform_on is None or not perform_on: print ("Perform on should be mentioned either at test level \ or test case level") message = { 'Message': 'Perform on should be mentioned either at \ test level or test case level'} return (404, json.dumps([message]), []) os_hostobj_list = input_params['os_host_list'] base_dir = os.path.dirname(cloudpulse.__file__) flist = [base_dir + "/scenario/plugins/security_pulse" + "/testcase/remote_password_check.py"] ans_runner = ansible_runner(os_hostobj_list) result = ans_runner.execute_cmd( "python " + TMP_LOCATION + "remote_password_check.py ", file_list=flist) Result = ans_runner.get_parsed_ansible_output(result) os.system('rm -rf ' + file_info_dir + 'output') return Result except Exception as e: print ( "Exception occured in executing" + " perform_password_encryption_test") print (Exception, e) message = { 'Message': 'Test case execution failed due to some exception'} return (404, json.dumps([message]), [])
def perform_log_file_mode_test(self, input_params): try: print ("Executing the test ", input_params.get('testcase_name')) final_result = [] final_status = [] final_msg = [] file_info_dir = input_params['global_data']['file_info_dir'] perform_on = input_params['perform_on'] if perform_on is None or not perform_on: print ("Perform on should be mentioned either at test level \ or test case level") message = { 'Message': 'Perform on should be mentioned either at \ test level or test case level'} return (404, json.dumps([message]), []) os_hostobj_list = input_params['os_host_list'] conf_dir = input_params['conf_file_dir'] base_dir = os.path.dirname(cloudpulse.__file__) flist = [base_dir + "/scenario/plugins/security_pulse/testcase/" + "remote_logmode_check.py", "/tmp/sec_hc/dir_list"] for p in perform_on: for obj in os_hostobj_list: ans_runner = ansible_runner([obj]) if obj.getRole() == p: self.createDirList(conf_dir, file_info_dir) result = ans_runner.execute_cmd( "python " + TMP_LOCATION + "remote_logmode_check.py ", file_list=flist) Result = ans_runner.get_parsed_ansible_output(result) final_status.append(Result[0]) final_result.extend(eval(Result[1])) final_msg.extend(Result[2]) os.system( 'rm ' + file_info_dir + 'dir_list ') if 404 in final_status: return (404, final_result, final_msg) else: return (200, final_result, final_msg) except Exception: print ( "Exception occured in executing" + " perform_log_file_mode_test") message = { 'Message': 'Test case execution failed due to some exception'} return (404, json.dumps([message]), [])
def perform_tls_enablement_test(self, input_params): print("Executing the test ", input_params.get("testcase_name")) file_info_dir = input_params["global_data"]["file_info_dir"] perform_on = input_params["perform_on"] if perform_on is None or not perform_on: print("Perform on should be mentioned either at test level " + "or test case level") return os_hostobj_list = input_params["os_host_list"] base_dir = os.path.dirname(cloudpulse.__file__) flist = [base_dir + "/scenario/plugins/security_pulse" + "/testcase/TLS_Enablement_Check.py"] # print os_hostobj_list ans_runner = ansible_runner(os_hostobj_list) ans_runner.execute_cmd("python " + TMP_LOCATION + "TLS_Enablement_Check.py " + TMP_LOCATION, file_list=flist) result = ans_runner.get_results() if not result: return result os.system("rm -rf " + file_info_dir + "output") for key in result.keys(): return result[key]
def base_line(self, os_baseline_cfg): try: oscfg_reader = os_cfg.os_cfg_reader(os_baseline_cfg) oscfg_reader.setOpenstackNodeIp() oscfg_reader.printHostList() openstack_host_list = oscfg_reader.get_host_list() baseline_data = {} for host in openstack_host_list: f = open('/tmp/sec_hc/dir_list', 'w+') for dir_name in host.getDirList(): f.write(dir_name + '\n') f.close() ans_runner = ansible_runner([host]) # execute_cmd base_dir = os.path.dirname(cloudpulse.__file__) base_dir += '/scenario/plugins/security_pulse/testcase' flist = [base_dir + '/remote_baseline.py', base_dir + '/remote_filecredentials.py', '/tmp/sec_hc/dir_list' ] results = ans_runner.execute_cmd( "python " + '/tmp/sec_hc/' + "remote_baseline.py ", file_list=flist) # for node in results['contacted'].keys(): role = host.getRole() node = host.getIp() data = results['contacted'][node]['stdout'] baseline_data.update({role: eval(data)}) print (baseline_data) formated_data = json.dumps(baseline_data, indent=4) open('/tmp/sec_hc/os_allnode_baseline', 'w+').write(str(formated_data)) except Exception as e: print (e)
def perform_file_permission_check(self, input_params): try: print ("Executing the test ", input_params.get('testcase_name')) final_result = [] final_status = [] final_msg = [] file_info_dir = input_params['global_data']['file_info_dir'] is_containerized = input_params['global_data']['is_containerized'] perform_on = input_params['perform_on'] if perform_on is None or not perform_on: print ("Perform on should be mentioned either at test level" + " or test case level") msg = {'message': 'Perform on should be mentioned either at' + ' test level or test case level'} return (404, json.dumps([msg]), []) os_hostobj_list = input_params['os_host_list'] base_dir = os.path.dirname(cloudpulse.__file__) baseline_file = input_params['baseline_file'] flist = [base_dir + "/scenario/plugins/security_pulse/testcase/" + "remote_file_check.py", base_dir + "/scenario/plugins/security_pulse/testcase/" + "remote_filecredentials.py", "/tmp/sec_hc/dir_list", "/tmp/sec_hc/os_baseline"] def ConsolidateResults(flist, container_name=None): result = ans_runner.execute_cmd( "python " + TMP_LOCATION + "remote_file_check.py ", file_list=flist, container_name=container_name) Result = ans_runner.get_parsed_ansible_output(result) final_status.append(Result[0]) final_result.extend(eval(Result[1])) final_msg.extend(Result[2]) for p in perform_on: for obj in os_hostobj_list: ans_runner = ansible_runner([obj]) if obj.getRole() == p: os_dir = input_params[p + '_dir'] all_baseline = eval(open(baseline_file).read()) baseline = all_baseline[p] open( file_info_dir + 'os_baseline', 'w').write( str(baseline)) # if container, make dir list and copy to container if is_containerized: for container, os_dir in os_dir.items(): self.createDirList( os_dir, file_info_dir) ConsolidateResults( flist, container_name=container) os.system('rm ' + file_info_dir + 'dir_list ') else: os_dir_list = [] [os_dir_list.extend(d) for d in os_dir.values()] # os_dir = os_dir.values() self.createDirList(os_dir_list, file_info_dir) # flist.append("/tmp/sec_hc/dir_list") ConsolidateResults(flist) os.system( 'rm -rf ' + file_info_dir + 'os_baseline ' + file_info_dir + 'output') os.system( 'rm ' + file_info_dir + 'dir_list ') if 404 in final_status: return (404, final_result, final_msg) else: return (200, final_result, final_msg) except Exception as e: print ("exception in perform_file_permission_check is--", e) os.system( 'rm -rf ' + file_info_dir + 'os_baseline ' + file_info_dir + 'output') os.system( 'rm ' + file_info_dir + 'dir_list ') print ( "Exception occured in executing" + " perform_file_permission_check") message = { 'message': 'Test case execution failed due to some exception'} return (404, json.dumps([message]), [])