134 lines
5.4 KiB
Python
134 lines
5.4 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.
|
|
import socket
|
|
|
|
from oslo_config import cfg
|
|
|
|
from senlin.common.i18n import _
|
|
|
|
SENLIN_OPTS = [
|
|
cfg.HostAddressOpt('host',
|
|
default=socket.gethostname(),
|
|
help=_('Name of the engine node. This can be an opaque '
|
|
'identifier. It is not necessarily a hostname, '
|
|
'FQDN or IP address.')),
|
|
cfg.StrOpt('default_region_name',
|
|
help=_('Default region name used to get services endpoints.')),
|
|
cfg.IntOpt('max_response_size',
|
|
default=524288,
|
|
help=_('Maximum raw byte size of data from web response.')),
|
|
cfg.ListOpt('notification_topics',
|
|
default=['versioned_notifications'],
|
|
help=_('Default notification topic.')),
|
|
]
|
|
|
|
ENGINE_OPTS = [
|
|
cfg.IntOpt('periodic_interval',
|
|
default=60,
|
|
help=_('Seconds between running periodic tasks.')),
|
|
cfg.IntOpt('periodic_interval_max',
|
|
default=120,
|
|
help=_('Maximum seconds between periodic tasks to be called.')),
|
|
cfg.IntOpt('check_interval_max',
|
|
default=3600,
|
|
help=_('Maximum seconds between cluster check to be called.')),
|
|
cfg.IntOpt('health_check_interval_min',
|
|
default=60,
|
|
help=_('Minimum seconds between health check to be called.')),
|
|
cfg.IntOpt('periodic_fuzzy_delay',
|
|
default=10,
|
|
help=_('Range of seconds to randomly delay when starting the '
|
|
'periodic task scheduler to reduce stampeding. '
|
|
'(Disable by setting to 0)')),
|
|
cfg.StrOpt('environment_dir',
|
|
default='/etc/senlin/environments',
|
|
help=_('The directory to search for environment files.')),
|
|
cfg.IntOpt('max_nodes_per_cluster',
|
|
default=1000,
|
|
help=_('Maximum nodes allowed per top-level cluster.')),
|
|
cfg.IntOpt('max_clusters_per_project',
|
|
default=100,
|
|
help=_('Maximum number of clusters any one project may have'
|
|
' active at one time.')),
|
|
cfg.IntOpt('default_action_timeout',
|
|
default=3600,
|
|
help=_('Timeout in seconds for actions.')),
|
|
cfg.IntOpt('default_nova_timeout',
|
|
default=600,
|
|
help=_('Timeout in seconds for nova API calls.')),
|
|
cfg.IntOpt('max_actions_per_batch',
|
|
default=0,
|
|
help=_('Maximum number of node actions that each engine worker '
|
|
'can schedule consecutively per batch. 0 means no '
|
|
'limit.')),
|
|
cfg.IntOpt('batch_interval',
|
|
default=3,
|
|
help=_('Seconds to pause between scheduling two consecutive '
|
|
'batches of node actions.')),
|
|
cfg.IntOpt('lock_retry_times',
|
|
default=3,
|
|
help=_('Number of times trying to grab a lock.')),
|
|
cfg.IntOpt('lock_retry_interval',
|
|
default=10,
|
|
help=_('Number of seconds between lock retries.')),
|
|
cfg.IntOpt('database_retry_limit',
|
|
default=10,
|
|
help=_('Number of times retrying a failed operation on the '
|
|
'database.')),
|
|
cfg.IntOpt('database_retry_interval',
|
|
default=0.3,
|
|
help=_('Initial number of seconds between database retries.')),
|
|
cfg.IntOpt('database_max_retry_interval',
|
|
default=2,
|
|
help=_('Maximum number of seconds between database retries.')),
|
|
cfg.IntOpt('engine_life_check_timeout',
|
|
default=2,
|
|
help=_('RPC timeout for the engine liveness check that is used'
|
|
' for cluster locking.')),
|
|
cfg.BoolOpt('name_unique',
|
|
default=False,
|
|
help=_('Flag to indicate whether to enforce unique names for '
|
|
'Senlin objects belonging to the same project.')),
|
|
cfg.IntOpt('service_down_time',
|
|
default=60,
|
|
help=_('Maximum time since last check-in for a service to be '
|
|
'considered up.')),
|
|
cfg.ListOpt('trust_roles',
|
|
default=[],
|
|
help=_('The roles which are delegated to the trustee by the '
|
|
'trustor when a cluster is created.')),
|
|
]
|
|
|
|
CLOUD_BACKEND_OPTS = [
|
|
cfg.StrOpt('cloud_backend', default='openstack',
|
|
choices=("openstack", "openstack_test"),
|
|
help=_('Default cloud backend to use.')),
|
|
]
|
|
|
|
EVENT_OPTS = [
|
|
cfg.MultiStrOpt("event_dispatchers", default=['database'],
|
|
help=_("Event dispatchers to enable.")),
|
|
]
|
|
|
|
|
|
def register_opts(conf):
|
|
conf.register_opts(SENLIN_OPTS)
|
|
conf.register_opts(ENGINE_OPTS)
|
|
conf.register_opts(CLOUD_BACKEND_OPTS)
|
|
conf.register_opts(EVENT_OPTS)
|
|
|
|
|
|
def list_opts():
|
|
return {
|
|
'DEFAULT': SENLIN_OPTS + ENGINE_OPTS + CLOUD_BACKEND_OPTS + EVENT_OPTS
|
|
}
|