diff -r 877f952ae2bd -r 6b6c2214f778 web/lib/Zend/Service/Rackspace/Servers/Server.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/lib/Zend/Service/Rackspace/Servers/Server.php Thu Mar 21 19:52:38 2013 +0100 @@ -0,0 +1,325 @@ +service = $service; + $this->name = $data['name']; + $this->id = $data['id']; + if (isset($data['imageId'])) { + $this->imageId= $data['imageId']; + } + if (isset($data['flavorId'])) { + $this->flavorId= $data['flavorId']; + } + if (isset($data['hostId'])) { + $this->hostId= $data['hostId']; + } + if (isset($data['status'])) { + $this->status= $data['status']; + } + if (isset($data['progress'])) { + $this->progress= $data['progress']; + } + if (isset($data['adminPass'])) { + $this->adminPass= $data['adminPass']; + } + if (isset($data['addresses']) && is_array($data['addresses'])) { + $this->addresses= $data['addresses']; + } + if (isset($data['metadata']) && is_array($data['metadata'])) { + $this->metadata= $data['metadata']; + } + } + /** + * Get the name of the server + * + * @return string + */ + public function getName() + { + return $this->name; + } + /** + * Get the server's id + * + * @return string + */ + public function getId() + { + return $this->id; + } + /** + * Get the server's image Id + * + * @return string + */ + public function getImageId() + { + return $this->imageId; + } + /** + * Get the server's flavor Id + * + * @return string + */ + public function getFlavorId() + { + return $this->flavorId; + } + /** + * Get the server's host Id + * + * @return string + */ + public function getHostId() + { + return $this->hostId; + } + /** + * Ge the server's admin password + * + * @return string + */ + public function getAdminPass() + { + return $this->adminPass; + } + /** + * Get the server's status + * + * @return string|boolean + */ + public function getStatus() + { + $data= $this->service->getServer($this->id); + if ($data!==false) { + $data= $data->toArray(); + $this->status= $data['status']; + return $this->status; + } + return false; + } + /** + * Get the progress's status + * + * @return integer|boolean + */ + public function getProgress() + { + $data= $this->service->getServer($this->id); + if ($data!==false) { + $data= $data->toArray(); + $this->progress= $data['progress']; + return $this->progress; + } + return false; + } + /** + * Get the private IPs + * + * @return array|boolean + */ + public function getPrivateIp() + { + if (isset($this->addresses['private'])) { + return $this->addresses['private']; + } + return false; + } + /** + * Get the public IPs + * + * @return array|boolean + */ + public function getPublicIp() + { + if (isset($this->addresses['public'])) { + return $this->addresses['public']; + } + return false; + } + /** + * Get the metadata of the container + * + * If $key is empty return the array of metadata + * + * @param string $key + * @return array|string + */ + public function getMetadata($key=null) + { + if (!empty($key) && isset($this->metadata[$key])) { + return $this->metadata[$key]; + } + return $this->metadata; + } + /** + * Change the name of the server + * + * @param string $name + * @return boolean + */ + public function changeName($name) + { + $result= $this->service->changeServerName($this->id, $name); + if ($result!==false) { + $this->name= $name; + return true; + } + return false; + } + /** + * Change the admin password of the server + * + * @param string $password + * @return boolean + */ + public function changePassword($password) + { + $result= $this->service->changeServerPassword($this->id, $password); + if ($result!==false) { + $this->adminPass= $password; + return true; + } + return false; + } + /** + * Reboot the server + * + * @return boolean + */ + public function reboot($hard=false) + { + return $this->service->rebootServer($this->id,$hard); + } + /** + * To Array + * + * @return array + */ + public function toArray() + { + return array ( + 'name' => $this->name, + 'id' => $this->id, + 'imageId' => $this->imageId, + 'flavorId' => $this->flavorId, + 'hostId' => $this->hostId, + 'status' => $this->status, + 'progress' => $this->progress, + 'adminPass' => $this->adminPass, + 'addresses' => $this->addresses, + 'metadata' => $this->metadata + ); + } +} \ No newline at end of file