public function getCaveatsForReleaseType($release_id, $type)
 {
     return OpenStackComponentReleaseCaveat::get()->filter(array('ReleaseID' => intval($release_id), 'Type' => $type, 'ComponentID' => $this->ID));
 }
 private function getQualityOfPackages(OpenStackRelease $release)
 {
     $components = $release->OpenStackComponents();
     $template_url = '%s/%s/ops-packaged.json';
     $response = null;
     try {
         $response = $this->client->get(sprintf($template_url, OpsTagsTeamRepositoryUrl, strtolower($release->Name)));
     } catch (Exception $ex) {
         SS_Log::log($ex->getMessage(), SS_Log::WARN);
     }
     if (is_null($response)) {
         return;
     }
     if ($response->getStatusCode() != 200) {
         return;
     }
     $body = $response->getBody();
     if (is_null($body)) {
         return;
     }
     $content = $body->getContents();
     if (empty($content)) {
         return;
     }
     $package_q = json_decode($content, true);
     if (is_null($package_q)) {
         return;
     }
     foreach ($package_q as $component_name => $entry) {
         preg_match("/\\((\\w*)\\)/", $component_name, $output_array);
         if (count($output_array) !== 2) {
             continue;
         }
         $code_name = $output_array[1];
         $component = $release->supportsComponent($code_name);
         if (is_null($component)) {
             continue;
         }
         $data = array('QualityOfPackages' => $entry['status']);
         if (isset($entry['caveats'])) {
             $caveats = $entry['caveats'];
             foreach ($caveats as $caveat) {
                 $c = new OpenStackComponentReleaseCaveat();
                 $c->ReleaseID = $release->ID;
                 $c->ComponentID = $component->ID;
                 $c->Status = isset($caveat['status']) ? $caveat['status'] : '';
                 $c->Label = isset($caveat['label']) ? $caveat['label'] : '';
                 $c->Description = isset($caveat['description']) ? $caveat['description'] : '';
                 $c->Type = 'QualityOfPackages';
                 $c->write();
             }
         }
         $components->add($component, $data);
     }
 }