1- import logging
2- import sys
31from typing import Annotated , Literal
42
53from cyclopts import Group , Parameter
64
7- from .library .context import AuditHubContext
8- from .library .invocation_common import app
5+ from audithub_client .library .logging_level import set_logging_level
96
10- app . meta . group_parameters = Group ( "Global Parameters" )
7+ from . library . invocation_common import app
118from .scripts .create_version_via_local_archive import ( # noqa
129 create_version_via_local_archive ,
1310)
2320from .scripts .get_users import get_users # noqa
2421from .scripts .get_version_archive import get_version_archive # noqa
2522from .scripts .monitor_task import monitor_task # noqa
23+ from .scripts .qa_cleanup import qa_cleanup # noqa
2624from .scripts .start_orca_task import start_orca_task # noqa
2725from .scripts .start_picus_v2_task import start_picus_v2_task # noqa
2826from .scripts .start_vanguard_task import ( # noqa
3129 start_zk_vanguard_task ,
3230)
3331
34-
35- class LevelFormatter (logging .Formatter ):
36- def __init__ (self , formats , default_fmt = None ):
37- super ().__init__ ()
38- self .formats = formats
39- self .default_fmt = default_fmt or "%(levelname)s: %(message)s"
40-
41- def format (self , record ):
42- fmt = self .formats .get (record .levelno , self .default_fmt )
43- formatter = logging .Formatter (fmt )
44- return formatter .format (record )
32+ app .meta .group_parameters = Group ("Global Parameters" , sort_key = 99 )
4533
4634
4735@app .meta .default
4836def meta (
4937 * tokens : Annotated [str , Parameter (show = False , allow_leading_hyphen = True )],
50- base_url : Annotated [
51- str , Parameter (env_var = "AUDITHUB_BASE_URL" , help = "AuditHub base URL" )
52- ],
53- oidc_configuration_url : Annotated [
54- str ,
55- Parameter (
56- env_var = "AUDITHUB_OIDC_CONFIGURATION_URL" ,
57- help = "AuditHub OpenID Connect configuration URL" ,
58- ),
59- ],
60- oidc_client_id : Annotated [
61- str ,
62- Parameter (
63- env_var = "AUDITHUB_OIDC_CLIENT_ID" , help = "AuditHub OpenID Connect client id"
64- ),
65- ],
66- oidc_client_secret : Annotated [
67- str ,
68- Parameter (
69- env_var = "AUDITHUB_OIDC_CLIENT_SECRET" ,
70- help = "AuditHub OpenID Connect client secret. Please note that this is confidential information." ,
71- ),
72- ],
7338 log_level : Annotated [
7439 Literal ["DEBUG" , "INFO" , "WARNING" , "ERROR" , "CRITICAL" ],
7540 Parameter (
@@ -79,49 +44,11 @@ def meta(
7944 ),
8045 ] = "INFO" ,
8146):
82- # Leave all levels except DEBUG "simple", without outputting the module name.
83- # At debug level, also show the module name that produces the log message.
84- default_log_format = "%(asctime)s %(levelname)s %(message)s"
85- debug_log_format = "%(asctime)s %(levelname)s %(name)s %(message)s"
86-
87- # Setup logging as usual
88- logging .basicConfig (
89- level = log_level ,
90- format = default_log_format ,
91- datefmt = "%H:%M:%S" ,
92- stream = sys .stderr ,
93- )
94- # Now modify the root logger
95- root_logger = logging .getLogger ()
96- handler = root_logger .handlers [0 ] # basicConfig creates one handler by default
97- handler .setFormatter (
98- LevelFormatter (
99- {logging .DEBUG : debug_log_format }, default_fmt = default_log_format
100- )
101- )
102-
103- # For these modules, raise the log level to reduce noise
104- for module in ["httpx" , "httpcore" ]:
105- module_logger = logging .getLogger (module )
106- module_logger .setLevel (logging .WARNING )
47+ set_logging_level (log_level )
10748
10849 command , bound , _ignored = app .parse_args (tokens )
109- # When this script runs with no args, help_print is automatically invoked
110- # Only in this situation however, it fails with: "TypeError: App.help_print() got an unexpected keyword argument 'rpc_context'"
111- # By only, I mean it does not fail when invoked with "--help".
112- # So let's treat it differently
113- if command == app .help_print :
114- return command (* bound .args , ** bound .kwargs )
115- return command (
116- * bound .args ,
117- ** bound .kwargs ,
118- rpc_context = AuditHubContext (
119- base_url = base_url ,
120- oidc_configuration_url = oidc_configuration_url ,
121- oidc_client_id = oidc_client_id ,
122- oidc_client_secret = oidc_client_secret ,
123- ),
124- )
50+
51+ return command (* bound .args , ** bound .kwargs )
12552
12653
12754def main ():
0 commit comments