<commit_before>[![Build Status](https://travis-ci.org/dfarrell07/puppet-opendaylight.svg)](https://travis-ci.org/dfarrell07/puppet-opendaylight) [![Dependency Status](https://gemnasium.com/dfarrell07/puppet-opendaylight.svg)](https://gemnasium.com/dfarrell07/puppet-opendaylight) [![Join the chat at https://gitter.im/dfarrell07/puppet-opendaylight](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/dfarrell07/puppet-opendaylight?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
#### Table of Contents 
1. [Overview](#overview)
2. [Module Description - What the module does and why it is useful](#module-description)
3. [Setup - The basics of getting started with opendaylight](#setup)
    * [What opendaylight affects](#what-opendaylight-affects)
    * [Beginning with opendaylight](#beginning-with-opendaylight)
4. [Usage - Configuration options and additional functionality](#usage)
5. [Reference - An under-the-hood peek at what the module is doing and how](#reference)
5. [Limitations - OS compatibility, etc.](#limitations)
6. [Development - Guide for contributing to the module](#development)

## Overview

Puppet module for deploying the [OpenDaylight Software Defined Networking (SDN) controller](http://www.opendaylight.org/).

## Module Description

Deploys and configures the [OpenDaylight SDN controller](http://www.opendaylight.org/), including systemd configuration.

Both supported install methods default to the latest stable OpenDaylight release, which is currently Helium 0.2.3 SR3.

## Setup

### What `opendaylight` affects

* Installs [OpenDaylight](http://www.opendaylight.org/).
* Installs a [systemd unitfile](https://github.com/dfarrell07/opendaylight-systemd/) for OpenDaylight.
* Starts the `opendaylight` systemd service.
* Creates `odl:odl` user:group if they don't already exist.
* Installs Java, which is required by ODL.

### Beginning with `opendaylight`

To install and start OpenDaylight, include the `opendaylight` class: `include opendaylight`.

## Usage

The most basic usage, passing no parameters to the OpenDaylight class, will install and start OepnDaylight with a default configuration.

```
class { 'opendaylight':
}
```

### Karaf Features

To set extra Karaf features to be installed at OpenDaylight start time, pass them in a list to the `extra_features` param. The extra features you pass will typically be driven by the requirements of your ODL install. You'll almost certainly need to pass some.

```
class { 'opendaylight':<commit_msg>Refactor README, mainly ToC updates<commit_after>[![Build Status](https://travis-ci.org/dfarrell07/puppet-opendaylight.svg)](https://travis-ci.org/dfarrell07/puppet-opendaylight) [![Dependency Status](https://gemnasium.com/dfarrell07/puppet-opendaylight.svg)](https://gemnasium.com/dfarrell07/puppet-opendaylight) [![Join the chat at https://gitter.im/dfarrell07/puppet-opendaylight](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/dfarrell07/puppet-opendaylight?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

# OpenDaylight

#### Table of Contents 
1. [Overview](#overview)
2. [Module Description](#module-description)
3. [Setup](#setup)
    * [What `opendaylight` affects](#what-opendaylight-affects)
    * [Beginning with `opendaylight`](#beginning-with-opendaylight)
4. [Usage](#usage)
    * [Karaf Features](#karaf-features)
    * [Install Method](#install-method)
    * [Ports](#ports)
5. [Reference ](#reference)
5. [Limitations](#limitations)
6. [Development](#development)

## Overview

Puppet module for deploying the [OpenDaylight Software Defined Networking (SDN) controller](http://www.opendaylight.org/).

## Module Description

Installs and configures the [OpenDaylight SDN controller](http://www.opendaylight.org/).

Both supported [install methods](#install-method) default to the latest stable OpenDaylight release, which is currently Helium 0.2.3 SR3.

## Setup

### What `opendaylight` affects

* Installs [OpenDaylight](http://www.opendaylight.org/).
* Installs a [systemd unitfile](https://github.com/dfarrell07/opendaylight-systemd/) for OpenDaylight.
* Starts the `opendaylight` systemd service.
* Creates `odl:odl` user:group if they don't already exist.
* Installs Java, which is required by ODL.

### Beginning with `opendaylight`

To install and start OpenDaylight, include the `opendaylight` class: `include opendaylight`.

## Usage

The most basic usage, passing no parameters to the OpenDaylight class, will install and start OepnDaylight with a default configuration.

```
class { 'opendaylight':
}
```

### Karaf Features

To set extra Karaf features to be installed at OpenDaylight start time, pass them in a list to the `extra_features` param. The extra features you pass will typically be driven by the requirements of your ODL install. You'll almost certainly need to pass some.

```
class { 'opendaylight':
{'fraction_non_alphanumeric': 0.12278558338423946, 'fraction_numerical': 0.010995723885155772, 'mean_word_length': 5.549333333333333, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 16, 'lorem ipsum': 0, 'www.': 6, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4843496', 'n_tokens_mistral': 1627, 'n_tokens_neox': 1547, 'n_words': 430}