public function getAllowedComponents() { $release_id = intval($this->owner->ReleaseID); if ($release_id > 0) { return OpenStackRelease::get()->byID($release_id)->OpenStackComponents(); } return new ArrayList(); }
/** * @param string $name * @param string $release_number * @param DateTime $release_date * @param string $release_notes_url * @return IOpenStackRelease */ public function buildOpenStackRelease($name, $release_number, DateTime $release_date, $release_notes_url) { $release = new OpenStackRelease(); $release->setName($name); $release->setReleaseNumber($release_number); $release->setReleaseDate($release_date); $release->setReleaseNotesUrl($release_notes_url); return $release; }
public function getComponentsbyRelease(SS_HTTPRequest $request) { $release_id = intval($request->param('RELEASE_ID')); $term = Convert::raw2sql($request->getVar('term')); $adoption = intval(Convert::raw2sql($request->getVar('adoption'))); $maturity = intval(Convert::raw2sql($request->getVar('maturity'))); $age = intval(Convert::raw2sql($request->getVar('age'))); $sort = Convert::raw2sql($request->getVar('sort')); $sort_dir = ''; if (!empty($sort)) { $sort = explode(':', $sort); $sort_dir = $sort[1]; $sort = $sort[0]; } $release = OpenStackRelease::get()->byID($release_id); if (is_null($release)) { return $this->notFound(); } list($core_components, $optional_components) = $this->manager->getComponents($release, $term, $adoption, $maturity, $age, $sort, $sort_dir); $res = array('core_components' => $core_components, 'optional_components' => $optional_components); return $this->ok($res); }
private function getStackAnalytics(OpenStackRelease $release) { $timeline_stats_url_template = "http://stackalytics.com/api/1.0/stats/timeline?module=%s-group&release=%s"; $company_contrib_url_template = "http://stackalytics.com/api/1.0/stats/companies?module=%s-group&release=%s"; $engineers_contrib_url_template = "http://stackalytics.com/api/1.0/stats/engineers?module=%s-group&release=%s"; $components = $release->OpenStackComponents(); foreach ($components as $c) { $timeline_json = null; $company_contrib_json = null; $engineers_contrib_json = null; $response = null; try { $response = $this->client->get(sprintf($timeline_stats_url_template, strtolower($c->CodeName), strtolower($release->Name))); } catch (Exception $ex) { SS_Log::log($ex->getMessage(), SS_Log::WARN); } if (!is_null($response) && $response->getStatusCode() === 200) { $body = $response->getBody(); if (!is_null($body)) { $content = $body->getContents(); if (!empty($content)) { $timeline_json = $content; } } } try { $response = $this->client->get(sprintf($company_contrib_url_template, strtolower($c->CodeName), strtolower($release->Name))); } catch (Exception $ex) { SS_Log::log($ex->getMessage(), SS_Log::WARN); } if (!is_null($response) && $response->getStatusCode() === 200) { $body = $response->getBody(); if (!is_null($body)) { $content = $body->getContents(); if (!empty($content)) { $company_contrib_json = $content; } } } try { $response = $this->client->get(sprintf($engineers_contrib_url_template, strtolower($c->CodeName), strtolower($release->Name))); } catch (Exception $ex) { SS_Log::log($ex->getMessage(), SS_Log::WARN); } if (!is_null($response) && $response->getStatusCode() === 200) { $body = $response->getBody(); if (!is_null($body)) { $content = $body->getContents(); if (!empty($content)) { $engineers_contrib_json = $content; } } } $components->add($c, array('ContributionsJson' => $timeline_json, 'MostActiveContributorsByCompanyJson' => $company_contrib_json, 'MostActiveContributorsByIndividualJson' => $engineers_contrib_json)); } }
public function getCurrentRelease() { $request = $this->request; $release_id = Convert::raw2sql($request->param('RELEASE_ID')); return OpenStackRelease::get()->filter('Name', ucfirst($release_id))->first(); }
/** * @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; }); }