mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	* refactor: remove trailing whitespace from Python files * Add the GitHub Super-Linter Add Python flake8 linting for W291 trailing whitespace * Add licenses
		
			
				
	
	
		
			614 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			614 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Licensed to the Apache Software Foundation (ASF) under one
 | |
| # or more contributor license agreements.  See the NOTICE file
 | |
| # distributed with this work for additional information
 | |
| # regarding copyright ownership.  The ASF licenses this file
 | |
| # to you under the Apache License, Version 2.0 (the
 | |
| # "License"); you may not use this file except in compliance
 | |
| # with the License.  You may obtain a copy of the License at
 | |
| #
 | |
| #   http://www.apache.org/licenses/LICENSE-2.0
 | |
| #
 | |
| # Unless required by applicable law or agreed to in writing,
 | |
| # software distributed under the License is distributed on an
 | |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 | |
| # KIND, either express or implied.  See the License for the
 | |
| # specific language governing permissions and limitations
 | |
| # under the License.
 | |
| 
 | |
| import sys, os
 | |
| sys.path.append(os.path.abspath(os.path.dirname(__file__) + '/'+'../lib'))
 | |
| 
 | |
| 
 | |
| 
 | |
| from selenium import webdriver
 | |
| from selenium.webdriver.common.by import By
 | |
| from selenium.webdriver.support.ui import Select
 | |
| from selenium.common.exceptions import NoSuchElementException
 | |
| import unittest, time
 | |
| import initialize
 | |
| import Global_Locators
 | |
| 
 | |
| 
 | |
| 
 | |
| class deployVM(unittest.TestCase):
 | |
| 
 | |
| 
 | |
|     def setUp(self):
 | |
| 
 | |
|         self.driver = initialize.getOrCreateWebdriver()
 | |
|         self.verificationErrors = []
 | |
| 
 | |
| 
 | |
|     def test_deployvm(self):
 | |
| 
 | |
| 
 | |
|         ## Action Part
 | |
|         # VM will be named Auto-VM and this VM will be used in all subsequent tests.
 | |
|         # Deploy an Instance named Auto-VM Default CentOS no GUI Template
 | |
| 
 | |
|         driver = self.driver
 | |
|         self.driver.implicitly_wait(30)
 | |
|         driver.refresh() ## Most Important step. Failure to do this will change XPATH location and Scripts will fail.
 | |
| 
 | |
| 
 | |
|         # Click on Instances link
 | |
|         driver.find_element_by_xpath(Global_Locators.instances_xpath).click()
 | |
| 
 | |
|         # Click on add Instance on Instances page
 | |
|         driver.find_element_by_xpath(Global_Locators.add_instance_xpath).click()
 | |
| 
 | |
|         # Following select template action will fire automatically... ignore it. And leave following commented.
 | |
|         # driver.find_element_by_xpath("(//input[@name='select-template'])[3]").click()
 | |
|         #Click on Next button on Instances Wizard.
 | |
|         driver.find_element_by_xpath(Global_Locators.add_instance_next_xpath).click()
 | |
| 
 | |
|         # Nothing to do here as we will be using  all default settings. (Default CentOS no GUI template should be highlighted here.  Click Next
 | |
|         driver.find_element_by_xpath(Global_Locators.add_instance_next_xpath).click()
 | |
| 
 | |
|         # Nothing to do here. Medium Instance compute offering should be selected here.  Click Next
 | |
|         driver.find_element_by_xpath(Global_Locators.add_instance_next_xpath).click()
 | |
| 
 | |
|         # Nothing to do here. Data Disk Offering : No Thanks!!. Click Next
 | |
|         driver.find_element_by_xpath(Global_Locators.add_instance_next_xpath).click()
 | |
| 
 | |
|         # Since this is our first instance; we must provide a network name. We will use Test-Network as out network name.
 | |
|         driver.find_element_by_xpath("(//input[@name='new-network-name'])[2]").click()
 | |
|         driver.find_element_by_xpath("(//input[@name='new-network-name'])[2]").clear()
 | |
|         driver.find_element_by_xpath("(//input[@name='new-network-name'])[2]").send_keys("Test-Network")
 | |
| 
 | |
|         #Click next
 | |
|         driver.find_element_by_xpath(Global_Locators.add_instance_next_xpath).click()
 | |
| 
 | |
|         # Give our VM a name here. Use Auto-VM as name
 | |
|         driver.find_element_by_xpath("(//input[@name='displayname'])[2]").click()
 | |
| 
 | |
|         driver.find_element_by_xpath("(//input[@name='displayname'])[2]").clear()
 | |
| 
 | |
|         driver.find_element_by_xpath("(//input[@name='displayname'])[2]").send_keys("Auto-VM")
 | |
| 
 | |
|         # All data filled. Click Launch VM. (It has the same xpath as Next button. So we will use Next Variable here.
 | |
|         driver.find_element_by_xpath(Global_Locators.add_instance_next_xpath).click()
 | |
| 
 | |
|         print '\n' + '\n' + "VM Deployment is complete... wait for 5 mins to check deployment status" + '\n' + '\n'
 | |
| 
 | |
| 
 | |
| 
 | |
|         ## Verification Part
 | |
| 
 | |
| 
 | |
|         ## Now we must wait for some random time (Educated guess based on experience) and check if VM has been deployed and if it is in running state.
 | |
|         ## Should take about 4 min to deploy VM.. but we will wait 5 mins and check the status , we will do this twice. So total 2 check within 10 mins with first check occuring at 5th min.
 | |
| 
 | |
| 
 | |
|         driver.refresh() # Refresh UI Page; This polls latest status.
 | |
| 
 | |
|         # Click on Instances link
 | |
|         driver.find_element_by_xpath(Global_Locators.instances_xpath).click()
 | |
| 
 | |
|         linkclass = None
 | |
|         linkclass = driver.find_elements_by_xpath(Global_Locators.instances_table_xpath) # This returns a list of all VM names in tables
 | |
|         count = 1
 | |
| 
 | |
|         while (count > 0):
 | |
| 
 | |
|             time.sleep(300)
 | |
|             for link in linkclass:
 | |
| 
 | |
|                 if link.text == "Auto-VM": # We will search for our VM in this table
 | |
|                     print "found VM in table ..  checking status..." + '\n' + '\n'
 | |
|                     link.click()
 | |
| 
 | |
|                     status = driver.find_element_by_xpath(Global_Locators.state_xpath).text  ## get the status of our VM
 | |
| 
 | |
|                     if status == "Running" :
 | |
|                         print "VM is in running state... continuing with other tests."+ '\n' + '\n'
 | |
|                         break
 | |
|                     else:
 | |
|                         print "Need to check one more time after 5 mins"
 | |
|                         continue
 | |
|             count = count - 1
 | |
| 
 | |
| 
 | |
|     def is_element_present(self, how, what):
 | |
| 
 | |
|         try: self.driver.find_element(by=how, value=what)
 | |
|         except NoSuchElementException, e: return False
 | |
|         return True
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|     def tearDown(self):
 | |
|         self.assertEqual([], self.verificationErrors)
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| ################################################################################################################################################################################################
 | |
| 
 | |
| 
 | |
| 
 | |
| class destroyVM(unittest.TestCase):
 | |
| 
 | |
| 
 | |
| 
 | |
|     def setUp(self):
 | |
| 
 | |
|         self.driver = initialize.getOrCreateWebdriver()
 | |
|         self.verificationErrors = []
 | |
| 
 | |
| 
 | |
|     def test_destroyvm(self):
 | |
| 
 | |
|       driver = self.driver
 | |
|       self.driver.implicitly_wait(100)
 | |
| 
 | |
|       ## Action part
 | |
|       # Click on Instances link and find our instance
 | |
|       driver.find_element_by_xpath(Global_Locators.instances_xpath).click()
 | |
|       time.sleep(2)
 | |
| 
 | |
|       linkclass = None
 | |
|       linkclass = driver.find_elements_by_xpath(Global_Locators.instances_table_xpath) # This returns a list of all VM names in tables
 | |
| 
 | |
|       for link in linkclass:
 | |
| 
 | |
|          if link.text == "Auto-VM": # We will search for our VM in this table
 | |
|             link.click()
 | |
| 
 | |
|       # Click on Destroy Instance button and confirm
 | |
|       time.sleep(2)
 | |
|       driver.find_element_by_css_selector(Global_Locators.destroyinstance_css).click()
 | |
|       time.sleep(2)
 | |
| 
 | |
|       # Click ok on confirmation
 | |
|       driver.find_element_by_xpath(Global_Locators.yesconfirmation_xapth).click()
 | |
|       time.sleep(2)
 | |
| 
 | |
|       # Go to Dashboard
 | |
|       # driver.find_element_by_xpath(Global_Locators.dashboard_xpath).click()
 | |
|       driver.refresh()
 | |
| 
 | |
|       ## Verification part
 | |
|       time.sleep(60)
 | |
| 
 | |
|       # Click on Instances link and find our instance
 | |
|       driver.find_element_by_xpath(Global_Locators.instances_xpath).click()
 | |
|       time.sleep(2)
 | |
| 
 | |
|       linkclass = None
 | |
|       linkclass = driver.find_elements_by_xpath(Global_Locators.instances_table_xpath) # This returns a list of all VM names in tables
 | |
| 
 | |
|       for link in linkclass:
 | |
| 
 | |
|           if link.text == "Auto-VM": # We will search for our VM in this table
 | |
|               link.click()
 | |
| 
 | |
| 
 | |
|       status = driver.find_element_by_xpath(Global_Locators.state_xpath).text  ## get the status of our VM
 | |
|       if status == "Destroyed" :
 | |
|           print "VM is Destroyed...."+ '\n' + '\n'
 | |
|       else:
 | |
|           print "Something went wrong"
 | |
| 
 | |
| 
 | |
| 
 | |
|     def is_element_present(self, how, what):
 | |
| 
 | |
|         try: self.driver.find_element(by=how, value=what)
 | |
|         except NoSuchElementException, e: return False
 | |
|         return True
 | |
| 
 | |
| 
 | |
| 
 | |
|     def tearDown(self):
 | |
| 
 | |
|         self.assertEqual([], self.verificationErrors)
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| ################################################################################################################################################################################################
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| class rebootVM(unittest.TestCase):
 | |
| 
 | |
| 
 | |
| 
 | |
|     def setUp(self):
 | |
| 
 | |
|         self.driver = initialize.getOrCreateWebdriver()
 | |
|         self.verificationErrors = []
 | |
| 
 | |
| 
 | |
|     def test_rebootvm(self):
 | |
| 
 | |
|         driver = self.driver
 | |
|         self.driver.implicitly_wait(30)
 | |
|         print "Verify this test manually for now"
 | |
| 
 | |
|         ssh = paramiko.SSHClient()
 | |
|         ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
 | |
|         ssh.connect(vmLifeAndNetwork.Server_Ip, username='root', password='password')
 | |
|         print '\n' + '\n' + "Before Reboot ...Executing command date ... "  + '\n' + '\n'
 | |
|         stdin, stdout, stderr = ssh.exec_command('date')
 | |
|         print stdout.readlines()
 | |
|         print '\n' + '\n' + "Before Reboot ...Executing command last reboot | head -1 ..." + '\n' + '\n'
 | |
|         stdin, stdout, stderr = ssh.exec_command('last reboot | head -1')
 | |
|         print '\n' + '\n' + "Before Reboot ...Executing command uptime..." + '\n' + '\n'
 | |
|         stdin, stdout, stderr = ssh.exec_command('uptime')
 | |
|         print stdout.readlines()
 | |
|         ssh.close()
 | |
| 
 | |
| 
 | |
|         driver.refresh()
 | |
| 
 | |
|         driver.find_element_by_xpath(Global_Locators.instances_xpath).click()
 | |
| 
 | |
|         linkclass = None
 | |
|         linkclass = driver.find_elements_by_xpath(Global_Locators.instances_table_xpath) # This returns a list of all VM names in tables
 | |
|         count = 1
 | |
| 
 | |
|         while (count > 0):
 | |
| 
 | |
|             #time.sleep(300)
 | |
|             for link in linkclass:
 | |
| 
 | |
|                 if link.text == "Auto-VM": # We will search for our VM in this table
 | |
|                     print "found VM in table ..  Rebooting now..." + '\n' + '\n'
 | |
|                     link.click()
 | |
| 
 | |
|         driver.find_element_by_css_selector(Global_Locators.rebootinstance_css).click()
 | |
|         driver.find_element_by_xpath(Global_Locators.actionconfirm_xpath).click()
 | |
| 
 | |
|         # Sleep for 5 mins to ensure system gets rebooted.
 | |
|         time.sleep(300)
 | |
| 
 | |
|         ssh = paramiko.SSHClient()
 | |
|         ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
 | |
|         ssh.connect(vmLifeAndNetwork.Server_Ip, username='root', password='password')
 | |
|         print '\n' + '\n' + "After Reboot ...Executing command date ... "  + '\n' + '\n'
 | |
|         stdin, stdout, stderr = ssh.exec_command('date')
 | |
|         print stdout.readlines()
 | |
|         print '\n' + '\n' + "After Reboot ...Executing command last reboot | head -1 ..." + '\n' + '\n'
 | |
|         stdin, stdout, stderr = ssh.exec_command('last reboot | head -1')
 | |
|         print '\n' + '\n' + "After Reboot ...Executing command uptime..." + '\n' + '\n'
 | |
|         stdin, stdout, stderr = ssh.exec_command('uptime')
 | |
|         print stdout.readlines()
 | |
|         ssh.close()
 | |
| 
 | |
| 
 | |
|     def is_element_present(self, how, what):
 | |
| 
 | |
|         try: self.driver.find_element(by=how, value=what)
 | |
|         except NoSuchElementException, e: return False
 | |
|         return True
 | |
| 
 | |
| 
 | |
|     def tearDown(self):
 | |
|         self.assertEqual([], self.verificationErrors)
 | |
| 
 | |
| 
 | |
| #########################################################################################################################################################
 | |
| 
 | |
| 
 | |
| 
 | |
| class restoreVM(unittest.TestCase):
 | |
| 
 | |
| 
 | |
|     def setUp(self):
 | |
| 
 | |
|         self.driver = initialize.getOrCreateWebdriver()
 | |
|         self.verificationErrors = []
 | |
| 
 | |
| 
 | |
|     def test_restorevm(self):
 | |
| 
 | |
|       driver = self.driver
 | |
|       self.driver.implicitly_wait(100)
 | |
| 
 | |
|       ## Action part
 | |
|       # Click on Instances link and find our instance
 | |
|       driver.find_element_by_xpath(Global_Locators.instances_xpath).click()
 | |
| 
 | |
|       linkclass = None
 | |
|       linkclass = driver.find_elements_by_xpath(Global_Locators.instances_table_xpath) # This returns a list of all VM names in tables
 | |
| 
 | |
|       for link in linkclass:
 | |
| 
 | |
|          if link.text == "Auto-VM": # We will search for our VM in this table
 | |
| 
 | |
|              link.click()
 | |
| 
 | |
|       # Click on Destroy Instance button and confirm
 | |
|       driver.find_element_by_css_selector(Global_Locators.restoreinstance_css).click()
 | |
| 
 | |
|       # Click ok on confirmation
 | |
|       driver.find_element_by_xpath(Global_Locators.yesconfirmation_xapth).click()
 | |
| 
 | |
|       # Go to Dashboard
 | |
|       driver.find_element_by_xpath(Global_Locators.dashboard_xpath).click()
 | |
| 
 | |
| 
 | |
|       ## Verification part
 | |
| 
 | |
|       time.sleep(60)
 | |
| 
 | |
|       # Click on Instances link and find our instance
 | |
|       driver.find_element_by_xpath(Global_Locators.instances_xpath).click()
 | |
| 
 | |
|       linkclass = None
 | |
|       linkclass = driver.find_elements_by_xpath(Global_Locators.instances_table_xpath) # This returns a list of all VM names in tables
 | |
| 
 | |
|       for link in linkclass:
 | |
| 
 | |
|           if link.text == "Auto-VM": # We will search for our VM in this table
 | |
|               link.click()
 | |
| 
 | |
| 
 | |
|       status = driver.find_element_by_xpath(Global_Locators.state_xpath).text  ## get the status of our VM
 | |
| 
 | |
|       if status == "Stopped" :
 | |
|           print "VM is Restored. but in stopped state.. will start now."+ '\n' + '\n'
 | |
| 
 | |
|       else:
 | |
|           print "Something went wrong"
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|       #VM will be in stop state so we must start it now
 | |
|       # Click on Instances link and find our instance
 | |
|       driver.find_element_by_xpath(Global_Locators.instances_xpath).click()
 | |
| 
 | |
|       linkclass = None
 | |
|       linkclass = driver.find_elements_by_xpath(Global_Locators.instances_table_xpath) # This returns a list of all VM names in tables
 | |
| 
 | |
|       for link in linkclass:
 | |
| 
 | |
|          if link.text == "Auto-VM": # We will search for our VM in this table
 | |
|              link.click()
 | |
| 
 | |
|       # Click on Start Instance.
 | |
|       driver.find_element_by_css_selector(Global_Locators.startinstance_css).click()
 | |
|       time.sleep(2)
 | |
| 
 | |
|       # Dismiss confirmation by clicking Yes
 | |
|       driver.find_element_by_xpath(Global_Locators.yesconfirmation_xapth).click()
 | |
|       time.sleep(2)
 | |
| 
 | |
|       # Go to Dashboard
 | |
|       driver.find_element_by_xpath(Global_Locators.dashboard_xpath).click()
 | |
|       time.sleep(2)
 | |
| 
 | |
|       print "VM is Started."+ '\n' + '\n'
 | |
| 
 | |
|       # status = None
 | |
|       time.sleep(60)
 | |
| 
 | |
|       # Dismiss the Start Instance information box.
 | |
|       driver.find_element_by_xpath(Global_Locators.actionconfirm_xpath).click()
 | |
|       time.sleep(2)
 | |
| 
 | |
| 
 | |
| 
 | |
|     def is_element_present(self, how, what):
 | |
| 
 | |
|         try: self.driver.find_element(by=how, value=what)
 | |
|         except NoSuchElementException, e: return False
 | |
|         return True
 | |
| 
 | |
| 
 | |
| 
 | |
|     def tearDown(self):
 | |
| 
 | |
|         self.assertEqual([], self.verificationErrors)
 | |
| 
 | |
| 
 | |
| 
 | |
| #########################################################################################################################################################
 | |
| 
 | |
| 
 | |
| 
 | |
| class startVM(unittest.TestCase):
 | |
| 
 | |
| 
 | |
| 
 | |
|     def setUp(self):
 | |
| 
 | |
|         self.driver = initialize.getOrCreateWebdriver()
 | |
|         self.verificationErrors = []
 | |
| 
 | |
| 
 | |
|     def test_startvm(self):
 | |
| 
 | |
|       driver = self.driver
 | |
|       self.driver.implicitly_wait(100)
 | |
| 
 | |
|       ## Action part
 | |
|       #driver.refresh() ## Most Important step. Failure to do this will change XPATH location and Scripts will fail.
 | |
|       # Click on Instances link and find our instance
 | |
|       driver.find_element_by_xpath(Global_Locators.instances_xpath).click()
 | |
| 
 | |
|       linkclass = None
 | |
|       linkclass = driver.find_elements_by_xpath(Global_Locators.instances_table_xpath) # This returns a list of all VM names in tables
 | |
| 
 | |
|       for link in linkclass:
 | |
| 
 | |
|          if link.text == "Auto-VM": # We will search for our VM in this table
 | |
|              print "found VM in table ..  checking status..." + '\n' + '\n'
 | |
|              link.click()
 | |
| 
 | |
| 
 | |
| 
 | |
|       # Click on Start Instance.
 | |
|       driver.find_element_by_css_selector(Global_Locators.startinstance_css).click()
 | |
|       time.sleep(2)
 | |
| 
 | |
|       # Dismiss confirmation by clicking Yes
 | |
|       driver.find_element_by_xpath(Global_Locators.yesconfirmation_xapth).click()
 | |
|       time.sleep(2)
 | |
| 
 | |
|       # Go to Dashboard
 | |
|       #driver.find_element_by_xpath(Global_Locators.dashboard_xpath).click()
 | |
|       driver.refresh()
 | |
| 
 | |
| 
 | |
|       ## Verification part
 | |
|       # status = None
 | |
|       time.sleep(60)
 | |
| 
 | |
|       # Dismiss the Start Instance information box.
 | |
|       driver.find_element_by_xpath(Global_Locators.actionconfirm_xpath).click()
 | |
|       time.sleep(2)
 | |
| 
 | |
|       # Click on Instances link and find our instance
 | |
|       driver.find_element_by_xpath(Global_Locators.instances_xpath).click()
 | |
|       time.sleep(2)
 | |
| 
 | |
|       linkclass = None
 | |
|       linkclass = driver.find_elements_by_xpath(Global_Locators.instances_table_xpath) # This returns a list of all VM names in tables
 | |
| 
 | |
|       for link in linkclass:
 | |
| 
 | |
|           if link.text == "Auto-VM": # We will search for our VM in this table
 | |
|               link.click()
 | |
| 
 | |
| 
 | |
|       status = driver.find_element_by_xpath(Global_Locators.state_xpath).text  ## get the status of our VM
 | |
| 
 | |
|       if status == "Running" :
 | |
|           print "VM is in Running state..."+ '\n' + '\n'
 | |
| 
 | |
|       else:
 | |
|           print "Something went wrong"
 | |
| 
 | |
|       # Go to Dashboard
 | |
|       driver.refresh()
 | |
| 
 | |
| 
 | |
| 
 | |
|     def is_element_present(self, how, what):
 | |
| 
 | |
|         try: self.driver.find_element(by=how, value=what)
 | |
|         except NoSuchElementException, e: return False
 | |
|         return True
 | |
| 
 | |
| 
 | |
|     def tearDown(self):
 | |
| 
 | |
|         self.assertEqual([], self.verificationErrors)
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| #########################################################################################################################################################
 | |
| 
 | |
| 
 | |
| 
 | |
| class stopVM(unittest.TestCase):
 | |
| 
 | |
|     def setUp(self):
 | |
| 
 | |
|         self.driver = initialize.getOrCreateWebdriver()
 | |
|         self.verificationErrors = []
 | |
| 
 | |
| 
 | |
|     def test_stopvm(self):
 | |
| 
 | |
|         driver = self.driver
 | |
|         self.driver.implicitly_wait(100)
 | |
| 
 | |
|         ## Action part
 | |
|         driver.refresh() ## Important step.
 | |
| 
 | |
|         # Click on Instances link and find our instance
 | |
|         driver.find_element_by_xpath(Global_Locators.instances_xpath).click()
 | |
| 
 | |
|         linkclass = None
 | |
|         linkclass = driver.find_elements_by_xpath(Global_Locators.instances_table_xpath) # This returns a list of all VM names in tables
 | |
| 
 | |
|         for link in linkclass:
 | |
| 
 | |
|             if link.text == "Auto-VM": # We will search for our VM in this table
 | |
|                 print "found VM in table ..  checking status..." + '\n' + '\n'
 | |
|                 link.click()
 | |
| 
 | |
| 
 | |
|         # HWe are on our VM information page.
 | |
|         driver.find_element_by_css_selector(Global_Locators.stopinstance_css).click()
 | |
|         time.sleep(2)
 | |
| 
 | |
|         # a Pop up must appear; below we will check the force stop check box and then we will click ok.
 | |
|         driver.find_element_by_id(Global_Locators.stopinstanceforce_id).click()
 | |
|         driver.find_element_by_xpath(Global_Locators.actionconfirm_xpath).click()
 | |
|         time.sleep(2)
 | |
| 
 | |
|         # Go to Dahsboard
 | |
|         #driver.find_element_by_xpath(Global_Locators.dashboard_xpath).click()
 | |
|         driver.refresh()
 | |
| 
 | |
|         # Should take less than min to stop the instance. We will check twice at interval of 45 seconds o be safe.
 | |
|         ## Verification part
 | |
|         time.sleep(60)
 | |
| 
 | |
|         # Click on Instances link and find our instance
 | |
|         driver.find_element_by_xpath(Global_Locators.instances_xpath).click()
 | |
| 
 | |
|         linkclass = None
 | |
|         linkclass = driver.find_elements_by_xpath(Global_Locators.instances_table_xpath) # This returns a list of all VM names in tables
 | |
| 
 | |
|         for link in linkclass:
 | |
| 
 | |
|             if link.text == "Auto-VM": # We will search for our VM in this table
 | |
|                 link.click()
 | |
| 
 | |
| 
 | |
|         status = driver.find_element_by_xpath(Global_Locators.state_xpath).text  ## get the status of our VM
 | |
| 
 | |
|         if status == "Stopped" :
 | |
|             print "VM is in Stopped state...."+ '\n' + '\n'
 | |
|         else:
 | |
|             print "Something went wrong"
 | |
| 
 | |
| 
 | |
| 
 | |
|     def is_element_present(self, how, what):
 | |
| 
 | |
|         try: self.driver.find_element(by=how, value=what)
 | |
|         except NoSuchElementException, e: return False
 | |
|         return True
 | |
| 
 | |
| 
 | |
| 
 | |
|     def tearDown(self):
 | |
| 
 | |
|         self.assertEqual([], self.verificationErrors)
 | |
| 
 | |
| 
 | |
| #########################################################################################################################################################
 |