def test(): test_stub.reload_default_license() test_util.test_logger('Check default community license') test_stub.check_license(None, None, 2147483647, False, 'Community') test_util.test_logger('Load and Check TrialExt license with 10 day and 3 CPU') file_path = test_stub.gen_license('woodpecker', '*****@*****.**', '10', 'Prepaid', '3', '') test_stub.load_license(file_path) issued_date = test_stub.get_license_info().issuedDate expired_date = test_stub.license_date_cal(issued_date, 86400 * 10) test_stub.check_license("*****@*****.**", 3, None, False, 'Paid', issued_date=issued_date, expired_date=expired_date) # add the vcenter 1.203 test_stub.create_zone() username = os.environ.get("vcenteruser") password = os.environ.get("vcenterpwd") zone_name = "ZONE1" conditions = res_ops.gen_query_conditions('name', '=', zone_name) zone_uuid = res_ops.query_resource(res_ops.ZONE, conditions)[0].uuid https = "true" vcenterdomain = "172.20.0.50" vct_ops.add_vcenter("vcenter_test", vcenterdomain, username, password, https, zone_uuid) vcenter_uuid = res_ops.get_resource(res_ops.VCENTER)[0].uuid time.sleep(5) vct_ops.delete_vcenter(vcenter_uuid) time.sleep(5) zone_ops.delete_zone(zone_uuid) test_util.test_pass('Check License and add the vcenter Test Success')
def test(): test_stub.reload_default_license() test_util.test_logger('Check default community license') test_stub.check_license(None, None, 2147483647, False, 'Community') test_util.test_logger('Load and Check TrialExt license with 10 day and 1 CPU') file_path = test_stub.gen_license('woodpecker', '*****@*****.**', '10', 'Prepaid', '1', '') test_stub.load_license(file_path) issued_date = test_stub.get_license_info().issuedDate expired_date = test_stub.license_date_cal(issued_date, 86400 * 10) test_stub.check_license("*****@*****.**", 1, None, False, 'Paid', issued_date=issued_date, expired_date=expired_date) # add the vcenter 1.50 test_stub.create_zone() username = os.environ.get("vcenteruser") password = os.environ.get("vcenterpwd") zone_name = "ZONE1" conditions = res_ops.gen_query_conditions('name', '=', zone_name) zone_uuid = res_ops.query_resource(res_ops.ZONE, conditions)[0].uuid https = "true" vcenterdomain = "172.20.0.50" try: vct_ops.add_vcenter("vcenter_test", vcenterdomain, username, password, https, zone_uuid) test_util.test_fail('vCenter can not add success') except Exception: pass test_util.test_logger('load and check addon license vmware with 2 day and 1 CPU ') file_path = test_stub.gen_addons_license('woodpecker', '*****@*****.**', '2', 'Addon', '1', '', 'vmware') node_uuid = res_ops.query_resource(res_ops.MANAGEMENT_NODE)[0].uuid test_stub.update_license(node_uuid, file_path) issued_date = test_stub.get_license_addons_info().issuedDate expired_date = test_stub.license_date_cal(issued_date, 86400 * 2) test_stub.check_license_addons(1, None, False, 'AddOn', issued_date=issued_date, expired_date=expired_date) vct_ops.add_vcenter("vcenter_test", vcenterdomain, username, password, https, zone_uuid) vcenter_uuid = res_ops.get_resource(res_ops.VCENTER)[0].uuid # sync vcenter time.sleep(10) vct_ops.sync_vcenter(vcenter_uuid) time.sleep(15) vct_ops.delete_vcenter(vcenter_uuid) time.sleep(5) zone_ops.delete_zone(zone_uuid) test_util.test_logger('start to delete the addons vmware license') uuid = test_stub.get_license_addons_info().uuid lic_ops.delete_license(node_uuid, uuid) test_util.test_logger('delete the addons license [uuid:] %s' % uuid) test_util.test_pass('Check License and add the vcenter and check sync Test Success')
def test(): global vcenter_uuid vcenter1_name = os.environ['vcenter1_name'] vcenter1_domain_name = os.environ['vcenter1_ip'] vcenter1_username = os.environ['vcenter1_domain_name'] vcenter1_password = os.environ['vcenter1_password'] zone_uuid = res_ops.get_resource(res_ops.ZONE)[0].uuid inv = vct_ops.add_vcenter(vcenter1_name, vcenter1_domain_name, vcenter1_username, vcenter1_password, True, zone_uuid) vcenter_uuid = inv.uuid if vcenter_uuid == None: test_util.test_fail("vcenter_uuid is None") vcenter_backup_storage_cond = res_ops.gen_query_conditions("name", '=', vcenter_backup_storage_name) vcbs_inv = res_ops.query_resource_fields(res_ops.VCENTER_BACKUP_STORAGE, vcenter_backup_storage_cond, None, fields=['uuid'])[0] vcbs_uuid = vcbs_inv.uuid if not vcbs_uuid: test_util.test_fail("not found vcenter backup storage") vct_ops.delete_vcenter(vcenter_uuid) test_util.test_pass("add && delete vcenter test passed.")
def test(): global vcenter_uuid, vm vcenter1_name = os.environ['vcenter2_name'] vcenter1_domain_name = os.environ['vcenter2_ip'] vcenter1_username = os.environ['vcenter2_domain_name'] vcenter1_password = os.environ['vcenter2_password'] ova_image_name = os.environ['vcenter2_template_exist'] network_pattern1 = os.environ['vcenter2_network_pattern1'] zone_uuid = res_ops.get_resource(res_ops.ZONE)[0].uuid inv = vct_ops.add_vcenter(vcenter1_name, vcenter1_domain_name, vcenter1_username, vcenter1_password, True, zone_uuid) vcenter_uuid = inv.uuid if vcenter_uuid == None: test_util.test_fail("vcenter_uuid is None") vm = test_stub.create_vm_in_vcenter(vm_name = 'vm-start-stop-test', image_name = ova_image_name, l3_name = network_pattern1) vm.check() vm.stop() vm.check() vm.start() vm.check() vm.destroy() vm.check() vm.expunge() vct_ops.delete_vcenter(vcenter_uuid) test_util.test_pass("vm start and stop of vcenter test passed.")
def test(): global vcenter_uuid, vm vcenter1_name = os.environ['vcenter2_name'] vcenter1_domain_name = os.environ['vcenter2_ip'] vcenter1_username = os.environ['vcenter2_domain_name'] vcenter1_password = os.environ['vcenter2_password'] ova_image_name = os.environ['vcenter2_template_exist'] network_pattern1 = os.environ['vcenter2_network_pattern1'] zone_uuid = res_ops.get_resource(res_ops.ZONE)[0].uuid inv = vct_ops.add_vcenter(vcenter1_name, vcenter1_domain_name, vcenter1_username, vcenter1_password, True, zone_uuid) vcenter_uuid = inv.uuid if vcenter_uuid == None: test_util.test_fail("vcenter_uuid is None") vm = test_stub.create_vm_in_vcenter(vm_name = 'vm-create-test', image_name = ova_image_name, l3_name = network_pattern1) vm.check() vm.destroy() vm.check() vm.expunge() vct_ops.delete_vcenter(vcenter_uuid) test_util.test_pass("Creating vm of vcenter test passed.")
def test(): global vcenter_uuid vcenter1_name = os.environ['vcenter1_name'] vcenter1_domain_name = os.environ['vcenter1_ip'] vcenter1_username = os.environ['vcenter1_domain_name'] vcenter1_password = os.environ['vcenter1_password'] zone_uuid = res_ops.get_resource(res_ops.ZONE)[0].uuid inv = vct_ops.add_vcenter(vcenter1_name, vcenter1_domain_name, vcenter1_username, vcenter1_password, True, zone_uuid) vcenter_uuid = inv.uuid if vcenter_uuid == None: test_util.test_fail("vcenter_uuid is None") vcenter_backup_storage_cond = res_ops.gen_query_conditions( "name", '=', vcenter_backup_storage_name) vcbs_inv = res_ops.query_resource_fields(res_ops.VCENTER_BACKUP_STORAGE, vcenter_backup_storage_cond, None, fields=['uuid'])[0] vcbs_uuid = vcbs_inv.uuid if not vcbs_uuid: test_util.test_fail("not found vcenter backup storage") vct_ops.delete_vcenter(vcenter_uuid) test_util.test_pass("add && delete vcenter test passed.")
def test(): global vcenter_uuid vcenter1_name = os.environ['vcenter1_name'] vcenter1_domain_name = os.environ['vcenter1_ip'] vcenter1_username = os.environ['vcenter1_domain_name'] vcenter1_password = os.environ['vcenter1_password'] vm_network_pattern1 = os.environ['vcenter1_network_pattern1'] #add vcenter senario1: zone_uuid = res_ops.get_resource(res_ops.ZONE)[0].uuid inv = vct_ops.add_vcenter(vcenter1_name, vcenter1_domain_name, vcenter1_username, vcenter1_password, True, zone_uuid) vcenter_uuid = inv.uuid if vcenter_uuid == None: test_util.test_fail("vcenter_uuid is None") #insert the basic operations for the newly join in vcenter resourse vm_network_list = [] vm_network_names = res_ops.query_resource_fields(res_ops.L3_NETWORK, [], None, fields=['name']) for vm_network in vm_network_names: vm_network_list.append(vm_network.name) test_util.test_logger( ", ".join( [ str(vm_network_tmp) for vm_network_tmp in vm_network_list ] ) ) if vm_network_pattern1 not in vm_network_list: test_util.test_fail("newly joined vcenter missing vm network1, test failed") vct_ops.delete_vcenter(vcenter_uuid) test_util.test_pass("add && delete vcenter test passed.")
def test(): global vcenter_uuid vcenter1_name = os.environ['vcenter1_name'] vcenter1_domain_name = os.environ['vcenter1_ip'] vcenter1_username = os.environ['vcenter1_domain_name'] vcenter1_password = os.environ['vcenter1_password'] vm_name_pattern1 = os.environ['vcenter1_vm_pattern1'] vm_name_pattern2 = os.environ['vcenter1_vm_pattern2'] #add vcenter senario1: zone_uuid = res_ops.get_resource(res_ops.ZONE)[0].uuid inv = vct_ops.add_vcenter(vcenter1_name, vcenter1_domain_name, vcenter1_username, vcenter1_password, True, zone_uuid) vcenter_uuid = inv.uuid if vcenter_uuid == None: test_util.test_fail("vcenter_uuid is None") #insert the basic operations for the newly join in vcenter resourse vm_list = [] vm_names = res_ops.query_resource_fields(res_ops.VM_INSTANCE, [], None, fields=['name']) for vm_name in vm_names: vm_list.append(vm_name.name) test_util.test_logger( ", ".join( [ str(vm_name_tmp) for vm_name_tmp in vm_list ] ) ) if vm_name_pattern1 not in vm_list: test_util.test_fail("newly joined vcenter missing fingerprint vm1, test failed") if vm_name_pattern2 not in vm_list: test_util.test_fail("newly joined vcenter missing fingerprint vm2, test failed") vct_ops.delete_vcenter(vcenter_uuid) test_util.test_pass("add && delete vcenter test passed.")
def test(): global vcenter_uuid vcenter1_name = os.environ['vcenter1_name'] vcenter1_domain_name = os.environ['vcenter1_ip'] vcenter1_username = os.environ['vcenter1_domain_name'] vcenter1_password = os.environ['vcenter1_password'] ova_template_pattern1 = os.environ['vcenter1_template_exist'] #add vcenter senario1: zone_uuid = res_ops.get_resource(res_ops.ZONE)[0].uuid inv = vct_ops.add_vcenter(vcenter1_name, vcenter1_domain_name, vcenter1_username, vcenter1_password, True, zone_uuid) vcenter_uuid = inv.uuid if vcenter_uuid == None: test_util.test_fail("vcenter_uuid is None") #insert the basic operations for the newly join in vcenter resourse image_list = [] image_names = res_ops.query_resource_fields(res_ops.IMAGE, [], None, fields=['name']) for image_name in image_names: image_list.append(image_name.name) test_util.test_logger( ", ".join( [ str(image_name_tmp) for image_name_tmp in image_list ] ) ) if ova_template_pattern1 not in image_list: test_util.test_fail("newly joined vcenter missing fingerprint vm1, test failed") vct_ops.delete_vcenter(vcenter_uuid) test_util.test_pass("add && delete vcenter test passed.")
def test(): global vcenter_uuid, vm_uuid vcenter1_name = os.environ['vcenter2_name'] vcenter1_domain_name = os.environ['vcenter2_ip'] vcenter1_username = os.environ['vcenter2_domain_name'] vcenter1_password = os.environ['vcenter2_password'] #ova_image_name = os.environ['vcenter2_template_exist'] vm_name = os.environ['vcenter2_no_nic_vm'] network_pattern1 = os.environ['vcenter2_network_pattern1'] zone_uuid = res_ops.get_resource(res_ops.ZONE)[0].uuid inv = vct_ops.add_vcenter(vcenter1_name, vcenter1_domain_name, vcenter1_username, vcenter1_password, True, zone_uuid) vcenter_uuid = inv.uuid if vcenter_uuid == None: test_util.test_fail("vcenter_uuid is None") #vm = test_stub.create_vm_in_vcenter(vm_name = 'vm-start-stop-test', image_name = ova_image_name, l3_name = network_pattern1) vm_cond = res_ops.gen_query_conditions("name", '=', vm_name) vm_inv = res_ops.query_resource_fields(res_ops.VM_INSTANCE, vm_cond, None, fields=['uuid', 'state'])[0] vm_uuid = vm_inv.uuid vm_state = vm_inv.state.strip().lower() if not vm_uuid: test_util.test_fail("remote woodpecker vm uuid is null") elif vm_uuid and vm_state != "running": print "#%s#" % vm_state vm_ops.start_vm(vm_uuid) if not test_lib.lib_wait_target_up(vm_inv.vmNics[0].ip, '22', 90): test_util.test_fail('VM is expected to running') vm.stop() if not test_lib.lib_wait_target_down(vm_inv.vmNics[0].ip, '22', 90): test_util.test_fail('VM is expected to stopped') elif vm_uuid and vm_state == "running": print "#%s#" % vm_state vm.stop() if not test_lib.lib_wait_target_down(vm_inv.vmNics[0].ip, '22', 90): test_util.test_fail('VM is expected to stopped') vm_ops.start_vm(vm_uuid) if not test_lib.lib_wait_target_up(vm_inv.vmNics[0].ip, '22', 90): test_util.test_fail('VM is expected to running') vm_ops.destroy_vm(vm_uuid) vm_ops.expunge_vm(vm_uuid) vct_ops.delete_vcenter(vcenter_uuid) test_util.test_pass("vm start and stop of vcenter test passed.")
def test(): global vcenter_uuid, vm vcenter1_name = os.environ['vcenter2_name'] vcenter1_domain_name = os.environ['vcenter2_ip'] vcenter1_username = os.environ['vcenter2_domain_name'] vcenter1_password = os.environ['vcenter2_password'] ova_image_name = os.environ['vcenter2_template_exist'] network_pattern1 = os.environ['vcenter2_network_pattern1'] zone_uuid = res_ops.get_resource(res_ops.ZONE)[0].uuid inv = vct_ops.add_vcenter(vcenter1_name, vcenter1_domain_name, vcenter1_username, vcenter1_password, True, zone_uuid) vcenter_uuid = inv.uuid if vcenter_uuid == None: test_util.test_fail("vcenter_uuid is None") #this test suppose user has already deployed a cluster with more than 2 hosts included, #the vm is created in one of the host, then start the vm with another host uuid, #which leads vm migration triggering. vm = test_stub.create_vm_in_vcenter(vm_name='vm-start-stop-test', image_name=ova_image_name, l3_name=network_pattern1) vm.check() vm.stop() vm.check() vm_host_uuid = test_lib.lib_get_vm_host(vm.get_vm()).uuid host_cond = res_ops.gen_query_conditions("status", '=', "Connected") host_uuids = res_ops.query_resource_fields(res_ops.HOST, host_cond, None, fields=['uuid']) for host_uuid in host_uuids: if host_uuid != vm_host_uuid: another_host_uuid = host_uuid break test_stub.start_vm_with_host_uuid(vm.get_vm(), vm_host_uuid) vm.check() vm.destroy() vm.check() vm.expunge() vct_ops.delete_vcenter(vcenter_uuid) test_util.test_pass("vm start and stop of vcenter test passed.")
def test(): global vcenter_uuid, vm vcenter1_name = os.environ['vcenter2_name'] vcenter1_domain_name = os.environ['vcenter2_ip'] vcenter1_username = os.environ['vcenter2_domain_name'] vcenter1_password = os.environ['vcenter2_password'] ova_image_name = os.environ['vcenter2_template_exist'] network_pattern1 = os.environ['vcenter2_network_pattern1'] zone_uuid = res_ops.get_resource(res_ops.ZONE)[0].uuid inv = vct_ops.add_vcenter(vcenter1_name, vcenter1_domain_name, vcenter1_username, vcenter1_password, True, zone_uuid) vcenter_uuid = inv.uuid if vcenter_uuid == None: test_util.test_fail("vcenter_uuid is None") #this test suppose user has already deployed a cluster with more than 2 hosts included, #the vm is created in one of the host, then start the vm with another host uuid, #which leads vm migration triggering. vm = test_stub.create_vm_in_vcenter(vm_name = 'vm-start-stop-test', image_name = ova_image_name, l3_name = network_pattern1) vm.check() vm.stop() vm.check() vm_host_uuid = test_lib.lib_get_vm_host(vm.get_vm()).uuid host_cond = res_ops.gen_query_conditions("status", '=', "Connected") host_uuids = res_ops.query_resource_fields(res_ops.HOST, host_cond, None, fields=['uuid']) for host_uuid in host_uuids: if host_uuid != vm_host_uuid: another_host_uuid = host_uuid break test_stub.start_vm_with_host_uuid(vm.get_vm(), vm_host_uuid) vm.check() vm.destroy() vm.check() vm.expunge() vct_ops.delete_vcenter(vcenter_uuid) test_util.test_pass("vm start and stop of vcenter test passed.")
def test(): global vcenter_uuid vcenter1_name = os.environ['vcenter1_name'] vcenter1_domain_name = os.environ['vcenter1_ip'] vcenter1_username = os.environ['vcenter1_domain_name'] vcenter1_password = os.environ['vcenter1_password'] zone_uuid = res_ops.get_resource(res_ops.ZONE)[0].uuid inv = vct_ops.add_vcenter(vcenter1_name, vcenter1_domain_name, vcenter1_username, vcenter1_password, True, zone_uuid) vcenter_uuid = inv.uuid if vcenter_uuid == None: test_util.test_fail("vcenter_uuid is None") time.sleep(1) vct_ops.delete_vcenter(vcenter_uuid) test_util.test_pass("add && delete vcenter test passed.")
def test(): global vcenter_uuid1 global vcenter_uuid2 global mevoco1_ip global mevoco2_ip global vm_uuid vcenter1_name = os.environ['vcenter2_name'] vcenter1_domain_name = os.environ['vcenter2_ip'] vcenter1_username = os.environ['vcenter2_domain_name'] vcenter1_password = os.environ['vcenter2_password'] sync_vm = os.environ['vcenter2_sync_vm_create_delete'] sync_image_name = os.environ['vcenter2_template_exist'] network_pattern1 = os.environ['vcenter2_network_pattern1'] mevoco1_ip = os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] mevoco2_ip = os.environ['serverIp2'] os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco1_ip zone_uuid = res_ops.get_resource(res_ops.ZONE)[0].uuid inv = vct_ops.add_vcenter(vcenter1_name, vcenter1_domain_name, vcenter1_username, vcenter1_password, True, zone_uuid) vcenter_uuid1 = inv.uuid if vcenter_uuid1 == None: test_util.test_fail("vcenter_uuid is None") os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco2_ip zone_uuid = res_ops.get_resource(res_ops.ZONE)[0].uuid inv = vct_ops.add_vcenter(vcenter1_name, vcenter1_domain_name, vcenter1_username, vcenter1_password, True, zone_uuid) vcenter_uuid2 = inv.uuid if vcenter_uuid2 == None: test_util.test_fail("vcenter_uuid is None") #create vm in remote and check test_util.test_logger("create vm for sync test") vm = test_stub.create_vm_in_vcenter(vm_name=sync_vm, image_name=sync_image_name, l3_name=network_pattern1) vm.check() os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco1_ip vm_cond = res_ops.gen_query_conditions("name", '=', sync_vm) vm_inv = res_ops.query_resource_fields(res_ops.VM_INSTANCE, vm_cond, None, fields=['uuid', 'state']) if not vm_inv: test_util.test_fail("not found target vm being sync") vm_uuid = vm_inv[0].uuid if not vm_uuid: test_util.test_fail("remote woodpecker vm uuid is null") vm_state = vm_inv[0].state.strip().lower() if vm_state != "running": test_util.test_fail("vcenter sync vm start failed.") #delete vm in remote and check test_util.test_logger("delete vm for sync test") if vm_uuid: vm_ops.destroy_vm(vm_uuid) vm_ops.expunge_vm(vm_uuid) os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco2_ip vm_inv = res_ops.query_resource_fields(res_ops.VM_INSTANCE, vm_cond, None, fields=['uuid', 'state']) if vm_inv: test_util.test_fail("found the expected deleted vm") os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco2_ip if vcenter_uuid2: vct_ops.delete_vcenter(vcenter_uuid2) os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco1_ip if vcenter_uuid1: vct_ops.delete_vcenter(vcenter_uuid1) test_util.test_pass("vcenter sync start and stop vm test passed.")
def test(): global vcenter_uuid1 global vcenter_uuid2 global mevoco1_ip global mevoco2_ip vcenter1_name = os.environ['vcenter2_name'] vcenter1_domain_name = os.environ['vcenter2_ip'] vcenter1_username = os.environ['vcenter2_domain_name'] vcenter1_password = os.environ['vcenter2_password'] vm_name = os.environ['vcenter2_sync_vm_start_stop'] mevoco1_ip = os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] mevoco2_ip = os.environ['serverIp2'] os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco1_ip zone_uuid = res_ops.get_resource(res_ops.ZONE)[0].uuid inv = vct_ops.add_vcenter(vcenter1_name, vcenter1_domain_name, vcenter1_username, vcenter1_password, True, zone_uuid) vcenter_uuid1 = inv.uuid if vcenter_uuid1 == None: test_util.test_fail("vcenter_uuid is None") os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco2_ip zone_uuid = res_ops.get_resource(res_ops.ZONE)[0].uuid inv = vct_ops.add_vcenter(vcenter1_name, vcenter1_domain_name, vcenter1_username, vcenter1_password, True, zone_uuid) vcenter_uuid2 = inv.uuid if vcenter_uuid2 == None: test_util.test_fail("vcenter_uuid is None") #start vm in remote and check test_util.test_logger("start vm for sync test") vm_cond = res_ops.gen_query_conditions("name", '=', vm_name) vm_inv = res_ops.query_resource_fields(res_ops.VM_INSTANCE, vm_cond, None, fields=['uuid', 'state'])[0] vm_uuid = vm_inv.uuid vm_state = vm_inv.state.strip().lower() if not vm_uuid: test_util.test_fail("remote woodpecker vm uuid is null") elif vm_uuid and vm_state != "running": print "#%s#" % vm_state vm_ops.start_vm(vm_uuid) os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco1_ip vm_inv = res_ops.query_resource_fields(res_ops.VM_INSTANCE, vm_cond, None, fields=['uuid', 'state'])[0] vm_uuid = vm_inv.uuid vm_state = vm_inv.state.strip().lower() if not vm_uuid: test_util.test_fail("local woodpecker vm uuid is null") elif vm_state != "running": test_util.test_fail("vcenter sync vm start failed.") #stop vm in remote and check test_util.test_logger("stop vm for sync test") os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco2_ip vm_inv = res_ops.query_resource_fields(res_ops.VM_INSTANCE, vm_cond, None, fields=['uuid', 'state'])[0] vm_uuid = vm_inv.uuid vm_state = vm_inv.state.strip().lower() if not vm_uuid: test_util.test_fail("remote woodpecker vm uuid is null") elif vm_uuid and vm_state != "stopped": vm_ops.stop_vm(vm_uuid) os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco1_ip vm_inv = res_ops.query_resource_fields(res_ops.VM_INSTANCE, vm_cond, None, fields=['uuid', 'state'])[0] vm_uuid = vm_inv.uuid vm_state = vm_inv.state.strip().lower() if not vm_uuid: test_util.test_fail("local woodpecker vm uuid is null") elif vm_state != "stopped": test_util.test_fail("vcenter sync vm stop failed.") os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco2_ip if vcenter_uuid2: vct_ops.delete_vcenter(vcenter_uuid2) os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco1_ip if vcenter_uuid1: vct_ops.delete_vcenter(vcenter_uuid1) test_util.test_pass("vcenter sync start and stop vm test passed.")
def test(): global vcenter_uuid1 global vcenter_uuid2 global mevoco1_ip global mevoco2_ip global img_uuid global delete_policy1 global delete_policy2 print os.environ vcenter1_name = os.environ['vcenter2_name'] vcenter1_domain_name = os.environ['vcenter2_ip'] vcenter1_username = os.environ['vcenter2_domain_name'] vcenter1_password = os.environ['vcenter2_password'] sync_image_url = os.environ['vcenter2_sync_image_url'] image_name = os.environ['vcenter2_sync_image_name'] mevoco1_ip = os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] mevoco2_ip = os.environ['serverIp2'] os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco1_ip delete_policy1 = test_lib.lib_set_delete_policy('image', 'Delay') zone_uuid = res_ops.get_resource(res_ops.ZONE)[0].uuid inv = vct_ops.add_vcenter(vcenter1_name, vcenter1_domain_name, vcenter1_username, vcenter1_password, True, zone_uuid) vcenter_uuid1 = inv.uuid if vcenter_uuid1 == None: test_util.test_fail("vcenter_uuid is None") os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco2_ip delete_policy2 = test_lib.lib_set_delete_policy('image', 'Delay') zone_uuid = res_ops.get_resource(res_ops.ZONE)[0].uuid inv = vct_ops.add_vcenter(vcenter1_name, vcenter1_domain_name, vcenter1_username, vcenter1_password, True, zone_uuid) vcenter_uuid2 = inv.uuid if vcenter_uuid2 == None: test_util.test_fail("vcenter_uuid is None") #bs_cond = res_ops.gen_query_conditions("name", '=', "vCenter[vm-center]") bs_cond = res_ops.gen_query_conditions("type", '=', "VCenter") bss = res_ops.query_resource_fields(res_ops.BACKUP_STORAGE, bs_cond, \ None, fields=['uuid']) if not bss: test_util.test_skip("not find available backup storage. Skip test") #add sync image in mevoco2 image_option = test_util.ImageOption() image_option.set_name(image_name) #image_option.set_mediaType('RootVolumeTemplate') image_option.set_format('vmtx') image_option.set_system_tags('vcenter::datacenter::datacenter1') #image_option.set_url(os.environ.get(sync_image_url)) image_option.set_url(sync_image_url) image_option.set_backup_storage_uuid_list([bss[0].uuid]) new_image = zstack_image_header.ZstackTestImage() new_image.set_creation_option(image_option) #if a error happens here, check whether the image with the same name is already #exist in vcenter, which is also raise exception about can't download on all backup storage test_util.test_logger("add image from url:%s" % (sync_image_url)) new_image.add_root_volume_template() #reconnect vcenter and check newly add image in mevoco1 test_util.test_logger("check image sync from mevoco1") os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco1_ip bs_cond = res_ops.gen_query_conditions("type", '=', "VCenter") bss = res_ops.query_resource_fields(res_ops.BACKUP_STORAGE, bs_cond, None, fields=['uuid']) bs_ops.reconnect_backup_storage(bss[0].uuid) image_cond = res_ops.gen_query_conditions("name", '=', image_name) img_inv = res_ops.query_resource_fields(res_ops.IMAGE, image_cond, None, fields=['uuid'])[0] img_uuid = img_inv.uuid if not img_uuid: test_util.test_fail("local woodpecker image uuid is null") #delete image in mevoco2 test_util.test_logger("delete image from mevoco2") os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco2_ip image_cond = res_ops.gen_query_conditions("name", '=', image_name) img_inv = res_ops.query_resource_fields(res_ops.IMAGE, image_cond, None, fields=['uuid'])[0] img_uuid = img_inv.uuid img_ops.delete_image(img_uuid) img_ops.expunge_image(img_uuid) #check image in mevoco1 test_util.test_logger("check image delete sync from mevoco1") os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco1_ip bs_cond = res_ops.gen_query_conditions("type", '=', "VCenter") bss = res_ops.query_resource_fields(res_ops.BACKUP_STORAGE, bs_cond, None, fields=['uuid']) bs_ops.reconnect_backup_storage(bss[0].uuid) image_cond = res_ops.gen_query_conditions("name", '=', image_name) #img_inv = res_ops.query_resource_fields(res_ops.IMAGE, image_cond, None, fields=['uuid'])[0] #img_uuid = img_inv.uuid img_inv = res_ops.query_resource_fields(res_ops.IMAGE, image_cond, None, fields=['uuid']) if img_inv: test_util.test_fail( "local woodpecker image is not deleted as expected") os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco2_ip test_lib.lib_set_delete_policy('image', delete_policy2) if vcenter_uuid2: vct_ops.delete_vcenter(vcenter_uuid2) os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco1_ip test_lib.lib_set_delete_policy('image', delete_policy1) if vcenter_uuid1: vct_ops.delete_vcenter(vcenter_uuid1) test_util.test_pass("vcenter sync image test passed.")
def test(): global vcenter_uuid1 global vcenter_uuid2 global mevoco1_ip global mevoco2_ip global img_uuid global delete_policy1 global delete_policy2 print os.environ vcenter1_name = os.environ['vcenter2_name'] vcenter1_domain_name = os.environ['vcenter2_ip'] vcenter1_username = os.environ['vcenter2_domain_name'] vcenter1_password = os.environ['vcenter2_password'] sync_image_url = os.environ['vcenter2_sync_image_url'] image_name = os.environ['vcenter2_sync_image_name'] mevoco1_ip = os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] mevoco2_ip = os.environ['serverIp2'] os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco1_ip delete_policy1 = test_lib.lib_set_delete_policy('image', 'Delay') zone_uuid = res_ops.get_resource(res_ops.ZONE)[0].uuid inv = vct_ops.add_vcenter(vcenter1_name, vcenter1_domain_name, vcenter1_username, vcenter1_password, True, zone_uuid) vcenter_uuid1 = inv.uuid if vcenter_uuid1 == None: test_util.test_fail("vcenter_uuid is None") os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco2_ip delete_policy2 = test_lib.lib_set_delete_policy('image', 'Delay') zone_uuid = res_ops.get_resource(res_ops.ZONE)[0].uuid inv = vct_ops.add_vcenter(vcenter1_name, vcenter1_domain_name, vcenter1_username, vcenter1_password, True, zone_uuid) vcenter_uuid2 = inv.uuid if vcenter_uuid2 == None: test_util.test_fail("vcenter_uuid is None") #bs_cond = res_ops.gen_query_conditions("name", '=', "vCenter[vm-center]") bs_cond = res_ops.gen_query_conditions("type", '=', "VCenter") bss = res_ops.query_resource_fields(res_ops.BACKUP_STORAGE, bs_cond, \ None, fields=['uuid']) if not bss: test_util.test_skip("not find available backup storage. Skip test") #add sync image in mevoco2 image_option = test_util.ImageOption() image_option.set_name(image_name) #image_option.set_mediaType('RootVolumeTemplate') image_option.set_format('vmtx') image_option.set_system_tags('vcenter::datacenter::datacenter1') #image_option.set_url(os.environ.get(sync_image_url)) image_option.set_url(sync_image_url) image_option.set_backup_storage_uuid_list([bss[0].uuid]) new_image = zstack_image_header.ZstackTestImage() new_image.set_creation_option(image_option) #if a error happens here, check whether the image with the same name is already #exist in vcenter, which is also raise exception about can't download on all backup storage test_util.test_logger("add image from url:%s" %(sync_image_url)) new_image.add_root_volume_template() #reconnect vcenter and check newly add image in mevoco1 test_util.test_logger("check image sync from mevoco1") os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco1_ip bs_cond = res_ops.gen_query_conditions("type", '=', "VCenter") bss = res_ops.query_resource_fields(res_ops.BACKUP_STORAGE, bs_cond, None, fields=['uuid']) bs_ops.reconnect_backup_storage(bss[0].uuid) image_cond = res_ops.gen_query_conditions("name", '=', image_name) img_inv = res_ops.query_resource_fields(res_ops.IMAGE, image_cond, None, fields=['uuid'])[0] img_uuid = img_inv.uuid if not img_uuid: test_util.test_fail("local woodpecker image uuid is null") #delete image in mevoco2 test_util.test_logger("delete image from mevoco2") os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco2_ip image_cond = res_ops.gen_query_conditions("name", '=', image_name) img_inv = res_ops.query_resource_fields(res_ops.IMAGE, image_cond, None, fields=['uuid'])[0] img_uuid = img_inv.uuid img_ops.delete_image(img_uuid) img_ops.expunge_image(img_uuid) #check image in mevoco1 test_util.test_logger("check image delete sync from mevoco1") os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco1_ip bs_cond = res_ops.gen_query_conditions("type", '=', "VCenter") bss = res_ops.query_resource_fields(res_ops.BACKUP_STORAGE, bs_cond, None, fields=['uuid']) bs_ops.reconnect_backup_storage(bss[0].uuid) image_cond = res_ops.gen_query_conditions("name", '=', image_name) #img_inv = res_ops.query_resource_fields(res_ops.IMAGE, image_cond, None, fields=['uuid'])[0] #img_uuid = img_inv.uuid img_inv = res_ops.query_resource_fields(res_ops.IMAGE, image_cond, None, fields=['uuid']) if img_inv: test_util.test_fail("local woodpecker image is not deleted as expected") os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco2_ip test_lib.lib_set_delete_policy('image', delete_policy2) if vcenter_uuid2: vct_ops.delete_vcenter(vcenter_uuid2) os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco1_ip test_lib.lib_set_delete_policy('image', delete_policy1) if vcenter_uuid1: vct_ops.delete_vcenter(vcenter_uuid1) test_util.test_pass("vcenter sync image test passed.")
def test(): global vcenter_uuid1 global vcenter_uuid2 global mevoco1_ip global mevoco2_ip global vm_uuid vcenter1_name = os.environ['vcenter2_name'] vcenter1_domain_name = os.environ['vcenter2_ip'] vcenter1_username = os.environ['vcenter2_domain_name'] vcenter1_password = os.environ['vcenter2_password'] sync_vm = os.environ['vcenter2_sync_vm_create_delete'] sync_image_name = os.environ['vcenter2_template_exist'] network_pattern1 = os.environ['vcenter2_network_pattern1'] mevoco1_ip = os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] mevoco2_ip = os.environ['serverIp2'] os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco1_ip zone_uuid = res_ops.get_resource(res_ops.ZONE)[0].uuid inv = vct_ops.add_vcenter(vcenter1_name, vcenter1_domain_name, vcenter1_username, vcenter1_password, True, zone_uuid) vcenter_uuid1 = inv.uuid if vcenter_uuid1 == None: test_util.test_fail("vcenter_uuid is None") os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco2_ip zone_uuid = res_ops.get_resource(res_ops.ZONE)[0].uuid inv = vct_ops.add_vcenter(vcenter1_name, vcenter1_domain_name, vcenter1_username, vcenter1_password, True, zone_uuid) vcenter_uuid2 = inv.uuid if vcenter_uuid2 == None: test_util.test_fail("vcenter_uuid is None") #create vm in remote and check test_util.test_logger("create vm for sync test") vm = test_stub.create_vm_in_vcenter(vm_name = sync_vm, image_name = sync_image_name, l3_name = network_pattern1) vm.check() os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco1_ip vm_cond = res_ops.gen_query_conditions("name", '=', sync_vm) vm_inv = res_ops.query_resource_fields(res_ops.VM_INSTANCE, vm_cond, None, fields=['uuid', 'state']) if not vm_inv: test_util.test_fail("not found target vm being sync") vm_uuid = vm_inv[0].uuid if not vm_uuid: test_util.test_fail("remote woodpecker vm uuid is null") vm_state = vm_inv[0].state.strip().lower() if vm_state != "running": test_util.test_fail("vcenter sync vm start failed.") #delete vm in remote and check test_util.test_logger("delete vm for sync test") if vm_uuid: vm_ops.destroy_vm(vm_uuid) vm_ops.expunge_vm(vm_uuid) os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco2_ip vm_inv = res_ops.query_resource_fields(res_ops.VM_INSTANCE, vm_cond, None, fields=['uuid', 'state']) if vm_inv: test_util.test_fail("found the expected deleted vm") os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco2_ip if vcenter_uuid2: vct_ops.delete_vcenter(vcenter_uuid2) os.environ['ZSTACK_BUILT_IN_HTTP_SERVER_IP'] = mevoco1_ip if vcenter_uuid1: vct_ops.delete_vcenter(vcenter_uuid1) test_util.test_pass("vcenter sync start and stop vm test passed.")