8f399a09d7b39a87eadc3cc0a89c33598ddc5d2a chmalee Wed Apr 5 11:16:22 2023 -0700 First attempt at surfacing up hub errors when the requested hub database doesn't exist, refs #30832 diff --git src/hg/lib/hubConnect.c src/hg/lib/hubConnect.c index 8019f5e..4cad5a0 100644 --- src/hg/lib/hubConnect.c +++ src/hg/lib/hubConnect.c @@ -1128,49 +1128,59 @@ safef(hubName, sizeof(hubName), "%s%u", hgHubConnectHubVarPrefix, localHubId); cartSetString(cart, hubName, "1"); // remove the old hub connection safef(hubName, sizeof(hubName), "%s%u", hgHubConnectHubVarPrefix, sessionHubId); cartRemove(cart, hubName); } } cartRemove(cart, "assumesHub"); } char *hubConnectLoadHubs(struct cart *cart) /* load the track data hubs. Set a static global to remember them */ { +pushWarnHandler(cartHubWarn); char *dbSpec = asmAliasFind(cartOptionalString(cart, "db")); char *curatedHubPrefix = getCuratedHubPrefix(); if (dbSpec != NULL) lookForCuratedHubs(cart, trackHubSkipHubName(dbSpec), curatedHubPrefix); char *newDatabase = checkForNew( cart); newDatabase = asmAliasFind(newDatabase); cartSetString(cart, hgHubConnectRemakeTrackHub, "on"); portHubStatus(cart); struct hubConnectStatus *hubList = hubConnectStatusListFromCart(cart); char *genarkPrefix = cfgOption("genarkHubPrefix"); if (genarkPrefix && lookForLonelyHubs(cart, hubList, &newDatabase, genarkPrefix)) hubList = hubConnectStatusListFromCart(cart); globalHubList = hubList; +struct hubConnectStatus *list; +for (list = hubList; list != NULL; list = list->next) + { + if (list->errorMessage) + { + warn("There is an error with hub '%s': %s", list->shortLabel, list->errorMessage); + } + } +popWarnHandler(); return newDatabase; } char *hubNameFromUrl(char *hubUrl) /* Given the URL for a hub, return its hub_# name. */ { char query[PATH_LEN*4]; sqlSafef(query, sizeof(query), "select concat('hub_', id) from %s where hubUrl = '%s'", getHubStatusTableName(), hubUrl); struct sqlConnection *conn = hConnectCentral(); char *name = sqlQuickString(conn, query); hDisconnectCentral(&conn); return name; }