def update_server(self, server_id, name=None, meta=None, accessIPv4=None, accessIPv6=None): doc = Document() server = Element("server") doc.append(server) if name: server.add_attr("name", name) if accessIPv4: server.add_attr("accessIPv4", accessIPv4) if accessIPv6: server.add_attr("accessIPv6", accessIPv6) if meta: metadata = Element("metadata") server.append(metadata) for k, v in meta: meta = Element("meta", key=k) meta.append(Text(v)) metadata.append(meta) resp, body = self.put('servers/%s' % str(server_id), str(doc), self.headers) return resp, xml_to_json(etree.fromstring(body))
def disassociate_floating_ip_from_server(self, floating_ip, server_id): """Disassociate the provided floating IP from a specific server""" url = "servers/%s/action" % str(server_id) doc = Document() server = Element("removeFloatingIp") doc.append(server) server.add_attr("address", floating_ip) resp, body = self.post(url, str(doc), self.headers) return resp, body
def create_keypair(self, name, pub_key=None): doc = Document() keypair_element = Element("keypair") if pub_key: public_key_element = Element("public_key") public_key_text = Text(pub_key) public_key_element.append(public_key_text) keypair_element.append(public_key_element) name_element = Element("name") name_text = Text(name) name_element.append(name_text) keypair_element.append(name_element) doc.append(keypair_element) resp, body = self.post("os-keypairs", headers=self.headers, body=str(doc)) body = xml_to_json(etree.fromstring(body)) return resp, body