From 5adf114d6838e3b41e865e9c1c4c19ba98f69c63 Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Wed, 4 Apr 2007 14:49:38 +0100 Subject: Remove docs and bindings for unimplemented SR.{create,destroy,clone}. Implement PBD class, matching existing docs and bindings. Signed-off-by: Ewan Mellor --- tools/libxen/include/xen_sr.h | 28 +++++------------ tools/libxen/src/xen_sr.c | 71 +++++++++++++++---------------------------- 2 files changed, 31 insertions(+), 68 deletions(-) (limited to 'tools/libxen') diff --git a/tools/libxen/include/xen_sr.h b/tools/libxen/include/xen_sr.h index e5e4299844..39a8dd6650 100644 --- a/tools/libxen/include/xen_sr.h +++ b/tools/libxen/include/xen_sr.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, XenSource Inc. + * Copyright (c) 2006-2007, XenSource Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -22,6 +22,7 @@ #include "xen_common.h" #include "xen_pbd_decl.h" #include "xen_sr_decl.h" +#include "xen_string_set.h" #include "xen_vdi_decl.h" @@ -72,7 +73,7 @@ typedef struct xen_sr_record int64_t physical_utilisation; int64_t physical_size; char *type; - char *location; + char *content_type; } xen_sr_record; /** @@ -168,20 +169,6 @@ extern bool xen_sr_get_by_uuid(xen_session *session, xen_sr *result, char *uuid); -/** - * Create a new SR instance, and return its handle. - */ -extern bool -xen_sr_create(xen_session *session, xen_sr *result, xen_sr_record *record); - - -/** - * Destroy the specified SR instance. - */ -extern bool -xen_sr_destroy(xen_session *session, xen_sr sr); - - /** * Get all the SR instances with the given label. */ @@ -253,10 +240,10 @@ xen_sr_get_type(xen_session *session, char **result, xen_sr sr); /** - * Get the location field of the given SR. + * Get the content_type field of the given SR. */ extern bool -xen_sr_get_location(xen_session *session, char **result, xen_sr sr); +xen_sr_get_content_type(xen_session *session, char **result, xen_sr sr); /** @@ -274,11 +261,10 @@ xen_sr_set_name_description(xen_session *session, xen_sr sr, char *description); /** - * Take an exact copy of the Storage Repository; the cloned storage - * repository has the same type as its parent + * Return a set of all the SR types supported by the system. */ extern bool -xen_sr_clone(xen_session *session, xen_sr *result, xen_sr sr, char *loc, char *name); +xen_sr_get_supported_types(xen_session *session, struct xen_string_set **result); /** diff --git a/tools/libxen/src/xen_sr.c b/tools/libxen/src/xen_sr.c index 86538241a1..5220fa3019 100644 --- a/tools/libxen/src/xen_sr.c +++ b/tools/libxen/src/xen_sr.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, XenSource Inc. + * Copyright (c) 2006-2007, XenSource Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -65,9 +65,9 @@ static const struct_member xen_sr_record_struct_members[] = { .key = "type", .type = &abstract_type_string, .offset = offsetof(xen_sr_record, type) }, - { .key = "location", + { .key = "content_type", .type = &abstract_type_string, - .offset = offsetof(xen_sr_record, location) } + .offset = offsetof(xen_sr_record, content_type) } }; const abstract_type xen_sr_record_abstract_type_ = @@ -94,7 +94,7 @@ xen_sr_record_free(xen_sr_record *record) xen_vdi_record_opt_set_free(record->vdis); xen_pbd_record_opt_set_free(record->pbds); free(record->type); - free(record->location); + free(record->content_type); free(record); } @@ -140,24 +140,24 @@ xen_sr_get_by_uuid(xen_session *session, xen_sr *result, char *uuid) bool -xen_sr_create(xen_session *session, xen_sr *result, xen_sr_record *record) +xen_sr_get_by_name_label(xen_session *session, struct xen_sr_set **result, char *label) { abstract_value param_values[] = { - { .type = &xen_sr_record_abstract_type_, - .u.struct_val = record } + { .type = &abstract_type_string, + .u.string_val = label } }; - abstract_type result_type = abstract_type_string; + abstract_type result_type = abstract_type_string_set; *result = NULL; - XEN_CALL_("SR.create"); + XEN_CALL_("SR.get_by_name_label"); return session->ok; } bool -xen_sr_destroy(xen_session *session, xen_sr sr) +xen_sr_get_name_label(xen_session *session, char **result, xen_sr sr) { abstract_value param_values[] = { @@ -165,30 +165,16 @@ xen_sr_destroy(xen_session *session, xen_sr sr) .u.string_val = sr } }; - xen_call_(session, "SR.destroy", param_values, 1, NULL, NULL); - return session->ok; -} - - -bool -xen_sr_get_by_name_label(xen_session *session, struct xen_sr_set **result, char *label) -{ - abstract_value param_values[] = - { - { .type = &abstract_type_string, - .u.string_val = label } - }; - - abstract_type result_type = abstract_type_string_set; + abstract_type result_type = abstract_type_string; *result = NULL; - XEN_CALL_("SR.get_by_name_label"); + XEN_CALL_("SR.get_name_label"); return session->ok; } bool -xen_sr_get_name_label(xen_session *session, char **result, xen_sr sr) +xen_sr_get_name_description(xen_session *session, char **result, xen_sr sr) { abstract_value param_values[] = { @@ -199,13 +185,13 @@ xen_sr_get_name_label(xen_session *session, char **result, xen_sr sr) abstract_type result_type = abstract_type_string; *result = NULL; - XEN_CALL_("SR.get_name_label"); + XEN_CALL_("SR.get_name_description"); return session->ok; } bool -xen_sr_get_name_description(xen_session *session, char **result, xen_sr sr) +xen_sr_get_vdis(xen_session *session, struct xen_vdi_set **result, xen_sr sr) { abstract_value param_values[] = { @@ -213,16 +199,16 @@ xen_sr_get_name_description(xen_session *session, char **result, xen_sr sr) .u.string_val = sr } }; - abstract_type result_type = abstract_type_string; + abstract_type result_type = abstract_type_string_set; *result = NULL; - XEN_CALL_("SR.get_name_description"); + XEN_CALL_("SR.get_VDIs"); return session->ok; } bool -xen_sr_get_vdis(xen_session *session, struct xen_vdi_set **result, xen_sr sr) +xen_sr_get_pbds(xen_session *session, struct xen_pbd_set **result, xen_sr sr) { abstract_value param_values[] = { @@ -233,7 +219,7 @@ xen_sr_get_vdis(xen_session *session, struct xen_vdi_set **result, xen_sr sr) abstract_type result_type = abstract_type_string_set; *result = NULL; - XEN_CALL_("SR.get_VDIs"); + XEN_CALL_("SR.get_PBDs"); return session->ok; } @@ -304,7 +290,7 @@ xen_sr_get_type(xen_session *session, char **result, xen_sr sr) bool -xen_sr_get_location(xen_session *session, char **result, xen_sr sr) +xen_sr_get_content_type(xen_session *session, char **result, xen_sr sr) { abstract_value param_values[] = { @@ -315,7 +301,7 @@ xen_sr_get_location(xen_session *session, char **result, xen_sr sr) abstract_type result_type = abstract_type_string; *result = NULL; - XEN_CALL_("SR.get_location"); + XEN_CALL_("SR.get_content_type"); return session->ok; } @@ -353,22 +339,13 @@ xen_sr_set_name_description(xen_session *session, xen_sr sr, char *description) bool -xen_sr_clone(xen_session *session, xen_sr *result, xen_sr sr, char *loc, char *name) +xen_sr_get_supported_types(xen_session *session, struct xen_string_set **result) { - abstract_value param_values[] = - { - { .type = &abstract_type_string, - .u.string_val = sr }, - { .type = &abstract_type_string, - .u.string_val = loc }, - { .type = &abstract_type_string, - .u.string_val = name } - }; - abstract_type result_type = abstract_type_string; + abstract_type result_type = abstract_type_string_set; *result = NULL; - XEN_CALL_("SR.clone"); + xen_call_(session, "SR.get_supported_types", NULL, 0, &result_type, result); return session->ok; } -- cgit v1.2.3