fc452e9c75747702a8a312d7943b3607f8328158
hiram
  Wed Mar 27 14:58:11 2019 -0700
adding /list/chromosomes function for hubs refs #18869

diff --git src/hg/hubApi/tests/jsonConsumer.pl src/hg/hubApi/tests/jsonConsumer.pl
index 3093bea..c8de5bc 100755
--- src/hg/hubApi/tests/jsonConsumer.pl
+++ src/hg/hubApi/tests/jsonConsumer.pl
@@ -57,33 +57,33 @@
       Time::HiRes::sleep(1-$diff);
     }
     # reset
     $last_request_time = Time::HiRes::time();
     $request_count = 0;
   }
 
   my $url = "$server/$endpoint";
 
   if(%{$parameters}) {
     my @params;
     foreach my $key (keys %{$parameters}) {
       my $value = $parameters->{$key};
       push(@params, "$key=$value");
     }
-    my $param_string = join(';', @params);
+    my $param_string = join('&', @params);
     $url.= '?'.$param_string;
-#     printf STDERR "# url: '%s'\n", $url;
+##     printf STDERR "# url: '%s'\n", $url;
   }
   my $response = $http->get($url, {headers => $headers});
   my $status = $response->{status};
   if(!$response->{success}) {
     # Quickly check for rate limit exceeded & Retry-After (lowercase due to our client)
     if($status == 429 && exists $response->{headers}->{'retry-after'}) {
       my $retry = $response->{headers}->{'retry-after'};
       Time::HiRes::sleep($retry);
       # After sleeping see that we re-request
       return performRestAction($endpoint, $parameters, $headers);
     }
     else {
       my ($status, $reason) = ($response->{status}, $response->{reason});
       die "Failed for $endpoint! Status code: ${status}. Reason: ${reason}\n";
     }
@@ -204,31 +204,45 @@
             printf STDERR "ERROR: need to specify a genome for endpoint '%s'\n", $endpoint;
 	    ++$failing;
 	  } else {
 	    $parameters{"genome"} = "$genome";
 	  }
 	}
 	if ($failing) { exit 255; }
 	$jsonReturn = performJsonAction($endpoint, \%parameters);
 	printf "%s", $json->pretty->encode( $jsonReturn );
      } elsif ($endpoint eq "/list/chromosomes") {
 	my $failing = 0;
 	my %parameters;
 	if (length($db) > 0) {
 	    $parameters{"db"} = "$db";
 	} else {
-          printf STDERR "ERROR: need to specify a db for endpoint '%s'\n", $endpoint;
+          if (length($hubUrl)) {
+	    $parameters{"hubUrl"} = "$hubUrl";
+            if (length($genome)) {
+	      $parameters{"genome"} = "$genome";
+	    } else {
+              printf STDERR "ERROR: need to specify a genome with hubUrl for endpoint '%s'\n", $endpoint;
+		++$failing;
+	    }
+            if (length($track)) {
+	      $parameters{"track"} = "$track";
+	    }
+	  } else {
+            printf STDERR "ERROR: need to specify a db or hubUrl for endpoint '%s'\n", $endpoint;
+	    ++$failing;
+	  }
 	}
 	if ($failing) { exit 255; }
 	$jsonReturn = performJsonAction($endpoint, \%parameters);
 	printf "%s", $json->pretty->encode( $jsonReturn );
      } elsif ($endpoint eq "/getData/sequence") {
 	my $failing = 0;
 	my %parameters;
 	if (length($db) > 0) {
 	    $parameters{"db"} = "$db";
 	} elsif (length($hubUrl) < 1) {
           printf STDERR "ERROR: need to specify a hubUrl for endpoint '%s'\n", $endpoint;
 	  ++$failing;
 	} else {
 	  $parameters{"hubUrl"} = "$hubUrl";
 	  if (length($genome) < 1) {