refactor provisioner code for v1 and v2

tests done:
1. passed spec (unit test)
2. manually verified ccng v2 api, and passed yeti for plan 100, 200, 250 and done longevity yeti for plan 250
3. manually verified function with legacy cc, but since yeti for legacy cc is broken, yeti run is still pending.