Per our discussion at Meeting #54  I would like to propose the uniform
approach of exception handling for all puppet-openstack providers accessing
any types of OpenStack APIs.
While working on Fuel during deployment of multi-node HA-aware environments
we faced many intermittent operational issues, e.g.:
401/403 authentication failures when we were doing scaling of OpenStack
controllers due to difference in hashing view between keystone instances
503/502/504 errors due to temporary connectivity issues
non-idempotent operations like deletion or creation - e.g. if you are
deleting an endpoint and someone is deleting on the other node and you get
404 - you should continue with success instead of failing. 409 Conflict
error should also signal us to re-fetch resource parameters and then decide
what to do with them.
Obviously, it is not optimal to rerun puppet to correct such errors when we
can just handle an exception properly.
There is some exception handling, but it does not cover all the
aforementioned use cases.
Introduce a library of exception handling methods which should be the same
for all puppet openstack providers as these exceptions seem to be generic.
Then, for each of the providers we can introduce provider-specific
libraries that will inherit from this one.
Our mos-puppet team could add this into their backlog and could work on
that in upstream or downstream and propose it upstream.
What do you think on that, puppet folks?
Fuel Library Tech Lead,
+7 (495) 640-49-04
+7 (926) 702-39-68
35bk3, Vorontsovskaya Str.
OpenStack Development Mailing List (not for usage questions)