def tc_ID246858_ESX_add_new_host(params): """ Execute virt-who in a registered host, verify add new esx host """ try: try: logger = params['logger'] eu().RESET_RESULT() logger.info( "=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) eu().esx_add_host() eu().SET_RESULT(1) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: logger.info( "=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID246858_ESX_add_new_host(params): """ Execute virt-who in a registered host, verify add new esx host """ try: try: logger = params["logger"] eu().RESET_RESULT() logger.info( "=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1 :] ) eu().esx_add_host() eu().SET_RESULT(1) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: logger.info( "=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1 :] ) return eu().TEST_RESULT()
def tc_ID155173_ESX_check_uuid_when_guest_paused_or_shutdown(params): """tc_ID155173_ESX_check_uuid_when_guest_paused_or_shutdown""" try: try: logger = params['logger'] eu().RESET_RESULT() logger.info("=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) guest_name = "ESX_" + params['handleguest'] samhostip = params['samhostip'] destination_ip = ee.esx_host_ip # (1) start a guest eu().esx_start_guest(logger, guest_name) # check if the uuid is correctly monitored by virt-who. eu().esx_check_uuid(logger, guest_name, destination_ip) # (2)pause a guest eu().esx_pause_guest(logger, guest_name, destination_ip) # check if the uuid is correctly monitored by virt-who. eu().esx_check_uuid(logger, guest_name, destination_ip) # (3)resume a guest eu().esx_resume_guest(logger, guest_name, destination_ip) # check if the uuid is correctly monitored by virt-who. eu().esx_check_uuid(logger, guest_name, destination_ip) # (4)shutdown a guest eu().esx_stop_guest(logger, guest_name, destination_ip) # check if the uuid is correctly monitored by virt-who. eu().esx_check_uuid(logger, guest_name, destination_ip) eu().SET_RESULT(0) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: logger.info("=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID173049_ESX_remove_deletion_record_of_hypervisor_to_re_register( params): """ remove_deletion_record_of_hypervisor_to_re_register """ try: try: logger = params['logger'] eu().RESET_RESULT() logger.info( "=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) # guest_name = "ESX_" + params['handleguest'] samhostip = params['samhostip'] destination_ip = ee.esx_host_ip # Start a guest by start from host machine. # eu().esx_start_guest(logger, guest_name, destination_ip) # Get guest IP # guestip = None # guestip = eu().esx_get_guest_ip(logger, guest_name, destination_ip) # if guestip == None: # logger.error("Faild to get guest ip.") # eu().SET_RESULT(1) # Register guest to SAM # if not eu().sub_isregistered(logger, guestip): # eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), guestip) # eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"], guestip) # restart virt-who service eu().vw_restart_virtwho(logger) host_uuid = eu().esx_get_host_uuid(logger, destination_ip) eu().esx_check_host_in_samserv(logger, host_uuid, samhostip) eu().vw_stop_virtwho(logger) eu().esx_remove_host_in_samserv(logger, host_uuid, samhostip) eu().esx_remove_deletion_record_in_samserv(logger, host_uuid, samhostip) eu().vw_restart_virtwho(logger) eu().esx_check_host_in_samserv(logger, host_uuid, samhostip) eu().SET_RESULT(0) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: # if guestip != None: # eu().sub_unregister(logger, guestip) # eu().esx_stop_guest(logger, guest_name, destination_ip) logger.info( "=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID155120_ESX_check_guest_consumer_uuid_on_server(params): """ Execute virt-who in a registered host to Check UUIDs of running guests """ try: try: logger = params["logger"] eu().RESET_RESULT() logger.info( "=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1 :] ) guest_name = "ESX_" + params["handleguest"] destination_ip = ee.esx_host_ip # Start a guest by start from host machine. eu().esx_start_guest(logger, guest_name) # Get guest IP guestip = None guestip = eu().esx_get_guest_ip(logger, guest_name, destination_ip) if guestip == None: logger.error("Faild to get guest ip.") eu().SET_RESULT(1) # Register guest to SAM if not eu().sub_isregistered(logger, guestip): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), guestip) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"], guestip) # Get uuid of host and guest consumer cmd = "grep 'Sending update in hosts-to-guests mapping' /var/log/rhsm/rhsm.log | tail -1" ret, output = eu().runcmd(logger, cmd, "get host consumer uuid") hostuuid = output.split("{")[1].split(":")[0].strip() cmd = "subscription-manager identity | grep identity" ret, output = eu().runcmd(logger, cmd, "get guest subscription-manager identity", guestip) guestuuid = output.split(":")[1].strip() # Check whether guest is included in host info samhostip = params["samhostip"] cmd = "curl -u admin:admin -k https://%s/sam/api/consumers/%s" % (samhostip, hostuuid) ret, output = eu().runcmd(logger, cmd, "Check whether guest is included in host info") if ret == 0 and guestuuid in output: logger.info("Succeeded to check guest in host info.") eu().SET_RESULT(0) else: logger.error("Failed to check guest in host info.") eu().SET_RESULT(1) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: if guestip != None: eu().sub_unregister(logger, guestip) eu().esx_stop_guest(logger, guest_name, destination_ip) logger.info( "=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1 :] ) return eu().TEST_RESULT()
def tc_Setup_Virtwho(params): """ Set up virt-who environment """ try: try: logger = params['logger'] eu().RESET_RESULT() logger.info("=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) if "server_hostname" in params.keys(): # (1)set cpu socket eu().set_cpu_socket(logger) # (2)configure and register the host if not eu().sub_isregistered(logger): eu().configure_stage_host(logger, params.get("server_hostname")) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"]) # (3)update virt-who configure file eu().update_vw_configure(logger) # (4)restart virt-who service eu().vw_restart_virtwho(logger) # (5)copy all needed guests testtype = params['testtype'] copyimages = params['copyimages'] if copyimages == "yes": eu().copy_images(logger, testtype, ee.image_machine_ip, ee.image_machine_imagepath, ee.imagenfspath) # (6)export image path as nfs eu().export_dir_as_nfs(logger, ee.imagenfspath) # (7)mount image nfs path eu().mount_images_in_sourcemachine(logger, ee.imagenfspath, ee.imagepath) # (8)add some guests by define from host machine. eu().vw_define_all_guests(logger, testtype, params) # (9)set up env for migration if needed if params.has_key("targetmachine_ip") and params.has_key("targetmachine_hostname"): logger.info("-------- Begin to set up env for migration -------- ") targetmachine_ip = params["targetmachine_ip"] targetmachine_hostname = params["targetmachine_hostname"] # 1)mount image path in target machine eu().mount_images_in_targetmachine(logger, targetmachine_ip, ee.imagenfspath, ee.imagepath) # 2)mount the rhsm log of the target machine into source machine. eu().mount_rhsmlog_of_targetmachine(logger, targetmachine_ip, ee.rhsmlog_for_targetmachine) # 3)update /etc/hosts file eu().update_hosts_file(logger, targetmachine_ip, targetmachine_hostname) # 4)set cpu socket eu().set_cpu_socket(logger, targetmachine_ip=targetmachine_ip) # 5)stop firewall of two host machines for migration eu().stop_firewall(logger) eu().stop_firewall(logger, targetmachine_ip) # 6)update xen configuration file /etc/xen/xend-config.sxp of two host machines for migration to # make sure contain necessary config options, and then restart service xend. if testtype == "xen": eu().update_xen_configure(logger) eu().update_xen_configure(logger, targetmachine_ip) # 7)configure and register the host if not eu().sub_isregistered(logger, targetmachine_ip): eu().configure_stage_host(logger, params.get("server_hostname"), targetmachine_ip) username = eu().get_env(logger)["username"] password = eu().get_env(logger)["password"] eu().sub_register(logger, username, password, targetmachine_ip) # 8)update virt-who configure file eu().update_vw_configure(logger, targetmachine_ip=targetmachine_ip) # 9)restart virt-who service in target machine eu().vw_restart_virtwho(logger, targetmachine_ip) logger.info("-------- End to set up env for migration -------- ") else: logger.info("There is no target machine ip/hostname provided, so does not setup env for migration.") # if got here, this script run well eu().SET_RESULT(0) else: if "vcentermachine_ip" in params.keys(): VIRTWHO_ESX_OWNER = "ACME_Corporation" VIRTWHO_ESX_ENV = "Library" VIRTWHO_ESX_SERVER = params['vcentermachine_ip'] VIRTWHO_ESX_USERNAME = params.get("vcentermachine_username") VIRTWHO_ESX_PASSWORD = params.get("vcentermachine_password") ESX_HOST = ee.esx_host_ip # update virt-who configure file eu().update_esx_vw_configure(logger, VIRTWHO_ESX_OWNER, VIRTWHO_ESX_ENV, VIRTWHO_ESX_SERVER, VIRTWHO_ESX_USERNAME, VIRTWHO_ESX_PASSWORD) # restart virt-who service eu().vw_restart_virtwho(logger) if not eu().sub_isregistered(logger): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip")) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"]) # wget all needed guests copyimages = params['copyimages'] guest_name = "ESX_" + params['handleguest'] if eu().esx_check_host_exist(logger, ESX_HOST, VIRTWHO_ESX_SERVER, VIRTWHO_ESX_USERNAME, VIRTWHO_ESX_PASSWORD): if copyimages == "yes": wget_url = "http://hp-z220-11.qe.lab.eng.nay.redhat.com/projects/sam-virtwho/esx_guest/" # eu().esx_remove_all_guests() eu().wget_images(logger, wget_url, guest_name, ESX_HOST) # eu().esx_add_guest_first(logger, guest_name, ESX_HOST, VIRTWHO_ESX_SERVER, VIRTWHO_ESX_USERNAME, VIRTWHO_ESX_PASSWORD, vmware_cmd_ip) eu().esx_add_guest(logger, guest_name, ESX_HOST) eu().esx_start_guest_first(logger, guest_name, ESX_HOST) eu().esx_service_restart(logger, ESX_HOST) eu().esx_stop_guest(logger, guest_name, ESX_HOST) # restart virt-who service eu().vw_restart_virtwho(logger) # if got here, this script run well eu().SET_RESULT(0) else: logger.error("ESX host:'%s' has not been added to vCenter yet, add it manually first!" % ESX_HOST) if "rhevmmachine_ip" in params.keys(): DNSserver_ip = "10.66.12.112" NFSserver_ip = "10.66.13.170" proxy_ip = "proxy=https:\/\/squid.corp.redhat.com:3128" nfs_dir_for_storage = "/home/vol/data5" nfs_dir_for_export = "/home/vol/data7" handleguest = params["handleguest"] rhevmmachine_ip = params['rhevmmachine_ip'] rhevmmachine_name = eu().get_hostname(logger, rhevmmachine_ip) rhevm_host1_ip = params["rhel_host_ip"] rhevm_host1_name = eu().get_hostname(logger, rhevm_host1_ip) # virt-who configure for rhevm mode VIRTWHO_RHEVM_OWNER = "ACME_Corporation" VIRTWHO_RHEVM_ENV = "Library" VIRTWHO_RHEVM_SERVER = "https:\/\/" + rhevmmachine_ip + ":443" VIRTWHO_RHEVM_USERNAME = "******" VIRTWHO_RHEVM_PASSWORD = "******" copyimages = params['copyimages'] if copyimages == "yes": # update virt-who configure file eu().rhevm_update_vw_configure(logger, VIRTWHO_RHEVM_OWNER, VIRTWHO_RHEVM_ENV, VIRTWHO_RHEVM_SERVER, VIRTWHO_RHEVM_USERNAME, VIRTWHO_RHEVM_PASSWORD, background=1, debug=1) # configure dns server, add rhel host eu().config_dnsserver(logger, rhevm_host1_ip, rhevm_host1_name, DNSserver_ip) # configure /etc/yum.conf eu().config_yum(logger, proxy_ip, rhevm_host1_ip) # add rhevm to rhel host in /etc/hosts eu().add_rhevm_server_to_host(logger, rhevmmachine_name, rhevmmachine_ip, rhevm_host1_ip) # add rhevm bridge in rhel host eu().configure_host_bridge(logger, rhevmmachine_name, rhevmmachine_ip, rhevm_host1_ip) # stop firewall eu().stop_firewall(logger, rhevm_host1_ip) if not eu().sub_isregistered(logger, rhevm_host1_ip): eu().conf_rhsm_candlepin(logger, rhevm_host1_ip) eu().sub_register(logger, ee.username_qa, ee.password_qa, rhevm_host1_ip) # Subscribe host to a physical pool which has a guest limit (not unlimited) eu().sub_subscribetopool_of_product(logger, ee.productid_guest, rhevm_host1_ip) # Subscribe host to Vitalization subscription eu().sub_subscribetopool_of_product(logger, ee.productid_Virtual_guest, rhevm_host1_ip) # add repo to rhel host eu().get_rhevm_repo_file(logger, rhevm_host1_ip) # Add host1 to rhevm eu().rhevm_add_host(logger, rhevm_host1_name, rhevm_host1_ip, rhevmmachine_ip) # auto connect rhevm-shell eu().config_rhevm_shell(logger, rhevmmachine_ip) # configure and register rhel host if eu().sub_isregistered(logger, rhevm_host1_ip): eu().sub_unregister(logger, rhevm_host1_ip) # add dns server to /etc/resolve.conf eu().rhevm_add_dns_to_host(logger, DNSserver_ip, rhevm_host1_ip) eu().conf_rhsm_sam(logger, rhevm_host1_ip) eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), rhevm_host1_ip) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"], rhevm_host1_ip) eu().sub_autosubscribe(logger, eu().get_env(logger)["autosubprod"], rhevm_host1_ip) # configure and register execute virt-who host if not eu().sub_isregistered(logger): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip")) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"]) eu().sub_autosubscribe(logger, eu().get_env(logger)["autosubprod"]) # Add storagedomain to rhevm eu().add_storagedomain_to_rhevm(logger, "data_storage", rhevm_host1_name, "data", "v3", NFSserver_ip, nfs_dir_for_storage, rhevmmachine_ip) eu().add_storagedomain_to_rhevm(logger, "export_storage", rhevm_host1_name, "export", "v1", NFSserver_ip, nfs_dir_for_export, rhevmmachine_ip) eu().activate_storagedomain(logger, "export_storage", rhevmmachine_ip) eu().rhevm_define_guest(logger) eu().create_storage_pool(logger) # yum install virt-V2V eu().install_virtV2V(logger, rhevmmachine_name, rhevmmachine_ip) eu().convert_guest_to_nfs(logger, NFSserver_ip, nfs_dir_for_export, handleguest) eu().import_vm_to_rhevm(logger, handleguest, "data_storage", "export_storage", rhevmmachine_ip) eu().SET_RESULT(0) if "targetmachine_ip" in params.keys(): # (1)set cpu socket eu().set_cpu_socket(logger) # (2)configure and register the host if not eu().sub_isregistered(logger): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip")) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"]) # (3)update virt-who configure file eu().update_vw_configure(logger) # (4)restart virt-who service eu().vw_restart_virtwho(logger) # (5)copy all needed guests testtype = params['testtype'] copyimages = params['copyimages'] if copyimages == "yes": # if "beaker" in params.keys() and params['beaker'] == "yes": if "redhat.com" in params['targetmachine_ip']: eu().copy_images(logger, testtype, ee.beaker_image_machine_ip, ee.image_machine_imagepath, ee.imagenfspath) else: eu().copy_images(logger, testtype, ee.image_machine_ip, ee.image_machine_imagepath, ee.imagenfspath) # (6)export image path as nfs eu().export_dir_as_nfs(logger, ee.imagenfspath) # (7)mount image nfs path eu().mount_images_in_sourcemachine(logger, ee.imagenfspath, ee.imagepath) # (8)add some guests by define from host machine. eu().vw_define_all_guests(logger, testtype, params) # (9)set up env for migration if needed if params.has_key("targetmachine_ip") and params.has_key("targetmachine_hostname"): logger.info("-------- Begin to set up env for migration -------- ") targetmachine_ip = params["targetmachine_ip"] targetmachine_hostname = params["targetmachine_hostname"] # 1)mount image path in target machine eu().mount_images_in_targetmachine(logger, targetmachine_ip, ee.imagenfspath, ee.imagepath) # 2)mount the rhsm log of the target machine into source machine. eu().mount_rhsmlog_of_targetmachine(logger, targetmachine_ip, ee.rhsmlog_for_targetmachine) # 3)update /etc/hosts file eu().update_hosts_file(logger, targetmachine_ip, targetmachine_hostname) # 4)set cpu socket eu().set_cpu_socket(logger, targetmachine_ip=targetmachine_ip) # 5)stop firewall of two host machines for migration eu().stop_firewall(logger) eu().stop_firewall(logger, targetmachine_ip) # 6)update xen configuration file /etc/xen/xend-config.sxp of two host machines for migration to # make sure contain necessary config options, and then restart service xend. if testtype == "xen": eu().update_xen_configure(logger) eu().update_xen_configure(logger, targetmachine_ip) # 7)configure and register the host if not eu().sub_isregistered(logger, targetmachine_ip): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), targetmachine_ip) username = eu().get_env(logger)["username"] password = eu().get_env(logger)["password"] eu().sub_register(logger, username, password, targetmachine_ip) # 8)update virt-who configure file eu().update_vw_configure(logger, targetmachine_ip=targetmachine_ip) # 9)restart virt-who service in target machine eu().vw_restart_virtwho(logger, targetmachine_ip) logger.info("-------- End to set up env for migration -------- ") else: logger.info("There is no target machine ip/hostname provided, so does not setup env for migration.") # if got here, this script run well eu().SET_RESULT(0) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: logger.info("=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID155171_ESX_check_uuid_after_deleting_guests(params): ''' check_uuid_after_adding_guests ''' try: try: logger = params['logger'] eu().RESET_RESULT() logger.info("=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) handleguest = "ESX_" + params['handleguest'] destination_ip = ee.esx_host_ip vCenter = params['vcentermachine_ip'] vCenter_user = params['vcentermachine_username'] vCenter_pass = params['vcentermachine_password'] host_uuid = eu().esx_get_host_uuid(logger, destination_ip) # delete guest eu().esx_remove_guest(logger, handleguest, destination_ip, vCenter, vCenter_user, vCenter_pass) # restart virt-who service eu().vw_restart_virtwho(logger) eu().vw_restart_virtwho(logger) # check log info in rhsm.log with none guest cmd = "sleep 30; tail -1 /var/log/rhsm/rhsm.log" expected_info = "Sending update in hosts-to-guests mapping: {%s: []}" % host_uuid (ret, output) = eu().runcmd(logger, cmd, "check log info in rhsm.log with none guest") if ret == 0 and expected_info in output: logger.info("Succeeded to check_uuid_after_adding_guests.") eu().SET_RESULT(0) else: logger.error("Failed to check_uuid_after_adding_guests.") eu().SET_RESULT(1) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: eu().esx_add_guest(logger, handleguest, destination_ip) logger.info("=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_Setup_Virtwho(params): """ Set up virt-who environment """ try: try: logger = params['logger'] eu().RESET_RESULT() logger.info( "=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) if "server_hostname" in params.keys(): # (1)set cpu socket eu().set_cpu_socket(logger) # (2)configure and register the host if not eu().sub_isregistered(logger): eu().configure_stage_host(logger, params.get("server_hostname")) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"]) # (3)update virt-who configure file eu().update_vw_configure(logger) # (4)restart virt-who service eu().vw_restart_virtwho(logger) # (5)copy all needed guests testtype = params['testtype'] copyimages = params['copyimages'] if copyimages == "yes": eu().copy_images(logger, testtype, ee.image_machine_ip, ee.image_machine_imagepath, ee.imagenfspath) # (6)export image path as nfs eu().export_dir_as_nfs(logger, ee.imagenfspath) # (7)mount image nfs path eu().mount_images_in_sourcemachine(logger, ee.imagenfspath, ee.imagepath) # (8)add some guests by define from host machine. eu().vw_define_all_guests(logger, testtype, params) # (9)set up env for migration if needed if params.has_key("targetmachine_ip") and params.has_key( "targetmachine_hostname"): logger.info( "-------- Begin to set up env for migration -------- ") targetmachine_ip = params["targetmachine_ip"] targetmachine_hostname = params["targetmachine_hostname"] # 1)mount image path in target machine eu().mount_images_in_targetmachine(logger, targetmachine_ip, ee.imagenfspath, ee.imagepath) # 2)mount the rhsm log of the target machine into source machine. eu().mount_rhsmlog_of_targetmachine( logger, targetmachine_ip, ee.rhsmlog_for_targetmachine) # 3)update /etc/hosts file eu().update_hosts_file(logger, targetmachine_ip, targetmachine_hostname) # 4)set cpu socket eu().set_cpu_socket(logger, targetmachine_ip=targetmachine_ip) # 5)stop firewall of two host machines for migration eu().stop_firewall(logger) eu().stop_firewall(logger, targetmachine_ip) # 6)update xen configuration file /etc/xen/xend-config.sxp of two host machines for migration to # make sure contain necessary config options, and then restart service xend. if testtype == "xen": eu().update_xen_configure(logger) eu().update_xen_configure(logger, targetmachine_ip) # 7)configure and register the host if not eu().sub_isregistered(logger, targetmachine_ip): eu().configure_stage_host( logger, params.get("server_hostname"), targetmachine_ip) username = eu().get_env(logger)["username"] password = eu().get_env(logger)["password"] eu().sub_register(logger, username, password, targetmachine_ip) # 8)update virt-who configure file eu().update_vw_configure(logger, targetmachine_ip=targetmachine_ip) # 9)restart virt-who service in target machine eu().vw_restart_virtwho(logger, targetmachine_ip) logger.info( "-------- End to set up env for migration -------- ") else: logger.info( "There is no target machine ip/hostname provided, so does not setup env for migration." ) # if got here, this script run well eu().SET_RESULT(0) else: if "vcentermachine_ip" in params.keys(): VIRTWHO_ESX_OWNER = "ACME_Corporation" VIRTWHO_ESX_ENV = "Library" VIRTWHO_ESX_SERVER = params['vcentermachine_ip'] VIRTWHO_ESX_USERNAME = params.get( "vcentermachine_username") VIRTWHO_ESX_PASSWORD = params.get( "vcentermachine_password") ESX_HOST = ee.esx_host_ip # update virt-who configure file eu().update_esx_vw_configure(logger, VIRTWHO_ESX_OWNER, VIRTWHO_ESX_ENV, VIRTWHO_ESX_SERVER, VIRTWHO_ESX_USERNAME, VIRTWHO_ESX_PASSWORD) # restart virt-who service eu().vw_restart_virtwho(logger) if not eu().sub_isregistered(logger): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip")) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"]) # wget all needed guests copyimages = params['copyimages'] guest_name = "ESX_" + params['handleguest'] if eu().esx_check_host_exist(logger, ESX_HOST, VIRTWHO_ESX_SERVER, VIRTWHO_ESX_USERNAME, VIRTWHO_ESX_PASSWORD): if copyimages == "yes": wget_url = "http://hp-z220-11.qe.lab.eng.nay.redhat.com/projects/sam-virtwho/esx_guest/" # eu().esx_remove_all_guests() eu().wget_images(logger, wget_url, guest_name, ESX_HOST) # eu().esx_add_guest_first(logger, guest_name, ESX_HOST, VIRTWHO_ESX_SERVER, VIRTWHO_ESX_USERNAME, VIRTWHO_ESX_PASSWORD, vmware_cmd_ip) eu().esx_add_guest(logger, guest_name, ESX_HOST) eu().esx_start_guest_first(logger, guest_name, ESX_HOST) eu().esx_service_restart(logger, ESX_HOST) eu().esx_stop_guest(logger, guest_name, ESX_HOST) # restart virt-who service eu().vw_restart_virtwho(logger) # if got here, this script run well eu().SET_RESULT(0) else: logger.error( "ESX host:'%s' has not been added to vCenter yet, add it manually first!" % ESX_HOST) if "rhevmmachine_ip" in params.keys(): DNSserver_ip = "10.66.12.112" NFSserver_ip = "10.66.13.170" proxy_ip = "proxy=https:\/\/squid.corp.redhat.com:3128" nfs_dir_for_storage = "/home/vol/data5" nfs_dir_for_export = "/home/vol/data7" handleguest = params["handleguest"] rhevmmachine_ip = params['rhevmmachine_ip'] rhevmmachine_name = eu().get_hostname( logger, rhevmmachine_ip) rhevm_host1_ip = params["rhel_host_ip"] rhevm_host1_name = eu().get_hostname( logger, rhevm_host1_ip) # virt-who configure for rhevm mode VIRTWHO_RHEVM_OWNER = "ACME_Corporation" VIRTWHO_RHEVM_ENV = "Library" VIRTWHO_RHEVM_SERVER = "https:\/\/" + rhevmmachine_ip + ":443" VIRTWHO_RHEVM_USERNAME = "******" VIRTWHO_RHEVM_PASSWORD = "******" copyimages = params['copyimages'] if copyimages == "yes": # update virt-who configure file eu().rhevm_update_vw_configure(logger, VIRTWHO_RHEVM_OWNER, VIRTWHO_RHEVM_ENV, VIRTWHO_RHEVM_SERVER, VIRTWHO_RHEVM_USERNAME, VIRTWHO_RHEVM_PASSWORD, background=1, debug=1) # configure dns server, add rhel host eu().config_dnsserver(logger, rhevm_host1_ip, rhevm_host1_name, DNSserver_ip) # configure /etc/yum.conf eu().config_yum(logger, proxy_ip, rhevm_host1_ip) # add rhevm to rhel host in /etc/hosts eu().add_rhevm_server_to_host(logger, rhevmmachine_name, rhevmmachine_ip, rhevm_host1_ip) # add rhevm bridge in rhel host eu().configure_host_bridge(logger, rhevmmachine_name, rhevmmachine_ip, rhevm_host1_ip) # stop firewall eu().stop_firewall(logger, rhevm_host1_ip) if not eu().sub_isregistered(logger, rhevm_host1_ip): eu().conf_rhsm_candlepin(logger, rhevm_host1_ip) eu().sub_register(logger, ee.username_qa, ee.password_qa, rhevm_host1_ip) # Subscribe host to a physical pool which has a guest limit (not unlimited) eu().sub_subscribetopool_of_product( logger, ee.productid_guest, rhevm_host1_ip) # Subscribe host to Vitalization subscription eu().sub_subscribetopool_of_product( logger, ee.productid_Virtual_guest, rhevm_host1_ip) # add repo to rhel host eu().get_rhevm_repo_file(logger, rhevm_host1_ip) # Add host1 to rhevm eu().rhevm_add_host(logger, rhevm_host1_name, rhevm_host1_ip, rhevmmachine_ip) # auto connect rhevm-shell eu().config_rhevm_shell(logger, rhevmmachine_ip) # configure and register rhel host if eu().sub_isregistered(logger, rhevm_host1_ip): eu().sub_unregister(logger, rhevm_host1_ip) # add dns server to /etc/resolve.conf eu().rhevm_add_dns_to_host(logger, DNSserver_ip, rhevm_host1_ip) eu().conf_rhsm_sam(logger, rhevm_host1_ip) eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), rhevm_host1_ip) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"], rhevm_host1_ip) eu().sub_autosubscribe( logger, eu().get_env(logger)["autosubprod"], rhevm_host1_ip) # configure and register execute virt-who host if not eu().sub_isregistered(logger): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip")) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"]) eu().sub_autosubscribe( logger, eu().get_env(logger)["autosubprod"]) # Add storagedomain to rhevm eu().add_storagedomain_to_rhevm( logger, "data_storage", rhevm_host1_name, "data", "v3", NFSserver_ip, nfs_dir_for_storage, rhevmmachine_ip) eu().add_storagedomain_to_rhevm( logger, "export_storage", rhevm_host1_name, "export", "v1", NFSserver_ip, nfs_dir_for_export, rhevmmachine_ip) eu().activate_storagedomain(logger, "export_storage", rhevmmachine_ip) eu().rhevm_define_guest(logger) eu().create_storage_pool(logger) # yum install virt-V2V eu().install_virtV2V(logger, rhevmmachine_name, rhevmmachine_ip) eu().convert_guest_to_nfs(logger, NFSserver_ip, nfs_dir_for_export, handleguest) eu().import_vm_to_rhevm(logger, handleguest, "data_storage", "export_storage", rhevmmachine_ip) eu().SET_RESULT(0) if "targetmachine_ip" in params.keys(): # (1)set cpu socket eu().set_cpu_socket(logger) # (2)configure and register the host if not eu().sub_isregistered(logger): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip")) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"]) # (3)update virt-who configure file eu().update_vw_configure(logger) # (4)restart virt-who service eu().vw_restart_virtwho(logger) # (5)copy all needed guests testtype = params['testtype'] copyimages = params['copyimages'] if copyimages == "yes": # if "beaker" in params.keys() and params['beaker'] == "yes": if "redhat.com" in params['targetmachine_ip']: eu().copy_images(logger, testtype, ee.beaker_image_machine_ip, ee.image_machine_imagepath, ee.imagenfspath) else: eu().copy_images(logger, testtype, ee.image_machine_ip, ee.image_machine_imagepath, ee.imagenfspath) # (6)export image path as nfs eu().export_dir_as_nfs(logger, ee.imagenfspath) # (7)mount image nfs path eu().mount_images_in_sourcemachine(logger, ee.imagenfspath, ee.imagepath) # (8)add some guests by define from host machine. eu().vw_define_all_guests(logger, testtype, params) # (9)set up env for migration if needed if params.has_key("targetmachine_ip") and params.has_key( "targetmachine_hostname"): logger.info( "-------- Begin to set up env for migration -------- " ) targetmachine_ip = params["targetmachine_ip"] targetmachine_hostname = params[ "targetmachine_hostname"] # 1)mount image path in target machine eu().mount_images_in_targetmachine( logger, targetmachine_ip, ee.imagenfspath, ee.imagepath) # 2)mount the rhsm log of the target machine into source machine. eu().mount_rhsmlog_of_targetmachine( logger, targetmachine_ip, ee.rhsmlog_for_targetmachine) # 3)update /etc/hosts file eu().update_hosts_file(logger, targetmachine_ip, targetmachine_hostname) # 4)set cpu socket eu().set_cpu_socket(logger, targetmachine_ip=targetmachine_ip) # 5)stop firewall of two host machines for migration eu().stop_firewall(logger) eu().stop_firewall(logger, targetmachine_ip) # 6)update xen configuration file /etc/xen/xend-config.sxp of two host machines for migration to # make sure contain necessary config options, and then restart service xend. if testtype == "xen": eu().update_xen_configure(logger) eu().update_xen_configure(logger, targetmachine_ip) # 7)configure and register the host if not eu().sub_isregistered(logger, targetmachine_ip): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), targetmachine_ip) username = eu().get_env(logger)["username"] password = eu().get_env(logger)["password"] eu().sub_register(logger, username, password, targetmachine_ip) # 8)update virt-who configure file eu().update_vw_configure( logger, targetmachine_ip=targetmachine_ip) # 9)restart virt-who service in target machine eu().vw_restart_virtwho(logger, targetmachine_ip) logger.info( "-------- End to set up env for migration -------- " ) else: logger.info( "There is no target machine ip/hostname provided, so does not setup env for migration." ) # if got here, this script run well eu().SET_RESULT(0) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: logger.info( "=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_Clean_Virtwho(params): """ Clean up virt-who test environment """ try: try: logger = params['logger'] eu().RESET_RESULT() logger.info( "=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) if "vcentermachine_ip" in params.keys(): vcentermachine_ip = params['vcentermachine_ip'] VIRTWHO_ESX_OWNER = "ACME_Corporation" VIRTWHO_ESX_ENV = "env1" VIRTWHO_ESX_SERVER = vcentermachine_ip VIRTWHO_ESX_USERNAME = params.get("vcentermachine_username") VIRTWHO_ESX_PASSWORD = params.get("vcentermachine_password") ESX_HOST_1 = ee.esx_host_ip vmware_cmd_ip = ee.vmware_cmd_ip eu().SET_RESULT(0) if "targetmachine_ip" in params.keys(): # (1)undefine all guests eu().vw_undefine_all_guests(logger, params) # (2)stop virt-who service - restart firstly to get current all guest status inputted into the rhsm.log. # #restart virt-who service eu().vw_restart_virtwho(logger) # #stop virt-who service eu().vw_stop_virtwho(logger) # (3)unregister the host if eu().sub_isregistered(logger): eu().sub_unregister(logger) # (4)unmount image path in source machine eu().unmount_imagepath_in_sourcemachine(logger, ee.imagepath) # (5)clean env for migration if needed if params.has_key("targetmachine_ip"): logger.info( "-------- Begin to clean env for migration --------") targetmachine_ip = params["targetmachine_ip"] # 1)unmount image path in target machine eu().unmount_imagepath_in_targetmachine( logger, ee.imagepath, targetmachine_ip) # 2)unmount the rhsm log of the target machine eu().unmount_rhsmlog_of_targetmachine( logger, ee.rhsmlog_for_targetmachine) # 3)stop virt-who service - restart firstly to get current all guest status inputted into the rhsm.log. # #restart virt-who service eu().vw_restart_virtwho(logger, targetmachine_ip) # #stop virt-who service eu().vw_stop_virtwho(logger, targetmachine_ip) # 4)unregister the target machine if eu().sub_isregistered(logger, targetmachine_ip): eu().sub_unregister(logger, targetmachine_ip) logger.info( "-------- End to clean env for migration --------") eu().SET_RESULT(0) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: logger.info( "=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID308833_ESX_add_large_number_guests(params): """ Execute virt-who with large number of guests in host """ try: try: logger = params['logger'] eu().RESET_RESULT() logger.info("=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) guest_name = "esx_auto_guest" vCenter = params['vcentermachine_ip'] vCenter_user = params['vcentermachine_username'] vCenter_pass = params['vcentermachine_password'] destination_ip = ee.esx_host_ip guest_total = 100 guest_uuid_list = [] # add 100 guests in vCenter for i in range(0, guest_total): eu().esx_create_dummy_guest(logger, guest_name + "_" + str(i), destination_ip) guest_uuid = eu().esx_get_guest_uuid(logger, guest_name + "_" + str(i), destination_ip) guest_uuid_list.append(guest_uuid) # if not eu().esx_check_uuid_exist_in_rhsm_log(logger, guestuuid, destination_ip): # eu().SET_RESULT(1) # check all guest uuid is in rhsm.log guest_uuid_list_in_log = eu().get_uuid_list_in_rhsm_log(logger) for i in range(0, guest_total): if not guest_uuid_list[i] in guest_uuid_list_in_log: eu().SET_RESULT(1) else: logger.info("UUID of guest:%s exist in rhsm.log" % (guest_name + "_" + str(i))) # remove the 100 guests added in vCenter for i in range(0, guest_total): # guestuuid = eu().esx_get_guest_uuid(logger, guest_name + "_" + str(i), destination_ip) eu().esx_remove_guest(logger, guest_name + "_" + str(i), destination_ip, vCenter, vCenter_user, vCenter_pass) eu().esx_destroy_guest(logger, guest_name + "_" + str(i), destination_ip) # if eu().esx_check_uuid_exist_in_rhsm_log(logger, guestuuid, destination_ip): # eu().SET_RESULT(1) eu().SET_RESULT(0) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: logger.info("=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID155170_ESX_check_uuid_after_adding_guests(params): ''' check_uuid_after_adding_guests ''' try: try: logger = params['logger'] eu().RESET_RESULT() logger.info("=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) guest_name = "ESX_" + params['handleguest'] destination_ip = ee.esx_host_ip # Start a guest by start from host machine. eu().esx_start_guest(logger, guest_name) # Get guest IP guestip = None guestip = eu().esx_get_guest_ip(logger, guest_name, destination_ip) if guestip == None: logger.error("Faild to get guest ip.") eu().SET_RESULT(1) # Get guest uuid guestuuid = eu().esx_get_guest_uuid(logger, guest_name, destination_ip) # Register guest to SAM if not eu().sub_isregistered(logger, guestip): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), guestip) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"], guestip) # Check virt uuid in facts list cmd = "subscription-manager facts --list | grep virt.uuid" ret, output = eu().runcmd(logger, cmd, "list virt.uuid", guestip) if ret == 0: uuidvalue = output.split(":")[1].strip() if "virt.uuid" in output and uuidvalue == guestuuid: logger.info("Succeeded to check_uuid_after_adding_guests.") eu().SET_RESULT(0) else: logger.error("Failed to check_uuid_after_adding_guests.") eu().SET_RESULT(1) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: if guestip != None: eu().sub_unregister(logger, guestip) eu().esx_stop_guest(logger, guest_name, destination_ip) logger.info("=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID155142_ESX_validate_bonus_pool_creation(params): ''' support_for_unlimited_guest_entitlements ''' try: try: logger = params['logger'] eu().RESET_RESULT() logger.info("=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) guest_name = "ESX_" + params['handleguest'] samhostip = params['samhostip'] destination_ip = ee.esx_host_ip host_uuid = eu().esx_get_host_uuid(logger, destination_ip) # Start a guest by start from host machine. eu().esx_start_guest(logger, guest_name) # Get guest IP guestip = None guestip = eu().esx_get_guest_ip(logger, guest_name, destination_ip) if guestip == None: logger.error("Faild to get guest ip.") eu().SET_RESULT(1) # Register guest to SAM if not eu().sub_isregistered(logger, guestip): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), guestip) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"], guestip) # check only physical subscription in guest # subscribe esx host with limited bonus subscription eu().esx_subscribe_host_in_samserv(logger, host_uuid, eu().get_poolid_by_SKU(logger, ee.productid_guest) , samhostip) # List available pools of guest, check related bonus pool generated. new_available_poollist = eu().sub_listavailpools(logger, ee.productid_guest, guestip) if new_available_poollist != None: bonus_pool_check = 1 for item in range(0, len(new_available_poollist)): if "Available" in new_available_poollist[item]: SKU_Number = "Available" else: SKU_Number = "Quantity" if new_available_poollist[item]["SKU"] == ee.productid_guest and eu().check_type_virtual(new_available_poollist[item]) and new_available_poollist[item][SKU_Number] == ee.guestlimit: logger.info("Succeeded to list bonus pool of product %s" % ee.productname_unlimited_guest) bonus_pool_check = 0 eu().SET_RESULT(bonus_pool_check) else: logger.error("Failed to get available pool list from guest.") eu().SET_RESULT(1) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: if guestip != None: eu().sub_unregister(logger, guestip) # Unregister the ESX host eu().esx_unsubscribe_all_host_in_samserv(logger, host_uuid, samhostip) eu().esx_stop_guest(logger, guest_name, destination_ip) logger.info("=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID289675_ESX_Datacenter_repos_in_guest(params): ''' tc_ID289675_ESX_Datacenter_repos_in_guest ''' try: try: logger = params['logger'] eu().RESET_RESULT() logger.info("=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) guest_name = "ESX_" + params['handleguest'] samhostip = params['samhostip'] destination_ip = ee.esx_host_ip host_uuid = eu().esx_get_host_uuid(logger, destination_ip) # Start a guest by start from host machine. eu().esx_start_guest(logger, guest_name) # Get guest IP guestip = None guestip = eu().esx_get_guest_ip(logger, guest_name, destination_ip) if guestip == None: logger.error("Faild to get guest ip.") eu().SET_RESULT(1) # Register guest to SAM if not eu().sub_isregistered(logger, guestip): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), guestip) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"], guestip) # Subscribe esx host to a data center SKU eu().esx_subscribe_host_in_samserv(logger, host_uuid, eu().get_poolid_by_SKU(logger, ee.data_center_SKU) , samhostip) # Subscribe the registered guest to the corresponding bonus pool eu().subscribe_datacenter_bonus_pool(logger, ee.data_center_subscription_name, guestip) # Check repositories available in guest cmd = "subscription-manager repos --list | grep -A4 \"^Repo ID\"" ret, output = eu().runcmd(logger, cmd, "Check repositories available in guest", guestip) if ret == 0 and "This system has no repositories available through subscriptions." not in output: logger.info("Succeeded to check repositories available in guest.") else: logger.error("Failed to check repositories available in guest.") eu().SET_RESULT(1) # Check content sets exist in cert file in guest cmd = "rct cat-cert /etc/pki/entitlement/*[^-key].pem | grep -A11 \"^Content:\"" ret, output = eu().runcmd(logger, cmd, "Check content sets exist in cert file in guest", guestip) if ret == 0: logger.info("Succeeded to check content sets exist in cert file in guest.") else: logger.error("Failed to check content sets exist in cert file in guest.") eu().SET_RESULT(1) eu().SET_RESULT(0) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: if guestip != None: eu().sub_unregister(logger, guestip) # Unregister the ESX host eu().esx_unsubscribe_all_host_in_samserv(logger, host_uuid, samhostip) eu().esx_stop_guest(logger, guest_name, destination_ip) logger.info("=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID155171_ESX_check_uuid_after_deleting_guests(params): ''' check_uuid_after_adding_guests ''' try: try: logger = params['logger'] eu().RESET_RESULT() logger.info( "=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) handleguest = "ESX_" + params['handleguest'] destination_ip = ee.esx_host_ip vCenter = params['vcentermachine_ip'] vCenter_user = params['vcentermachine_username'] vCenter_pass = params['vcentermachine_password'] host_uuid = eu().esx_get_host_uuid(logger, destination_ip) # delete guest eu().esx_remove_guest(logger, handleguest, destination_ip, vCenter, vCenter_user, vCenter_pass) # restart virt-who service eu().vw_restart_virtwho(logger) eu().vw_restart_virtwho(logger) # check log info in rhsm.log with none guest cmd = "sleep 30; tail -1 /var/log/rhsm/rhsm.log" expected_info = "Sending update in hosts-to-guests mapping: {%s: []}" % host_uuid (ret, output) = eu().runcmd( logger, cmd, "check log info in rhsm.log with none guest") if ret == 0 and expected_info in output: logger.info("Succeeded to check_uuid_after_adding_guests.") eu().SET_RESULT(0) else: logger.error("Failed to check_uuid_after_adding_guests.") eu().SET_RESULT(1) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: eu().esx_add_guest(logger, handleguest, destination_ip) logger.info( "=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID301085_ESX_Instance_compliance_in_guest_regardless_sockets_RAM_cores( params): ''' tc_ID301085_ESX_Instance_compliance_in_guest_regardless_sockets_RAM_cores. ''' try: try: logger = params['logger'] eu().RESET_RESULT() logger.info( "=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) guest_name = "ESX_" + params['handleguest'] samhostip = params['samhostip'] destination_ip = ee.esx_host_ip host_uuid = eu().esx_get_host_uuid(logger, destination_ip) # Start a guest by start from host machine. eu().esx_start_guest(logger, guest_name) # Get guest IP guestip = None guestip = eu().esx_get_guest_ip(logger, guest_name, destination_ip) if guestip == None: logger.error("Faild to get guest ip.") eu().SET_RESULT(1) # Register guest to SAM if not eu().sub_isregistered(logger, guestip): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), guestip) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"], guestip) # Set up facts eu().setup_custom_facts(logger, "cpu.cpu_socket(s)", "8", guestip) eu().setup_custom_facts(logger, "memory.memtotal", "30000000", guestip) eu().setup_custom_facts(logger, "cpu.core(s)_per_socket", "8", guestip) pool = eu().get_pool_by_SKU(logger, ee.instance_SKU, guestip) # Validate one instance-based subscription can be used for one guest cmd = "subscription-manager subscribe --pool=%s --quantity=1" % pool ret, output = eu().runcmd( logger, cmd, "Check one instance-based subscription can be used for one guest", guestip) if ret == 0 and "Successfully" in output: logger.info( "Succeeded to check one instance-based subscription can be used for one guest." ) else: logger.error( "Failed to check one instance-based subscription can be used for one guest." ) eu().SET_RESULT(1) # Check installed product status: Subscribed in guest cmd = "subscription-manager list --installed | grep 'Status:'" ret, output = eu().runcmd(logger, cmd, "Check installed product status", guestip) if ret == 0 and output.split(":")[1].strip() == "Subscribed": logger.info( "Succeeded to check installed product status is Subscribed." ) else: logger.error( "Failed to check installed product status is Subscribed.") eu().SET_RESULT(1) # Check consumed subscription with Status Details: empty. cmd = "subscription-manager list --consumed | grep 'Status Details'" ret, output = eu().runcmd( logger, cmd, "Check consumed subscription 'Status Details'", guestip) if ret == 0 and output.split(":")[1].strip() == "": logger.info( "Succeeded to check consumed subscription 'Status Details' is empty." ) else: logger.error( "Failed to check consumed subscription 'Status Details'is empty." ) eu().SET_RESULT(1) eu().SET_RESULT(0) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: if guestip != None: eu().sub_unregister(logger, guestip) # Unregister the ESX host eu().esx_unsubscribe_all_host_in_samserv(logger, host_uuid, samhostip) eu().esx_stop_guest(logger, guest_name, destination_ip) logger.info( "=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID301083_ESX_Instance_one_instance_for_one_guest(params): ''' tc_ID301083_ESX_Instance_one_instance_for_one_guest. ''' try: try: logger = params['logger'] eu().RESET_RESULT() logger.info( "=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) guest_name = "ESX_" + params['handleguest'] samhostip = params['samhostip'] destination_ip = ee.esx_host_ip host_uuid = eu().esx_get_host_uuid(logger, destination_ip) # Start a guest by start from host machine. eu().esx_start_guest(logger, guest_name) # Get guest IP guestip = None guestip = eu().esx_get_guest_ip(logger, guest_name, destination_ip) if guestip == None: logger.error("Faild to get guest ip.") eu().SET_RESULT(1) # Register guest to SAM if not eu().sub_isregistered(logger, guestip): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), guestip) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"], guestip) pool = eu().get_pool_by_SKU(logger, ee.instance_SKU, guestip) instance_quantity_before = eu().get_SKU_attribute( logger, ee.instance_SKU, "Available", guestip) # Validate one instance-based subscription can be used for one guest cmd = "subscription-manager subscribe --pool=%s --quantity=1" % pool ret, output = eu().runcmd( logger, cmd, "Check one instance-based subscription can be used for one guest", guestip) if ret == 0 and "Successfully" in output: logger.info( "Succeeded to check one instance-based subscription can be used for one guest." ) else: logger.error( "Failed to check one instance-based subscription can be used for one guest." ) eu().SET_RESULT(1) # eu().sub_listconsumed(logger, ee.instance_subscription_name) instance_quantity_after = eu().get_SKU_attribute( logger, ee.instance_SKU, "Available", guestip) if int(instance_quantity_before) - int( instance_quantity_after) == 1: logger.info( "Succeeded to check instance quantity - 1: instance_quantity_before=%s instance_quantity_after=%s" % (instance_quantity_before, instance_quantity_after)) eu().SET_RESULT(0) else: logger.error( "Failed to check instance quantity - 1: instance_quantity_before=%s instance_quantity_after=%s" % (instance_quantity_before, instance_quantity_after)) eu().SET_RESULT(1) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: if guestip != None: eu().sub_unregister(logger, guestip) # Unregister the ESX host eu().esx_unsubscribe_all_host_in_samserv(logger, host_uuid, samhostip) eu().esx_stop_guest(logger, guest_name, destination_ip) logger.info( "=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID155117_ESX_check_guest_uuid(params): ''' Check guest uuid via CLI of subscription-manager, no GUI yet ''' try: try: logger = params['logger'] eu().RESET_RESULT() logger.info("=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) guest_name = "ESX_" + params['handleguest'] destination_ip = ee.esx_host_ip # Start a guest by start from host machine. eu().esx_start_guest(logger, guest_name) # Get guest IP guestip = None guestip = eu().esx_get_guest_ip(logger, guest_name, destination_ip) if guestip == None: logger.error("Faild to get guest ip.") eu().SET_RESULT(1) # Get guest uuid guestuuid = eu().esx_get_guest_uuid(logger, guest_name, destination_ip) # Register guest to SAM if not eu().sub_isregistered(logger, guestip): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), guestip) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"], guestip) # Check virt uuid in facts list cmd = "subscription-manager facts --list | grep virt.uuid" ret, output = eu().runcmd(logger, cmd, "list virt.uuid", guestip) if ret == 0: uuidvalue = output.split(":")[1].strip() if "virt.uuid" in output and uuidvalue == guestuuid: logger.info("Succeeded to check virt.uuid.") eu().SET_RESULT(0) else: logger.error("Failed to check virt.uuid.") eu().SET_RESULT(1) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: if guestip != None: eu().sub_unregister(logger, guestip) eu().esx_stop_guest(logger, guest_name, destination_ip) logger.info("=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID214402_ESX_execute_virtwho_o(params): """ Execute virt-who -o in a registered host, verify virtwho -o can work""" try: try: logger = params['logger'] eu().RESET_RESULT() logger.info("=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) # (1)stop virt-who service eu().vw_stop_virtwho(logger) # run cmd virt-who with o and d option in the host cmd = "virt-who -o -d" (ret, output) = eu().runcmd(logger, cmd, "executing virt-who with one-shot mode") if ret == 0 and "DEBUG" in output and "ERROR" not in output: logger.info("Succeeded to execute virt-who with one-shot mode.") eu().SET_RESULT(0) else: logger.error("Failed to execute virt-who with one-shot mode.") eu().SET_RESULT(1) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: logger.info("=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID289675_ESX_Datacenter_repos_in_guest(params): ''' tc_ID289675_ESX_Datacenter_repos_in_guest ''' try: try: logger = params['logger'] eu().RESET_RESULT() logger.info( "=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) guest_name = "ESX_" + params['handleguest'] samhostip = params['samhostip'] destination_ip = ee.esx_host_ip host_uuid = eu().esx_get_host_uuid(logger, destination_ip) # Start a guest by start from host machine. eu().esx_start_guest(logger, guest_name) # Get guest IP guestip = None guestip = eu().esx_get_guest_ip(logger, guest_name, destination_ip) if guestip == None: logger.error("Faild to get guest ip.") eu().SET_RESULT(1) # Register guest to SAM if not eu().sub_isregistered(logger, guestip): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), guestip) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"], guestip) # Subscribe esx host to a data center SKU eu().esx_subscribe_host_in_samserv( logger, host_uuid, eu().get_poolid_by_SKU(logger, ee.data_center_SKU), samhostip) # Subscribe the registered guest to the corresponding bonus pool eu().subscribe_datacenter_bonus_pool( logger, ee.data_center_subscription_name, guestip) # Check repositories available in guest cmd = "subscription-manager repos --list | grep -A4 \"^Repo ID\"" ret, output = eu().runcmd(logger, cmd, "Check repositories available in guest", guestip) if ret == 0 and "This system has no repositories available through subscriptions." not in output: logger.info( "Succeeded to check repositories available in guest.") else: logger.error( "Failed to check repositories available in guest.") eu().SET_RESULT(1) # Check content sets exist in cert file in guest cmd = "rct cat-cert /etc/pki/entitlement/*[^-key].pem | grep -A11 \"^Content:\"" ret, output = eu().runcmd( logger, cmd, "Check content sets exist in cert file in guest", guestip) if ret == 0: logger.info( "Succeeded to check content sets exist in cert file in guest." ) else: logger.error( "Failed to check content sets exist in cert file in guest." ) eu().SET_RESULT(1) eu().SET_RESULT(0) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: if guestip != None: eu().sub_unregister(logger, guestip) # Unregister the ESX host eu().esx_unsubscribe_all_host_in_samserv(logger, host_uuid, samhostip) eu().esx_stop_guest(logger, guest_name, destination_ip) logger.info( "=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID301527_ESX_Instance_compliance_in_guest(params): ''' tc_ID301527_ESX_Instance_compliance_in_guest. ''' try: try: logger = params['logger'] eu().RESET_RESULT() logger.info("=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) guest_name = "ESX_" + params['handleguest'] samhostip = params['samhostip'] destination_ip = ee.esx_host_ip host_uuid = eu().esx_get_host_uuid(logger, destination_ip) # Start a guest by start from host machine. eu().esx_start_guest(logger, guest_name) # Get guest IP guestip = None guestip = eu().esx_get_guest_ip(logger, guest_name, destination_ip) if guestip == None: logger.error("Faild to get guest ip.") eu().SET_RESULT(1) # Register guest to SAM if not eu().sub_isregistered(logger, guestip): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), guestip) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"], guestip) # Set up facts eu().setup_custom_facts(logger, "cpu.cpu_socket(s)", "8", guestip) pool = eu().get_pool_by_SKU(logger, ee.instance_SKU, guestip) # Validate one instance-based subscription can be used for one guest cmd = "subscription-manager subscribe --pool=%s --quantity=1" % pool ret, output = eu().runcmd(logger, cmd, "Check one instance-based subscription can be used for one guest", guestip) if ret == 0 and "Successfully" in output: logger.info("Succeeded to check one instance-based subscription can be used for one guest.") else: logger.error("Failed to check one instance-based subscription can be used for one guest.") eu().SET_RESULT(1) # Check installed product status: Subscribed in guest cmd = "subscription-manager list --installed | grep 'Status:'" ret, output = eu().runcmd(logger, cmd, "Check installed product status", guestip) if ret == 0 and output.split(":")[1].strip() == "Subscribed": logger.info("Succeeded to check installed product status is Subscribed.") else: logger.error("Failed to check installed product status is Subscribed.") eu().SET_RESULT(1) # Check consumed subscription with Status Details: empty. cmd = "subscription-manager list --consumed | grep 'Status Details'" ret, output = eu().runcmd(logger, cmd, "Check consumed subscription 'Status Details'", guestip) if ret == 0 and output.split(":")[1].strip() == "": logger.info("Succeeded to check consumed subscription 'Status Details' is empty.") else: logger.error("Failed to check consumed subscription 'Status Details'is empty.") eu().SET_RESULT(1) eu().SET_RESULT(0) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: if guestip != None: eu().sub_unregister(logger, guestip) # Unregister the ESX host eu().esx_unsubscribe_all_host_in_samserv(logger, host_uuid, samhostip) eu().esx_stop_guest(logger, guest_name, destination_ip) logger.info("=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID173049_ESX_remove_deletion_record_of_hypervisor_to_re_register(params): """ remove_deletion_record_of_hypervisor_to_re_register """ try: try: logger = params['logger'] eu().RESET_RESULT() logger.info("=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) # guest_name = "ESX_" + params['handleguest'] samhostip = params['samhostip'] destination_ip = ee.esx_host_ip # Start a guest by start from host machine. # eu().esx_start_guest(logger, guest_name, destination_ip) # Get guest IP # guestip = None # guestip = eu().esx_get_guest_ip(logger, guest_name, destination_ip) # if guestip == None: # logger.error("Faild to get guest ip.") # eu().SET_RESULT(1) # Register guest to SAM # if not eu().sub_isregistered(logger, guestip): # eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), guestip) # eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"], guestip) # restart virt-who service eu().vw_restart_virtwho(logger) host_uuid = eu().esx_get_host_uuid(logger, destination_ip) eu().esx_check_host_in_samserv(logger, host_uuid, samhostip) eu().vw_stop_virtwho(logger) eu().esx_remove_host_in_samserv(logger, host_uuid, samhostip) eu().esx_remove_deletion_record_in_samserv(logger, host_uuid, samhostip) eu().vw_restart_virtwho(logger) eu().esx_check_host_in_samserv(logger, host_uuid, samhostip) eu().SET_RESULT(0) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: # if guestip != None: # eu().sub_unregister(logger, guestip) # eu().esx_stop_guest(logger, guest_name, destination_ip) logger.info("=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID289138_ESX_Datacenter_subpool_creation(params): ''' tc_ID289138_ESX_Datacenter_subpool_creation. ''' try: try: logger = params['logger'] eu().RESET_RESULT() logger.info( "=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) guest_name = "ESX_" + params['handleguest'] samhostip = params['samhostip'] destination_ip = ee.esx_host_ip host_uuid = eu().esx_get_host_uuid(logger, destination_ip) # Start a guest by start from host machine. eu().esx_start_guest(logger, guest_name) # Get guest IP guestip = None guestip = eu().esx_get_guest_ip(logger, guest_name, destination_ip) if guestip == None: logger.error("Faild to get guest ip.") eu().SET_RESULT(1) # Register guest to SAM if not eu().sub_isregistered(logger, guestip): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), guestip) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"], guestip) # check only physical subscription in guest # Check bonus pool not generated yet eu().check_datacenter_bonus_existance( logger, ee.data_center_subscription_name, guestip, False) # Subscribe esx host to a data center SKU eu().esx_subscribe_host_in_samserv( logger, host_uuid, eu().get_poolid_by_SKU(logger, ee.data_center_SKU), samhostip) # Check bonus pool generated eu().check_datacenter_bonus_existance( logger, ee.data_center_subscription_name, guestip) # Subscribe the registered guest to the corresponding bonus pool eu().subscribe_datacenter_bonus_pool( logger, ee.data_center_subscription_name, guestip) # Check installed product status:Subscribed in guest cmd = "subscription-manager list --installed | grep 'Status:'" ret, output = eu().runcmd(logger, cmd, "Check installed product status", guestip) if ret == 0 and output.split(":")[1].strip() == "Subscribed": logger.info( "Succeeded to check installed product status is Subscribed." ) else: logger.error( "Failed to check installed product status is Subscribed.") eu().SET_RESULT(1) eu().SET_RESULT(0) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: if guestip != None: eu().sub_unregister(logger, guestip) # Unregister the ESX host eu().esx_unsubscribe_all_host_in_samserv(logger, host_uuid, samhostip) eu().esx_stop_guest(logger, guest_name, destination_ip) logger.info( "=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID202507_ESX_verify_virtwho_interval(params): """ Execute virt-who in a registered host, verify virtwho_interval can work""" try: try: logger = params['logger'] eu().RESET_RESULT() logger.info("=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) # config the virt-who config file cmd = "sed -i 's/#VIRTWHO_INTERVAL=0/VIRTWHO_INTERVAL=5/' /etc/sysconfig/virt-who" (ret, output) = eu().runcmd(logger, cmd, "changing interval time in virt-who config file") if ret == 0: logger.info("Succeeded to set VIRTWHO_INTERVAL=5.") else: logger.error("Failed to set VIRTWHO_INTERVAL=5.") eu().SET_RESULT(1) # restart virt-who service eu().vw_restart_virtwho(logger) # wait 30 seconds time.sleep(30) cmd = "nohup tail -f -n 0 /var/log/rhsm/rhsm.log > /tmp/tail.rhsm.log 2>&1 &" # (ret, output) = eu().runcmd(logger, cmd, "generate nohup.out file by tail -f") eu().runcmd_subprocess(logger, cmd, "got temp file /tmp/tail.rhsm.log") time.sleep(23) cmd = "killall -9 tail ; grep 'Sending update in hosts-to-guests mapping' /tmp/tail.rhsm.log | wc -l " (ret, output) = eu().runcmd(logger, cmd, "get log number added to rhsm.log") if ret == 0 and int(output) == 4: logger.info("Succeeded to check the log added.") eu().SET_RESULT(0) else: logger.error("Failed to check the log added.") eu().SET_RESULT(1) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: cmd = "sed -i 's/VIRTWHO_INTERVAL=5/#VIRTWHO_INTERVAL=0/' /etc/sysconfig/virt-who" (ret, output) = eu().runcmd(logger, cmd, "restoring the interval time as default setting in virt-who config file") cmd = "rm /tmp/tail.rhsm.log" (ret, output) = eu().runcmd(logger, cmd, "remove /tmp/tail.rhsm.log file generated") logger.info("=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID155142_ESX_validate_bonus_pool_creation(params): ''' support_for_unlimited_guest_entitlements ''' try: try: logger = params['logger'] eu().RESET_RESULT() logger.info( "=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) guest_name = "ESX_" + params['handleguest'] samhostip = params['samhostip'] destination_ip = ee.esx_host_ip host_uuid = eu().esx_get_host_uuid(logger, destination_ip) # Start a guest by start from host machine. eu().esx_start_guest(logger, guest_name) # Get guest IP guestip = None guestip = eu().esx_get_guest_ip(logger, guest_name, destination_ip) if guestip == None: logger.error("Faild to get guest ip.") eu().SET_RESULT(1) # Register guest to SAM if not eu().sub_isregistered(logger, guestip): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), guestip) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"], guestip) # check only physical subscription in guest # subscribe esx host with limited bonus subscription eu().esx_subscribe_host_in_samserv( logger, host_uuid, eu().get_poolid_by_SKU(logger, ee.productid_guest), samhostip) # List available pools of guest, check related bonus pool generated. new_available_poollist = eu().sub_listavailpools( logger, ee.productid_guest, guestip) if new_available_poollist != None: bonus_pool_check = 1 for item in range(0, len(new_available_poollist)): if "Available" in new_available_poollist[item]: SKU_Number = "Available" else: SKU_Number = "Quantity" if new_available_poollist[item][ "SKU"] == ee.productid_guest and eu( ).check_type_virtual( new_available_poollist[item] ) and new_available_poollist[item][ SKU_Number] == ee.guestlimit: logger.info( "Succeeded to list bonus pool of product %s" % ee.productname_unlimited_guest) bonus_pool_check = 0 eu().SET_RESULT(bonus_pool_check) else: logger.error("Failed to get available pool list from guest.") eu().SET_RESULT(1) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: if guestip != None: eu().sub_unregister(logger, guestip) # Unregister the ESX host eu().esx_unsubscribe_all_host_in_samserv(logger, host_uuid, samhostip) eu().esx_stop_guest(logger, guest_name, destination_ip) logger.info( "=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID202506_ESX_execute_virtwho_b(params): """Execute virt-who with backgroud mode in a registered host via CLI""" try: try: logger = params["logger"] eu().RESET_RESULT() logger.info( "=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1 :] ) # (1)stop virt-who service eu().vw_stop_virtwho(logger) # (2)Execute virt-who in the background mode. cmd = "virt-who -b -d" # ret, output = eu().runcmd(logger, cmd, "execute virt-who with background mode") ret, output = eu().runcmd_subprocess(logger, cmd, "run virt-who -b -d command") if ret == 0: # check the status of virt-who cmd = "ps -ef | grep virt-who" ret, output = eu().runcmd(logger, cmd, "check the process of virt-who with background mode") if ret == 0 and "virt-who.py -b -d" in output: logger.info("Succeeded to check virt-who process.") else: logger.error("Failed to check virt-who process.") eu().SET_RESULT(1) handleguest = "ESX_" + params["handleguest"] destination_ip = ee.esx_host_ip vCenter = params["vcentermachine_ip"] vCenter_user = params["vcentermachine_username"] vCenter_pass = params["vcentermachine_password"] # (1) start a guest eu().esx_start_guest(logger, handleguest) # check if the uuid is correctly monitored by virt-who. eu().esx_check_uuid(logger, handleguest, destination_ip) # (2)pause a guest eu().esx_pause_guest(logger, handleguest, destination_ip) # check if the uuid is correctly monitored by virt-who. eu().esx_check_uuid(logger, handleguest, destination_ip) # (3)resume a guest eu().esx_resume_guest(logger, handleguest, destination_ip) # check if the uuid is correctly monitored by virt-who. eu().esx_check_uuid(logger, handleguest, destination_ip) # (4)shutdown a guest eu().esx_stop_guest(logger, handleguest, destination_ip) # check if the uuid is correctly monitored by virt-who. eu().esx_check_uuid(logger, handleguest, destination_ip) # (5)delete a guest guestuuid = eu().esx_get_guest_uuid(logger, handleguest, destination_ip) # prepare test env: undefine the guest to handle eu().esx_remove_guest(logger, handleguest, destination_ip, vCenter, vCenter_user, vCenter_pass) # check if the uuid is correctly monitored by virt-who. eu().esx_check_uuid(logger, handleguest, destination_ip, guestuuid, uuidexists=False) # (6)add a guest. eu().esx_add_guest(logger, handleguest, destination_ip) # check if the uuid is correctly monitored by virt-who. eu().esx_check_uuid(logger, handleguest, destination_ip) eu().vw_stop_virtwho(logger) eu().SET_RESULT(0) else: logger.error("Failed to run virt-who -b -d.") eu().SET_RESULT(1) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: logger.info( "=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1 :] ) return eu().TEST_RESULT()
def tc_ID301083_ESX_Instance_one_instance_for_one_guest(params): ''' tc_ID301083_ESX_Instance_one_instance_for_one_guest. ''' try: try: logger = params['logger'] eu().RESET_RESULT() logger.info("=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) guest_name = "ESX_" + params['handleguest'] samhostip = params['samhostip'] destination_ip = ee.esx_host_ip host_uuid = eu().esx_get_host_uuid(logger, destination_ip) # Start a guest by start from host machine. eu().esx_start_guest(logger, guest_name) # Get guest IP guestip = None guestip = eu().esx_get_guest_ip(logger, guest_name, destination_ip) if guestip == None: logger.error("Faild to get guest ip.") eu().SET_RESULT(1) # Register guest to SAM if not eu().sub_isregistered(logger, guestip): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), guestip) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"], guestip) pool = eu().get_pool_by_SKU(logger, ee.instance_SKU, guestip) instance_quantity_before = eu().get_SKU_attribute(logger, ee.instance_SKU, "Available", guestip) # Validate one instance-based subscription can be used for one guest cmd = "subscription-manager subscribe --pool=%s --quantity=1" % pool ret, output = eu().runcmd(logger, cmd, "Check one instance-based subscription can be used for one guest", guestip) if ret == 0 and "Successfully" in output: logger.info("Succeeded to check one instance-based subscription can be used for one guest.") else: logger.error("Failed to check one instance-based subscription can be used for one guest.") eu().SET_RESULT(1) # eu().sub_listconsumed(logger, ee.instance_subscription_name) instance_quantity_after = eu().get_SKU_attribute(logger, ee.instance_SKU, "Available", guestip) if int(instance_quantity_before) - int(instance_quantity_after) == 1 : logger.info("Succeeded to check instance quantity - 1: instance_quantity_before=%s instance_quantity_after=%s" % (instance_quantity_before, instance_quantity_after)) eu().SET_RESULT(0) else: logger.error("Failed to check instance quantity - 1: instance_quantity_before=%s instance_quantity_after=%s" % (instance_quantity_before, instance_quantity_after)) eu().SET_RESULT(1) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: if guestip != None: eu().sub_unregister(logger, guestip) # Unregister the ESX host eu().esx_unsubscribe_all_host_in_samserv(logger, host_uuid, samhostip) eu().esx_stop_guest(logger, guest_name, destination_ip) logger.info("=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID155149_ESX_validate_complaince_after_starting_resuming(params): """Execute virt-who with backgroud mode in a registered host via CLI""" try: try: logger = params['logger'] eu().RESET_RESULT() logger.info("=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) guest_name = "ESX_" + params['handleguest'] samhostip = params['samhostip'] destination_ip = ee.esx_host_ip host_uuid = eu().esx_get_host_uuid(logger, destination_ip) # Start a guest by start from host machine. eu().esx_start_guest(logger, guest_name) # Get guest IP guestip = None guestip = eu().esx_get_guest_ip(logger, guest_name, destination_ip) if guestip == None: logger.error("Faild to get guest ip.") eu().SET_RESULT(1) # Register guest to SAM if not eu().sub_isregistered(logger, guestip): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), guestip) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"], guestip) # subscribe esx host with limited bonus subscription eu().esx_subscribe_host_in_samserv(logger, host_uuid, eu().get_poolid_by_SKU(logger, ee.productid_guest) , samhostip) # Subscribe the registered guest to the corresponding bonus pool eu().sub_subscribe_to_bonus_pool(logger, ee.productid_guest, guestip) # List consumed subscriptions on guest eu().sub_listconsumed(logger, ee.productname_guest, guestip) # Pause a guest by suspend from host machine. eu().esx_pause_guest(logger, guest_name, destination_ip) # Resume a guest by resume from host machine. eu().esx_resume_guest(logger, guest_name, destination_ip) # Refresh the guest eu().sub_refresh(logger, guestip) # List consumed subscriptions on guest eu().sub_listconsumed(logger, ee.productname_guest, guestip) # Shutdown a guest by shutdown from host machine. eu().esx_stop_guest(logger, guest_name, destination_ip) # Start a guest by start from host machine. eu().esx_start_guest(logger, guest_name) # Refresh the guest eu().sub_refresh(logger, guestip) # List consumed subscriptions on guest eu().sub_listconsumed(logger, ee.productname_guest, guestip) eu().SET_RESULT(0) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: if guestip != None: eu().sub_unregister(logger, guestip) # Unregister the ESX host eu().esx_unsubscribe_all_host_in_samserv(logger, host_uuid, samhostip) eu().esx_stop_guest(logger, guest_name, destination_ip) logger.info("=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID202507_ESX_verify_virtwho_interval(params): """ Execute virt-who in a registered host, verify virtwho_interval can work""" try: try: logger = params['logger'] eu().RESET_RESULT() logger.info( "=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) # config the virt-who config file cmd = "sed -i 's/#VIRTWHO_INTERVAL=0/VIRTWHO_INTERVAL=5/' /etc/sysconfig/virt-who" (ret, output) = eu().runcmd( logger, cmd, "changing interval time in virt-who config file") if ret == 0: logger.info("Succeeded to set VIRTWHO_INTERVAL=5.") else: logger.error("Failed to set VIRTWHO_INTERVAL=5.") eu().SET_RESULT(1) # restart virt-who service eu().vw_restart_virtwho(logger) # wait 30 seconds time.sleep(30) cmd = "nohup tail -f -n 0 /var/log/rhsm/rhsm.log > /tmp/tail.rhsm.log 2>&1 &" # (ret, output) = eu().runcmd(logger, cmd, "generate nohup.out file by tail -f") eu().runcmd_subprocess(logger, cmd, "got temp file /tmp/tail.rhsm.log") time.sleep(23) cmd = "killall -9 tail ; grep 'Sending update in hosts-to-guests mapping' /tmp/tail.rhsm.log | wc -l " (ret, output) = eu().runcmd(logger, cmd, "get log number added to rhsm.log") if ret == 0 and int(output) == 4: logger.info("Succeeded to check the log added.") eu().SET_RESULT(0) else: logger.error("Failed to check the log added.") eu().SET_RESULT(1) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: cmd = "sed -i 's/VIRTWHO_INTERVAL=5/#VIRTWHO_INTERVAL=0/' /etc/sysconfig/virt-who" (ret, output) = eu().runcmd( logger, cmd, "restoring the interval time as default setting in virt-who config file" ) cmd = "rm /tmp/tail.rhsm.log" (ret, output) = eu().runcmd(logger, cmd, "remove /tmp/tail.rhsm.log file generated") logger.info( "=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID155149_ESX_validate_complaince_after_starting_resuming(params): """Execute virt-who with backgroud mode in a registered host via CLI""" try: try: logger = params['logger'] eu().RESET_RESULT() logger.info( "=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) guest_name = "ESX_" + params['handleguest'] samhostip = params['samhostip'] destination_ip = ee.esx_host_ip host_uuid = eu().esx_get_host_uuid(logger, destination_ip) # Start a guest by start from host machine. eu().esx_start_guest(logger, guest_name) # Get guest IP guestip = None guestip = eu().esx_get_guest_ip(logger, guest_name, destination_ip) if guestip == None: logger.error("Faild to get guest ip.") eu().SET_RESULT(1) # Register guest to SAM if not eu().sub_isregistered(logger, guestip): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), guestip) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"], guestip) # subscribe esx host with limited bonus subscription eu().esx_subscribe_host_in_samserv( logger, host_uuid, eu().get_poolid_by_SKU(logger, ee.productid_guest), samhostip) # Subscribe the registered guest to the corresponding bonus pool eu().sub_subscribe_to_bonus_pool(logger, ee.productid_guest, guestip) # List consumed subscriptions on guest eu().sub_listconsumed(logger, ee.productname_guest, guestip) # Pause a guest by suspend from host machine. eu().esx_pause_guest(logger, guest_name, destination_ip) # Resume a guest by resume from host machine. eu().esx_resume_guest(logger, guest_name, destination_ip) # Refresh the guest eu().sub_refresh(logger, guestip) # List consumed subscriptions on guest eu().sub_listconsumed(logger, ee.productname_guest, guestip) # Shutdown a guest by shutdown from host machine. eu().esx_stop_guest(logger, guest_name, destination_ip) # Start a guest by start from host machine. eu().esx_start_guest(logger, guest_name) # Refresh the guest eu().sub_refresh(logger, guestip) # List consumed subscriptions on guest eu().sub_listconsumed(logger, ee.productname_guest, guestip) eu().SET_RESULT(0) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: if guestip != None: eu().sub_unregister(logger, guestip) # Unregister the ESX host eu().esx_unsubscribe_all_host_in_samserv(logger, host_uuid, samhostip) eu().esx_stop_guest(logger, guest_name, destination_ip) logger.info( "=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID202506_ESX_execute_virtwho_b(params): """Execute virt-who with backgroud mode in a registered host via CLI""" try: try: logger = params['logger'] eu().RESET_RESULT() logger.info( "=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) # (1)stop virt-who service eu().vw_stop_virtwho(logger) # (2)Execute virt-who in the background mode. cmd = "virt-who -b -d" # ret, output = eu().runcmd(logger, cmd, "execute virt-who with background mode") ret, output = eu().runcmd_subprocess(logger, cmd, "run virt-who -b -d command") if ret == 0: # check the status of virt-who cmd = "ps -ef | grep virt-who" ret, output = eu().runcmd( logger, cmd, "check the process of virt-who with background mode") if ret == 0 and "virt-who.py -b -d" in output: logger.info("Succeeded to check virt-who process.") else: logger.error("Failed to check virt-who process.") eu().SET_RESULT(1) handleguest = "ESX_" + params["handleguest"] destination_ip = ee.esx_host_ip vCenter = params['vcentermachine_ip'] vCenter_user = params['vcentermachine_username'] vCenter_pass = params['vcentermachine_password'] # (1) start a guest eu().esx_start_guest(logger, handleguest) # check if the uuid is correctly monitored by virt-who. eu().esx_check_uuid(logger, handleguest, destination_ip) # (2)pause a guest eu().esx_pause_guest(logger, handleguest, destination_ip) # check if the uuid is correctly monitored by virt-who. eu().esx_check_uuid(logger, handleguest, destination_ip) # (3)resume a guest eu().esx_resume_guest(logger, handleguest, destination_ip) # check if the uuid is correctly monitored by virt-who. eu().esx_check_uuid(logger, handleguest, destination_ip) # (4)shutdown a guest eu().esx_stop_guest(logger, handleguest, destination_ip) # check if the uuid is correctly monitored by virt-who. eu().esx_check_uuid(logger, handleguest, destination_ip) # (5)delete a guest guestuuid = eu().esx_get_guest_uuid(logger, handleguest, destination_ip) # prepare test env: undefine the guest to handle eu().esx_remove_guest(logger, handleguest, destination_ip, vCenter, vCenter_user, vCenter_pass) # check if the uuid is correctly monitored by virt-who. eu().esx_check_uuid(logger, handleguest, destination_ip, guestuuid, uuidexists=False) # (6)add a guest. eu().esx_add_guest(logger, handleguest, destination_ip) # check if the uuid is correctly monitored by virt-who. eu().esx_check_uuid(logger, handleguest, destination_ip) eu().vw_stop_virtwho(logger) eu().SET_RESULT(0) else: logger.error("Failed to run virt-who -b -d.") eu().SET_RESULT(1) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: logger.info( "=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID155146_ESX_validate_compliance_status_when_unregister_host(params): ''' ESX_validate_compliance_status_when_unregister_host ''' try: try: logger = params['logger'] eu().RESET_RESULT() logger.info("=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) guest_name = "ESX_" + params['handleguest'] samhostip = params['samhostip'] destination_ip = ee.esx_host_ip host_uuid = eu().esx_get_host_uuid(logger, destination_ip) # Start a guest by start from host machine. eu().esx_start_guest(logger, guest_name) # Get guest IP guestip = None guestip = eu().esx_get_guest_ip(logger, guest_name, destination_ip) if guestip == None: logger.error("Faild to get guest ip.") eu().SET_RESULT(1) # Register guest to SAM if not eu().sub_isregistered(logger, guestip): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), guestip) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"], guestip) # check only physical subscription in guest # subscribe esx host with limited bonus subscription eu().esx_subscribe_host_in_samserv(logger, host_uuid, eu().get_poolid_by_SKU(logger, ee.productid_guest) , samhostip) # Subscribe the registered guest to the corresponding bonus pool eu().sub_subscribe_to_bonus_pool(logger, ee.productid_guest, guestip) # List consumed subscriptions on guest eu().sub_listconsumed(logger, ee.productname_guest, guestip) # Unregister the ESX host eu().esx_unsubscribe_all_host_in_samserv(logger, host_uuid, samhostip) # Refresh the guest eu().sub_refresh(logger, guestip) # List available subscriptions on guest new_available_poollist = eu().sub_listavailpools(logger, ee.productid_guest, guestip) if new_available_poollist != None: for item in range(0, len(new_available_poollist)): if ee.productid_guest in new_available_poollist[item] and eu().check_type_virtual(new_available_poollist[item]): logger.info("listed bonus pool of product %s, but is shouldn't") % ee.productname_guest eu().SET_RESULT(1) else: logger.info("no bonus pool been list") else: logger.error("Failed to get available pool list from guest.") eu().SET_RESULT(1) # List consumed subscriptions on guest eu().sub_listconsumed(logger, ee.productname_guest, targetmachine_ip=guestip, productexists=False) eu().SET_RESULT(0) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: if guestip != None: eu().sub_unregister(logger, guestip) # re-register the host and then restart virt-who if not eu().sub_isregistered(logger): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip")) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"]) eu().vw_restart_virtwho(logger) eu().esx_stop_guest(logger, guest_name, destination_ip) logger.info("=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID289139_ESX_Datacenter_subpool_quantity_unlimited(params): ''' tc_ID289139_ESX_Datacenter_subpool_quantity_unlimited. ''' try: try: logger = params['logger'] eu().RESET_RESULT() logger.info("=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) guest_name = "ESX_" + params['handleguest'] samhostip = params['samhostip'] destination_ip = ee.esx_host_ip host_uuid = eu().esx_get_host_uuid(logger, destination_ip) # Start a guest by start from host machine. eu().esx_start_guest(logger, guest_name) # Get guest IP guestip = None guestip = eu().esx_get_guest_ip(logger, guest_name, destination_ip) if guestip == None: logger.error("Faild to get guest ip.") eu().SET_RESULT(1) # Register guest to SAM if not eu().sub_isregistered(logger, guestip): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), guestip) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"], guestip) # check only physical subscription in guest # Check bonus pool not generated yet eu().check_datacenter_bonus_existance(logger, ee.data_center_subscription_name, guestip, False) # Subscribe esx host to a data center SKU eu().esx_subscribe_host_in_samserv(logger, host_uuid, eu().get_poolid_by_SKU(logger, ee.data_center_SKU) , samhostip) # Check bonus pool generated eu().check_datacenter_bonus_existance(logger, ee.data_center_subscription_name, guestip) # Check subpool quantity is unlimited eu().check_bonus_attribute(logger, ee.data_center_subscription_name, "Available", "Unlimited", guestip) eu().SET_RESULT(0) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: if guestip != None: eu().sub_unregister(logger, guestip) # Unregister the ESX host eu().esx_unsubscribe_all_host_in_samserv(logger, host_uuid, samhostip) eu().esx_stop_guest(logger, guest_name, destination_ip) logger.info("=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID155120_ESX_check_guest_consumer_uuid_on_server(params): ''' Execute virt-who in a registered host to Check UUIDs of running guests ''' try: try: logger = params['logger'] eu().RESET_RESULT() logger.info( "=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) guest_name = "ESX_" + params['handleguest'] destination_ip = ee.esx_host_ip # Start a guest by start from host machine. eu().esx_start_guest(logger, guest_name) # Get guest IP guestip = None guestip = eu().esx_get_guest_ip(logger, guest_name, destination_ip) if guestip == None: logger.error("Faild to get guest ip.") eu().SET_RESULT(1) # Register guest to SAM if not eu().sub_isregistered(logger, guestip): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), guestip) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"], guestip) # Get uuid of host and guest consumer cmd = "grep 'Sending update in hosts-to-guests mapping' /var/log/rhsm/rhsm.log | tail -1" ret, output = eu().runcmd(logger, cmd, "get host consumer uuid") hostuuid = output.split("{")[1].split(":")[0].strip() cmd = "subscription-manager identity | grep identity" ret, output = eu().runcmd( logger, cmd, "get guest subscription-manager identity", guestip) guestuuid = output.split(':')[1].strip() # Check whether guest is included in host info samhostip = params["samhostip"] cmd = "curl -u admin:admin -k https://%s/sam/api/consumers/%s" % ( samhostip, hostuuid) ret, output = eu().runcmd( logger, cmd, "Check whether guest is included in host info") if ret == 0 and guestuuid in output: logger.info("Succeeded to check guest in host info.") eu().SET_RESULT(0) else: logger.error("Failed to check guest in host info.") eu().SET_RESULT(1) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: if guestip != None: eu().sub_unregister(logger, guestip) eu().esx_stop_guest(logger, guest_name, destination_ip) logger.info( "=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID289221_ESX_Datacenter_guest_revoke_when_unregister_host(params): ''' tc_ID289221_ESX_Datacenter_guest_revoke_when_unregister_host ''' try: try: logger = params['logger'] eu().RESET_RESULT() logger.info("=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) guest_name = "ESX_" + params['handleguest'] samhostip = params['samhostip'] destination_ip = ee.esx_host_ip host_uuid = eu().esx_get_host_uuid(logger, destination_ip) # Start a guest by start from host machine. eu().esx_start_guest(logger, guest_name) # Get guest IP guestip = None guestip = eu().esx_get_guest_ip(logger, guest_name, destination_ip) if guestip == None: logger.error("Faild to get guest ip.") eu().SET_RESULT(1) # Register guest to SAM if not eu().sub_isregistered(logger, guestip): eu().configure_host(logger, params.get("samhostname"), params.get("samhostip"), guestip) eu().sub_register(logger, eu().get_env(logger)["username"], eu().get_env(logger)["password"], guestip) # Subscribe esx host to a data center SKU eu().esx_subscribe_host_in_samserv(logger, host_uuid, eu().get_poolid_by_SKU(logger, ee.data_center_SKU) , samhostip) # Subscribe the registered guest to the corresponding bonus pool eu().subscribe_datacenter_bonus_pool(logger, ee.data_center_subscription_name, guestip) # Check subpool are consumed eu().sub_listconsumed(logger, ee.data_center_subscription_name, guestip) # Unregister the ESX host eu().esx_unsubscribe_all_host_in_samserv(logger, host_uuid, samhostip) # Refresh the guest eu().sub_refresh(logger, guestip) # Check list subscriptions revoked eu().check_datacenter_bonus_existance(logger, ee.data_center_subscription_name, guestip, False) # check consumed subscriptions revoked eu().sub_listconsumed(logger, ee.data_center_subscription_name, targetmachine_ip=guestip, productexists=False) # Check installed product status:Not Subscribed in guest cmd = "subscription-manager list --installed | grep 'Status:'" ret, output = eu().runcmd(logger, cmd, "Check installed product status", guestip) if ret == 0 and output.split(":")[1].strip() == "Not Subscribed": logger.info("Succeeded to check installed product status is Not Subscribed.") else: logger.error("Failed to check installed product status is Not Subscribed.") eu().SET_RESULT(1) eu().SET_RESULT(0) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: if guestip != None: eu().sub_unregister(logger, guestip) # Unregister the ESX host eu().esx_unsubscribe_all_host_in_samserv(logger, host_uuid, samhostip) eu().esx_stop_guest(logger, guest_name, destination_ip) logger.info("=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()
def tc_ID308833_ESX_add_large_number_guests(params): """ Execute virt-who with large number of guests in host """ try: try: logger = params['logger'] eu().RESET_RESULT() logger.info( "=============== Begin of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) guest_name = "esx_auto_guest" vCenter = params['vcentermachine_ip'] vCenter_user = params['vcentermachine_username'] vCenter_pass = params['vcentermachine_password'] destination_ip = ee.esx_host_ip guest_total = 100 guest_uuid_list = [] # add 100 guests in vCenter for i in range(0, guest_total): eu().esx_create_dummy_guest(logger, guest_name + "_" + str(i), destination_ip) guest_uuid = eu().esx_get_guest_uuid(logger, guest_name + "_" + str(i), destination_ip) guest_uuid_list.append(guest_uuid) # if not eu().esx_check_uuid_exist_in_rhsm_log(logger, guestuuid, destination_ip): # eu().SET_RESULT(1) # check all guest uuid is in rhsm.log guest_uuid_list_in_log = eu().get_uuid_list_in_rhsm_log(logger) for i in range(0, guest_total): if not guest_uuid_list[i] in guest_uuid_list_in_log: eu().SET_RESULT(1) else: logger.info("UUID of guest:%s exist in rhsm.log" % (guest_name + "_" + str(i))) # remove the 100 guests added in vCenter for i in range(0, guest_total): # guestuuid = eu().esx_get_guest_uuid(logger, guest_name + "_" + str(i), destination_ip) eu().esx_remove_guest(logger, guest_name + "_" + str(i), destination_ip, vCenter, vCenter_user, vCenter_pass) eu().esx_destroy_guest(logger, guest_name + "_" + str(i), destination_ip) # if eu().esx_check_uuid_exist_in_rhsm_log(logger, guestuuid, destination_ip): # eu().SET_RESULT(1) eu().SET_RESULT(0) except Exception, e: logger.error("Test Failed due to error happened: " + str(e)) logger.error(traceback.format_exc()) eu().SET_RESULT(1) finally: logger.info( "=============== End of Running Test Case: %s ===============" % __name__[str.rindex(__name__, ".") + 1:]) return eu().TEST_RESULT()