/** * @param string $osFamily * @param string $osVersion */ public function xGetRoleImagesAction($osFamily, $osVersion) { $this->restrictAccess('IMAGES', 'MANAGE'); $data = []; $osIds = Os::findIdsBy($osFamily, null, $osVersion); foreach (Image::find([['$or' => [['envId' => $this->getEnvironmentId(true)], ['envId' => NULL]]], ['osId' => ['$in' => $osIds]], ['status' => Image::STATUS_ACTIVE]]) as $image) { /* @var $image Image */ $data[] = ['platform' => $image->platform, 'cloudLocation' => $image->cloudLocation, 'id' => $image->id, 'architecture' => $image->architecture, 'source' => $image->source, 'createdByEmail' => $image->createdByEmail, 'os_family' => $image->getOs()->family, 'os_generation' => $image->getOs()->generation, 'os_version' => $image->getOs()->version, 'os_id' => $image->getOs()->id, 'os' => $image->getOs()->name]; } $this->response->data(['images' => $data]); }
public function getOsDetails() { $retval = new stdClass(); switch ($this->osFamily) { case "windows": $retval->family = "windows"; if (strpos($this->osName, '2008Server') === 0) { $generation = '2008'; } elseif (strpos($this->osName, '2012Server') === 0) { $generation = '2012'; } $retval->generation = $generation; $retval->version = $this->osVersion; $retval->name = "Windows {$generation}"; if (substr($this->osName, -2) == 'R2') { $retval->name .= " R2"; } break; case "ubuntu": $retval->family = $this->osFamily; $retval->generation = $this->osVersion; $retval->version = $this->osVersion; $retval->name = "Ubuntu {$retval->version} " . ucfirst($this->osName); break; case "centos": $retval->family = $this->osFamily; $retval->generation = (int) substr($this->osVersion, 0, 1); $retval->version = $this->osVersion; $retval->name = "CentOS {$retval->version} Final"; break; case "amazon": $retval->family = $this->osFamily; $retval->generation = $this->osVersion; $retval->version = $this->osVersion; $retval->name = "Amazon Linux {$retval->version}"; break; case "oel": $retval->family = $this->osFamily; $retval->generation = (int) substr($this->osVersion, 0, 1); $retval->version = $this->osVersion; $retval->name = "Oracle Enterprise Linux Server {$this->osVersion}"; if ($retval->generation == 5) { $retval->name .= " Tikanga"; } elseif ($retval->generation == 6) { $retval->name .= " Santiago"; } break; case "redhat": $retval->family = $this->osFamily; $retval->generation = (int) substr($this->osVersion, 0, 1); $retval->version = $this->osVersion; $retval->name = "Redhat {$this->osVersion}"; if ($retval->generation == 5) { $retval->name .= " Tikanga"; } elseif ($retval->generation == 6) { $retval->name .= " Santiago"; } break; case "scientific": $retval->family = $this->osFamily; $retval->generation = (int) substr($this->osVersion, 0, 1); $retval->version = $this->osVersion; $retval->name = "Scientific {$this->osVersion}"; if ($retval->generation == 5) { $retval->name .= " Boron"; } elseif ($retval->generation == 6) { $retval->name .= " Carbon"; } break; case "debian": $retval->family = $this->osFamily; $retval->generation = (int) substr($this->osVersion, 0, 1); $retval->version = $this->osVersion; $retval->name = "Debian {$this->osVersion}"; if ($retval->generation == 5) { $retval->name .= " Lenny"; } elseif ($retval->generation == 6) { $retval->name .= " Squeeze"; } elseif ($retval->generation == 7) { $retval->name .= " Wheezy"; } break; default: $retval->generation = ''; $retval->version = ''; $retval->name = $this->osName; } $osIds = Os::findIdsBy($retval->family, $retval->generation, $retval->version); if (count($osIds) > 0) { $retval->id = $osIds[0]; } else { $osIds = Os::findIdsBy($retval->family, $retval->generation, NULL); if (count($osIds) > 0) { $retval->id = $osIds[0]; } else { $retval->id = Os::UNKNOWN_OS; } } return $retval; }