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)
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
 def destroy(self, status):
     """Destroy Cluster"""
     destroy_cluster(self.opts['token'],
                     self.cluster_id,
                     master_IP=self.HOSTNAME_MASTER_IP,
                     status=status)
Example #6
0
def destroy_cluster_async(token, cluster_id):
    """
    Asynchronous destroy cluster task.
    """
    result = destroy_cluster(token, cluster_id)
    return result
Example #7
0
    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)
Example #8
0
 def destroy(self, status):
     """Destroy Cluster"""
     destroy_cluster(self.opts['token'], self.cluster_id, master_IP=self.HOSTNAME_MASTER_IP, status=status)
Example #9
0
def destroy_cluster_async(token, cluster_id):
    """
    Asynchronous destroy cluster task.
    """
    result = destroy_cluster(token, cluster_id)
    return result