GError * meta2_backend_has_container(struct meta2_backend_s *m2, struct oio_url_s *url) { GError *err = NULL; EXTRA_ASSERT(m2 != NULL); EXTRA_ASSERT(url != NULL); GRID_DEBUG("HAS(%s)", oio_url_get(url, OIOURL_WHOLE)); struct sqlx_name_mutable_s n; sqlx_name_fill (&n, url, NAME_SRVTYPE_META2, 1); err = sqlx_repository_has_base(m2->backend.repo, sqlx_name_mutable_to_const(&n)); sqlx_name_clean (&n); if (NULL != err) { g_prefix_error(&err, "File error: "); return err; } struct sqlx_sqlite3_s *sq3 = NULL; err = m2b_open(m2, url, M2V2_OPEN_LOCAL, &sq3); if (NULL == err) { if (!sqlx_admin_has(sq3, META2_INIT_FLAG)) err = NEWERROR(CODE_CONTAINER_NOTFOUND, "Container created but not initiated"); m2b_close(sq3); } return err; }
gboolean meta1_backend_base_already_created(struct meta1_backend_s *m1, const guint8 *prefix) { gchar base[5] = {0,0,0,0,0}; GError *err = NULL; g_snprintf(base, sizeof(base), "%02X%02X", prefix[0], prefix[1]); struct sqlx_name_s n = {.base=base, .type=NAME_SRVTYPE_META1, .ns=m1->backend.ns_name}; err = sqlx_repository_has_base(m1->backend.repo, &n); if (!err) return TRUE; g_clear_error(&err); return FALSE; } gchar * meta1_backend_get_ns_name(const struct meta1_backend_s *m1) { return g_strdup(m1->backend.ns_name); } const gchar* meta1_backend_get_local_addr(struct meta1_backend_s *m1) { return sqlx_repository_get_local_addr(m1->backend.repo); }