def soap_action(self, service, action, payloadbody):
        """Do a soap request"""
        payload = self.soapenvelope.format(body=payloadbody).encode('utf-8')
        headers = {"Host": self.url,
                   "Content-Type": "text/xml; charset=UTF-8",
                   "Cache-Control": "no-cache",
                   "Content-Length": str(len(payload)),
                   "SOAPAction": action}
        try:
            response = self.session.post(
                url=self.url + service, headers=headers, data=payload)
        except Exception as exp:
            return False
        if response.status_code != 200:
            return False
        try:
            xdoc = xml.etree.ElementTree.fromstring(response.text)
        except xml.etree.ElementTree.ParseError:
            return False
        return xdoc
Do a soap request