Path: blob/master/src/infrastructure/cluster/search/PhabricatorElasticsearchHost.php
13464 views
<?php12final class PhabricatorElasticsearchHost3extends PhabricatorSearchHost {45private $version = 5;6private $path = 'phabricator/';7private $protocol = 'http';89const KEY_REFS = 'search.elastic.refs';101112public function setConfig($config) {13$this->setRoles(idx($config, 'roles', $this->getRoles()))14->setHost(idx($config, 'host', $this->host))15->setPort(idx($config, 'port', $this->port))16->setProtocol(idx($config, 'protocol', $this->protocol))17->setPath(idx($config, 'path', $this->path))18->setVersion(idx($config, 'version', $this->version));19return $this;20}2122public function getDisplayName() {23return pht('Elasticsearch');24}2526public function getStatusViewColumns() {27return array(28pht('Protocol') => $this->getProtocol(),29pht('Host') => $this->getHost(),30pht('Port') => $this->getPort(),31pht('Index Path') => $this->getPath(),32pht('Elastic Version') => $this->getVersion(),33pht('Roles') => implode(', ', array_keys($this->getRoles())),34);35}3637public function setProtocol($protocol) {38$this->protocol = $protocol;39return $this;40}4142public function getProtocol() {43return $this->protocol;44}4546public function setPath($path) {47$this->path = $path;48return $this;49}5051public function getPath() {52return $this->path;53}5455public function setVersion($version) {56$this->version = $version;57return $this;58}5960public function getVersion() {61return $this->version;62}6364public function getURI($to_path = null) {65$uri = id(new PhutilURI('http://'.$this->getHost()))66->setProtocol($this->getProtocol())67->setPort($this->getPort())68->setPath($this->getPath());6970if ($to_path) {71$uri->appendPath($to_path);72}73return $uri;74}7576public function getConnectionStatus() {77$status = $this->getEngine()->indexIsSane($this);78return $status ? parent::STATUS_OKAY : parent::STATUS_FAIL;79}8081}828384