ncbo / ncbo_cron

Jobs that run on a regular basis in the NCBO infrastructure
Other
2 stars 6 forks source link

Ontology analytics script fails in Ruby v2.5.3 #20

Closed mdorf closed 5 years ago

mdorf commented 5 years ago
 △ dev/ncbo/ncbo_cron ▶ bundle exec ruby ./lib/ncbo_cron/ontology_analytics.rb

Traceback (most recent call last):
    23: from ./lib/ncbo_cron/ontology_analytics.rb:120:in `<main>'
    22: from ./lib/ncbo_cron/ontology_analytics.rb:17:in `run'
    21: from ./lib/ncbo_cron/ontology_analytics.rb:23:in `fetch_ontology_analytics'
    20: from /Users/mdorf/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/google-api-client-0.8.7/lib/google/api_client.rb:413:in `discovered_api'
    19: from /Users/mdorf/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/google-api-client-0.8.7/lib/google/api_client.rb:368:in `discovery_document'
    18: from /Users/mdorf/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/google-api-client-0.8.7/lib/google/api_client.rb:636:in `execute!'
    17: from /Users/mdorf/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/retriable-1.4.1/lib/retriable.rb:15:in `retriable'
    16: from /Users/mdorf/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/retriable-1.4.1/lib/retriable/retry.rb:27:in `perform'
    15: from /Users/mdorf/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/google-api-client-0.8.7/lib/google/api_client.rb:645:in `block in execute!'
    14: from /Users/mdorf/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/retriable-1.4.1/lib/retriable.rb:15:in `retriable'
    13: from /Users/mdorf/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/retriable-1.4.1/lib/retriable/retry.rb:27:in `perform'
    12: from /Users/mdorf/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/google-api-client-0.8.7/lib/google/api_client.rb:648:in `block (2 levels) in execute!'
    11: from /Users/mdorf/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/google-api-client-0.8.7/lib/google/api_client/request.rb:163:in `send'
    10: from /Users/mdorf/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/faraday-0.15.4/lib/faraday/response.rb:8:in `call'
     9: from /Users/mdorf/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/faraday-0.15.4/lib/faraday/adapter/net_http.rb:38:in `call'
     8: from /Users/mdorf/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/faraday-0.15.4/lib/faraday/adapter/net_http.rb:92:in `with_net_http_connection'
     7: from /Users/mdorf/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/faraday-0.15.4/lib/faraday/adapter/net_http.rb:43:in `block in call'
     6: from /Users/mdorf/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/faraday-0.15.4/lib/faraday/adapter/net_http.rb:87:in `perform_request'
     5: from /Users/mdorf/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/faraday-0.15.4/lib/faraday/adapter/net_http.rb:67:in `create_request'
     4: from /Users/mdorf/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/faraday-0.15.4/lib/faraday/adapter/net_http.rb:67:in `new'
     3: from /Users/mdorf/.rbenv/versions/2.5.3/lib/ruby/2.5.0/net/http/generic_request.rb:44:in `initialize'
     2: from /Users/mdorf/.rbenv/versions/2.5.3/lib/ruby/2.5.0/net/http/header.rb:16:in `initialize_http_header'
     1: from /Users/mdorf/.rbenv/versions/2.5.3/lib/ruby/2.5.0/net/http/header.rb:16:in `each'
/Users/mdorf/.rbenv/versions/2.5.3/lib/ruby/2.5.0/net/http/header.rb:23:in `block in initialize_http_header': header field value cannot include CR/LF (ArgumentError)
mdorf commented 5 years ago

re-wrote the authentication and API calls to Google analytics to be compatible with the new Google API client library.

mdorf commented 5 years ago

In addition, there was a bug in the new analytics generation code. It looks like their new output structure has changed slightly in that it now returns a NULL object for queries that produce no results. In the past, they would always return an Array (empty or populated).