'Utility method to handle calls to IAM and parsing of responses.'

def get_response(self, action, params, path='/', parent=None, verb='POST', list_marker='Set'):

    if (not parent):
        parent = self
    response = self.make_request(action, params, path, verb)
    body = response.read()
    boto.log.debug(body)
    if (response.status == 200):
        if body:
            e = boto.jsonresponse.Element(list_marker=list_marker, pythonize_name=True)
            h = boto.jsonresponse.XmlHandler(e, parent)
            h.parse(body)
            return e
        else:
            return {}
    else:
        boto.log.error(('%s    %s' % (response.status, response.reason)))
        boto.log.error(('%s' % body))
        raise self.ResponseError(response.status, response.reason, body)
