[libvirt] [PATCHv2 6/7] snapshot: remote protocol for snapshot children

Daniel Veillard veillard at redhat.com
Mon Oct 10 03:25:31 UTC 2011


On Fri, Sep 30, 2011 at 05:09:28PM -0600, Eric Blake wrote:
> Very mechanical.  I'm so glad we've automated the generation of things,
> compared to what it was in 0.8.x days, where this would be much longer.
> 
> * src/remote/remote_protocol.x
> (REMOTE_PROC_DOMAIN_SNAPSHOT_NUM_CHILDREN)
> (REMOTE_PROC_DOMAIN_SNAPSHOT_LIST_CHILDREN_NAMES): New rpcs.
> (remote_domain_snapshot_num_children_args)
> (remote_domain_snapshot_num_children_ret)
> (remote_domain_snapshot_list_children_names_args)
> (remote_domain_snapshot_list_children_names_ret): New structs.
> * src/remote/remote_driver.c (remote_driver): Use it.
> * src/remote_protocol-structs: Update.
> ---
> 
> v2: fix typo in remote_protocol-structs
> 
>  src/remote/remote_driver.c   |    2 ++
>  src/remote/remote_protocol.x |   25 +++++++++++++++++++++++--
>  src/remote_protocol-structs  |   20 ++++++++++++++++++++
>  3 files changed, 45 insertions(+), 2 deletions(-)
> 
> diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
> index 83f4f3c..0e303df 100644
> --- a/src/remote/remote_driver.c
> +++ b/src/remote/remote_driver.c
> @@ -4411,6 +4411,8 @@ static virDriver remote_driver = {
>      .domainSnapshotGetXMLDesc = remoteDomainSnapshotGetXMLDesc, /* 0.8.0 */
>      .domainSnapshotNum = remoteDomainSnapshotNum, /* 0.8.0 */
>      .domainSnapshotListNames = remoteDomainSnapshotListNames, /* 0.8.0 */
> +    .domainSnapshotNumChildren = remoteDomainSnapshotNumChildren, /* 0.9.7 */
> +    .domainSnapshotListChildrenNames = remoteDomainSnapshotListChildrenNames, /* 0.9.7 */
>      .domainSnapshotLookupByName = remoteDomainSnapshotLookupByName, /* 0.8.0 */
>      .domainHasCurrentSnapshot = remoteDomainHasCurrentSnapshot, /* 0.8.0 */
>      .domainSnapshotGetParent = remoteDomainSnapshotGetParent, /* 0.9.7 */
> diff --git a/src/remote/remote_protocol.x b/src/remote/remote_protocol.x
> index c8a92fd..f95253e 100644
> --- a/src/remote/remote_protocol.x
> +++ b/src/remote/remote_protocol.x
> @@ -2067,6 +2067,25 @@ struct remote_domain_snapshot_list_names_ret {
>      remote_nonnull_string names<REMOTE_DOMAIN_SNAPSHOT_LIST_NAMES_MAX>; /* insert at 1 */
>  };
> 
> +struct remote_domain_snapshot_num_children_args {
> +    remote_nonnull_domain_snapshot snap;
> +    unsigned int flags;
> +};
> +
> +struct remote_domain_snapshot_num_children_ret {
> +    int num;
> +};
> +
> +struct remote_domain_snapshot_list_children_names_args {
> +    remote_nonnull_domain_snapshot snap;
> +    int maxnames;
> +    unsigned int flags;
> +};
> +
> +struct remote_domain_snapshot_list_children_names_ret {
> +    remote_nonnull_string names<REMOTE_DOMAIN_SNAPSHOT_LIST_NAMES_MAX>; /* insert at 1 */
> +};
> +
>  struct remote_domain_snapshot_lookup_by_name_args {
>      remote_nonnull_domain dom;
>      remote_nonnull_string name;
> @@ -2524,8 +2543,10 @@ enum remote_procedure {
>      REMOTE_PROC_DOMAIN_EVENT_BLOCK_JOB = 241, /* skipgen skipgen */
>      REMOTE_PROC_DOMAIN_MIGRATE_GET_MAX_SPEED = 242, /* autogen autogen */
>      REMOTE_PROC_DOMAIN_BLOCK_STATS_FLAGS = 243, /* skipgen skipgen */
> -    REMOTE_PROC_DOMAIN_SNAPSHOT_GET_PARENT = 244, /* autogen autogen */
> -    REMOTE_PROC_DOMAIN_RESET = 245 /* autogen autogen */
> +    REMOTE_PROC_DOMAIN_SNAPSHOT_GET_PARENT = 244, /* autogen autogen priority:high */
> +    REMOTE_PROC_DOMAIN_RESET = 245, /* autogen autogen */
> +    REMOTE_PROC_DOMAIN_SNAPSHOT_NUM_CHILDREN = 246, /* autogen autogen priority:high */
> +    REMOTE_PROC_DOMAIN_SNAPSHOT_LIST_CHILDREN_NAMES = 247 /* autogen autogen priority:high */
> 
>      /*
>       * Notice how the entries are grouped in sets of 10 ?
> diff --git a/src/remote_protocol-structs b/src/remote_protocol-structs
> index 69175cc..7894441 100644
> --- a/src/remote_protocol-structs
> +++ b/src/remote_protocol-structs
> @@ -1557,6 +1557,24 @@ struct remote_domain_snapshot_list_names_ret {
>                  remote_nonnull_string * names_val;
>          } names;
>  };
> +struct remote_domain_snapshot_num_children_args {
> +        remote_nonnull_domain_snapshot snap;
> +        u_int                      flags;
> +};
> +struct remote_domain_snapshot_num_children_ret {
> +        int                        num;
> +};
> +struct remote_domain_snapshot_list_children_names_args {
> +        remote_nonnull_domain_snapshot snap;
> +        int                        maxnames;
> +        u_int                      flags;
> +};
> +struct remote_domain_snapshot_list_children_names_ret {
> +        struct {
> +                u_int              names_len;
> +                remote_nonnull_string * names_val;
> +        } names;
> +};
>  struct remote_domain_snapshot_lookup_by_name_args {
>          remote_nonnull_domain      dom;
>          remote_nonnull_string      name;
> @@ -1971,4 +1989,6 @@ enum remote_procedure {
>          REMOTE_PROC_DOMAIN_BLOCK_STATS_FLAGS = 243,
>          REMOTE_PROC_DOMAIN_SNAPSHOT_GET_PARENT = 244,
>          REMOTE_PROC_DOMAIN_RESET = 245,
> +        REMOTE_PROC_DOMAIN_SNAPSHOT_NUM_CHILDREN = 246,
> +        REMOTE_PROC_DOMAIN_SNAPSHOT_LIST_CHILDREN_NAMES = 247,
>  };

  ACK,

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list