/**
	 * @return null|OpenStackNovaAddress
	 */
	function allocateAddress() {
		$response = $this->novaConnection->allocate_address();
		if ( ! $response->isOK() ) {
			return null;
		} else {
			$address = new OpenStackNovaAddress( $response->body );
			$ip = $address->getPublicIP();
			$this->addresses["$ip"] = $address;
			return $address;
		}
	}
 /**
  * @return array
  */
 function getAddresses()
 {
     $addressesarr = array();
     $ret = $this->restCall('compute', '/os-floating-ips', 'GET');
     $addresses = self::_get_property($ret['body'], 'floating_ips');
     if (!$addresses) {
         return $addressesarr;
     }
     foreach ($addresses as $address) {
         $address = new OpenStackNovaAddress($address);
         $ip = $address->getPublicIp();
         $addressesarr[$ip] = $address;
     }
     return $addressesarr;
 }