This reverts commit c4d9984c51.
As per upstream/IRC discussion to address the problems
documented here [1].
Besides minor hiccups (documented in the story), the proposal
is to avoid building a swiss-army-knife function, but to
either decompose the code onto smaller functional pieces and
call them as appropriate or to introduce some overridable
methods/properties for the vendor drivers to define/override.
1. https://storyboard.openstack.org/#!/story/2007576
Change-Id: Iff7fc267c3ed28b1adb270e9d5da16549be532a7