| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- <?php
- namespace Elastica;
- use Elastica\Node\Info;
- use Elastica\Node\Stats;
- /**
- * Elastica cluster node object.
- *
- * @author Nicolas Ruflin <spam@ruflin.com>
- */
- class Node
- {
- /**
- * Client.
- *
- * @var \Elastica\Client
- */
- protected $_client;
- /**
- * @var string Unique node id
- */
- protected $_id;
- /**
- * Node name.
- *
- * @var string Node name
- */
- protected $_name;
- /**
- * Node stats.
- *
- * @var \Elastica\Node\Stats|null Node Stats
- */
- protected $_stats;
- /**
- * Node info.
- *
- * @var \Elastica\Node\Info|null Node info
- */
- protected $_info;
- /**
- * Create a new node object.
- *
- * @param string $id Node id or name
- * @param \Elastica\Client $client Node object
- */
- public function __construct($id, Client $client)
- {
- $this->_client = $client;
- $this->setId($id);
- }
- /**
- * @return string Unique node id. Can also be name if id not exists.
- */
- public function getId()
- {
- return $this->_id;
- }
- /**
- * @param string $id Node id
- *
- * @return $this Refreshed object
- */
- public function setId($id)
- {
- $this->_id = $id;
- return $this->refresh();
- }
- /**
- * Get the name of the node.
- *
- * @return string Node name
- */
- public function getName()
- {
- if (empty($this->_name)) {
- $this->_name = $this->getInfo()->getName();
- }
- return $this->_name;
- }
- /**
- * Returns the current client object.
- *
- * @return \Elastica\Client Client
- */
- public function getClient()
- {
- return $this->_client;
- }
- /**
- * Return stats object of the current node.
- *
- * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-stats.html
- *
- * @return \Elastica\Node\Stats Node stats
- */
- public function getStats()
- {
- if (!$this->_stats) {
- $this->_stats = new Stats($this);
- }
- return $this->_stats;
- }
- /**
- * Return info object of the current node.
- *
- * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-info.html
- *
- * @return \Elastica\Node\Info Node info object
- */
- public function getInfo()
- {
- if (!$this->_info) {
- $this->_info = new Info($this);
- }
- return $this->_info;
- }
- /**
- * Refreshes all node information.
- *
- * This should be called after updating a node to refresh all information
- */
- public function refresh()
- {
- $this->_stats = null;
- $this->_info = null;
- }
- }
|