dc9b777724
As described in bug #1728527 cibadmin does not expose the state of the pacemaker-remote nodes which means hostmonitor cannot track them. This change switches to use crm_mon to check the status of remote nodes if the new config option host.restrict_to_remotes to set to True. This will trigger host monitor to use crm_mon to monitor nodes and will only monitor nodes that are marked as remotes (not members). Change-Id: I3f2026805413504c875ea5f39eb036d44b26dd43 Depends-On: Iaa2251708616e9c69817bf5b346d795ea7a4d21b Closes-Bug: #1728527
94 lines
3.5 KiB
Python
94 lines
3.5 KiB
Python
# Copyright(c) 2016 Nippon Telegraph and Telephone Corporation
|
|
#
|
|
# 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
|
|
|
|
monitor_host_opts = [
|
|
cfg.StrOpt('monitoring_driver',
|
|
default='default',
|
|
help='Driver that hostmonitor uses for monitoring hosts.'),
|
|
cfg.IntOpt('monitoring_interval',
|
|
default=60,
|
|
help='Monitoring interval(in seconds) of node status.'),
|
|
cfg.IntOpt('api_retry_max',
|
|
default=12,
|
|
help='Number of retries for send a notification in'
|
|
' processmonitor.'),
|
|
cfg.IntOpt('api_retry_interval',
|
|
default=10,
|
|
help='Trial interval of time of the notification processing'
|
|
' is error(in seconds).'),
|
|
cfg.BoolOpt('disable_ipmi_check',
|
|
default=False,
|
|
help='''
|
|
Do not check whether the host is completely down.
|
|
|
|
Possible values:
|
|
|
|
* True: Do not check whether the host is completely down.
|
|
* False: Do check whether the host is completely down.
|
|
|
|
If ipmi RA is not set in pacemaker, this value should be set True.
|
|
'''),
|
|
cfg.BoolOpt('restrict_to_remotes',
|
|
default=False,
|
|
help='Only monitor pacemaker-remotes, ignore the status of'
|
|
' full cluster members.'),
|
|
cfg.IntOpt('ipmi_timeout',
|
|
default=5,
|
|
help='Timeout value(in seconds) of the ipmitool command.'),
|
|
cfg.IntOpt('ipmi_retry_max',
|
|
default=3,
|
|
help='Number of ipmitool command retries.'),
|
|
cfg.IntOpt('ipmi_retry_interval',
|
|
default=10,
|
|
help='Retry interval(in seconds) of the ipmitool command.'),
|
|
cfg.IntOpt('stonith_wait',
|
|
default=30,
|
|
help='Standby time(in seconds) until activate STONITH.'),
|
|
cfg.IntOpt('tcpdump_timeout',
|
|
default=5,
|
|
help='Timeout value(in seconds) of the tcpdump command when'
|
|
' monitors the corosync communication.'),
|
|
cfg.StrOpt('corosync_multicast_interfaces',
|
|
help='''
|
|
The name of interface that corosync is using for mutual communication
|
|
between hosts.
|
|
If there are multiple interfaces, specify them in comma-separated
|
|
like 'enp0s3,enp0s8'.
|
|
The number of interfaces you specify must be equal to the number of
|
|
corosync_multicast_ports values and must be in correct order with relevant
|
|
ports in corosync_multicast_ports.
|
|
'''),
|
|
cfg.StrOpt('corosync_multicast_ports',
|
|
help='''
|
|
The port numbers that corosync is using for mutual communication
|
|
between hosts.
|
|
If there are multiple port numbers, specify them in comma-separated
|
|
like '5405,5406'.
|
|
The number of port numbers you specify must be equal to the number of
|
|
corosync_multicast_interfaces values and must be in correct order with
|
|
relevant interfaces in corosync_multicast_interfaces.
|
|
'''),
|
|
]
|
|
|
|
|
|
def register_opts(conf):
|
|
conf.register_opts(monitor_host_opts, group='host')
|
|
|
|
|
|
def list_opts():
|
|
return {
|
|
'host': monitor_host_opts
|
|
}
|