obfuscurity / descartes

Introspective dashboard for Graphite
MIT License
502 stars 65 forks source link

bad URI(is not URI?) #78

Closed dmourati closed 11 years ago

dmourati commented 11 years ago

Trying to add a graph gives:

bad URI(is not URI?): http://myserver/render/?width=586&height=308&_salt=1357751951.292&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_CIRC_PLUS_CODE_ACTIVATED)&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_CIRC_PLUS_PURCHASED)&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_CIRC_PLUS_RENEWED)&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_CIRC_PLUS_TRIAL_STARTED)&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_DEVICE_LIMIT_EXCEEDED)&name=Circ Plus

obfuscurity commented 11 years ago

Indeed, that's not a valid URI. Note the space between "Circ Plus" should be encoded.

irb(main):001:0> require 'uri'
=> true

irb(main):002:0> URI.parse('http://myserver/render/?width=586&height=308&_salt=1357751951.292&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_CIRC_PLUS_CODE_ACTIVATED)&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_CIRC_PLUS_PURCHASED)&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_CIRC_PLUS_RENEWED)&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_CIRC_PLUS_TRIAL_STARTED)&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_DEVICE_LIMIT_EXCEEDED)&name=Circ Plus')
URI::InvalidURIError: bad URI(is not URI?): http://myserver/render/?width=586&height=308&_salt=1357751951.292&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_CIRC_PLUS_CODE_ACTIVATED)&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_CIRC_PLUS_PURCHASED)&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_CIRC_PLUS_RENEWED)&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_CIRC_PLUS_TRIAL_STARTED)&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_DEVICE_LIMIT_EXCEEDED)&name=Circ Plus
    from /opt/boxen/rbenv/versions/1.8.7-p358/lib/ruby/1.8/uri/common.rb:436:in `split'
    from /opt/boxen/rbenv/versions/1.8.7-p358/lib/ruby/1.8/uri/common.rb:485:in `parse'
    from (irb):2
    from /opt/boxen/rbenv/versions/1.8.7-p358/lib/ruby/1.8/uri/ftp.rb:189

irb(main):003:0> URI.parse('http://myserver/render/?width=586&height=308&_salt=1357751951.292&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_CIRC_PLUS_CODE_ACTIVATED)&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_CIRC_PLUS_PURCHASED)&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_CIRC_PLUS_RENEWED)&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_CIRC_PLUS_TRIAL_STARTED)&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_DEVICE_LIMIT_EXCEEDED)&name=Circ%20Plus')
=> #<URI::HTTP:0x10a242f38 URL:http://myserver/render/?width=586&height=308&_salt=1357751951.292&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_CIRC_PLUS_CODE_ACTIVATED)&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_CIRC_PLUS_PURCHASED)&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_CIRC_PLUS_RENEWED)&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_CIRC_PLUS_TRIAL_STARTED)&target=cactiStyle(Equinix.SJC_DB.db5b_eye_fi.EVENT_TYPE_DEVICE_LIMIT_EXCEEDED)&name=Circ%20Plus>