Support disabling apache wsgi socket rotation
Bug LP 1863232 introduced a new Apache configuration option called WSGISocketRotation which allows users to disable wsgi socket rotation. This patch makes this configurable with a new wsgi-socket-rotation config option that defaults to the Apache default and can optionally be set to False. Closes-Bug: #2021550 Change-Id: If1f41ae2c3048540f9bcace4bbb9d24200cfb427
This commit is contained in:
parent
3fbbdf5c69
commit
a93efae077
@ -1748,6 +1748,9 @@ class WSGIWorkerConfigContext(WorkerConfigContext):
|
|||||||
|
|
||||||
def __call__(self):
|
def __call__(self):
|
||||||
total_processes = _calculate_workers()
|
total_processes = _calculate_workers()
|
||||||
|
enable_wsgi_socket_rotation = config('wsgi-socket-rotation')
|
||||||
|
if enable_wsgi_socket_rotation is None:
|
||||||
|
enable_wsgi_socket_rotation = True
|
||||||
ctxt = {
|
ctxt = {
|
||||||
"service_name": self.service_name,
|
"service_name": self.service_name,
|
||||||
"user": self.user,
|
"user": self.user,
|
||||||
@ -1761,6 +1764,7 @@ class WSGIWorkerConfigContext(WorkerConfigContext):
|
|||||||
"public_processes": int(math.ceil(self.public_process_weight *
|
"public_processes": int(math.ceil(self.public_process_weight *
|
||||||
total_processes)),
|
total_processes)),
|
||||||
"threads": 1,
|
"threads": 1,
|
||||||
|
"wsgi_socket_rotation": enable_wsgi_socket_rotation,
|
||||||
}
|
}
|
||||||
return ctxt
|
return ctxt
|
||||||
|
|
||||||
|
@ -12,6 +12,12 @@ Listen {{ admin_port }}
|
|||||||
Listen {{ public_port }}
|
Listen {{ public_port }}
|
||||||
{% endif -%}
|
{% endif -%}
|
||||||
|
|
||||||
|
{% if wsgi_socket_rotation -%}
|
||||||
|
WSGISocketRotation On
|
||||||
|
{% else -%}
|
||||||
|
WSGISocketRotation Off
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
{% if port -%}
|
{% if port -%}
|
||||||
<VirtualHost *:{{ port }}>
|
<VirtualHost *:{{ port }}>
|
||||||
WSGIDaemonProcess {{ service_name }} processes={{ processes }} threads={{ threads }} user={{ user }} group={{ group }} \
|
WSGIDaemonProcess {{ service_name }} processes={{ processes }} threads={{ threads }} user={{ user }} group={{ group }} \
|
||||||
|
@ -12,6 +12,12 @@ Listen {{ admin_port }}
|
|||||||
Listen {{ public_port }}
|
Listen {{ public_port }}
|
||||||
{% endif -%}
|
{% endif -%}
|
||||||
|
|
||||||
|
{% if wsgi_socket_rotation -%}
|
||||||
|
WSGISocketRotation On
|
||||||
|
{% else -%}
|
||||||
|
WSGISocketRotation Off
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
{% if port -%}
|
{% if port -%}
|
||||||
<VirtualHost *:{{ port }}>
|
<VirtualHost *:{{ port }}>
|
||||||
WSGIDaemonProcess {{ service_name }} processes={{ processes }} threads={{ threads }} user={{ user }} group={{ group }} \
|
WSGIDaemonProcess {{ service_name }} processes={{ processes }} threads={{ threads }} user={{ user }} group={{ group }} \
|
||||||
|
@ -957,7 +957,7 @@ def os_requires_version(ostack_release, pkg):
|
|||||||
def wrap(f):
|
def wrap(f):
|
||||||
@wraps(f)
|
@wraps(f)
|
||||||
def wrapped_f(*args):
|
def wrapped_f(*args):
|
||||||
if os_release(pkg) < ostack_release:
|
if CompareOpenStackReleases(os_release(pkg)) < ostack_release:
|
||||||
raise Exception("This hook is not supported on releases"
|
raise Exception("This hook is not supported on releases"
|
||||||
" before %s" % ostack_release)
|
" before %s" % ostack_release)
|
||||||
f(*args)
|
f(*args)
|
||||||
|
@ -159,15 +159,19 @@ def get_osd_settings(relation_name):
|
|||||||
return _order_dict_by_key(osd_settings)
|
return _order_dict_by_key(osd_settings)
|
||||||
|
|
||||||
|
|
||||||
def send_application_name(relid=None):
|
def send_application_name(relid=None, app_name=None):
|
||||||
"""Send the application name down the relation.
|
"""Send the application name down the relation.
|
||||||
|
|
||||||
:param relid: Relation id to set application name in.
|
:param relid: Relation id to set application name in.
|
||||||
:type relid: str
|
:type relid: str
|
||||||
|
:param app_name: Application name to send in the relation.
|
||||||
|
:type app_name: str
|
||||||
"""
|
"""
|
||||||
|
if app_name is None:
|
||||||
|
app_name = application_name()
|
||||||
relation_set(
|
relation_set(
|
||||||
relation_id=relid,
|
relation_id=relid,
|
||||||
relation_settings={'application-name': application_name()})
|
relation_settings={'application-name': app_name})
|
||||||
|
|
||||||
|
|
||||||
def send_osd_settings():
|
def send_osd_settings():
|
||||||
|
@ -52,7 +52,7 @@ def _snap_exec(commands):
|
|||||||
:param commands: List commands
|
:param commands: List commands
|
||||||
:return: Integer exit code
|
:return: Integer exit code
|
||||||
"""
|
"""
|
||||||
assert type(commands) == list
|
assert type(commands) is list
|
||||||
|
|
||||||
retry_count = 0
|
retry_count = 0
|
||||||
return_code = None
|
return_code = None
|
||||||
|
@ -285,3 +285,11 @@ options:
|
|||||||
The number of measures from same pollster to batch together for sending
|
The number of measures from same pollster to batch together for sending
|
||||||
to the notification agent and then to the publisher. Set to 0 to disable.
|
to the notification agent and then to the publisher. Set to 0 to disable.
|
||||||
This config is only effective for OpenStack release Rocky or newer.
|
This config is only effective for OpenStack release Rocky or newer.
|
||||||
|
wsgi-socket-rotation:
|
||||||
|
type: boolean
|
||||||
|
default: True
|
||||||
|
description: |
|
||||||
|
Allow users to disable Apache wsgi socket rotation. If not configured,
|
||||||
|
this option sets True as the default value, which is consistent with the
|
||||||
|
default value 'WSGISocketRotation On' in Apache. This option should be
|
||||||
|
used with caution. Please read the Apache doc page for more information.
|
||||||
|
Loading…
Reference in New Issue
Block a user