public function isOk()
 {
     try {
         $health = $this->elasticsearch->cluster()->health();
     } catch (\Exception $ex) {
         $this->logger->error("Elasticsearch cluster status could not be retrieved");
         return false;
     }
     if (!is_array($health) || !array_key_exists('status', $health)) {
         $this->logger->error("Elasticsearch cluster status was not returned in the expected format");
         return false;
     }
     $clusterStatus = $health['status'];
     if ($clusterStatus !== 'green') {
         $this->logger->warning("Elasticsearch cluster status: {$clusterStatus}", ['clusterHealth' => $health]);
         return false;
     }
     return true;
 }
Beispiel #2
0
 /**
  * @param ShopIndex $index
  */
 private function updateSettings(ShopIndex $index)
 {
     $this->client->cluster()->health(['wait_for_status' => 'yellow']);
     $this->client->indices()->close(['index' => $index->getName()]);
     foreach ($this->settings as $setting) {
         $settings = $setting->get($index->getShop());
         if (!$settings) {
             continue;
         }
         $this->client->indices()->putSettings(['index' => $index->getName(), 'body' => $settings]);
     }
     $this->client->indices()->open(['index' => $index->getName()]);
     $this->client->indices()->refresh(['index' => $index->getName()]);
     $this->client->cluster()->health(['wait_for_status' => 'yellow']);
 }