Refactor the code, less copy and paste mess.


git-svn-id: https://svn.apache.org/repos/asf/libcloud/branches/0.12.x@1485905 13f79535-47bb-0310-9956-ffa450edef68