0042a4fea15ed7f06067f0b3a17761f1b37257da
hiram
  Fri Apr 26 22:53:23 2019 -0700
correctly exit when specified genome is not found in hub for list/chromosomes function refs #18869

diff --git src/hg/hubApi/getData.c src/hg/hubApi/getData.c
index 94e545b..9dc7a96 100644
--- src/hg/hubApi/getData.c
+++ src/hg/hubApi/getData.c
@@ -517,38 +517,32 @@
  *  optionally just one section of that chrom data
  */
 {
 char *genome = cgiOptionalString("genome");
 char *track = cgiOptionalString("track");
 char *chrom = cgiOptionalString("chrom");
 char *start = cgiOptionalString("start");
 char *end = cgiOptionalString("end");
 
 if (isEmpty(genome))
     apiErrAbort(err400, err400Msg, "missing genome=<name> for endpoint '/getData/track'  given hubUrl='%s'", hubUrl);
 if (isEmpty(track))
     apiErrAbort(err400, err400Msg, "missing track=<name> for endpoint '/getData/track'  given hubUrl='%s'", hubUrl);
 
 struct trackHub *hub = errCatchTrackHubOpen(hubUrl);
-struct trackHubGenome *hubGenome = NULL;
-for (hubGenome = hub->genomeList; hubGenome; hubGenome = hubGenome->next)
-    {
-    if (sameString(genome, hubGenome->name))
-	break;
-    }
-if (NULL == hubGenome)
-    apiErrAbort(err400, err400Msg, "failed to find specified genome=%s for endpoint '/getData/track'  given hubUrl '%s'", genome, hubUrl);
+struct trackHubGenome *hubGenome = findHubGenome(hub, genome, "/getData/track",
+  hubUrl);
 
 struct trackDb *tdb = obtainTdb(hubGenome, NULL);
 
 if (NULL == tdb)
     apiErrAbort(err400, err400Msg, "failed to find a track hub definition in genome=%s for endpoint '/getData/track'  given hubUrl='%s'", genome, hubUrl);
 
 struct trackDb *thisTrack = findTrackDb(track, tdb);
 
 if (NULL == thisTrack)
     apiErrAbort(err400, err400Msg, "failed to find specified track=%s in genome=%s for endpoint '/getData/track'  given hubUrl='%s'", track, genome, hubUrl);
 
 char *bigDataUrl = trackDbSetting(thisTrack, "bigDataUrl");
 struct bbiFile *bbi = bigFileOpen(thisTrack->type, bigDataUrl);
 if (NULL == bbi)
     apiErrAbort(err400, err400Msg, "track type %s management not implemented yet TBD track=%s in genome=%s for endpoint '/getData/track'  given hubUrl='%s'", track, genome, hubUrl);