【问题标题】:Bad URI when trying to connect to Openstack尝试连接到 Openstack 时出现错误的 URI
【发布时间】:2015-05-01 07:32:21
【问题描述】:

我正在尝试使用 'ruby-openstack' gem 连接到 Openstack (devstack):

os = OpenStack::Connection.create({
    :username => "admin", 
    :auth_method => 'password',
    :api_key => "supersecret",
    :auth_url => "http://192.168.52.162/" })

但是我收到了这个错误:

URI::InvalidURIError: bad URI(is not URI?): 
    from /usr/lib/ruby/1.9.1/uri/common.rb:176:in 'split'
    from /usr/lib/ruby/1.9.1/uri/common.rb:211:in 'parse'
    from /usr/lib/ruby/1.9.1/uri/common.rb:747:in 'parse'
    from /var/lib/gems/1.9.1/gems/openstack-1.1.2/lib/openstack/connection.rb:399:in 'initialize'
    from /var/lib/gems/1.9.1/gems/openstack-1.1.2/lib/openstack/connection.rb:263:in 'new'
    from /var/lib/gems/1.9.1/gems/openstack-1.1.2/lib/openstack/connection.rb:263:in 'init'
    from /var/lib/gems/1.9.1/gems/openstack-1.1.2/lib/openstack/compute/connection.rb:12:in 'initialize'
    from /var/lib/gems/1.9.1/gems/openstack-1.1.2/lib/openstack/connection.rb:66:in 'new'
    from /var/lib/gems/1.9.1/gems/openstack-1.1.2/lib/openstack/connection.rb:66:in 'create'
    from (irb):58
    from /usr/bin/irb:12:in '<main>'

我真的不明白为什么我的 URL“http://192.168.52.162/”被解析为错误的 URI。使用 Wireshark 分析网络后,我看到 GET 请求和 HTTP 200 OK 响应,似乎发送了 HTTP 请求。

为什么URI被认为是错误的,如果行中有错误,如何发送HTTP请求?

【问题讨论】:

  • 如果返回 200,响应的正文是什么?
  • 这是 openstack 仪表板的 html !

标签: ruby uri openstack


【解决方案1】:

看起来它不一定在抱怨你的 URL,而是在抱怨某种响应 URL:

https://github.com/ruby-openstack/ruby-openstack/blob/v1.1.2/lib/openstack/connection.rb#L399

uri = URI.parse(response["x-server-management-url"])

您可以尝试在本地计算机上进入该 gem 的代码,并向响应对象添加一些日志记录/调试,以便更好地处理错误。 (gem which openstack 应该为您提供路径)

【讨论】:

  • 感谢您的想法!看起来响应没有属性“x-server-management-url”,但只有date server vary x-frame-options content-language set-cookie content-length content-type
  • 当然可以。这意味着x-server-management-url 又回来了nil,这将解释错误(注意,行号有点偏离,但我想它很接近):github.com/ruby/ruby/blob/v1_9_1_rc1/lib/uri/… 我只能建议你必须弄清楚找出为什么您没有在响应中恢复该 uri。或者,如果您认为这是一个错误,也许可以在 openstack gem repo 上提交问题?会不会是 Ruby 1.9.1 和那个 gem/gem 版本不兼容?
猜你喜欢
  • 1970-01-01
  • 2014-08-01
  • 1970-01-01
  • 2013-01-05
  • 2020-04-26
  • 2018-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多