app = $app; $this->libClass = $app->getLibClass("Compute"); } /** * Execute an action * * @param String $action name of another function of this class * * @return void */ public function action($action){ $this->{$action.""}(); } /** * List servers. * @return array */ public function listServers() { $serverList = $this->libClass->listServers(true); $servers = Array(); foreach($serverList as $server){ $servers[$server->id] = Array(); $server->flavor->retrieve(); $server->image->retrieve(); $servers[$server->id]["id"] = $server->id; $servers[$server->id]["name"] = $server->name; $servers[$server->id]["imageId"] = $server->image->id; $servers[$server->id]["flavorId"] = $server->flavor->id; $servers[$server->id]["status"] = $server->status; $servers[$server->id]["ram"] = $server->flavor->ram; $servers[$server->id]["disk"] = $server->flavor->disk; } $this->app->setOutput("Servers", $servers); return; } /** * List flavors. * @return array */ public function listFlavors() { $flavorList = $this->libClass->listFlavors(); $flavors = Array(); foreach($flavorList as $flavor){ $flavors[$flavor->id] = Array(); $flavors[$flavor->id]["id"] = $flavor->id; $flavors[$flavor->id]["name"] = $flavor->name; } $this->app->setOutput("Flavors", $flavors); return; } /** * List images. * @return array */ public function listImages() { $imageList = $this->libClass->listImages(); $images = Array(); foreach($imageList as $image){ $images[$image->id] = Array(); $images[$image->id]["id"] = $image->id; $images[$image->id]["name"] = $image->name; } $this->app->setOutput("Images", $images); return; } /** * Create server. * @return array * public function createServer() { $server = $this->libClass->createServer(); } */ /** * Get server details. * @return array */ public function getServer() { $serverId = $this->app->getPostParam("serverId"); $opt = array('id' => $serverId); $server = $this->libClass->getServer($opt); $server->retrieve(); $this->app->setOutput("MyServer", $server); return; } /** * Get flavor details. * @return array */ public function getFlavor() { $flavorId = $this->app->getPostParam("flavorId"); $opt = array('id' => $flavorId); $flavor = $this->libClass->getFlavor($opt); $flavor->retrieve(); $this->app->setOutput("MyFlavor", $flavor); return; } /** * Get image details. * @return array */ public function getImage() { $imageId = $this->app->getPostParam("imageId"); $opt = array('id' => $imageId); $image = $this->libClass->getImage($opt); $image->retrieve(); $this->app->setOutput("MyImage", $image); return; } /* working on tests public function update() { $image = $this->app->getServer(array $options = []); } public function delete() { //TODO } public function changePassword($newPassword) { //TODO } public function reboot($type = Enum::REBOOT_SOFT) { //TODO } public function rebuild(array $options) { //TODO } public function resize($flavorId) { //TODO } public function confirmResize() { //TODO } public function revertResize() { //TODO } public function createImage(array $options) { //TODO } public function listAddresses(array $options = []) { //TODO } public function getMetadata() { //TODO } public function resetMetadata(array $metadata) { //TODO } public function mergeMetadata(array $metadata) { //TODO } public function getMetadataItem($key) { //TODO } public function deleteMetadataItem($key) { //TODO } */ }