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)