def check(self): super(zstack_kvm_vm_stopped_checker, self).check() return self.judge(self.exp_result) vm = self.test_obj.vm host = test_lib.lib_get_vm_host(vm) test_lib.lib_install_testagent_to_host(host) test_lib.lib_set_vm_host_l2_ip(vm) cmd = vm_plugin.VmStatusCmd() cmd.vm_uuids = [vm.uuid] test_util.test_logger( 'Check [vm:] %s stopped status on host [name:] %s [uuid:] %s.' % (vm.uuid, host.name, host.uuid)) rspstr = http.json_dump_post( testagent.build_http_path(host.managementIp, vm_plugin.VM_STATUS), cmd) rsp = jsonobject.loads(rspstr) check_result = rsp.vm_status[vm.uuid].strip() if check_result == vm_plugin.VmAgent.VM_STATUS_STOPPED: test_util.test_logger( 'Check result: [vm:] %s is STOPPED on [host:] %s .' % (vm.uuid, host.name)) return self.judge(True) else: test_util.test_logger( 'Check result: [vm:] %s is NOT STOPPED on [host:] %s . ; Expected status: %s ; Actual status: %s' % (vm.uuid, host.name, vm_plugin.VmAgent.VM_STATUS_STOPPED, check_result)) return self.judge(False)
def check(self): super(zstack_kvm_volume_attach_checker, self).check() volume = self.test_obj.volume if not volume.vmInstanceUuid: test_util.test_logger('Check result: [volume:] %s does NOT have vmInstanceUuid. It is not attached to any vm.' % volume.uuid) return self.judge(False) if not self.test_obj.target_vm: test_util.test_logger('Check result: test [volume:] %s does NOT have vmInstance record in test structure. Can not do furture checking.' % volume.uuid) return self.judge(False) vm = self.test_obj.target_vm.vm volume_installPath = volume.installPath if not volume_installPath: test_util.test_logger('Check result: [installPath] is Null for [volume uuid: ] %s. Can not check if volume is attached to vm.' % volume.uuid) return self.judge(False) host = test_lib.lib_get_vm_host(vm) cmd = vm_plugin.VmStatusCmd() cmd.vm_uuids = [vm.uuid] rspstr = http.json_dump_post(testagent.build_http_path(host.managementIp, vm_plugin.VM_BLK_STATUS), cmd) rsp = jsonobject.loads(rspstr) output = jsonobject.dumps(rsp.vm_status[vm.uuid]) if volume_installPath in output: test_util.test_logger('Check result: [volume file:] %s is found in [vm:] %s on [host:] %s .' % (volume.uuid, vm.uuid, host.managementIp)) return self.judge(True) else: test_util.test_logger('Check result: [volume file:] %s is not found in [vm:] %s on [host:] %s .' % (volume.uuid, vm.uuid, host.managementIp)) return self.judge(False)
def check(self): super(zstack_kvm_share_volume_attach_checker, self).check() volume = self.test_obj.volume sv_cond = res_ops.gen_query_conditions("volumeUuid", '=', volume.uuid) share_volume_vm_uuids = res_ops.query_resource_fields( res_ops.SHARE_VOLUME, sv_cond, None, fields=['vmInstanceUuid']) #if not volume.vmInstanceUuid: if not share_volume_vm_uuids: test_util.test_logger( 'Check result: [volume:] %s does NOT have vmInstanceUuid. It is not attached to any vm.' % volume.uuid) return self.judge(False) if not self.test_obj.target_vm: test_util.test_logger( 'Check result: test [volume:] %s does NOT have vmInstance record in test structure. Can not do furture checking.' % volume.uuid) return self.judge(False) vm = self.test_obj.target_vm.vm volume_installPath = volume.installPath if not volume_installPath: test_util.test_logger( 'Check result: [installPath] is Null for [volume uuid: ] %s. Can not check if volume is attached to vm.' % volume.uuid) return self.judge(False) host = test_lib.lib_get_vm_host(vm) cmd = vm_plugin.VmStatusCmd() cmd.vm_uuids = [vm.uuid] rspstr = http.json_dump_post( testagent.build_http_path(host.managementIp, vm_plugin.VM_BLK_STATUS), cmd) rsp = jsonobject.loads(rspstr) output = jsonobject.dumps(rsp.vm_status[vm.uuid]) #if volume_installPath.startswith('iscsi'): # volume_installPath = volume_installPath.split(';')[0].split('/iqn')[1] # volume_installPath = 'iqn%s' % volume_installPath # volume_installPath = volume_installPath[:-2] #elif volume_installPath.startswith('ceph'): if volume_installPath.startswith('ceph'): volume_installPath = volume_installPath.split('ceph://')[1] elif volume_installPath.startswith('sharedblock'): volume_installPath = "/dev/" + volume_installPath.split( 'sharedblock://')[1] if volume_installPath in output: test_util.test_logger( 'Check result: [volume:] %s [file:] %s is found in [vm:] %s on [host:] %s .' % (volume.uuid, volume_installPath, vm.uuid, host.managementIp)) return self.judge(True) else: test_util.test_logger( 'Check result: [volume:] %s [file:] %s is not found in [vm:] %s on [host:] %s .' % (volume.uuid, volume_installPath, vm.uuid, host.managementIp)) return self.judge(False)