Skip to content

treehouselabs/keystone-client

Repository files navigation

Keystone Client

Latest Version on Packagist Software License Build Status Coverage Status Quality Score

A client to use when communicating with Keystone services. Uses Guzzle as the actual HTTP client library.

Installation

composer require treehouselabs/keystone-client:~3.0

Usage

Use the ClientFactory to create a Guzzle Client with. The factory attaches middleware that automatically requests a Keystone token and signs outgoing requests with it.

In the case of an expired token, and the request fails, a new token is fetched automatically and the request is retried with the new token.

use TreeHouse\Cache\CacheInterface;
use TreeHouse\Keystone\Client\ClientFactory;
use TreeHouse\Keystone\Client\Model\Tenant;

$tokenUrl     = 'http://example.org/tokens';
$username     = 'acme';
$password     = 's3cr4t';
$serviceType  = 'compute';
$serviceName  = 'api';

// $cache is a TreeHouse\Cache\CacheInterface instance
$tenant  = new Tenant($tokenUrl, $username, $password, $serviceType, $serviceName);
$client  = (new ClientFactory($cache))->createClient($tenant);

// now just use $client as you would a regular Guzzle client
$response = $client->get('posts/');

Testing

composer test

Security

If you discover any security related issues, please email peter@treehouse.nl instead of using the issue tracker.

License

The MIT License (MIT). Please see License File for more information.

Credits

About

A Guzzle client wrapper to sign requests against a Keystone service

Resources

License

Stars

Watchers

Forks

Packages

No packages published