2e6d6714eb049206db111387d29ec81433cdd1f2
braney
  Sun Oct 9 10:07:07 2011 -0700
don't reopen the trackHub's since they get opened when we check the status
diff --git src/hg/lib/hubConnect.c src/hg/lib/hubConnect.c
index 79f76a6..0fc8721 100644
--- src/hg/lib/hubConnect.c
+++ src/hg/lib/hubConnect.c
@@ -553,15 +553,44 @@
     }
 else if (tHub != NULL)
     {
     int dbCount = 0;
     char *dbList = getDbList(tHub, &dbCount);
 
     safef(query, sizeof(query),
 	"update %s set shortLabel=\"%s\",longLabel=\"%s\",dbCount=\"%d\",dbList=\"%s\",errorMessage=\"\",lastOkTime=now() where id=%d",
 	hubStatusTableName, tHub->shortLabel, tHub->shortLabel, 
 	dbCount, dbList,
 	hub->id);
     sqlUpdate(conn, query);
     }
 hDisconnectCentral(&conn);
 }
+
+struct trackDb *hubAddTracks(struct hubConnectStatus *hub, char *database,
+	struct trackHub **pHubList)
+/* Load up stuff from data hub and append to list. The hubUrl points to
+ * a trackDb.ra format file.  */
+{
+/* Load trackDb.ra file and make it into proper trackDb tree */
+struct trackDb *tdbList = NULL;
+struct trackHub *trackHub = hub->trackHub;
+
+if (trackHub != NULL)
+    {
+    char hubName[64];
+    safef(hubName, sizeof(hubName), "hub_%d", hub->id);
+    trackHub->name = cloneString(hubName);
+
+    struct trackHubGenome *hubGenome = trackHubFindGenome(trackHub, database);
+    if (hubGenome != NULL)
+	{
+	tdbList = trackHubTracksForGenome(trackHub, hubGenome);
+	tdbList = trackDbLinkUpGenerations(tdbList);
+	tdbList = trackDbPolishAfterLinkup(tdbList, database);
+	trackDbPrioritizeContainerItems(tdbList);
+	if (tdbList != NULL)
+	    slAddHead(pHubList, trackHub);
+	}
+    }
+return tdbList;
+}