/** * @param IOpenStackRelease $release * @param string $term * @param int $adoption * @param int $maturity * @param int $age * @param string $sort * @param string $sort_dir * @return array */ public function getComponents(IOpenStackRelease $release, $term = '', $adoption = 0, $maturity = 0, $age = 0, $sort = '', $sort_dir = '') { $res1 = array(); $res2 = array(); $core_components = $release->getOpenStackCoreComponents($term, $adoption, $maturity, $age); $optional_components = $release->getOpenStackOptionalComponents($term, $adoption, $maturity, $age, $sort, $sort_dir); foreach ($core_components as $c) { array_push($res1, $this->serializer->serialize($c)); } foreach ($optional_components as $c) { array_push($res2, $this->serializer->serialize($c)); } return array($res1, $res2); }
/** * @param IOpenStackRelease $release * @return bool|int */ public function registerRelease(IOpenStackRelease $release) { $res = false; $release_repository = $this->release_repository; $this->tx_manager->transaction(function () use(&$res, $release, $release_repository) { $old_one = $release_repository->getByName($release->getName()); if ($old_one) { throw new EntityAlreadyExistsException('OpenStackRelease', sprintf('name %s', $release->getName())); } $old_one = $release_repository->getByReleaseNumber($release->getReleaseNumber()); if ($old_one) { throw new EntityAlreadyExistsException('OpenStackRelease', sprintf('release_number %s', $release->getReleaseNumber())); } $res = $release_repository->add($release); }); return $res; }
public function __construct(IOpenStackRelease $release, IOpenStackApiVersion $version) { $message = sprintf('Release %s does not support Api Version %s', $release->getName(), $version->getVersion()); parent::__construct($message); }
/** * @param IOpenStackRelease $release * @return IOpenStackRelease */ public function cloneRelease(IOpenStackRelease $release) { return $this->tx_manager->transaction(function () use($release) { $clone = OpenStackRelease::create(); $index = ''; $idx = 0; do { $proposed_name = $release->Name . '-CLONE' . $index; ++$idx; $index = '-' . $idx; } while (intval(OpenStackRelease::get()->filter('Name', $proposed_name)->count()) > 0); $clone->Name = $proposed_name; $clone->Status = 'Future'; $clone->write(); //components foreach ($release->OpenStackComponents() as $component) { $clone->OpenStackComponents()->add($component); } //supported apis foreach ($release->SupportedApiVersions() as $api) { $new_api = OpenStackReleaseSupportedApiVersion::create(); $new_api->OpenStackComponentID = $api->OpenStackComponentID; $new_api->ApiVersionID = $api->ApiVersionID; $new_api->ReleaseVersion = $api->ReleaseVersion; $new_api->ReleaseID = $clone->ID; $new_api->write(); } //sample configurations foreach ($release->SampleConfigurationTypes() as $config_type) { $new_config_type = OpenStackSampleConfigurationType::create(); $new_config_type->Type = $config_type->Type; $new_config_type->Order = $config_type->Order; $new_config_type->IsDefault = $config_type->IsDefault; $new_config_type->write(); foreach ($config_type->SampleConfigurations() as $sample) { $new_sample = OpenStackSampleConfig::create(); $new_sample->Title = $sample->Title; $new_sample->Summary = $sample->Summary; $new_sample->Description = $sample->Description; $new_sample->IsDefault = $sample->IsDefault; $new_sample->Order = $sample->Order; $new_sample->CuratorID = $sample->CuratorID; $new_sample->ReleaseID = $clone->ID; $new_sample->write(); foreach ($sample->RelatedNotes() as $note) { $new_note = OpenStackSampleConfigRelatedNote::create(); $new_note->Title = $note->Title; $new_note->Link = $note->Link; $new_note->Order = $note->Order; $new_note->write(); $new_sample->RelatedNotes()->add($new_note); } foreach ($sample->OpenStackComponents() as $sample_comp) { $new_sample->OpenStackComponents()->add($sample_comp, array('Order' => $sample_comp->Order)); } $new_config_type->SampleConfigurations()->add($new_sample); } $clone->SampleConfigurationTypes()->add($new_config_type); } return $clone; }); }
public function __construct(IOpenStackRelease $release, IOpenStackComponent $component) { $message = sprintf('Release %s does not support Component %s', $release->getName(), $component->getCodeName()); parent::__construct($message); }
public static function convertReleaseToArray(IOpenStackRelease $release) { $res = array(); $res['id'] = $release->getIdentifier(); $res['name'] = $release->getName(); $res['release_number'] = $release->getReleaseNumber(); $res['release_date'] = $release->getReleaseDate(); $res['release_notes_url'] = $release->getReleaseNotesUrl(); return $res; }