# # Copyright (C) 2014 eNovance SAS # # Author: Emilien Macchi # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # # == Class: neutron::agents::ml2::sriov # # Setups SR-IOV neutron agent when using ML2 plugin # # === Parameters # # [*package_ensure*] # (optional) The state of the package # Defaults to 'present' # # [*enabled*] # (required) Whether or not to enable the OVS Agent # Defaults to true # # [*physical_device_mappings*] # (optional) List of : # All physical networks listed in network_vlan_ranges # on the server should have mappings to appropriate # interfaces on each agent. # Defaults to empty list # # [*polling_interval*] # (optional) The number of seconds the agent will wait between # polling for local device changes. # Defaults to '2" # # [*exclude_devices*] # (optional) List of : mapping # network_device to the agent's node-specific list of virtual functions # that should not be used for virtual networking. excluded_devices is a # semicolon separated list of virtual functions to exclude from network_device. # The network_device in the mapping should appear in the physical_device_mappings list. class neutron::agents::ml2::sriov ( $package_ensure = 'present', $enabled = true, $physical_device_mappings = [], $polling_interval = 2, $exclude_devices = [], ) { include neutron::params Neutron_plugin_ml2<||> ~> Service['neutron-sriov-nic-agent-service'] neutron_plugin_ml2 { 'sriov_nic/polling_interval': value => $polling_interval; 'sriov_nic/exclude_devices': value => join($exclude_devices, ','); 'sriov_nic/physical_device_mappings': value => join($physical_device_mappings, ','); } Package['neutron-sriov-nic-agent'] -> Neutron_plugin_ml2<||> package { 'neutron-sriov-nic-agent': ensure => $package_ensure, name => $::neutron::params::sriov_nic_agent_package, } if $enabled { $service_ensure = 'running' } else { $service_ensure = 'stopped' } service { 'neutron-sriov-nic-agent-service': ensure => $service_ensure, name => $::neutron::params::sriov_nic_agent_service, enable => $enabled, require => Class['neutron'], } }