gboolean get_origin_refspec (OstreeDeployment *booted_deployment, gchar **out_refspec, GError **error) { GKeyFile *origin; g_autofree gchar *refspec = NULL; g_return_val_if_fail (OSTREE_IS_DEPLOYMENT (booted_deployment), FALSE); g_return_val_if_fail (out_refspec != NULL, FALSE); g_return_val_if_fail (error == NULL || *error == NULL, FALSE); origin = ostree_deployment_get_origin (booted_deployment); if (origin == NULL) { const gchar *osname = ostree_deployment_get_osname (booted_deployment); const gchar *booted = ostree_deployment_get_csum (booted_deployment); g_set_error (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND, "No origin found for %s (%s), cannot upgrade", osname, booted); return FALSE; } refspec = g_key_file_get_string (origin, "origin", "refspec", error); if (refspec == NULL) return FALSE; *out_refspec = g_steal_pointer (&refspec); return TRUE; }
/* Get a currently unique (for this host) identifier for the * deployment; TODO - adding the deployment timestamp would make it * persistently unique, needs API in libostree. */ char * rpmostreed_deployment_generate_id (OstreeDeployment *deployment) { g_return_val_if_fail (OSTREE_IS_DEPLOYMENT (deployment), NULL); return g_strdup_printf ("%s-%s.%u", ostree_deployment_get_osname (deployment), ostree_deployment_get_csum (deployment), ostree_deployment_get_deployserial (deployment)); }
char * rpmostreed_deployment_generate_id (OstreeDeployment *deployment) { const char *osname; guint hash; g_return_val_if_fail (OSTREE_IS_DEPLOYMENT (deployment), NULL); osname = ostree_deployment_get_osname (deployment); hash = ostree_deployment_hash (deployment); return g_strdup_printf ("%s_%u", osname, hash); }