-
Story
-
Resolution: Unresolved
-
Normal
-
None
-
None
Goal:
To implement validation that all features presented by a Smart Proxy are recognized by Foreman. If not, the user should be notified somehow. This can happen when a Foreman Proxy has a feature provided by a plugin (like Remote Execution) but Foreman doesn't.
Acceptance criteria:
- ...
Open questions:
- Does the existing installer handle the errors correctly?
- Will foremanctl handle this correctly?
- Will the UI show it in an actionable way?
Implementation notes:
Today users can use the installer to register a Foreman Proxy. Technically the foreman_smartproxy calls Foreman's REST API (/api/v2/smart_proxies). It then has code to ensure features are present. It hasn't really changed since https://github.com/theforeman/puppet-foreman/pull/556. On the Smart Proxy side there's foreman_proxy::feature to add an expected feature which can be instantiated in various ways.
It can also be pulled into Foreman itself. There is already SmartProxy#associate_features which looks for any valid features. This could be tightened to expect that all features are valid features.
Backwards compatibility shouldn't be a big concern since this part rarely changes, but n-1 should be verified.