Add an octavia-wsgi compatibility script

This patch adds an octavia-wsgi script that gets installed with Octavia
for backward compatibility on the stable branches.
The pbr wsgi_scripts function no longer generates this script
automatically due to recent changes in setuptools.

This is a stable branch only patch.

Change-Id: I7e0b17dbf9284db27e183a9a27e716266e26a237
(cherry picked from commit b8824ede82)
This commit is contained in:
Michael Johnson
2025-05-06 15:14:27 +00:00
parent 8e02055af0
commit 8249ae9b83
3 changed files with 59 additions and 0 deletions

52
bin/octavia-wsgi Normal file
View File

@@ -0,0 +1,52 @@
#!/usr/bin/env python3
#PBR Generated from 'wsgi_scripts' - Archived for Octavia stable branches
import threading
from octavia.api.app import setup_app
if __name__ == "__main__":
import argparse
import socket
import sys
import wsgiref.simple_server as wss
parser = argparse.ArgumentParser(
description=setup_app.__doc__,
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
usage='%(prog)s [-h] [--port PORT] [--host IP] -- [passed options]')
parser.add_argument('--port', '-p', type=int, default=8000,
help='TCP port to listen on')
parser.add_argument('--host', '-b', default='',
help='IP to bind the server to')
parser.add_argument('args',
nargs=argparse.REMAINDER,
metavar='-- [passed options]',
help="'--' is the separator of the arguments used "
"to start the WSGI server and the arguments passed "
"to the WSGI application.")
args = parser.parse_args()
if args.args:
if args.args[0] == '--':
args.args.pop(0)
else:
parser.error("unrecognized arguments: %s" % ' '.join(args.args))
sys.argv[1:] = args.args
server = wss.make_server(args.host, args.port, setup_app())
print("*" * 80)
print("STARTING test server octavia.api.app.setup_app")
url = "http://%s:%d/" % (server.server_name, server.server_port)
print("Available at %s" % url)
print("DANGER! For testing only, do not use in production")
print("*" * 80)
sys.stdout.flush()
server.serve_forever()
else:
application = None
app_lock = threading.Lock()
with app_lock:
if application is None:
application = setup_app()

View File

@@ -0,0 +1,5 @@
---
other:
- |
Added a "octavia-wsgi" script for backward compatibility now that pbr's
wsgi_scripts no longer functions with the latest setuptools.

View File

@@ -36,6 +36,8 @@ data_files =
diskimage-create/test-requirements.txt
diskimage-create/tox.ini
diskimage-create/version.txt
scripts =
bin/octavia-wsgi
[entry_points]
wsgi_scripts =