It appears that libcloud throws an 'Exception' with any response other than 200/201:
https://github.com/apache/libcloud/blob/trunk/libcloud/common/base.py#L116 https://github.com/apache/libcloud/blob/trunk/libcloud/common/base.py#L153 This behavior is apparently not well understand by the driver authors, though, for example: https://github.com/apache/libcloud/blob/trunk/libcloud/compute/drivers/openstack.py#L269 And has led to a lot of confusion on my part why I'm getting "Exception: 404 Not Found" when I try to get an instance on the Rackspace cloud instead of the expected None response. So, a couple things: 1. Why aren't we making an exception subclass that gives useful information like response code? 2. Why are we throwing exceptions for other 200-range codes (202 and 204 are both very common in REST APIs, and neither is an error)? If I were to submit a pull-request cleaning this up, would it likely be accepted? Don't want to spend the effort if people are opposed to the idea. Greg
