def _xml_to_instance(xml, driver): # Get image_id image_id = _id_from_url( xml.getElementsByTagName("image")[0].getAttribute("href") ) # Get realm_id realm_id = _id_from_url( xml.getElementsByTagName("realm")[0].getAttribute("href") ) # Get Addresses public_addresses_element = xml.getElementsByTagName("public_addresses")[0] private_addresses_element = xml.getElementsByTagName("private_addresses")[0] public_addresses = xml_get_text(public_addresses_element, "address") private_addresses = xml_get_text(private_addresses_element, "address") instance = Instance( xml.getAttribute("id"), driver, xml_get_text(xml, "owner_id")[0], xml_get_text(xml, "name")[0], image_id, realm_id, xml_get_text(xml, "state")[0], public_addresses, private_addresses, ) # We set _action_urls here because we need it later when modifying the # instance's state. instance._action_urls = xml_get_elements_dictionary(xml, "link", "rel", "href") return instance
def __init__(self, deltacloud, dom): self._deltacloud = deltacloud self.xml = dom.toxml() self.id = xml_get_text(dom, "id")[0] self.owner_id = xml_get_text(dom, "owner_id")[0] self.name = xml_get_text(dom, "name")[0] self.image = xml_get_text(dom, "image")[0] self.flavor = xml_get_text(dom, "flavor")[0] self.realm = xml_get_text(dom, "realm")[0] self.state = xml_get_text(dom, "state")[0] # Actions self.actions = xml_get_elements_dictionary(dom, "link", "rel", "href") self.available_actions = self.actions.keys() # Addresses pub_addr_element = dom.getElementsByTagName("public-addresses")[0] priv_addr_element = dom.getElementsByTagName("private-addresses")[0] self.public_addresses = xml_get_text(pub_addr_element, "address") self.private_addresses = xml_get_text(priv_addr_element, "address")