[virt-tools-list] [libosinfo v3 1/2] Add 'installer-reboots' parameter to OsinfoMedia
Christophe Fergeau
cfergeau at redhat.com
Mon Oct 8 13:25:29 UTC 2012
On Thu, Oct 04, 2012 at 08:22:56PM +0300, Zeeshan Ali (Khattak) wrote:
> From: "Zeeshan Ali (Khattak)" <zeeshanak at gnome.org>
>
> If media is an installer, this specifies the number of reboots the
> installer takes before installation is complete. Default value is '1'.
>
> This is mainly needed for applications like GNOME Boxes and virt-install
> to be able to tell when OS installation from a given media is complete so
> that they can take whatever post installation steps they may need to.
> ---
> osinfo/libosinfo.syms | 1 +
> osinfo/osinfo_loader.c | 9 +++++++
> osinfo/osinfo_media.c | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++
> osinfo/osinfo_media.h | 20 +++++++++-------
> 4 files changed, 86 insertions(+), 9 deletions(-)
>
> diff --git a/osinfo/libosinfo.syms b/osinfo/libosinfo.syms
> index 6676588..f96ca99 100644
> --- a/osinfo/libosinfo.syms
> +++ b/osinfo/libosinfo.syms
> @@ -308,6 +308,7 @@ LIBOSINFO_0.2.1 {
> osinfo_entity_get_param_value_int64;
> osinfo_entity_get_param_value_int64_with_default;
> osinfo_entity_set_param_int64;
> + osinfo_media_get_installer_reboots;
> } LIBOSINFO_0.2.0;
This no longer applies on master.
>
> /* Symbols in next release...
> diff --git a/osinfo/osinfo_loader.c b/osinfo/osinfo_loader.c
> index ab507da..da0ef45 100644
> --- a/osinfo/osinfo_loader.c
> +++ b/osinfo/osinfo_loader.c
> @@ -652,6 +652,8 @@ static OsinfoMedia *osinfo_loader_media (OsinfoLoader *loader,
> gchar *arch = (gchar *)xmlGetProp(root, BAD_CAST "arch");
> xmlChar *live = xmlGetProp(root, BAD_CAST OSINFO_MEDIA_PROP_LIVE);
> xmlChar *installer = xmlGetProp(root, BAD_CAST OSINFO_MEDIA_PROP_INSTALLER);
> + xmlChar *installer_reboots =
> + xmlGetProp(root, BAD_CAST OSINFO_MEDIA_PROP_INSTALLER_REBOOTS);
> const gchar *const keys[] = {
> OSINFO_MEDIA_PROP_URL,
> OSINFO_MEDIA_PROP_KERNEL,
> @@ -676,6 +678,13 @@ static OsinfoMedia *osinfo_loader_media (OsinfoLoader *loader,
> xmlFree(installer);
> }
>
> + if (installer_reboots) {
> + osinfo_entity_set_param(OSINFO_ENTITY(media),
> + OSINFO_MEDIA_PROP_INSTALLER_REBOOTS,
> + (gchar *)installer_reboots);
> + xmlFree(installer_reboots);
> + }
> +
> gint nnodes = osinfo_loader_nodeset("./iso/*", ctxt, &nodes, err);
> if (error_is_set(err))
> return NULL;
> diff --git a/osinfo/osinfo_media.c b/osinfo/osinfo_media.c
> index 6e33634..aa602f9 100644
> --- a/osinfo/osinfo_media.c
> +++ b/osinfo/osinfo_media.c
> @@ -151,6 +151,7 @@ enum {
> PROP_INITRD_PATH,
> PROP_INSTALLER,
> PROP_LIVE,
> + PROP_INSTALLER_REBOOTS,
> };
>
> static void
> @@ -212,6 +213,11 @@ osinfo_media_get_property (GObject *object,
> osinfo_media_get_live (media));
> break;
>
> + case PROP_INSTALLER_REBOOTS:
> + g_value_set_int (value,
> + osinfo_media_get_installer_reboots (media));
> + break;
> +
> default:
> /* We don't have any other property... */
> G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
> @@ -288,6 +294,12 @@ osinfo_media_set_property(GObject *object,
> g_value_get_boolean (value));
> break;
>
> + case PROP_INSTALLER_REBOOTS:
> + osinfo_entity_set_param_int64 (OSINFO_ENTITY(media),
> + OSINFO_MEDIA_PROP_INSTALLER_REBOOTS,
> + g_value_get_int (value));
> + break;
> +
> default:
> /* We don't have any other property... */
> G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
> @@ -465,6 +477,33 @@ osinfo_media_class_init (OsinfoMediaClass *klass)
> G_PARAM_STATIC_NICK |
> G_PARAM_STATIC_BLURB);
> g_object_class_install_property (g_klass, PROP_LIVE, pspec);
> +
> + /**
> + * OsinfoMedia::installer-reboots:
> + *
> + * If media is an installer, this property indicates the number of reboots
> + * the installer takes before installation is complete.
> + *
> + * This property is not applicable to media that has no installer. You can
> + * use #osinfo_media_get_installer (or OsinfoMedia::installer) to check
> + * that.
> + *
> + * Warning: Some media allow you to install from live sessions, in which
> + * case number of reboots *alone* is not a reliable method for tracking
> + * installation.
> + */
> + pspec = g_param_spec_int ("installer-reboots",
> + "InstallStages",
> + "Number of installation stages",
These 2 lines were missed in your search and replace. Looks good to me
otherwise.
Christophe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/virt-tools-list/attachments/20121008/b4199676/attachment.sig>
More information about the virt-tools-list
mailing list