Skip to content

Commit

Permalink
Added support for 'catalog' service
Browse files Browse the repository at this point in the history
  • Loading branch information
lyrixx committed Nov 25, 2014
1 parent 20142c4 commit 7a300ce
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 0 deletions.
1 change: 1 addition & 0 deletions Consul/ServiceFactory.php
Expand Up @@ -9,6 +9,7 @@ class ServiceFactory
{
private static $services = array(
'agent' => 'SensioLabs\Consul\Services\Agent',
'catalog' => 'SensioLabs\Consul\Services\Catalog',
'health' => 'SensioLabs\Consul\Services\Health',
'kv' => 'SensioLabs\Consul\Services\KV',
'session' => 'SensioLabs\Consul\Services\Session',
Expand Down
75 changes: 75 additions & 0 deletions Consul/Services/Catalog.php
@@ -0,0 +1,75 @@
<?php

namespace SensioLabs\Consul\Services;

use SensioLabs\Consul\Client;
use SensioLabs\Consul\OptionsResolver;

class Catalog
{
private $client;

public function __construct(Client $client = null)
{
$this->client = $client ?: new Client();
}

public function register($node)
{
$params = array(
'body' => (string) $node,
);

return $this->client->get('/v1/catalog/register', $params);
}

public function deregister($node)
{
$params = array(
'body' => (string) $node,
);

return $this->client->get('/v1/catalog/deregister', $params);
}

public function datacenters()
{
return $this->client->get('/v1/catalog/datacenters');
}

public function nodes(array $options = array())
{
$params = array(
'query' => OptionsResolver::resolve($options, array('dc')),
);

return $this->client->get('/v1/catalog/nodes', $params);
}

public function node($node, array $options = array())
{
$params = array(
'query' => OptionsResolver::resolve($options, array('dc')),
);

return $this->client->get('/v1/catalog/node/'.$node, $params);
}

public function services(array $options = array())
{
$params = array(
'query' => OptionsResolver::resolve($options, array('dc')),
);

return $this->client->get('/v1/catalog/services', $params);
}

public function service($service, array $options = array())
{
$params = array(
'query' => OptionsResolver::resolve($options, array('dc', 'tag')),
);

return $this->client->get('/v1/catalog/service/'.$service, $params);
}
}
1 change: 1 addition & 0 deletions README.md
Expand Up @@ -59,6 +59,7 @@ Available services
------------------

* agent
* catalog
* health
* kv
* session

0 comments on commit 7a300ce

Please sign in to comment.