Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pants: add dependencies to the st2common python_distribution #5925

Merged
merged 8 commits into from
Mar 10, 2023
2 changes: 1 addition & 1 deletion CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Added
to pants' use of PEX lockfiles. This is not a user-facing addition.
#5778 #5789 #5817 #5795 #5830 #5833 #5834 #5841 #5840 #5838 #5842 #5837 #5849 #5850
#5846 #5853 #5848 #5847 #5858 #5857 #5860 #5868 #5871 #5864 #5874 #5884 #5893 #5891
#5890 #5898 #5901 #5906 #5899 #5907 #5909 #5922 #5926 #5927
#5890 #5898 #5901 #5906 #5899 #5907 #5909 #5922 #5926 #5927 #5925
Contributed by @cognifloyd

* Added a joint index to solve the problem of slow mongo queries for scheduled executions. #5805
Expand Down
64 changes: 64 additions & 0 deletions st2common/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ st2_component_python_distribution(
"bin/st2-pack-download",
"bin/st2-pack-setup-virtualenv",
"bin/migrations/v3.5/st2-migrate-db-dict-field-values",
"bin/migrations/v3.8/st2-drop-st2exporter-marker-collections",
"bin/st2-run-pack-tests:shell",
"bin/st2ctl:shell",
"bin/st2-self-check:shell",
Expand All @@ -36,4 +37,67 @@ st2_component_python_distribution(
"noop": "st2common.rbac.backends.noop:NoOpRBACBackend",
},
},
dependencies=[
# no entry-point or script yet
"./st2common/garbage_collection/inquiries.py", # missing cmd + ./bin/st2-purge-inquiries
#
# Things that need to be included as part of the st2common library's API:
#
# ### Public API ###
#
"./st2common/logging", # used by all of our logging conf files
"./st2common/models/system", # used by runners
"./st2common/policies", # used by policies (see st2actions.policies)
"./st2common/runners", # used by runners and python actions
#
# ### Mixed Public+Internal API ###
#
"./st2common/services", # used by runners, python actions, st2api, ...
#
# ### Internal API ###
#
"./st2common/constants/garbage_collection.py", # used by garbage collector
"./st2common/constants/policy.py", # used by st2scheduler (in st2actions)
"./st2common/constants/timer.py", # used by st2timersengine (in st2reactor)
"./st2common/middleware", # used by st2auth, st2api, st2stream
"./st2common/models/api", # used by st2auth, st2api, st2stream
"./st2common/models/system", # used by st2auth, st2api, st2stream
"./st2common/models/db/timer.py", # used by st2api
"./st2common/models/db/webhook.py", # used by st2api
"./st2common/persistence/execution_queue.py", # used by st2scheduler (in st2actions)
"./st2common/stream", # used by st2stream
"./st2common/transport/consumers.py", # used by st2actions- and st2reactor-related services
"./st2common/util/actionalias_helpstring.py", # used by st2api
"./st2common/util/auth.py", # used by st2api, st2auth
"./st2common/util/keyvalue.py", # used by st2api
"./st2common/util/sandboxing.py", # used by python runner and sensor container
"./st2common/util/service.py", # used by st2scheduler (in st2actions)
"./st2common/util/wsgi.py", # used by st2stream
"./st2common/validators/api/misc.py", # used by st2api
#
# ### Dead Code (?) ###
#
# Added gunicorn bug workaround for SyncWorker users in #2571. No known active users. To use:
# `gunicorn -k st2common.util.gunicorn_workers.EventletSyncWorker ...`
# "./st2common/util/gunicorn_workers.py",
#
# Known dead code that should be deleted. Do not add these:
# ./st2common/callback/* (was for the old mistral_v2 runner. see #4038)
# ./st2common/constants/scheduler.py (unused since #4397)
# ./st2common/content/validators.py (unused since #939)
# ./st2common/exceptions/api.py (unused since #1840)
# ./st2common/exceptions/connection.py (unused since #1794)
# ./st2common/exceptions/resultstracker.py (unused since #5011)
# ./st2common/models/api/actionrunner.py (unused since #442)
# ./st2common/models/db/reactor.py (unused since #5922)
# ./st2common/persistence/reactor.py (unused since #5922)
# ./st2common/util/argument_parser.py (never used since added in e9ae7e31e1eb47e49f0fdc414ed6d2b8eccf4748)
# ./st2common/validators/workflow (unused since #5011)
],
# commands helpful in inspecting the dependencies (the "=(...)" is zsh syntax)
# python files under st2common that will not be included in the wheel
# comm -13 =(./pants dependencies --transitive st2common:st2common | grep -v -e : -e __init__.py | grep st2common/st2common | sort) =(find st2common/st2common -name '*.py' -and -not -name '__init__.py' | sort)
#
# python files required by other wheels that are missing from st2common
# comm -13 =(./pants dependencies --transitive st2common:st2common | grep st2common/st2common | sort) =(./pants list --filter-target-type=python_distribution --filter-address-regex=-st2common:st2common :: | xargs ./pants dependencies --transitive | grep st2common/st2common | sort)
)
18 changes: 18 additions & 0 deletions st2common/bin/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,22 @@ st2_shell_sources_and_resources(
name="shell",
sources=["st2ctl", "st2-self-check", "st2-run-pack-tests"],
skip_shellcheck=True,
overrides={
"st2ctl": {
"dependencies": [
"./st2-register-content",
"./st2-cleanup-db",
],
},
"st2-self-check": {
"dependencies": [
"./st2ctl:shell",
# TODO: dep on st2client cli?
],
},
# st2-run-pack-tests creates its own virtualenv on the fly and
# installs its dependencies, so they don't need to be listed here.
# It can optionally use the deps installed with st2tests package.
# "st2-run-pack-tests": {},
},
)
4 changes: 3 additions & 1 deletion st2common/bin/migrations/v3.5/BUILD
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# TODO: what to do about st2-migrate-db-dict-field-values ?
# st2_migrate_db_dict_field_values.py is a symlink to st2-migrate-db-dict-field-values
python_sources()
python_sources(
sources=["*.py", "st2*"],
)
3 changes: 3 additions & 0 deletions st2common/bin/migrations/v3.8/BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
python_sources(
sources=["st2*"],
)
5 changes: 1 addition & 4 deletions st2common/bin/migrations/v3.8/st2-drop-st2exporter-marker-collections
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,7 @@ and the collections were not configured to be created automatically.
import sys
import traceback

import mongoengine as me
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Flake8 noticed that this import was unused. Oops. Dropped.


from mongoengine.connection import get_db
from oslo_config import cfg

from st2common import config
from st2common.service_setup import db_setup
Expand Down Expand Up @@ -56,7 +53,7 @@ def main():
db_setup()

try:
delete_marker_collections(display_prompt=not cfg.CONF.yes)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pylint complained about this as the display_prompt kwarg doesn't exist. Oops.

I believe I copy/pasted this from the v3.5 migration script.

delete_marker_collections()
exit_code = 0
except Exception as e:
print("ABORTED: Collection deletion aborted on first failure: %s" % (str(e)))
Expand Down