def test_cluster(self): driver = self.login() # Get user quota from kamaki user_quota = check_quota(self.token) flavors = get_flavor_id(self.token) # List of ram choices ram_list = flavors['ram'] # Avalable user ram available_ram = user_quota['ram']['available'] # Give Selenium the values cluster_size, master and slave to use for # the cluster_size, master and slave ram buttons of # cluster/create screen. cluster_size, master, slave, remaining_ram = self.calculate_cluster_resources(ram_list, available_ram) try: Select(driver.find_element_by_id("size_of_cluster")).select_by_visible_text(str(cluster_size)) time.sleep(1) except: self.assertTrue(False,'Not enough vms to run the test') time.sleep(1) driver.find_element_by_id("cluster_name").clear() driver.find_element_by_id("cluster_name").send_keys("mycluster") try: # Call the bind function that creates ~okeanos vms and # causes later the server to respond with an error message to # user's create cluster request master_ip, server = self.bind_okeanos_resources(remaining_ram, ram_list) driver.find_element_by_xpath("//div[@id='wrap']/div[2]/div/div/div[3]/div[2]/div/div/div/button").click() time.sleep(1) driver.find_element_by_xpath("//div[@id='wrap']/div[2]/div/div/div[3]/div[2]/div/div[2]/div/button["+ master +"]").click() time.sleep(1) driver.find_element_by_xpath("//div[@id='wrap']/div[2]/div/div/div[3]/div[2]/div/div[3]/div/button").click() time.sleep(1) driver.find_element_by_xpath("//div[@id='wrap']/div[2]/div/div/div[4]/div[2]/div/div/div/button").click() time.sleep(1) driver.find_element_by_xpath("//div[@id='wrap']/div[2]/div/div/div[4]/div[2]/div/div[2]/div/button["+ slave +"]").click() time.sleep(1) driver.find_element_by_xpath("//div[@id='wrap']/div[2]/div/div/div[4]/div[2]/div/div[3]/div/button").click() time.sleep(1) driver.find_element_by_id("next").click() for i in range(60): try: if "Ram selection exceeded cyclades memory limit" == driver.find_element_by_css_selector("div.col.col-sm-6 > h4").text: break except: pass time.sleep(1) else: self.fail("time out") time.sleep(3) self.assertEqual("Ram selection exceeded cyclades memory limit", driver.find_element_by_css_selector("div.col.col-sm-6 > h4").text) finally: cluster_name = server[0]['name'].rsplit('-', 1)[0] destroy_cluster(cluster_name, self.token)
def test_cluster(self): driver = self.login() # Get user quota from kamaki user_quota = check_quota(self.token, self.project_id) flavors = get_flavor_lists(self.token) # List of disk size choices disk_list = flavors['disk'] # Avalable user disk size available_disk = user_quota['disk']['available'] # Give Selenium the values cluster_size, master and slave to use for # the cluster_size, master and slave disksize buttons of # cluster/create screen. cluster_size, master, slave ,remaining_disk = self.calculate_cluster_resources(disk_list, available_disk) try: Select(driver.find_element_by_id("size_of_cluster")).select_by_visible_text(str(cluster_size)) time.sleep(1) except: self.assertTrue(False,'Not enough vms to run the test') time.sleep(1) try: # Call the bind function that creates ~okeanos vms and # causes later the server to respond with an error message to # user's create cluster request master_ip, server = self.bind_okeanos_resources(remaining_disk, disk_list) driver.find_element_by_xpath("//div[@id='wrap']/div[2]/div/div/div[4]/div[2]/div/div/div/button").click() time.sleep(1) driver.find_element_by_xpath("//div[@id='wrap']/div[2]/div/div/div[4]/div[2]/div/div[2]/div/button").click() time.sleep(1) driver.find_element_by_xpath("//div[@id='wrap']/div[2]/div/div/div[4]/div[2]/div/div[3]/div/button["+ master +"]").click() time.sleep(1) driver.find_element_by_xpath("//div[@id='wrap']/div[2]/div/div/div[5]/div[2]/div/div/div/button").click() time.sleep(1) driver.find_element_by_xpath("//div[@id='wrap']/div[2]/div/div/div[5]/div[2]/div/div[2]/div/button").click() time.sleep(1) driver.find_element_by_xpath("//div[@id='wrap']/div[2]/div/div/div[5]/div[2]/div/div[3]/div/button["+ slave +"]").click() time.sleep(1) driver.find_element_by_id("next").click() for i in range(60): try: if "Disk size selection exceeded cyclades disk size limit" == driver.find_element_by_css_selector("div.col.col-sm-6 > h4").text: break except: pass time.sleep(1) else: self.fail("time out") time.sleep(3) self.assertEqual("Disk size selection exceeded cyclades disk size limit", driver.find_element_by_css_selector("div.col.col-sm-6 > h4").text) finally: os.system('rm *_root_password') destroy_cluster(self.token, master_ip)
def test_cluster(self): driver = self.login() # Get user quota from kamaki user_quota = check_quota(self.token) # Maximum available clustersize max_vms = str(user_quota['cluster_size']['available']) # Tell selenium to get the max available clustersize from dropdown try: Select(driver.find_element_by_id("size_of_cluster")).select_by_visible_text(max_vms) time.sleep(1) except: self.assertTrue(False,'Not enough vms to run the test') try: # Call the bind function that creates ~okeanos vms and # causes later the server to respond with an error message to # user's create cluster request master_ip, server = self.bind_okeanos_resources() driver.find_element_by_id("cluster_name").clear() driver.find_element_by_id("cluster_name").send_keys("mycluster") time.sleep(1) driver.find_element_by_id("master_cpus_1").click() time.sleep(1) driver.find_element_by_id("master_ram_512").click() time.sleep(1) driver.find_element_by_id("master_disk_5").click() time.sleep(1) driver.find_element_by_id("slaves_cpus_1").click() time.sleep(1) driver.find_element_by_id("slaves_ram_512").click() time.sleep(1) driver.find_element_by_id("slaves_disk_5").click() time.sleep(1) driver.find_element_by_id("next").click() for i in range(60): try: if "Selected cluster size exceeded cyclades virtual machines limit" == driver.find_element_by_css_selector("div.col.col-sm-6 > h4").text: break except: pass time.sleep(1) else: self.fail("time out") time.sleep(3) self.assertEqual("Selected cluster size exceeded cyclades" " virtual machines limit", driver.find_element_by_css_selector("div.col.col-sm-6 > h4").text) finally: cluster_name = server[0]['name'].rsplit('-', 1)[0] destroy_cluster(cluster_name, self.token)
def test_cluster(self): driver = self.login() # Get user quota from kamaki user_quota = check_quota(self.token, self.project_id) # Maximum available clustersize max_vms = str(user_quota['cluster_size']['available']) # Tell selenium to get the max available clustersize from dropdown try: Select(driver.find_element_by_id("size_of_cluster")).select_by_visible_text(max_vms) time.sleep(1) except: self.assertTrue(False,'Not enough vms to run the test') try: # Call the bind function that creates ~okeanos vms and # causes later the server to respond with an error message to # user's create cluster request master_ip, server = self.bind_okeanos_resources() time.sleep(1) driver.find_element_by_id("master_cpus_1").click() time.sleep(1) driver.find_element_by_id("master_ram_512").click() time.sleep(1) driver.find_element_by_id("master_disk_5").click() time.sleep(1) driver.find_element_by_id("slaves_cpus_1").click() time.sleep(1) driver.find_element_by_id("slaves_ram_512").click() time.sleep(1) driver.find_element_by_id("slaves_disk_5").click() time.sleep(1) driver.find_element_by_id("next").click() for i in range(60): try: if "Selected cluster size exceeded cyclades virtual machines limit" == driver.find_element_by_css_selector("div.col.col-sm-6 > h4").text: break except: pass time.sleep(1) else: self.fail("time out") time.sleep(3) self.assertEqual("Selected cluster size exceeded cyclades" " virtual machines limit", driver.find_element_by_css_selector("div.col.col-sm-6 > h4").text) finally: os.system('rm *_root_password') destroy_cluster(self.token, master_ip)
def destroy(self, status): """Destroy Cluster""" destroy_cluster(self.opts['token'], self.cluster_id, master_IP=self.HOSTNAME_MASTER_IP, status=status)
def destroy_cluster_async(token, cluster_id): """ Asynchronous destroy cluster task. """ result = destroy_cluster(token, cluster_id) return result
def test_cluster(self): driver = self.login() # Get user quota from kamaki user_quota = check_quota(self.token, self.project_id) flavors = get_flavor_id(self.token) # List of disk size choices disk_list = flavors['disk'] # Avalable user disk size available_disk = user_quota['disk']['available'] # Give Selenium the values cluster_size, master and slave to use for # the cluster_size, master and slave disksize buttons of # cluster/create screen. cluster_size, master, slave, remaining_disk = self.calculate_cluster_resources( disk_list, available_disk) try: Select(driver.find_element_by_id( "size_of_cluster")).select_by_visible_text(str(cluster_size)) time.sleep(1) except: self.assertTrue(False, 'Not enough vms to run the test') time.sleep(1) try: # Call the bind function that creates ~okeanos vms and # causes later the server to respond with an error message to # user's create cluster request master_ip, server = self.bind_okeanos_resources( remaining_disk, disk_list) driver.find_element_by_xpath( "//div[@id='wrap']/div[2]/div/div/div[4]/div[2]/div/div/div/button" ).click() time.sleep(1) driver.find_element_by_xpath( "//div[@id='wrap']/div[2]/div/div/div[4]/div[2]/div/div[2]/div/button" ).click() time.sleep(1) driver.find_element_by_xpath( "//div[@id='wrap']/div[2]/div/div/div[4]/div[2]/div/div[3]/div/button[" + master + "]").click() time.sleep(1) driver.find_element_by_xpath( "//div[@id='wrap']/div[2]/div/div/div[5]/div[2]/div/div/div/button" ).click() time.sleep(1) driver.find_element_by_xpath( "//div[@id='wrap']/div[2]/div/div/div[5]/div[2]/div/div[2]/div/button" ).click() time.sleep(1) driver.find_element_by_xpath( "//div[@id='wrap']/div[2]/div/div/div[5]/div[2]/div/div[3]/div/button[" + slave + "]").click() time.sleep(1) driver.find_element_by_id("next").click() for i in range(60): try: if "Disk size selection exceeded cyclades disk size limit" == driver.find_element_by_css_selector( "div.col.col-sm-6 > h4").text: break except: pass time.sleep(1) else: self.fail("time out") time.sleep(3) self.assertEqual( "Disk size selection exceeded cyclades disk size limit", driver.find_element_by_css_selector( "div.col.col-sm-6 > h4").text) finally: os.system('rm *_root_password') destroy_cluster(self.token, master_ip)