|
Moodle
2.2.1
http://www.collinsharper.com
|
00001 <?php 00026 require_once 'Zend/Service/Amazon/Ec2/Abstract.php'; 00027 00038 class Zend_Service_Amazon_Ec2_Elasticip extends Zend_Service_Amazon_Ec2_Abstract 00039 { 00045 public function allocate() 00046 { 00047 $params = array(); 00048 $params['Action'] = 'AllocateAddress'; 00049 00050 $response = $this->sendRequest($params); 00051 00052 $xpath = $response->getXPath(); 00053 $ip = $xpath->evaluate('string(//ec2:publicIp/text())'); 00054 00055 return $ip; 00056 } 00057 00064 public function describe($publicIp = null) 00065 { 00066 $params = array(); 00067 $params['Action'] = 'DescribeAddresses'; 00068 00069 if(is_array($publicIp) && !empty($publicIp)) { 00070 foreach($publicIp as $k=>$name) { 00071 $params['PublicIp.' . ($k+1)] = $name; 00072 } 00073 } elseif($publicIp) { 00074 $params['PublicIp.1'] = $publicIp; 00075 } 00076 00077 $response = $this->sendRequest($params); 00078 00079 $xpath = $response->getXPath(); 00080 $nodes = $xpath->query('//ec2:item'); 00081 00082 $return = array(); 00083 foreach ($nodes as $k => $node) { 00084 $item = array(); 00085 $item['publicIp'] = $xpath->evaluate('string(ec2:publicIp/text())', $node); 00086 $item['instanceId'] = $xpath->evaluate('string(ec2:instanceId/text())', $node); 00087 00088 $return[] = $item; 00089 unset($item); 00090 } 00091 00092 return $return; 00093 } 00094 00101 public function release($publicIp) 00102 { 00103 $params = array(); 00104 $params['Action'] = 'ReleaseAddress'; 00105 $params['PublicIp'] = $publicIp; 00106 00107 $response = $this->sendRequest($params); 00108 $xpath = $response->getXPath(); 00109 00110 $return = $xpath->evaluate('string(//ec2:return/text())'); 00111 00112 return ($return === "true"); 00113 } 00114 00122 public function associate($instanceId, $publicIp) 00123 { 00124 $params = array(); 00125 $params['Action'] = 'AssociateAddress'; 00126 $params['PublicIp'] = $publicIp; 00127 $params['InstanceId'] = $instanceId; 00128 00129 $response = $this->sendRequest($params); 00130 $xpath = $response->getXPath(); 00131 00132 $return = $xpath->evaluate('string(//ec2:return/text())'); 00133 00134 return ($return === "true"); 00135 } 00136 00144 public function disassocate($publicIp) 00145 { 00146 $params = array(); 00147 $params['Action'] = 'DisssociateAddress'; 00148 $params['PublicIp'] = $publicIp; 00149 00150 $response = $this->sendRequest($params); 00151 $xpath = $response->getXPath(); 00152 00153 $return = $xpath->evaluate('string(//ec2:return/text())'); 00154 00155 return ($return === "true"); 00156 } 00157 00158 }