1
1
import logging
2
+ from functools import cached_property
2
3
3
4
from databricks .sdk .service .jobs import JobParameterDefinition
4
5
11
12
12
13
class Assessment (Workflow ): # pylint: disable=too-many-public-methods
13
14
def __init__ (self ):
14
- self ._force_refresh_param = JobParameterDefinition (name = "force_refresh" , default = False )
15
- super ().__init__ ('assessment' , [self ._force_refresh_param ])
15
+ super ().__init__ ('assessment' , [JobParameterDefinition (name = "force_refresh" , default = False )])
16
+
17
+ @staticmethod
18
+ def _get_force_refresh (ctx : RuntimeContext ) -> bool :
19
+ """Extracts the force_refresh parameter from the job run parameters."""
20
+ force_refresh = False
21
+ job_id = ctx .install_state .jobs ["assessment" ]
22
+ job_runs = [job_run for job_run in ctx .workspace_client .jobs .list_runs (active_only = True , job_id = job_id )]
23
+ job_parameters = job_runs [0 ].job_parameters if job_runs else []
24
+ for job_parameter in job_parameters :
25
+ if job_parameter .name == "force_refresh" and job_parameter .value is not None :
26
+ force_refresh = job_parameter .value .lower () in {"true" , "1" }
27
+ logger .info ("Found force_refresh parameter in job run: %s" , force_refresh )
28
+ break
29
+ return force_refresh
16
30
17
31
@job_task
18
32
def crawl_tables (self , ctx : RuntimeContext ):
@@ -21,8 +35,7 @@ def crawl_tables(self, ctx: RuntimeContext):
21
35
`$inventory_database.tables`. Note that the `inventory_database` is set in the configuration file. The metadata
22
36
stored is then used in the subsequent tasks and workflows to, for example, find all Hive Metastore tables that
23
37
cannot easily be migrated to Unity Catalog."""
24
- force_refresh = ctx .named_parameters .get ("force_refresh" , "False" ).lower () in {"true" , "1" }
25
- ctx .tables_crawler .snapshot (force_refresh = force_refresh )
38
+ ctx .tables_crawler .snapshot (force_refresh = self ._get_force_refresh (ctx ))
26
39
27
40
@job_task
28
41
def crawl_udfs (self , ctx : RuntimeContext ):
0 commit comments