def test_C_add_collection_to_policy(self): u""" Create policy, create collection and add collection to policy """ policy_name = gen_random_string(6) collection_name = gen_random_string(6) driver = self.driver create_policy(driver, policy_name, "Applications", description="Policy for test") create_collection(driver, collection_name, collection_name, group="All", description="Collection for test") add_collection_to_policy(driver, policy_name, collection_name) element = driver.find_element_by_xpath( '//td[contains(.,"Correct: add the collection in the policy")]') self.assertIsInstance(element, WebElement)
def test_B_service_critical(self): u""" Comprobar que un servicio padre hereda el estado del hijo, en este caso "warning" """ father_service_name = gen_random_string(6) service_name = gen_random_string(6) driver = self.driver #Creamos el servicio añadiendo el modulo ok y warning y el servicio será critical create_service(driver, service_name, "Applications", self.agent_name, description=service_name, mode="manual", critical="1", warning="0.5") add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_ok_1_name, description=self.module_ok_1_name, ok_weight="0.5") add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_critical_1_name, description=self.module_critical_1_name, critical_weight="0.5") #Creamos el servicio padre create_service(driver, father_service_name, "Applications", self.agent_name, description="this is the father service", mode="manual") add_elements_to_service(driver, father_service_name, "Service", service_to_add=father_service_name, description=service_name, ok_weight="0.2") force_service(driver, service_name) force_service(driver, father_service_name) search_service(driver, father_service_name, go_to_service=False) element = driver.find_element_by_xpath( '//td/img[@data-title="Critical"]') self.assertIsInstance(element, WebElement) logging.info("test_B_service_critical is correct")
def test_B_ACL_reports(self): u""" Creates a user with Chief Operator permissions over the Applications group. Then creates two reports: one in the Applications group and other in the Servers group. Then, it checks that the given user can only see the Application report """ user_name = gen_random_string(6) report_name_A = agent_name = gen_random_string(6) report_name_B = agent_name = gen_random_string(6) driver = self.driver self.login() #Creates a user with Chief Operator - Applications profile profile_list = [] profile_list.append(("Chief Operator", "Applications", [])) create_user(driver, user_name, user_name, email=user_name + '@pandorafms.com', profile_list=profile_list) #Creates report create_report(driver, report_name_A, "Applications") create_report(driver, report_name_B, "Servers") #Logout self.logout() #Login self.login(user=user_name, passwd=user_name) #Check that the report is visible click_menu_element(driver, "Custom reporting") driver.find_element_by_id('text-search').clear() driver.find_element_by_id('text-search').send_keys(report_name_A) driver.find_element_by_id('submit-search_submit').click() self.assertEqual(is_element_present(driver, By.ID, 'report_list-0'), True) #Check that the report is not visible click_menu_element(driver, "Custom reporting") driver.find_element_by_id('text-search').clear() driver.find_element_by_id('text-search').send_keys(report_name_B) driver.find_element_by_id('submit-search_submit').click() time.sleep(6) element = driver.find_element_by_xpath( '//td[contains(.,"No data found.")]') self.assertIsInstance(element, WebElement) #Delete reports self.logout()
def test_A_create_network_component(self): u""" Create and search new network component module """ logging.basicConfig(filename="Network_components.log", level=logging.INFO, filemode='w') driver = self.driver self.login() detect_and_pass_all_wizards(driver) agent_name = gen_random_string(6) network_component_name = gen_random_string(6) activate_api(driver,"1234") params = [agent_name,"127.0.0.1","0","4","0","300","2","pandorafms","2","0","0","pruebas"] create_agent_api(driver,params,user="******",pwd="pandora") lista = driver.current_url.split('/') url = lista[0]+'//'+lista[2]+'/pandora_console' driver.get(url) create_network_component(driver,network_component_name,"Remote TCP network agent, boolean data","Network Management","Application",min_warning=10,max_critical=100,description="New network component by test") search_agent(driver,agent_name,go_to_agent=True) driver.find_element_by_xpath('//ul[@class="mn"]/li/a/img[@data-title="Manage"]').click() driver.find_element_by_xpath('//ul[@class="mn"]/li/a/img[@data-title="Modules"]').click() Select(driver.find_element_by_id("moduletype")).select_by_visible_text("Create a new network server module") driver.find_element_by_xpath('//*[@id="main"]/form/table/tbody/tr/td[5]/input').click() driver.find_element_by_xpath('//a[contains(.,"Advanced options")]').click() Select(driver.find_element_by_id("network_component_group")).select_by_visible_text("Network Management") time.sleep(3) Select(driver.find_element_by_id("network_component")).select_by_visible_text(network_component_name) driver.find_element_by_id("submit-crtbutton").click() search_module (driver,agent_name,network_component_name,go_to_module=False) self.assertEqual(network_component_name in driver.page_source,True) logging.info("test_A_create_network_component is correct")
def test_D_plugin_component_with_parameters(self): u""" Create and search new plug-in component with parameters """ driver = self.driver agent_name = gen_random_string(6) plugin_component_name = gen_random_string(6) activate_api(driver,"1234") params = [agent_name,"127.0.0.1","0","4","0","300","2","pandorafms","2","0","0","pruebas"] create_agent_api(driver,params,user="******",pwd="pandora") lista = driver.current_url.split('/') url = lista[0]+'//'+lista[2]+'/pandora_console' driver.get(url) create_plugin_component(driver,plugin_component_name,"Generic numeric","Network Management","Application",description="New plugin component",plugin="UDP port check",target_ip="127.0.0.1",port="80") search_agent(driver,agent_name,go_to_agent=True) driver.find_element_by_xpath('//ul[@class="mn"]/li/a/img[@data-title="Manage"]').click() driver.find_element_by_xpath('//ul[@class="mn"]/li/a/img[@data-title="Modules"]').click() Select(driver.find_element_by_id("moduletype")).select_by_visible_text("Create a new plug-in server module") driver.find_element_by_xpath('//*[@id="main"]/form/table/tbody/tr/td[5]/input').click() driver.find_element_by_xpath('//a[contains(.,"Advanced options")]').click() Select(driver.find_element_by_id("network_component_group")).select_by_visible_text("Network Management") time.sleep(3) Select(driver.find_element_by_id("network_component")).select_by_visible_text(plugin_component_name) self.assertEqual("80" in driver.page_source,True) driver.find_element_by_id("submit-crtbutton").click() search_module (driver,agent_name,plugin_component_name) self.assertEqual(plugin_component_name in driver.page_source,True) logging.info("test_D_plugin_component_with_parameters is correct")
def test_C_edit_agent_description_bulk_operation(self): u""" Create two agents and edit description with bulk operation """ agent_name_1 = gen_random_string(6) agent_name_2 = gen_random_string(6) driver = self.driver activate_api(driver, "1234") params = [ agent_name_1, "127.0.0.1", "0", "4", "0", "300", "2", "pandorafms", "2", "0", "0", "pruebas" ] create_agent_api(driver, params, user="******", pwd="pandora") params = [ agent_name_2, "127.0.0.1", "0", "4", "0", "300", "2", "pandorafms", "2", "0", "0", "pruebas" ] create_agent_api(driver, params, user="******", pwd="pandora") lista = driver.current_url.split('/') url = lista[0] + '//' + lista[2] + '/pandora_console' driver.get(url) agent_names_list = [agent_name_1, agent_name_2] edit_agents_in_bulk( driver, agent_names_list, new_description="test C edit description bulk operation") self.assertRegexpMatches(self.close_alert_and_get_its_text(), r"^Are you sure[\s\S]$") self.assertEqual( self.driver.find_element_by_xpath( '//div[@id="main"]//td[contains(.,"Agents updated successfully(2)")]' ).text, "Agents updated successfully(2)") search_agent(driver, agent_name_1, go_to_agent=True) self.assertEqual( "test C edit description bulk operation" in driver.page_source, True) logging.info("test_C_edit_agent_description_bulk_operation is correct")
def atest_A_create_planned_downtime_Quiet(self): u""" Create and search planned downtime quiet """ logging.basicConfig(filename="Planned_downtime.log", level=logging.INFO, filemode='w') driver = self.driver self.login() detect_and_pass_all_wizards(driver) planned_name = gen_random_string(6) create_planned_downtime(driver, planned_name, "Applications", "Quiet", "Once", description=planned_name) time.sleep(10) search_planned_downtime(driver, planned_name) element = driver.find_element_by_xpath('//img[@data-title="Running"]') self.assertIsInstance(element, WebElement) logging.info("atest_A_create_planned_downtime_Quiet is correct")
def test_D_Apply_policy_to_agents(self): u""" Create two agent, create a policy, create two modules in policy and apply policy in new agents, check that modules is created in agents """ policy_name = gen_random_string(6) agent_name_1 = gen_random_string(6) agent_name_2 = gen_random_string(6) module_name_1 = gen_random_string(6) module_name_2 = gen_random_string(6) driver = self.driver create_agent(driver,agent_name_1,description="First agent by test") create_agent(driver,agent_name_2,description="Second agent 2 by test") create_policy(driver,policy_name,"Applications",description="This is policy by test") add_module_policy(driver,policy_name,"network_server",driver,module_name=module_name_1,component_group="Network Management",network_component="Host Alive") add_module_policy(driver,policy_name,"network_server",driver,module_name=module_name_2,component_group="Network Management",network_component="Host Latency") list_agent = (agent_name_1,agent_name_2) apply_policy_to_agent(driver,policy_name,list_agent) search_agent(driver,agent_name_1,go_to_agent=True) driver.find_element_by_xpath('//*[@id="menu_tab"]/ul/li[1]/a/img').click() driver.find_element_by_xpath('//*[@id="menu_tab"]/ul/li[3]/a/img').click() module = driver.find_element_by_xpath('//td[contains(.,"'+module_name_1+'")]') self.assertIsInstance(module,WebElement) module = driver.find_element_by_xpath('//td[contains(.,"'+module_name_2+'")]') self.assertIsInstance(module,WebElement) search_agent(driver,agent_name_2,go_to_agent=True) driver.find_element_by_xpath('//*[@id="menu_tab"]/ul//img[@data-title="Manage"]').click() driver.find_element_by_xpath('//ul[@class="mn"]/li/a/img[@data-title="Modules"]').click() module = driver.find_element_by_xpath('//td[contains(.,"'+module_name_1+'")]') self.assertIsInstance(module,WebElement) module = driver.find_element_by_xpath('//td[contains(.,"'+module_name_2+'")]') self.assertIsInstance(module,WebElement)
def test_A_delete_agent_bulk_operations(self): u""" Creation two agents and delete this agents using bulk operation Ticket Associated = 3831 """ logging.basicConfig(filename="Bulk_operations.log", level=logging.INFO, filemode='w') agent_name_1 = gen_random_string(6) agent_name_2 = gen_random_string(6) driver = self.driver self.login() detect_and_pass_all_wizards activate_api(driver, "1234") params = [ agent_name_1, "127.0.0.1", "0", "4", "0", "300", "2", "pandorafms", "2", "0", "0", "pruebas" ] create_agent_api(driver, params, user="******", pwd="pandora") params = [ agent_name_2, "127.0.0.1", "0", "4", "0", "300", "2", "pandorafms", "2", "0", "0", "pruebas" ] create_agent_api(driver, params, user="******", pwd="pandora") lista = driver.current_url.split('/') url = lista[0] + '//' + lista[2] + '/pandora_console' driver.get(url) delete_agent(driver, [agent_name_1, agent_name_2]) self.assertRegexpMatches(self.close_alert_and_get_its_text(), r"^Are you sure[\s\S]$") self.assertEqual( self.driver.find_element_by_xpath( '//div[@id="main"]//td[contains(.,"Successfully deleted (2)")]' ).text, "Successfully deleted (2)") logging.info("test_A_delete_agent_bulk_operations is correct")
def test_B_simple_service(self): u""" Add 3 modules in Simple service, two normal and one in critical, force service and check that service is critical. """ service_name = gen_random_string(6) driver = self.driver #Creamos servicio en modo simple create_service(driver, service_name, "Applications", self.agent_name, description=service_name, mode="simple") # añadimos los 3 modulos al servicio un router y el warning router critico printer no critico y apache critico add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_critical_1_name, description=self.module_critical_1_name, is_critical=True) add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_critical_2_name, description=self.module_critical_2_name) add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_critical_3_name, description=self.module_critical_3_name, is_critical=True) # Forzamos el servicio y comprobamos que el estado es warning force_service(driver, service_name) search_service(driver, service_name, go_to_service=False) element = driver.find_element_by_xpath( '//td/img[@data-title="Critical"]') self.assertIsInstance(element, WebElement) logging.info("test_B_simple_service is correct")
def avoid_test_D_delete_planned_downtime(self): driver = self.driver planned_name = gen_random_string(6) create_planned_downtime(driver, planned_name, "Applications", "Quiet", "Once", description=planned_name) delete_planned_downtime(driver, planned_name)
def atest_D_delete_planned_downtime(self): driver = self.driver planned_name = gen_random_string(6) create_planned_downtime(driver, planned_name, "Applications", "Quiet", "Once", description=planned_name) delete_planned_downtime(driver, planned_name) logging.info("atest_D_delete_planned_downtime is correct")
def test_C_auto_service_warning(self): u""" Utilizando el agente y modulos necesarios, creamos un servicio de tipo auto para añadirle el modulo warning y añadimos un critical y warning weight para que de un valor entre 0.5 y 1 y así obtener un servicio tipo auto en warning """ service_name = gen_random_string(6) driver = self.driver #Creamos el servicio que será de tipo warning create_service(driver, service_name, "Applications", self.agent_name, description=service_name, mode="manual", critical="1", warning="0.5") add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_warning_1_name, description=self.module_warning_1_name, warning_weight="0.3") add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_critical_1_name, description=self.module_critical_1_name, critical_weight="0.3") force_service(driver, service_name) search_service(driver, service_name, go_to_service=False) element = driver.find_element_by_xpath( '//td/img[@data-title="Warning"]') self.assertIsInstance(element, WebElement) logging.info("test_C_auto_service_warning is correct")
def test_B_auto_service_critical(self): u""" Utilizando el agente y modulos necesarios, creamos un servicio de tipo auto para añadirle el modulo warning y Ok y al dar valor mayor de 1 tendremos el servicio en critical """ service_name = gen_random_string(6) driver = self.driver #Creamos el servicio añadiendo el modulo ok y warning y el servicio será critical create_service(driver, service_name, "Applications", self.agent_name, description=service_name, mode="manual", critical="1", warning="0.5") add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_ok_1_name, description=self.module_ok_1_name, ok_weight="0.5") add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_critical_1_name, description=self.module_critical_1_name, critical_weight="0.5") force_service(driver, service_name) search_service(driver, service_name, go_to_service=False) element = driver.find_element_by_xpath( '//td/img[@data-title="Critical"]') self.assertIsInstance(element, WebElement) logging.info("test_B_auto_service_critical is correct")
def avoid_test_C_create_planned_downtime_disabled_only_alerts(self): u""" Create and search planned downtime disabled only alerts """ driver = self.driver planned_name = gen_random_string(6) create_planned_downtime(driver, planned_name, "Applications", "Disabled only Alerts", "Once", description=planned_name) time.sleep(10) search_planned_downtime(driver, planned_name) element = driver.find_element_by_xpath('//img[@data-title="Running"]') self.assertIsInstance(element, WebElement)
def avoid_test_A_create_planned_downtime_Quiet(self): u""" Create and search planned downtime quiet """ driver = self.driver self.login() detect_and_pass_all_wizards(driver) planned_name = gen_random_string(6) create_planned_downtime(driver, planned_name, "Applications", "Quiet", "Once", description=planned_name) time.sleep(10) search_planned_downtime(driver, planned_name) element = driver.find_element_by_xpath('//img[@data-title="Running"]') self.assertIsInstance(element, WebElement)
def atest_B_create_planned_downtime_disabled_agents(self): u""" Create and search planned downtime disabled agents """ driver = self.driver planned_name = gen_random_string(6) create_planned_downtime(driver, planned_name, "Applications", "Disabled Agents", "Once", description=planned_name) time.sleep(10) search_planned_downtime(driver, planned_name) element = driver.find_element_by_xpath('//img[@data-title="Running"]') self.assertIsInstance(element, WebElement) logging.info( "atest_B_create_planned_downtime_disabled_agents is correct")
def atest_E_quiet_functionality(self): driver = self.driver planned_name = gen_random_string(6) agent_name_A = gen_random_string(6) agent_name_B = gen_random_string(6) module_name_A_A = gen_random_string(6) module_name_A_B = gen_random_string(6) module_name_B_A = gen_random_string(6) module_name_B_B = gen_random_string(6) create_agent(driver, agent_name_A, ip="127.0.0.1", group="Applications") create_agent(driver, agent_name_B, ip="127.0.0.1", group="Applications") create_module('network_server', driver, agent_name=agent_name_A, module_name=module_name_A_A, component_group='Network Management', network_component='Host Alive') create_module('network_server', driver, agent_name=agent_name_A, module_name=module_name_A_B, component_group='Network Management', network_component='Host Latency') create_module('network_server', driver, agent_name=agent_name_B, module_name=module_name_B_A, component_group='Network Management', network_component='Host Alive') create_module('network_server', driver, agent_name=agent_name_B, module_name=module_name_B_B, component_group='Network Management', network_component='Host Alive') assign_alert_template_to_module(driver, agent_name_A, module_name_A_A, 'Critical condition') assign_alert_template_to_module(driver, agent_name_A, module_name_A_B, 'Critical condition') assign_alert_template_to_module(driver, agent_name_B, module_name_B_A, 'Critical condition') assign_alert_template_to_module(driver, agent_name_B, module_name_B_B, 'Critical condition') #Little hack to allow the planned downtime to be edited fifteen_seconds_later = datetime.datetime.now() + datetime.timedelta( seconds=15) fifteen_seconds_later_to_pandora = str( fifteen_seconds_later.hour) + ":" + str( fifteen_seconds_later.minute) + ":" + str( fifteen_seconds_later.second) create_planned_downtime(driver, planned_name, "Applications", "Quiet", "Once", hour_from=fifteen_seconds_later_to_pandora, description=planned_name, agent_module_list=[ (agent_name_A, [module_name_A_A]), (agent_name_B, [module_name_B_A]) ]) #We wait 10 seconds to the planned downtime to start. Since we do not specify a date, default dates are from now to one hour in the future. time.sleep(40) #Is the planned downtime running? search_planned_downtime(driver, planned_name) element = driver.find_element_by_xpath('//img[@data-title="Running"]') self.assertIsInstance(element, WebElement) force_alert_of_module(driver, agent_name_A, module_name_A_A, 'Critical condition') force_alert_of_module(driver, agent_name_A, module_name_A_B, 'Critical condition') force_alert_of_module(driver, agent_name_B, module_name_B_A, 'Critical condition') force_alert_of_module(driver, agent_name_B, module_name_B_B, 'Critical condition') search_events(driver, agent_name=agent_name_A, module_name=module_name_A_A) event_who_should_not_be_present = driver.find_elements_by_xpath( '//tbody/tr[td[3][contains(.,"Alert fired")] and td[4][contains(.,"' + agent_name_A + '")]]') self.assertEqual(event_who_should_not_be_present, []) search_events(driver, agent_name=agent_name_A, module_name=module_name_A_B) event_who_should_be_present = driver.find_elements_by_xpath( '//tbody/tr[td[3][contains(.,"Alert fired")] and td[4][contains(.,"' + agent_name_A + '")]]') self.assertNotEqual(event_who_should_be_present, []) search_events(driver, agent_name=agent_name_B, module_name=module_name_B_A) event_who_should_not_be_present_b = driver.find_elements_by_xpath( '//tbody/tr[td[3][contains(.,"Alert fired")] and td[4][contains(.,"' + agent_name_B + '")]]') self.assertEqual(event_who_should_not_be_present_b, []) search_events(driver, agent_name=agent_name_B, module_name=module_name_B_B) event_who_should_be_present_b = driver.find_elements_by_xpath( '//tbody/tr[td[3][contains(.,"Alert fired")] and td[4][contains(.,"' + agent_name_B + '")]]') self.assertNotEqual(event_who_should_be_present_b, []) logging.info("atest_E_quiet_functionality is correct")
def test_pan3(self): driver = self.driver login(driver, "admin", "pandora", self.base_url) click_menu_element(driver, "Agent detail") driver.find_element_by_id("submit-crt").click() driver.find_element_by_id("text-agente").click() driver.find_element_by_id("text-agente").clear() driver.find_element_by_id("text-agente").send_keys( gen_random_string(10, preffix="PAN3_")) driver.find_element_by_id("text-direccion").click() driver.find_element_by_id("text-direccion").clear() driver.find_element_by_id("text-direccion").send_keys("127.0.0.1") driver.find_element_by_id("submit-crtbutton").click() driver.find_element_by_css_selector( "li.nomn.tab_godmode > a > img.forced_title").click() driver.find_element_by_id("moduletype").click() Select(driver.find_element_by_id("moduletype")).select_by_visible_text( "Create a new network server module") driver.find_element_by_name( "updbutton").click() #Alternative XPATH: //*[@class="datos"]/input driver.find_element_by_name("updbutton").click( ) #IMPORTANT! It's needed to click TWICE! One for leave the combo, and other for clicking the button driver.find_element_by_id("id_module_type").click() combo = driver.find_element_by_id("id_module_type") Select(combo).select_by_visible_text( "Remote ICMP network agent, boolean data") combo.click() driver.find_element_by_id("text-name").clear() driver.find_element_by_id("text-name").send_keys("ping test") driver.find_element_by_id("submit-crtbutton").click() driver.find_element_by_xpath( '//*[@id="menu_tab"]//a[contains(@href,"ver_agente")]').click() max_retries = 3 i = 1 element_text = "" while ( i <= max_retries ): # Temporary workaround to weird StaleElementReferenceException exceptions due Javascript altering the DOM try: element_text = refresh_N_times_until_find_element( driver, 5, "table1-1-7", how=By.ID).text self.assertEqual( "1", element_text.lstrip().rstrip() ) # The lstrip.rstrip is done because if not, this error is raised: "'1' != u'1 '" print "found it" break except StaleElementReferenceException as e_stale: i = i + 1 print "found stale" if i > max_retries: print "giving up" self.verificationErrors.append(str(e_stale)) break else: print "retrying" next except AssertionError as e: print "assertion error" self.verificationErrors.append(str(e)) break
class Policies(PandoraWebDriverTestCase): test_name = u'Policies' test_description = u'Policy tests' tickets_associated = [] policy_name = gen_random_string(6) network_server_module_name = gen_random_string(6) @is_enterprise def test_A_create_policy(self): u""" Create a policy and verify that it is created """ driver = self.driver self.login() detect_and_pass_all_wizards(driver) create_policy(driver,self.policy_name,"Applications",description="Policy for test") search_policy(driver,self.policy_name,go_to_policy=False) element = driver.find_element_by_xpath('//a[contains(.,"'+self.policy_name+'")]') self.assertIsInstance(element,WebElement) @is_enterprise def test_B_add_network_server_module_to_policy(self): u""" Add network server module to previous policy """ driver = self.driver add_module_policy(driver,self.policy_name,"network_server",driver,module_name=self.network_server_module_name,component_group="Network Management",network_component="Host Alive") element = driver.find_element_by_xpath('//td[contains(.,"uccessfully")]') self.assertIsInstance(element,WebElement) @is_enterprise def test_C_add_collection_to_policy(self): u""" Create policy, create collection and add collection to policy """ policy_name = gen_random_string(6) collection_name = gen_random_string(6) driver = self.driver create_policy(driver,policy_name,"Applications",description="Policy for test") create_collection(driver,collection_name,collection_name,group="All",description="Collection for test") add_collection_to_policy(driver,policy_name,collection_name) element = driver.find_element_by_xpath('//td[contains(.,"Correct: add the collection in the policy")]') self.assertIsInstance(element,WebElement) @is_enterprise def test_D_Apply_policy_to_agents(self): u""" Create two agent, create a policy, create two modules in policy and apply policy in new agents, check that modules is created in agents """ policy_name = gen_random_string(6) agent_name_1 = gen_random_string(6) agent_name_2 = gen_random_string(6) module_name_1 = gen_random_string(6) module_name_2 = gen_random_string(6) driver = self.driver create_agent(driver,agent_name_1,description="First agent by test") create_agent(driver,agent_name_2,description="Second agent 2 by test") create_policy(driver,policy_name,"Applications",description="This is policy by test") add_module_policy(driver,policy_name,"network_server",driver,module_name=module_name_1,component_group="Network Management",network_component="Host Alive") add_module_policy(driver,policy_name,"network_server",driver,module_name=module_name_2,component_group="Network Management",network_component="Host Latency") list_agent = (agent_name_1,agent_name_2) apply_policy_to_agent(driver,policy_name,list_agent) search_agent(driver,agent_name_1,go_to_agent=True) driver.find_element_by_xpath('//*[@id="menu_tab"]/ul/li[1]/a/img').click() driver.find_element_by_xpath('//*[@id="menu_tab"]/ul/li[3]/a/img').click() module = driver.find_element_by_xpath('//td[contains(.,"'+module_name_1+'")]') self.assertIsInstance(module,WebElement) module = driver.find_element_by_xpath('//td[contains(.,"'+module_name_2+'")]') self.assertIsInstance(module,WebElement) search_agent(driver,agent_name_2,go_to_agent=True) driver.find_element_by_xpath('//*[@id="menu_tab"]/ul//img[@data-title="Manage"]').click() driver.find_element_by_xpath('//ul[@class="mn"]/li/a/img[@data-title="Modules"]').click() module = driver.find_element_by_xpath('//td[contains(.,"'+module_name_1+'")]') self.assertIsInstance(module,WebElement) module = driver.find_element_by_xpath('//td[contains(.,"'+module_name_2+'")]') self.assertIsInstance(module,WebElement)
def test_G_edit_module_threshold_in_bulk(self): u""" Create two agents and one module in this agents. With bulk operation, change FF Threshold with bulk operation Ticket Associated = 4059 """ agent_name_1 = gen_random_string(6) agent_name_2 = gen_random_string(6) module_name_1 = gen_random_string(6) driver = self.driver activate_api(driver, "1234") params = [ agent_name_1, "127.0.0.1", "0", "4", "0", "300", "2", "pandorafms", "2", "0", "0", "pruebas" ] create_agent_api(driver, params, user="******", pwd="pandora") params = [ agent_name_2, "127.0.0.1", "0", "4", "0", "300", "2", "pandorafms", "2", "0", "0", "pruebas" ] create_agent_api(driver, params, user="******", pwd="pandora") params = [ agent_name_1, module_name_1, "0", "6", "1", "0", "0", "0", "0", "0", "0", "0", "0", "129.99.40.1", "0", "0", "180", "0", "0", "0", "0", "Host_Alive" ] add_network_module_to_agent_api(driver, params, user="******", pwd="pandora", apipwd="1234") params = [ agent_name_2, module_name_1, "0", "6", "1", "0", "0", "0", "0", "0", "0", "0", "0", "129.99.40.1", "0", "0", "180", "0", "0", "0", "0", "Host_Alive" ] add_network_module_to_agent_api(driver, params, user="******", pwd="pandora", apipwd="1234") lista = driver.current_url.split('/') url = lista[0] + '//' + lista[2] + '/pandora_console' driver.get(url) agent_name_list = [agent_name_1, agent_name_2] module_name_list = [module_name_1] ff_threshold_list = [0, 1, 2] edit_modules_in_bulk(driver, module_name_list, agent_name_list, ff_threshold_list=ff_threshold_list) self.assertRegexpMatches(self.close_alert_and_get_its_text(), r"^Are you sure[\s\S]$") search_module(driver, agent_name_1, module_name_1, go_to_module=True) driver.find_element_by_xpath( '//a[contains(.,"Advanced options")]').click() element = driver.find_element_by_xpath('//tr//td[contains(.,"0")]') self.assertIsInstance(element, WebElement) element = driver.find_element_by_xpath('//tr//td[contains(.,"1")]') self.assertIsInstance(element, WebElement) element = driver.find_element_by_xpath('//tr//td[contains(.,"2")]') self.assertIsInstance(element, WebElement)
def test_E_edit_module_group_in_bulk(self): u""" Create two agents and one module in this agents. With bulk operation, change module group that this module """ agent_name_1 = gen_random_string(6) agent_name_2 = gen_random_string(6) module_name_1 = gen_random_string(6) driver = self.driver activate_api(driver, "1234") params = [ agent_name_1, "127.0.0.1", "0", "4", "0", "300", "2", "pandorafms", "2", "0", "0", "pruebas" ] create_agent_api(driver, params, user="******", pwd="pandora") params = [ agent_name_2, "127.0.0.1", "0", "4", "0", "300", "2", "pandorafms", "2", "0", "0", "pruebas" ] create_agent_api(driver, params, user="******", pwd="pandora") params = [ agent_name_1, module_name_1, "0", "6", "1", "0", "0", "0", "0", "0", "0", "0", "0", "129.99.40.1", "0", "0", "180", "0", "0", "0", "0", "Host_Alive" ] add_network_module_to_agent_api(driver, params, user="******", pwd="pandora", apipwd="1234") params = [ agent_name_2, module_name_1, "0", "6", "1", "0", "0", "0", "0", "0", "0", "0", "0", "129.99.40.1", "0", "0", "180", "0", "0", "0", "0", "Host_Alive" ] add_network_module_to_agent_api(driver, params, user="******", pwd="pandora", apipwd="1234") lista = driver.current_url.split('/') url = lista[0] + '//' + lista[2] + '/pandora_console' driver.get(url) agent_name_list = [agent_name_1, agent_name_2] module_name_list = [module_name_1] edit_modules_in_bulk(driver, module_name_list, agent_name_list, new_module_group="Users") self.assertRegexpMatches(self.close_alert_and_get_its_text(), r"^Are you sure[\s\S]$") search_module(driver, agent_name_1, module_name_1, go_to_module=True) self.assertEqual("Users" in driver.page_source, True)
def test_ACL_propagation(self): u""" ACL Propagation test: Creates one group "A" with ACL propagation, then a group "B" son of "A" with no ACL propagation, and finally group "C". The test asserts if a user with privileges to "A" can see the agent of "B" but no agents of "C". """ group_name_A = gen_random_string(6) group_name_B = gen_random_string(6) group_name_C = gen_random_string(6) agent_name_A = gen_random_string(6) agent_name_B = gen_random_string(6) user_name = gen_random_string(6) driver = self.driver self.login() detect_and_pass_all_wizards(driver) create_agent_group( driver, group_name_A, propagate_acl=True, description="Group A, with propagate ACL, son of ALL") create_agent_group(driver, group_name_B, parent_group=group_name_A, description="Group B, son of A") create_agent_group(driver, group_name_C, parent_group=group_name_B, description="Group C, son of B") create_agent(driver, agent_name_A, description="Agent in group B", group=group_name_B) create_agent(driver, agent_name_B, description="Agent in group C", group=group_name_C) l = [("Chief Operator", group_name_A, [])] create_user(driver, user_name, "pandora", profile_list=l) self.logout() self.login(user=user_name) detect_and_pass_all_wizards(driver) #Is the agent listed in the agent list? search_agent(driver, agent_name_A, go_to_agent=False) element = driver.find_element_by_xpath('//a[contains(.,"' + agent_name_A + '")]') self.assertIsInstance(element, WebElement) #Is the agent accesible for the user? search_agent(driver, agent_name_A, go_to_agent=True) element = driver.find_element_by_xpath( '//*[@id="agent_contact_main"]/thead/tr/th') self.assertIsInstance(element, WebElement) #Is the agent invisible to the user? (It should be invisible) search_agent(driver, agent_name_B, go_to_agent=False) element = driver.find_elements_by_xpath('//a[contains(.,"' + agent_name_B + '")]') self.assertEqual(element, [])
def test_A_simple_service(self): u""" Add 3 modules in Simple service, two critical and one in warning, force service and check that service is warning. """ service_name = gen_random_string(6) driver = self.driver self.login() detect_and_pass_all_wizards(driver) activate_api(driver, "1234") params = [ self.agent_name, "127.0.0.1", "0", "4", "0", "300", "2", "pandorafms", "2", "0", "0", "pruebas" ] create_agent_api(driver, params, user="******", pwd="pandora") # creamos 3 modulos uno que este router ping (127.0.0.3) y otro ping printer (127.0.0.1) y Apache server -> Host latency min_warning 0.01 time.sleep(3) params = [ self.agent_name, self.module_critical_1_name, "0", "6", "1", "0", "0", "0", "0", "0", "0", "0", "0", "129.99.40.1", "0", "0", "180", "0", "0", "0", "0", "Host_Alive" ] add_network_module_to_agent_api(driver, params, user="******", pwd="pandora", apipwd="1234") time.sleep(3) params = [ self.agent_name, self.module_critical_2_name, "0", "6", "1", "0", "0", "0", "0", "0", "0", "0", "0", "129.99.40.1", "0", "0", "180", "0", "0", "0", "0", "Host_Alive" ] add_network_module_to_agent_api(driver, params, user="******", pwd="pandora", apipwd="1234") time.sleep(3) params = [ self.agent_name, self.module_critical_3_name, "0", "6", "1", "0", "0", "0", "0", "0", "0", "0", "0", "129.99.40.1", "0", "0", "180", "0", "0", "0", "0", "Host_Alive" ] add_network_module_to_agent_api(driver, params, user="******", pwd="pandora", apipwd="1234") time.sleep(3) params = [ self.agent_name, self.module_normal_1_name, "0", "6", "1", "0", "0", "0", "0", "0", "0", "0", "0", "127.0.0.1", "0", "0", "180", "0", "0", "0", "0", "Host_Alive" ] add_network_module_to_agent_api(driver, params, user="******", pwd="pandora", apipwd="1234") time.sleep(3) params = [ self.agent_name, self.module_normal_2_name, "0", "6", "1", "0", "0", "0", "0", "0", "0", "0", "0", "127.0.0.1", "0", "0", "180", "0", "0", "0", "0", "Host_Alive" ] add_network_module_to_agent_api(driver, params, user="******", pwd="pandora", apipwd="1234") time.sleep(3) params = [ self.agent_name, self.module_warning_1_name, "0", "7", "1", "-10", "9999", "0", "0", "0", "0", "0", "0", "127.0.0.1", "0", "0", "180", "0", "0", "0", "0", "Host_Latency" ] add_network_module_to_agent_api(driver, params, user="******", pwd="pandora", apipwd="1234") lista = driver.current_url.split('/') url = lista[0] + '//' + lista[2] + '/pandora_console' driver.get(url) #Creamos servicio en modo simple create_service(driver, service_name, "Applications", self.agent_name, description=service_name, mode="simple") # añadimos los 3 modulos al servicio un router y el warning router critico printer no critico y apache critico add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_critical_1_name, description=self.module_critical_1_name, is_critical=True) add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_critical_2_name, description=self.module_critical_2_name) add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_warning_1_name, description=self.module_warning_1_name, is_critical=True) # Forzamos el servicio y comprobamos que el estado es warning force_service(driver, service_name) search_service(driver, service_name, go_to_service=False) element = driver.find_element_by_xpath( '//td/img[@data-title="Warning"]') self.assertIsInstance(element, WebElement)
def test_A_manual_service_ok(self): u""" Creamos agente y modulos necesarios, creamos un servicio de tipo manual para añadirle el modulo OK y al dar valor menor de 0.5 tener el servicio en Ok """ service_name = gen_random_string(6) driver = self.driver self.login() detect_and_pass_all_wizards(driver) activate_api(driver, "1234") #Creamos agentes y modulos warning, critical y ok que usaremos en los 3 test de servicios tipo manual params = [ self.agent_name, "127.0.0.1", "0", "4", "0", "300", "2", "pandorafms", "2", "0", "0", "pruebas" ] create_agent_api(driver, params, user="******", pwd="pandora") params = [ self.agent_name, self.module_critical_1_name, "0", "6", "1", "0", "0", "0", "0", "0", "0", "0", "0", "129.99.40.1", "0", "0", "180", "0", "0", "0", "0", "Host_Alive" ] add_network_module_to_agent_api(driver, params, user="******", pwd="pandora", apipwd="1234") params = [ self.agent_name, self.module_warning_1_name, "0", "7", "1", "-10", "9999", "0", "0", "0", "0", "0", "0", "127.0.0.1", "0", "0", "180", "0", "0", "0", "0", "Host_Latency" ] add_network_module_to_agent_api(driver, params, user="******", pwd="pandora", apipwd="1234") params = [ self.agent_name, self.module_ok_1_name, "0", "6", "1", "0", "0", "0", "0", "0", "0", "0", "0", "127.0.0.1", "0", "0", "180", "0", "0", "0", "0", "Host_Alive" ] add_network_module_to_agent_api(driver, params, user="******", pwd="pandora", apipwd="1234") lista = driver.current_url.split('/') url = lista[0] + '//' + lista[2] + '/pandora_console' driver.get(url) #Creamos el servicio añadiendo modulo en warnining y el servicio será OK create_service(driver, service_name, "Applications", self.agent_name, description=service_name, mode="manual", critical="1", warning="0.5") add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_ok_1_name, description=self.module_ok_1_name, ok_weight="0.2") add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_warning_1_name, description=self.module_warning_1_name, warning_weight="0.2") force_service(driver, service_name) search_service(driver, service_name, go_to_service=False) element = driver.find_element_by_xpath('//td/img[@data-title="Ok"]') self.assertIsInstance(element, WebElement)
class ManualService(PandoraWebDriverTestCase): test_name = u'Auto service tests' test_description = u'Test for auto service type' tickets_associated = [] agent_name = gen_random_string(6) module_ok_1_name = gen_random_string(6) module_warning_1_name = gen_random_string(6) module_critical_1_name = gen_random_string(6) @is_enterprise def test_A_manual_service_ok(self): u""" Creamos agente y modulos necesarios, creamos un servicio de tipo manual para añadirle el modulo OK y al dar valor menor de 0.5 tener el servicio en Ok """ service_name = gen_random_string(6) driver = self.driver self.login() detect_and_pass_all_wizards(driver) activate_api(driver, "1234") #Creamos agentes y modulos warning, critical y ok que usaremos en los 3 test de servicios tipo manual params = [ self.agent_name, "127.0.0.1", "0", "4", "0", "300", "2", "pandorafms", "2", "0", "0", "pruebas" ] create_agent_api(driver, params, user="******", pwd="pandora") params = [ self.agent_name, self.module_critical_1_name, "0", "6", "1", "0", "0", "0", "0", "0", "0", "0", "0", "129.99.40.1", "0", "0", "180", "0", "0", "0", "0", "Host_Alive" ] add_network_module_to_agent_api(driver, params, user="******", pwd="pandora", apipwd="1234") params = [ self.agent_name, self.module_warning_1_name, "0", "7", "1", "-10", "9999", "0", "0", "0", "0", "0", "0", "127.0.0.1", "0", "0", "180", "0", "0", "0", "0", "Host_Latency" ] add_network_module_to_agent_api(driver, params, user="******", pwd="pandora", apipwd="1234") params = [ self.agent_name, self.module_ok_1_name, "0", "6", "1", "0", "0", "0", "0", "0", "0", "0", "0", "127.0.0.1", "0", "0", "180", "0", "0", "0", "0", "Host_Alive" ] add_network_module_to_agent_api(driver, params, user="******", pwd="pandora", apipwd="1234") lista = driver.current_url.split('/') url = lista[0] + '//' + lista[2] + '/pandora_console' driver.get(url) #Creamos el servicio añadiendo modulo en warnining y el servicio será OK create_service(driver, service_name, "Applications", self.agent_name, description=service_name, mode="manual", critical="1", warning="0.5") add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_ok_1_name, description=self.module_ok_1_name, ok_weight="0.2") add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_warning_1_name, description=self.module_warning_1_name, warning_weight="0.2") force_service(driver, service_name) search_service(driver, service_name, go_to_service=False) element = driver.find_element_by_xpath('//td/img[@data-title="Ok"]') self.assertIsInstance(element, WebElement) @is_enterprise def test_B_auto_service_critical(self): u""" Utilizando el agente y modulos necesarios, creamos un servicio de tipo auto para añadirle el modulo warning y Ok y al dar valor mayor de 1 tendremos el servicio en critical """ service_name = gen_random_string(6) driver = self.driver #Creamos el servicio añadiendo el modulo ok y warning y el servicio será critical create_service(driver, service_name, "Applications", self.agent_name, description=service_name, mode="manual", critical="1", warning="0.5") add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_ok_1_name, description=self.module_ok_1_name, ok_weight="0.5") add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_critical_1_name, description=self.module_critical_1_name, critical_weight="0.5") force_service(driver, service_name) search_service(driver, service_name, go_to_service=False) element = driver.find_element_by_xpath( '//td/img[@data-title="Critical"]') self.assertIsInstance(element, WebElement) @is_enterprise def test_C_auto_service_warning(self): u""" Utilizando el agente y modulos necesarios, creamos un servicio de tipo auto para añadirle el modulo warning y añadimos un critical y warning weight para que de un valor entre 0.5 y 1 y así obtener un servicio tipo auto en warning """ service_name = gen_random_string(6) driver = self.driver #Creamos el servicio que será de tipo warning create_service(driver, service_name, "Applications", self.agent_name, description=service_name, mode="manual", critical="1", warning="0.5") add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_warning_1_name, description=self.module_warning_1_name, warning_weight="0.3") add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_critical_1_name, description=self.module_critical_1_name, critical_weight="0.3") force_service(driver, service_name) search_service(driver, service_name, go_to_service=False) element = driver.find_element_by_xpath( '//td/img[@data-title="Warning"]') self.assertIsInstance(element, WebElement)
def test_ACL_tag(self): u"""Create agent and two modules, one without tag and with tag, create a user with tag and check this user can view module with tag and user can´t view module without tag""" agent_name = gen_random_string(6) module_name_A = gen_random_string(6) module_name_B = gen_random_string(6) user_name = gen_random_string(6) driver = self.driver self.login() detect_and_pass_all_wizards(driver) create_agent(driver, agent_name, group="Applications", ip="192.168.50.50") #We create a module without a tag create_module("network_server", driver, agent_name=agent_name, module_name=module_name_A, component_group="Network Management", network_component="Host Alive", ip="192.168.50.50") #We now create a modulo with tag "critical" create_module("network_server", driver, agent_name=agent_name, module_name=module_name_B, component_group="Network Management", network_component="Host Alive", ip="192.168.50.50", tag_name="critical") l = [("Operator (Read)", "All", ["critical"])] create_user(driver, user_name, "pandora", profile_list=l) self.logout() self.login(user=user_name) detect_and_pass_all_wizards(driver) search_agent(driver, agent_name) time.sleep(6) #The user should be able to see the module with Tag module = driver.find_element_by_xpath('//td[contains(.,"' + module_name_B + '")]') self.assertIsInstance(module, WebElement) #The user should NOT be able to see the module without tag modules = driver.find_elements_by_xpath('//td[contains(.,"' + module_name_A + '")]') self.assertEqual(modules, [])
def test_D_delete_modules_in_bulk(self): u""" Create two agents with two modules and delete this modules through bulk operation """ agent_name_1 = gen_random_string(6) agent_name_2 = gen_random_string(6) module_name_1 = gen_random_string(6) driver = self.driver activate_api(driver, "1234") params = [ agent_name_1, "127.0.0.1", "0", "4", "0", "300", "2", "pandorafms", "2", "0", "0", "pruebas" ] create_agent_api(driver, params, user="******", pwd="pandora") params = [ agent_name_2, "127.0.0.1", "0", "4", "0", "300", "2", "pandorafms", "2", "0", "0", "pruebas" ] create_agent_api(driver, params, user="******", pwd="pandora") params = [ agent_name_1, module_name_1, "0", "6", "1", "0", "0", "0", "0", "0", "0", "0", "0", "129.99.40.1", "0", "0", "180", "0", "0", "0", "0", "Host_Alive" ] add_network_module_to_agent_api(driver, params, user="******", pwd="pandora", apipwd="1234") params = [ agent_name_2, module_name_1, "0", "6", "1", "0", "0", "0", "0", "0", "0", "0", "0", "129.99.40.1", "0", "0", "180", "0", "0", "0", "0", "Host_Alive" ] add_network_module_to_agent_api(driver, params, user="******", pwd="pandora", apipwd="1234") lista = driver.current_url.split('/') url = lista[0] + '//' + lista[2] + '/pandora_console' driver.get(url) agent_name_list = [agent_name_1, agent_name_2] module_name_list = [module_name_1] delete_modules_in_bulk(driver, agent_name_list, module_name_list) self.assertRegexpMatches(self.close_alert_and_get_its_text(), r"^Are you sure[\s\S]$") search_module(driver, agent_name_1, module_name_1) element = driver.find_elements_by_xpath( '//a[contains(.,"No available data to show")]') self.assertEqual(element, [])
class Collections(PandoraWebDriverTestCase): test_name = u'Collections' test_description = u'Collection tests' tickets_associated = [] collection_name = gen_random_string(6) new_collection_name = gen_random_string(6) @is_enterprise def test_A_create_collection(self): logging.basicConfig(filename="Collections.log", level=logging.INFO, filemode='w') driver = self.driver self.login() detect_and_pass_all_wizards(driver) create_collection(driver,self.collection_name,"PAN11",group="All",description="Collection with PAN11") search_collection(driver,self.collection_name,go_to_collection=False) element = driver.find_element_by_xpath('//a[contains(.,self.collection_name)]') self.assertIsInstance(element,WebElement) logging.info("test_A_create_collection is correct") @is_enterprise def test_B_edit_collection(self): driver = self.driver edit_collection(driver,self.collection_name,new_name=self.new_collection_name,group="Applications",description="Edit collectionPAN11") search_collection(driver,self.new_collection_name,go_to_collection=False) element = driver.find_element_by_xpath('//a[contains(.,self.new_collection_name)]') self.assertIsInstance(element,WebElement) logging.info("test_B_edit_collection is correct") @is_enterprise def test_C_create_text_collection(self): driver = self.driver create_text_in_collection(driver,self.new_collection_name,"file_collectionPAN11",text_file="test file") element = driver.find_element_by_xpath('//a[contains(.,"file_collectionPAN11")]') self.assertIsInstance(element,WebElement) logging.info("test_C_create_text_collection is correct") @is_enterprise def test_D_directory_collection(self): driver = self.driver create_directory_in_collection(driver,self.new_collection_name,"directory_collectionPAN11") element = driver.find_element_by_xpath('//a[contains(.,"directory_collectionPAN11")]') self.assertIsInstance(element,WebElement) logging.info("test_D_directory_collection is correct") @is_enterprise def test_E_delete_collection(self): driver = self.driver delete_collection(driver,self.new_collection_name) #Check that New_collectionPAN11 is delete element = driver.find_elements_by_xpath('//a[contains(.,"'+self.new_collection_name+'")]') self.assertEqual(element,[]) logging.info("test_E_delete_collection is correct")
class serviceInsideService(PandoraWebDriverTestCase): test_name = u'Auto service tests' test_description = u'Test for check that states are inherited' tickets_associated = [] agent_name = gen_random_string(6) module_ok_1_name = gen_random_string(6) module_warning_1_name = gen_random_string(6) module_critical_1_name = gen_random_string(6) @is_enterprise def test_A_service_ok(self): u""" Comprobar que un servicio padre hereda el estado del hijo, en este caso "ok" """ father_service_name = gen_random_string(6) service_name = gen_random_string(6) driver = self.driver self.login() detect_and_pass_all_wizards(driver) activate_api(driver, "1234") #Creamos agentes y modulos warning, critical y ok que usaremos en los 3 test de servicios tipo manual params = [ self.agent_name, "127.0.0.1", "0", "4", "0", "300", "2", "pandorafms", "2", "0", "0", "pruebas" ] create_agent_api(driver, params, user="******", pwd="pandora") params = [ self.agent_name, self.module_critical_1_name, "0", "6", "1", "0", "0", "0", "0", "0", "0", "0", "0", "129.99.40.1", "0", "0", "180", "0", "0", "0", "0", "Host_Alive" ] add_network_module_to_agent_api(driver, params, user="******", pwd="pandora", apipwd="1234") params = [ self.agent_name, self.module_warning_1_name, "0", "7", "1", "-10", "9999", "0", "0", "0", "0", "0", "0", "127.0.0.1", "0", "0", "180", "0", "0", "0", "0", "Host_Latency" ] add_network_module_to_agent_api(driver, params, user="******", pwd="pandora", apipwd="1234") params = [ self.agent_name, self.module_ok_1_name, "0", "6", "1", "0", "0", "0", "0", "0", "0", "0", "0", "127.0.0.1", "0", "0", "180", "0", "0", "0", "0", "Host_Alive" ] add_network_module_to_agent_api(driver, params, user="******", pwd="pandora", apipwd="1234") lista = driver.current_url.split('/') url = lista[0] + '//' + lista[2] + '/pandora_console' driver.get(url) #Creamos el servicio añadiendo modulo en warnining y el servicio será OK create_service(driver, service_name, "Applications", self.agent_name, description=service_name, mode="manual", critical="1", warning="0.5") add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_ok_1_name, description=self.module_ok_1_name, ok_weight="0.2") add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_warning_1_name, description=self.module_warning_1_name, warning_weight="0.2") #Creamos el servicio padre create_service(driver, father_service_name, "Applications", self.agent_name, description="this is the father service", mode="manual") add_elements_to_service(driver, father_service_name, "Service", service_to_add=father_service_name, description=service_name, ok_weight="0.2") force_service(driver, service_name) force_service(driver, father_service_name) search_service(driver, father_service_name, go_to_service=False) element = driver.find_element_by_xpath('//td/img[@data-title="Ok"]') self.assertIsInstance(element, WebElement) logging.info("test_A_service_ok is correct") @is_enterprise def test_B_service_critical(self): u""" Comprobar que un servicio padre hereda el estado del hijo, en este caso "warning" """ father_service_name = gen_random_string(6) service_name = gen_random_string(6) driver = self.driver #Creamos el servicio añadiendo el modulo ok y warning y el servicio será critical create_service(driver, service_name, "Applications", self.agent_name, description=service_name, mode="manual", critical="1", warning="0.5") add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_ok_1_name, description=self.module_ok_1_name, ok_weight="0.5") add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_critical_1_name, description=self.module_critical_1_name, critical_weight="0.5") #Creamos el servicio padre create_service(driver, father_service_name, "Applications", self.agent_name, description="this is the father service", mode="manual") add_elements_to_service(driver, father_service_name, "Service", service_to_add=father_service_name, description=service_name, ok_weight="0.2") force_service(driver, service_name) force_service(driver, father_service_name) search_service(driver, father_service_name, go_to_service=False) element = driver.find_element_by_xpath( '//td/img[@data-title="Critical"]') self.assertIsInstance(element, WebElement) logging.info("test_B_service_critical is correct") @is_enterprise def test_C_service_warning(self): u""" Comprobar que un servicio padre hereda el estado del hijo, en este caso "warning" """ father_service_name = gen_random_string(6) service_name = gen_random_string(6) driver = self.driver #Creamos el servicio añadiendo el modulo ok y warning y el servicio será crit create_service(driver, service_name, "Applications", self.agent_name, description=service_name, mode="manual", critical="1", warning="0.5") add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_warning_1_name, description=self.module_warning_1_name, warning_weight="0.3") add_elements_to_service(driver, service_name, "Module", agent_name=self.agent_name, module=self.module_critical_1_name, description=self.module_critical_1_name, critical_weight="0.3") #Creamos el servicio padre create_service(driver, father_service_name, "Applications", self.agent_name, description="this is the father service", mode="manual") add_elements_to_service(driver, father_service_name, "Service", service_to_add=father_service_name, description=service_name, ok_weight="0.2") force_service(driver, service_name) force_service(driver, father_service_name) search_service(driver, father_service_name, go_to_service=False) element = driver.find_element_by_xpath( '//td/img[@data-title="Critical"]') self.assertIsInstance(element, WebElement) logging.info("test_C_service_warning is correct")