[PATCH v2 1/4] test_driver: Implement virDomainGetJobInfo

Martin Kletzander mkletzan at redhat.com
Tue Aug 17 11:45:11 UTC 2021


On Mon, Aug 16, 2021 at 07:13:34PM +0800, Luke Yue wrote:
>priv-jobState is used to store dummy job type, and priv->jobOperation is
>used to store dummy job operation, they are initialized to
>VIR_DOMAIN_JOB_NONE and VIR_DOMAIN_JOB_OPERATION_UNKNOWN, we can
>just change them in other job related APIs as there is no real job in test
>driver.
>
>Signed-off-by: Luke Yue <lukedyue at gmail.com>
>---
> src/test/test_driver.c | 89 ++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 89 insertions(+)
>
>diff --git a/src/test/test_driver.c b/src/test/test_driver.c
>index 00cc13511a..9306f0e104 100644
>--- a/src/test/test_driver.c
>+++ b/src/test/test_driver.c
>@@ -380,6 +380,10 @@ struct _testDomainObjPrivate {
>     /* used by get/set time APIs */
>     long long seconds;
>     unsigned int nseconds;
>+
>+    /* used by Job Info APIs */
>+    unsigned int jobState;
>+    unsigned int jobOperation;
> };
>
>
>@@ -396,6 +400,9 @@ testDomainObjPrivateAlloc(void *opaque)
>     priv->seconds = 627319920;
>     priv->nseconds = 0;
>
>+    priv->jobState = VIR_DOMAIN_JOB_NONE;
>+    priv->jobOperation = VIR_DOMAIN_JOB_OPERATION_UNKNOWN;
>+
>     return priv;
> }
>
>@@ -2681,6 +2688,87 @@ testDomainGetOSType(virDomainPtr dom G_GNUC_UNUSED)
>     return ret;
> }
>
>+static int
>+testDomainGetJobInfoImpl(virDomainObj *dom,
>+                         virDomainJobInfoPtr info)
>+{
>+    testDomainObjPrivate *priv = dom->privateData;
>+
>+    memset(info, 0, sizeof(*info));
>+
>+    info->type = priv->jobState;
>+
>+    switch (priv->jobState) {
>+    case VIR_DOMAIN_JOB_NONE:
>+        break;
>+
>+    case VIR_DOMAIN_JOB_BOUNDED:
>+        info->dataTotal = 30 * 1024;
>+        info->dataProcessed = 10 * 1024;
>+        info->dataRemaining = 20 * 1024;
>+        info->timeRemaining = 6000;
>+        info->timeElapsed = 4000;
>+        info->memTotal = 3 * 1024 * 1024;
>+        info->memProcessed = 1024 * 1024;
>+        info->memRemaining = 2 * 1024 * 1024;
>+        info->fileTotal = 2 * 1024 * 1024;
>+        info->fileProcessed = 1024 * 1024 / 2;
>+        info->fileRemaining = 3 * 1024 * 1024 / 2;
>+        break;
>+
>+    case VIR_DOMAIN_JOB_UNBOUNDED:
>+        info->dataTotal = 30 * 1024;
>+        info->dataProcessed = 10 * 1024;
>+        info->dataRemaining = 20 * 1024;
>+        info->timeElapsed = 4000;
>+        info->memTotal = 3 * 1024 * 1024;
>+        info->memProcessed = 1024 * 1024;
>+        info->memRemaining = 2 * 1024 * 1024;
>+        info->fileTotal = 2 * 1024 * 1024;
>+        info->fileProcessed = 1024 * 1024 / 2;
>+        info->fileRemaining = 3 * 1024 * 1024 / 2;
>+        break;
>+
>+    case VIR_DOMAIN_JOB_COMPLETED:
>+        info->timeElapsed = 10000;
>+        info->dataTotal = 30 * 1024;
>+        info->dataProcessed = 30 * 1024;
>+        info->memTotal = 3 * 1024 * 1024;
>+        info->memProcessed = 3 * 1024 * 1024;
>+        info->fileTotal = 2 * 1024 * 1024;
>+        info->fileProcessed = 2 * 1024 * 1024;
>+        break;
>+

This could be cleared up with some constants and branch fallthroughs,
but that's a minor details, for now this is fine as it is.

Reviewed-by: Martin Kletzander <mkletzan at redhat.com>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20210817/4ccdcd50/attachment-0001.sig>


More information about the libvir-list mailing list