Puppet Class: neutron::agents::metering

Defined in:
manifests/agents/metering.pp

Overview

Parameters:

  • package_ensure (Any) (defaults to: present)
  • enabled (Any) (defaults to: true)
  • manage_service (Any) (defaults to: true)
  • debug (Any) (defaults to: false)
  • interface_driver (Any) (defaults to: 'neutron.agent.linux.interface.OVSInterfaceDriver')
  • use_namespaces (Any) (defaults to: true)
  • measure_interval (Any) (defaults to: '30')
  • report_interval (Any) (defaults to: '300')


54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'manifests/agents/metering.pp', line 54

class neutron::agents::metering (
  $package_ensure   = present,
  $enabled          = true,
  $manage_service   = true,
  $debug            = false,
  $interface_driver = 'neutron.agent.linux.interface.OVSInterfaceDriver',
  $use_namespaces   = true,
  $measure_interval = '30',
  $report_interval  = '300'
) {

  include neutron::params

  Neutron_config<||>                ~> Service['neutron-metering-service']
  Neutron_metering_agent_config<||> ~> Service['neutron-metering-service']

  # The metering agent loads both neutron.ini and its own file.
  # This only lists config specific to the agent.  neutron.ini supplies
  # the rest.
  neutron_metering_agent_config {
    'DEFAULT/debug':              value => $debug;
    'DEFAULT/interface_driver':   value => $interface_driver;
    'DEFAULT/use_namespaces':     value => $use_namespaces;
    'DEFAULT/measure_interval':   value => $measure_interval;
    'DEFAULT/report_interval':    value => $report_interval;
  }

  if $::neutron::params::metering_agent_package {
    Package['neutron']            -> Package['neutron-metering-agent']
    Package['neutron-metering-agent'] -> Neutron_config<||>
    Package['neutron-metering-agent'] -> Neutron_metering_agent_config<||>
    package { 'neutron-metering-agent':
      ensure  => $package_ensure,
      name    => $::neutron::params::metering_agent_package,
    }
  } else {
    # Default dependency if the system does not provide a neutron metering agent package.
    Package['neutron'] -> Neutron_metering_agent_config<||>
  }

  if $manage_service {
    if $enabled {
      $service_ensure = 'running'
    } else {
      $service_ensure = 'stopped'
    }
  }

  service { 'neutron-metering-service':
    ensure  => $service_ensure,
    name    => $::neutron::params::metering_agent_service,
    enable  => $enabled,
    require => Class['neutron'],
  }
}