[libvirt] [PATCH 05/21] domain: add virDomainMigrateOpenTunnel

John Ferlan jferlan at redhat.com
Mon Dec 14 14:55:35 UTC 2015



On 11/18/2015 01:13 PM, Pavel Boldin wrote:
> Add auxiliary private function that calls the apropriate driver's
> domainMigrateOpenTunnel function.
> 
> Signed-off-by: Pavel Boldin <pboldin at mirantis.com>
> ---
>  docs/apibuild.py         |  1 +
>  docs/hvsupport.pl        |  1 +
>  src/libvirt-domain.c     | 43 +++++++++++++++++++++++++++++++++++++++++++
>  src/libvirt_internal.h   |  6 ++++++
>  src/libvirt_private.syms |  1 +
>  5 files changed, 52 insertions(+)
> 
> diff --git a/docs/apibuild.py b/docs/apibuild.py
> index f934fb2..6e60093 100755
> --- a/docs/apibuild.py
> +++ b/docs/apibuild.py
> @@ -102,6 +102,7 @@ ignored_functions = {
>    "virDomainMigratePrepare3Params": "private function for migration",
>    "virDomainMigrateConfirm3Params": "private function for migration",
>    "virDomainMigratePrepareTunnel3Params": "private function for tunnelled migration",
> +  "virDomainMigrateOpenTunnel": "private function for tunnelled migration",
>    "virErrorCopyNew": "private",
>  }
>  
> diff --git a/docs/hvsupport.pl b/docs/hvsupport.pl
> index 44a30ce..3b6ee65 100755
> --- a/docs/hvsupport.pl
> +++ b/docs/hvsupport.pl
> @@ -200,6 +200,7 @@ $apis{virDomainMigratePerform3Params}->{vers} = "1.1.0";
>  $apis{virDomainMigrateFinish3Params}->{vers} = "1.1.0";
>  $apis{virDomainMigrateConfirm3Params}->{vers} = "1.1.0";
>  
> +$apis{virDomainMigrateOpenTunnel}->{vers} = "1.2.XX";

At least 1.3.1

Although - this may actually need to happen in the libvirt-python code
rather than here. Cannot remember if these are necessary here still.

>  
>  
>  # Now we want to get the mapping between public APIs
> diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
> index de7eb04..3037c01 100644
> --- a/src/libvirt-domain.c
> +++ b/src/libvirt-domain.c
> @@ -11595,3 +11595,46 @@ virDomainInterfaceFree(virDomainInterfacePtr iface)
>  
>      VIR_FREE(iface);
>  }
> +
> +
> +/*
> + * Not for public use.  This function is part of the internal
> + * implementation of migration in the remote case.
> + */
> +int
> +virDomainMigrateOpenTunnel(virConnectPtr conn,
> +                           virStreamPtr st,
> +                           unsigned char uuid[VIR_UUID_BUFLEN],

Use const unsigned char *uuid

> +                           unsigned int flags)
> +{
> +    char uuidstr[VIR_UUID_STRING_BUFLEN];
> +
> +    virUUIDFormat(uuid, uuidstr);
> +    VIR_DEBUG("conn=%p, stream=%p, uuid=%s, flags=%x",
> +              conn, st, uuidstr, flags);
> +
> +    virResetLastError();
> +
> +    virCheckConnectReturn(conn, -1);
> +    virCheckReadOnlyGoto(conn->flags, error);
> +
> +    if (conn != st->conn) {
> +        virReportInvalidArg(conn, "%s",
> +                            _("conn must match stream connection"));
> +        goto error;
> +    }
> +
> +    if (conn->driver->domainMigrateOpenTunnel) {
> +        int rv;
> +        rv = conn->driver->domainMigrateOpenTunnel(conn, st, uuid, flags);
> +        if (rv < 0)
> +            goto error;
> +        return rv;
> +    }
> +
> +    virReportUnsupportedError();
> +
> + error:
> +    virDispatchError(conn);
> +    return -1;
> +}
> diff --git a/src/libvirt_internal.h b/src/libvirt_internal.h
> index 1313b58..bbfba0b 100644
> --- a/src/libvirt_internal.h
> +++ b/src/libvirt_internal.h
> @@ -289,4 +289,10 @@ virTypedParameterValidateSet(virConnectPtr conn,
>                               virTypedParameterPtr params,
>                               int nparams);
>  
> +int
> +virDomainMigrateOpenTunnel(virConnectPtr conn,
> +                           virStreamPtr st,
> +                           unsigned char uuid[VIR_UUID_BUFLEN],

again...

> +                           unsigned int flags);
> +
>  #endif
> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
> index a835f18..cf5725c 100644
> --- a/src/libvirt_private.syms
> +++ b/src/libvirt_private.syms
> @@ -952,6 +952,7 @@ virDomainMigrateFinish;
>  virDomainMigrateFinish2;
>  virDomainMigrateFinish3;
>  virDomainMigrateFinish3Params;
> +virDomainMigrateOpenTunnel;
>  virDomainMigratePerform;
>  virDomainMigratePerform3;
>  virDomainMigratePerform3Params;
> 




More information about the libvir-list mailing list