Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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")
Ejemplo n.º 3
0
    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()
Ejemplo n.º 4
0
	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")
Ejemplo n.º 5
0
	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")
Ejemplo n.º 6
0
    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")
Ejemplo n.º 7
0
    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")
Ejemplo n.º 8
0
	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)
Ejemplo n.º 9
0
    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")
Ejemplo n.º 10
0
    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")
Ejemplo n.º 11
0
    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)
Ejemplo n.º 12
0
    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")
Ejemplo n.º 13
0
    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")
Ejemplo n.º 14
0
    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")
Ejemplo n.º 15
0
    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)
Ejemplo n.º 16
0
    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)
Ejemplo n.º 17
0
    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")
Ejemplo n.º 18
0
    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")
Ejemplo n.º 19
0
    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
Ejemplo n.º 20
0
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)
Ejemplo n.º 21
0
    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)
Ejemplo n.º 22
0
    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)
Ejemplo n.º 23
0
    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, [])
Ejemplo n.º 24
0
    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)
Ejemplo n.º 25
0
    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)
Ejemplo n.º 26
0
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)
Ejemplo n.º 27
0
    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, [])
Ejemplo n.º 28
0
    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, [])
Ejemplo n.º 29
0
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")
Ejemplo n.º 30
0
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")