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) {