1 # == Class opendaylight::config
3 # This class handles ODL config changes.
4 # It's called from the opendaylight class.
6 class opendaylight::config {
7 # Configuration of Karaf features to install
8 file { 'org.apache.karaf.features.cfg':
10 path => '/opt/opendaylight/etc/org.apache.karaf.features.cfg',
11 # Set user:group owners
15 $features_csv = join($opendaylight::features, ',')
16 file_line { 'featuresBoot':
17 path => '/opt/opendaylight/etc/org.apache.karaf.features.cfg',
18 line => "featuresBoot=${features_csv}",
19 match => '^featuresBoot=.*$',
22 # Configuration of ODL NB REST port to listen on
25 path => '/opt/opendaylight/etc/jetty.xml',
26 # Set user:group owners
29 # Use a template to populate the content
30 content => template('opendaylight/jetty.xml.erb'),
33 # Set any custom log levels
34 file { 'org.ops4j.pax.logging.cfg':
36 path => '/opt/opendaylight/etc/org.ops4j.pax.logging.cfg',
37 # Set user:group owners
40 # Use a template to populate the content
41 content => template('opendaylight/org.ops4j.pax.logging.cfg.erb'),
44 # Configure ODL HA if enabled
45 $ha_node_count = count($::opendaylight::ha_node_ips)
46 if $::opendaylight::enable_ha {
47 if $ha_node_count >= 2 {
48 # Configure ODL OSVDB Clustering
49 $ha_node_ip_str = join($::opendaylight::ha_node_ips, ' ')
50 exec { 'Configure ODL OVSDB Clustering':
51 command => "configure_cluster.sh ${::opendaylight::ha_node_index} ${ha_node_ip_str}",
52 path => '/opt/opendaylight/bin/:/usr/sbin:/usr/bin:/sbin:/bin',
53 creates => '/opt/opendaylight/configuration/initial/akka.conf'
56 fail("Number of HA nodes less than 2: ${ha_node_count} and HA Enabled")
60 # Configure ACL security group
61 # Requires at least CentOS 7.3 for RHEL/CentOS systems
62 if ('odl-netvirt-openstack' in $opendaylight::features) {
63 if $opendaylight::security_group_mode == 'stateful' {
64 if defined('$opendaylight::stateful_unsupported') and $opendaylight::stateful_unsupported {
65 warning("Stateful is unsupported in ${::operatingsystemrelease} setting to 'learn'")
71 $sg_mode = $opendaylight::security_group_mode
75 '/opt/opendaylight/etc/opendaylight',
76 '/opt/opendaylight/etc/opendaylight/datastore',
77 '/opt/opendaylight/etc/opendaylight/datastore/initial',
78 '/opt/opendaylight/etc/opendaylight/datastore/initial/config',
81 file { $odl_datastore:
87 -> file { 'netvirt-aclservice-config.xml':
89 path => '/opt/opendaylight/etc/opendaylight/datastore/initial/config/netvirt-aclservice-config.xml',
92 content => template('opendaylight/netvirt-aclservice-config.xml.erb'),
96 #configure VPP routing node
97 if ! empty($::opendaylight::vpp_routing_node) {
98 file { 'org.opendaylight.groupbasedpolicy.neutron.vpp.mapper.startup.cfg':
100 path => '/opt/opendaylight/etc/org.opendaylight.groupbasedpolicy.neutron.vpp.mapper.startup.cfg',
104 file_line { 'routing-node':
105 path => '/opt/opendaylight/etc/org.opendaylight.groupbasedpolicy.neutron.vpp.mapper.startup.cfg',
106 line => "routing-node=${::opendaylight::vpp_routing_node}",
107 match => '^routing-node=.*$',
111 # Configure username/password
112 odl_user { $::opendaylight::username:
113 password => $::opendaylight::password,
114 before => Service['opendaylight'],