int meta2_filter_action_has_container(struct gridd_filter_ctx_s *ctx, struct gridd_reply_ctx_s *reply) { (void) reply; struct meta2_backend_s *m2b = meta2_filter_ctx_get_backend(ctx); struct hc_url_s *url = meta2_filter_ctx_get_url(ctx); if (!url) { GRID_WARN("BUG : Checking container's presence : URL not set"); return FILTER_OK; } GError *e = meta2_backend_has_container(m2b, url); if(NULL != e) { if (e->code == CODE_UNAVAILABLE) GRID_DEBUG("Container %s exists but could not open it: %s", hc_url_get(url, HCURL_WHOLE), e->message); else GRID_DEBUG("No such container (%s)", hc_url_get(url, HCURL_WHOLE)); if (e->code == CODE_CONTAINER_NOTFOUND) { hc_decache_reference_service(m2b->resolver, url, META2_TYPE_NAME); } meta2_filter_ctx_set_error(ctx, e); return FILTER_KO; } return FILTER_OK; }
int meta2_filter_action_has_container(struct gridd_filter_ctx_s *ctx, struct gridd_reply_ctx_s *reply) { (void) reply; struct meta2_backend_s *m2b = meta2_filter_ctx_get_backend(ctx); struct hc_url_s *url = meta2_filter_ctx_get_url(ctx); if (!url) { GRID_WARN("BUG : Checking container's presence : URL not set"); meta2_filter_ctx_set_error (ctx, NEWERROR(CODE_BAD_REQUEST, "No URL")); return FILTER_KO; } GError *e = meta2_backend_has_container(m2b, url); if (NULL != e) { GRID_DEBUG("Container test error for [%s] : (%d) %s", hc_url_get(url, HCURL_WHOLE), e->code, e->message); if (e->code == CODE_CONTAINER_NOTFOUND) hc_decache_reference_service(m2b->resolver, url, NAME_SRVTYPE_META2); meta2_filter_ctx_set_error(ctx, e); return FILTER_KO; } return FILTER_OK; }