Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No indication that event collection would fail when validating endpoints #619

Open
agrare opened this issue Jul 14, 2020 · 1 comment
Open

Comments

@agrare
Copy link
Member

agrare commented Jul 14, 2020

I added an Openstack provider using Ceilometer for events, the event catcher later failed on 404 for /v2/events

[----] W, [2020-07-13T09:05:01.551693 #456020:2ae6d0279fac]  WARN -- : MIQ(ManageIQ::Providers::Openstack::CloudManager::EventCatcher::Runner#monitor_events) EMS [packstack-master.fyre.ibm.com] as [admin] Failed to monitor events because [Expected(200) <=> Actual(404 Not Found)
excon.error.response
  :body          => "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>404 Not Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p>The requested URL /v2/events was not found on this server.</p>\n<hr>\n<address>Apache Server at 9.46.89.37 Port 8777</address>\n</body></html>\n"
  :cookies       => [
  ]
  :headers       => {
    "Content-Length" => "269"
    "Content-Type"   => "text/html; charset=iso-8859-1"
    "Date"           => "Mon, 13 Jul 2020 13:05:01 GMT"
    "Server"         => "Apache"
  }
  :host          => "9.46.89.37"
  :local_address => "9.46.68.109"
  :local_port    => 51456
  :path          => "/v2/events"
  :port          => 8777
  :reason_phrase => "Not Found"
  :remote_ip     => "9.46.89.37"
  :status        => 404
  :status_line   => "HTTP/1.1 404 Not Found\r\n"
]

But the credential validation was successful, there was no indication on the UI anywhere that event collection would fail

@aufi
Copy link
Member

aufi commented Jul 15, 2020

This is (most likely) caused by a not ideal Ceilometer -> Panko API transition. The validation tries connect to the Panko (and Ceilometer as a fallback) service by the endpoint from Keystone catalog, not requesting actual events on the /v2/events path. This worked well until OpenStack telemetry modified Ceilometer API removing events-related functionality, but keeping other parts (port 8777 belongs to the OpenStack Ceilometer API).

Possible solutions which I can see:

  • update validation method with calling list_events after on the service connection [1]
  • if the OpenStack version is known, that has Panko (probably all currently supported versions), is it possible set config option [2] to "panko" to disable fallback to Ceilometer API, so validation will fail if there is no Panko service

Event the first solution seems better to me, stopping support Ceilometer API for Events could be more reasonable (removing the Ceilometer API fallback). I'd be suprised if some real world deployment is using Ceilometer (no Panko) events and upgrading MIQ code (however AMQP events are older, it is widely used, but the Ceilometer events was RH-like OpenStack solution and it has been replaced with Panko a time ago)

[1] https://github.com/ManageIQ/manageiq-providers-openstack/blob/master/lib/manageiq/providers/openstack/legacy/events/openstack_ceilometer_event_monitor.rb#L12
[2] https://github.com/ManageIQ/manageiq-providers-openstack/blob/master/config/settings.yml#L199

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants