for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Innmind\ProvisionerBundle\DependencyInjection;
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;
use Innmind\ProvisionerBundle\TriggerManager;
/**
* This is the class that validates and merges configuration from your app/config files
*
* To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/extension.html#cookbook-bundles-extension-config-class}
*/
class Configuration implements ConfigurationInterface
{
* {@inheritdoc}
public function getConfigTreeBuilder()
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('innmind_provisioner');
$rootNode
->children()
->arrayNode('threshold')
->arrayNode('cpu')
->integerNode('max')
->defaultValue(100)
->min(0)
->end()
->integerNode('min')
->defaultValue(0)
->arrayNode('load_average')
->floatNode('max')
->floatNode('min')
->arrayNode('triggers')
->isRequired()
->requiresAtLeastOneElement()
->prototype('scalar')->end()
->arrayNode('trigger_manager')
->addDefaultsIfNotSet()
->scalarNode('strategy')
->defaultValue(TriggerManager::STRATEGY_AFFIRMATIVE)
->booleanNode('allow_if_all_abstain')
->defaultFalse()
->booleanNode('allow_if_equal_granted_denied')
->defaultTrue()
->arrayNode('alerting')
->scalarNode('email')->end()
->arrayNode('webhook')
->arrayNode('hipchat')
->scalarNode('token')->end()
->scalarNode('room')->end()
->arrayNode('slack')
->scalarNode('channel')->end()
->arrayNode('rabbitmq')
->arrayNode('queue_depth')
->integerNode('history_length')
->min(1)
->defaultValue(10)
->end();
return $treeBuilder;
}