Add timeouts for infinite polling for smth¶
We have infinite polling-processes for smth in sahara code. It would be nice to add timeouts for its execution
When creating a cluster, cluster’s status may be stuck in Waiting and will always await network if the network configuration is wrong. We can add configurable timeouts for all possible polling processes.
Here you can find list of all polling processes in Sahara code:
For service module:
For utils module:
For cdh plugin:
For hdp plugin:
_wait_for_async_request for both plugin versions
wait_for_host_registrations for both plugin versions
decommission_cluster_instances for 2.0.6 versionhandler
For spark plugin:
For vanilla plugin:
Proposed change would consists of following steps:
Add new module polling_utils in sahara/utils where would register new timeouts options for polling processes from service and utils modules. Also it would consist with a specific general util for polling. As example it can be moved from https://github.com/openstack/sahara/blob/master/sahara/utils/general.py#L175.
Add new section in sahara.conf.sample which would consist with all timeouts.
All plugin specific options would be related only with this plugin and also would be configurable. Also user would have ability to configure all plugin specific options during cluster template creation.
Data model impact¶
This change doesn’t require any data models modifications.
REST API impact¶
This change doesn’t require any REST API modifications.
Other end user impact¶
User would have ability to configure all timeouts separately. Some options would be configurable via sahara.conf.sample, other would be configurable from plugin during cluster template creation.
Sahara-dashboard / Horizon impact¶
During cluster template creation user would have ability to configure plugin specific options from UI.
- Primary assignee:
Add general polling util to sahara/utils/polling_utils
Apply this changes to all plugins and sahara engines.
Depends on current Openstack Data Processing Requirements.
this change would require to add unit tests. Also this change would be tested manually.
Required to document this feature in sahara/userdoc/configuration.guide.