90 lines
4.3 KiB
Python
90 lines
4.3 KiB
Python
#
|
|
# 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.
|
|
|
|
from oslo_config import cfg
|
|
|
|
from ironic.common.i18n import _
|
|
|
|
opts = [
|
|
cfg.BoolOpt('send_sensor_data',
|
|
default=False,
|
|
deprecated_group='conductor',
|
|
deprecated_name='send_sensor_data',
|
|
help=_('Enable sending sensor data message via the '
|
|
'notification bus.')),
|
|
cfg.IntOpt('interval',
|
|
default=600,
|
|
min=1,
|
|
deprecated_group='conductor',
|
|
deprecated_name='send_sensor_data_interval',
|
|
help=_('Seconds between conductor sending sensor data message '
|
|
'via the notification bus. This was originally for '
|
|
'consumption via ceilometer, but the data may also '
|
|
'be consumed via a plugin like '
|
|
'ironic-prometheus-exporter or any other message bus '
|
|
'data collector.')),
|
|
cfg.IntOpt('workers',
|
|
default=4, min=1,
|
|
deprecated_group='conductor',
|
|
deprecated_name='send_sensor_data_workers',
|
|
help=_('The maximum number of workers that can be started '
|
|
'simultaneously for send data from sensors periodic '
|
|
'task.')),
|
|
cfg.IntOpt('wait_timeout',
|
|
default=300,
|
|
deprecated_group='conductor',
|
|
deprecated_name='send_sensor_data_wait_timeout',
|
|
help=_('The time in seconds to wait for send sensors data '
|
|
'periodic task to be finished before allowing periodic '
|
|
'call to happen again. Should be less than '
|
|
'send_sensor_data_interval value.')),
|
|
cfg.ListOpt('data_types',
|
|
default=['ALL'],
|
|
deprecated_group='conductor',
|
|
deprecated_name='send_sensor_data_types',
|
|
help=_('List of comma separated meter types which need to be '
|
|
'sent to Ceilometer. The default value, "ALL", is a '
|
|
'special value meaning send all the sensor data. '
|
|
'This setting only applies to baremetal sensor data '
|
|
'being processed through the conductor.')),
|
|
cfg.BoolOpt('enable_for_undeployed_nodes',
|
|
default=False,
|
|
deprecated_group='conductor',
|
|
deprecated_name='send_sensor_data_for_undeployed_nodes',
|
|
help=_('The default for sensor data collection is to only '
|
|
'collect data for machines that are deployed, however '
|
|
'operators may desire to know if there are failures '
|
|
'in hardware that is not presently in use. '
|
|
'When set to true, the conductor will collect sensor '
|
|
'information from all nodes when sensor data '
|
|
'collection is enabled via the send_sensor_data '
|
|
'setting.')),
|
|
cfg.BoolOpt('enable_for_conductor',
|
|
default=True,
|
|
help=_('If to include sensor metric data for the Conductor '
|
|
'process itself in the message payload for sensor '
|
|
'data which allows operators to gather instance '
|
|
'counts of actions and states to better manage '
|
|
'the deployment.')),
|
|
cfg.BoolOpt('enable_for_nodes',
|
|
default=True,
|
|
help=_('If to transmit any sensor data for any nodes under '
|
|
'this conductor\'s management. This option supersedes '
|
|
'the ``send_sensor_data_for_undeployed_nodes`` '
|
|
'setting.')),
|
|
]
|
|
|
|
|
|
def register_opts(conf):
|
|
conf.register_opts(opts, group='sensor_data')
|