[Libosinfo] [PATCHv4 07/11] OsinfoInstallConfig: Use config-params if set
Christophe Fergeau
cfergeau at redhat.com
Fri Dec 21 09:59:40 UTC 2012
On Fri, Dec 21, 2012 at 02:17:16AM +0200, Zeeshan Ali (Khattak) wrote:
> On Thu, Dec 20, 2012 at 6:45 PM, Christophe Fergeau <cfergeau at redhat.com> wrote:
> > Now that OsinfoInstallConfig has a 'config-params' property
> > which describes the config parameters when it's set, we can
> > use it when it's available. OsinfoInstallConfigParams can indeed
> > contain a datamap to be used to translate generic libosinfo values
> > to OS-specific values.
> > This commit introduces an osinfo_install_config_get_param_value_list
> > method that will be used in subsequent commits to get these
> > OS-specific values when generating install scripts.
> > ---
> > osinfo/osinfo_install_config.c | 84 ++++++++++++++++++++++++++++++++++
> > osinfo/osinfo_install_config_private.h | 1 +
> > 2 files changed, 85 insertions(+)
> >
> > diff --git a/osinfo/osinfo_install_config.c b/osinfo/osinfo_install_config.c
> > index a77317b..4c42746 100644
> > --- a/osinfo/osinfo_install_config.c
> > +++ b/osinfo/osinfo_install_config.c
> > @@ -737,6 +737,90 @@ OsinfoInstallConfigParamList *osinfo_install_config_get_config_params(OsinfoInst
> > return config->priv->config_params;
> > }
> >
> > +
> > +static const gchar *
> > +osinfo_install_config_transform_value(OsinfoInstallConfig *config,
> > + const gchar *key,
> > + const gchar *value)
> > +{
> > + OsinfoDatamap *map;
> > + OsinfoEntity *entity;
> > + OsinfoInstallConfigParam *param;
> > + const gchar *transformed_value;
> > +
> > + if (!config->priv->config_params)
> > + return value;
> > +
> > + entity = osinfo_list_find_by_id(OSINFO_LIST(config->priv->config_params),
> > + key);
> > + if (entity == NULL) {
> > + g_warning("%s is not a known parameter for this config", key);
> > + return value;
> > + }
> > +
> > + param = OSINFO_INSTALL_CONFIG_PARAM(entity);;
> > + map = osinfo_install_config_param_get_value_map(param);
> > + if (map == NULL) {
> > + g_debug("no remapping to be done for %s", key);
> > + return value;
> > + }
> > + transformed_value = osinfo_datamap_lookup(map, value);
> > + if (transformed_value == NULL) {
> > + g_warning("value not present in %s datamap: %s", key, value);
> > + return value;
> > + }
> > +
> > + return transformed_value;
> > +}
> > +
> > +static GHashTable *get_remapped_keys_once(void)
>
> Two questions:
>
> 1. Do we really need this hashtable here and hardcode the params that
> will be transformed?
Indeed, it seems pretty useless, good catch! I'll get rid of it.
Thanks,
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/libosinfo/attachments/20121221/17ca5672/attachment.sig>
More information about the Libosinfo
mailing list