mlrun 1.9.0rc6__py3-none-any.whl → 1.9.0rc7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mlrun might be problematic. Click here for more details.

mlrun/config.py CHANGED
@@ -482,7 +482,7 @@ default_config = {
482
482
  "project_owners_cache_ttl": "30 seconds",
483
483
  # access key to be used when the leader is iguazio and polling is done from it
484
484
  "iguazio_access_key": "",
485
- "iguazio_list_projects_default_page_size": 500,
485
+ "iguazio_list_projects_default_page_size": 200,
486
486
  "iguazio_client_job_cache_ttl": "20 minutes",
487
487
  "nuclio_project_deletion_verification_timeout": "300 seconds",
488
488
  "nuclio_project_deletion_verification_interval": "5 seconds",
mlrun/utils/helpers.py CHANGED
@@ -2096,22 +2096,60 @@ def join_urls(base_url: Optional[str], path: Optional[str]) -> str:
2096
2096
 
2097
2097
  class Workflow:
2098
2098
  @staticmethod
2099
- def get_workflow_steps(workflow_id: str, project: str) -> list:
2099
+ def get_workflow_steps(
2100
+ db: "mlrun.db.RunDBInterface", workflow_id: str, project: str
2101
+ ) -> list:
2100
2102
  steps = []
2101
- db = mlrun.get_run_db()
2102
2103
 
2103
2104
  def _add_run_step(_step: mlrun_pipelines.models.PipelineStep):
2105
+ # on kfp 1.8 argo sets the pod hostname differently than what we have with kfp 2.5
2106
+ # therefore, the heuristic needs to change. what we do here is first trying against 1.8 conventions
2107
+ # and if we can't find it then falling back to 2.5
2104
2108
  try:
2105
- _run = db.list_runs(
2109
+ # runner_pod = x-y-N
2110
+ _runs = db.list_runs(
2106
2111
  project=project,
2107
2112
  labels=f"{mlrun_constants.MLRunInternalLabels.runner_pod}={_step.node_name}",
2108
- )[0]
2113
+ )
2114
+ if not _runs:
2115
+ try:
2116
+ # x-y-N -> x-y, N
2117
+ node_name_initials, node_name_generated_id = (
2118
+ _step.node_name.rsplit("-", 1)
2119
+ )
2120
+
2121
+ except ValueError:
2122
+ # defensive programming, if the node name is not in the expected format
2123
+ node_name_initials = _step.node_name
2124
+ node_name_generated_id = ""
2125
+
2126
+ # compile the expected runner pod hostname as per kfp >= 2.4
2127
+ # x-y, Z, N -> runner_pod = x-y-Z-N
2128
+ runner_pod_value = "-".join(
2129
+ [
2130
+ node_name_initials,
2131
+ _step.display_name,
2132
+ node_name_generated_id,
2133
+ ]
2134
+ ).rstrip("-")
2135
+ logger.debug(
2136
+ "No run found for step, trying with different node name",
2137
+ step_node_name=runner_pod_value,
2138
+ )
2139
+ _runs = db.list_runs(
2140
+ project=project,
2141
+ labels=f"{mlrun_constants.MLRunInternalLabels.runner_pod}={runner_pod_value}",
2142
+ )
2143
+
2144
+ _run = _runs[0]
2109
2145
  except IndexError:
2146
+ logger.warning("No run found for step", step=_step.to_dict())
2110
2147
  _run = {
2111
2148
  "metadata": {
2112
2149
  "name": _step.display_name,
2113
2150
  "project": project,
2114
2151
  },
2152
+ "status": {},
2115
2153
  }
2116
2154
  _run["step_kind"] = _step.step_type
2117
2155
  if _step.skipped:
@@ -2229,9 +2267,9 @@ class Workflow:
2229
2267
  namespace=mlrun.mlconf.namespace,
2230
2268
  )
2231
2269
 
2232
- # arbitrary timeout of 60 seconds, the workflow should be done by now, however sometimes kfp takes a few
2270
+ # arbitrary timeout of 30 seconds, the workflow should be done by now, however sometimes kfp takes a few
2233
2271
  # seconds to update the workflow status
2234
- kfp_run = kfp_client.wait_for_run_completion(workflow_id, 60)
2272
+ kfp_run = kfp_client.wait_for_run_completion(workflow_id, 30)
2235
2273
  if not kfp_run:
2236
2274
  return None
2237
2275
 
@@ -16,6 +16,7 @@ import typing
16
16
 
17
17
  import aiohttp
18
18
 
19
+ import mlrun.common.runtimes.constants as runtimes_constants
19
20
  import mlrun.common.schemas
20
21
  import mlrun.lists
21
22
  import mlrun.utils.helpers
@@ -177,7 +178,10 @@ class SlackNotification(NotificationBase):
177
178
  # Only show the URL if the run is not a function (serving or mlrun function)
178
179
  kind = run.get("step_kind")
179
180
  state = run["status"].get("state", "")
180
- if state != "skipped" and (url and not kind or kind == "run"):
181
+
182
+ if state != runtimes_constants.RunStates.skipped and (
183
+ url and not kind or kind == "run"
184
+ ):
181
185
  line = f'<{url}|*{meta.get("name")}*>'
182
186
  else:
183
187
  line = meta.get("name")
@@ -287,7 +287,8 @@ class NotificationPusher(_NotificationPusherBase):
287
287
  )
288
288
  project = run.metadata.project
289
289
  workflow_id = run.status.results.get("workflow_id", None)
290
- runs.extend(Workflow.get_workflow_steps(workflow_id, project))
290
+ db = mlrun.get_run_db()
291
+ runs.extend(Workflow.get_workflow_steps(db, workflow_id, project))
291
292
 
292
293
  message = (
293
294
  self.messages.get(run.state(), "").format(resource=resource)
@@ -1,4 +1,4 @@
1
1
  {
2
- "git_commit": "14c1fb848211e99e3116d81b3f5c3c3a1e63ca12",
3
- "version": "1.9.0-rc6"
2
+ "git_commit": "16602de6914b4b6438b47ef326492d73e6f9b351",
3
+ "version": "1.9.0-rc7"
4
4
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mlrun
3
- Version: 1.9.0rc6
3
+ Version: 1.9.0rc7
4
4
  Summary: Tracking and config of machine learning runs
5
5
  Home-page: https://github.com/mlrun/mlrun
6
6
  Author: Yaron Haviv
@@ -1,6 +1,6 @@
1
1
  mlrun/__init__.py,sha256=Cqm9U9eCEdLpMejhU2BEhubu0mHL71igJJIwYa738EA,7450
2
2
  mlrun/__main__.py,sha256=ktsoMxLmW65ABu5oG7TbUJvusyAYy_PRollQOGj4cGY,46352
3
- mlrun/config.py,sha256=z4lQ_2rDthIHY368AMrbrMWIosAepIdfHfoER8Wf3bE,71933
3
+ mlrun/config.py,sha256=R8RDtYt2EZ4lU-H_oi8cSx52Zw33C92MBe9Lv4JqHl8,71933
4
4
  mlrun/errors.py,sha256=LkcbXTLANGdsgo2CRX2pdbyNmt--lMsjGv0XZMgP-Nc,8222
5
5
  mlrun/execution.py,sha256=rss4zA5M9tOCnSaXrK_-_BQ5F5DfF9OzesgQliq7jvQ,50008
6
6
  mlrun/features.py,sha256=ReBaNGsBYXqcbgI012n-SO_j6oHIbk_Vpv0CGPXbUmo,15842
@@ -322,7 +322,7 @@ mlrun/utils/azure_vault.py,sha256=IEFizrDGDbAaoWwDr1WoA88S_EZ0T--vjYtY-i0cvYQ,34
322
322
  mlrun/utils/clones.py,sha256=yXOeuLtgIiKZdmjeKK0Z_vIrH19ds5JuoJaCeDjhwOo,7516
323
323
  mlrun/utils/condition_evaluator.py,sha256=-nGfRmZzivn01rHTroiGY4rqEv8T1irMyhzxEei-sKc,1897
324
324
  mlrun/utils/db.py,sha256=blQgkWMfFH9lcN4sgJQcPQgEETz2Dl_zwbVA0SslpFg,2186
325
- mlrun/utils/helpers.py,sha256=w1dRGvgVuv8KX9aFhduWIOULv1yRZOMxFCLwN_LBQmk,77024
325
+ mlrun/utils/helpers.py,sha256=qB64U2US81iDKZ61Q8LvPZTlgFXZ0IDMGSyfnONHmAI,78813
326
326
  mlrun/utils/http.py,sha256=t6FrXQstZm9xVVjxqIGiLzrwZNCR4CSienSOuVgNIcI,8706
327
327
  mlrun/utils/logger.py,sha256=RG0m1rx6gfkJ-2C1r_p41MMpPiaDYqaYM2lYHDlNZEU,14767
328
328
  mlrun/utils/regex.py,sha256=jbR7IiOp6OO0mg9Fl_cVZCpWb9fL9nTPONCUxCDNWXg,5201
@@ -331,21 +331,21 @@ mlrun/utils/singleton.py,sha256=p1Y-X0mPSs_At092GS-pZCA8CTR62HOqPU07_ZH6-To,869
331
331
  mlrun/utils/v3io_clients.py,sha256=0aCFiQFBmgdSeLzJr_nEP6SG-zyieSgH8RdtcUq4dc0,1294
332
332
  mlrun/utils/vault.py,sha256=xUiKL17dCXjwQJ33YRzQj0oadUXATlFWPzKKYAESoQk,10447
333
333
  mlrun/utils/notifications/__init__.py,sha256=eUzQDBxSQmMZASRY-YAnYS6tL5801P0wEjycp3Dvoe0,990
334
- mlrun/utils/notifications/notification_pusher.py,sha256=38VcSCraW6Wy_DX10MpHoYQ7N1lQP87FL9os2GQ7IVk,26628
334
+ mlrun/utils/notifications/notification_pusher.py,sha256=s5Iu6u9_LXeVRPA70BNqrFIamTk7D3_AG6DH7K9qVQA,26668
335
335
  mlrun/utils/notifications/notification/__init__.py,sha256=9Rfy6Jm8n0LaEDO1VAQb6kIbr7_uVuQhK1pS_abELIY,2581
336
336
  mlrun/utils/notifications/notification/base.py,sha256=-9e3XqUixrWwImnTGrIL4enJRSIUP9gMrJVxwaLqeXc,5403
337
337
  mlrun/utils/notifications/notification/console.py,sha256=ICbIhOf9fEBJky_3j9TFiKAewDGyDHJr9l4VeT7G2sc,2745
338
338
  mlrun/utils/notifications/notification/git.py,sha256=t2lqRrPRBO4awf_uhxJreH9CpcbYSH8T3CvHtwspHkE,6306
339
339
  mlrun/utils/notifications/notification/ipython.py,sha256=9uZvI1uOLFaNuAsfJPXmL3l6dOzFoWdBK5GYNYFAfks,2282
340
340
  mlrun/utils/notifications/notification/mail.py,sha256=ZyJ3eqd8simxffQmXzqd3bgbAqp1vij7C6aRJ9h2mgs,6012
341
- mlrun/utils/notifications/notification/slack.py,sha256=eQvmctTh6wIG5xVOesLLV9S1-UUCu5UEQ9JIJOor3ts,7183
341
+ mlrun/utils/notifications/notification/slack.py,sha256=kfhogR5keR7Zjh0VCjJNK3NR5_yXT7Cv-x9GdOUW4Z8,7294
342
342
  mlrun/utils/notifications/notification/webhook.py,sha256=zxh8CAlbPnTazsk6r05X5TKwqUZVOH5KBU2fJbzQlG4,5330
343
343
  mlrun/utils/version/__init__.py,sha256=7kkrB7hEZ3cLXoWj1kPoDwo4MaswsI2JVOBpbKgPAgc,614
344
- mlrun/utils/version/version.json,sha256=LKT4ldQefqC3t14kvaT3JzTQYEXo11UmMlAxApIfid4,88
344
+ mlrun/utils/version/version.json,sha256=0KDOVrkEj6xzrlXk-swBxwCKTmKJFpwPcEISYHnkZyc,88
345
345
  mlrun/utils/version/version.py,sha256=eEW0tqIAkU9Xifxv8Z9_qsYnNhn3YH7NRAfM-pPLt1g,1878
346
- mlrun-1.9.0rc6.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
347
- mlrun-1.9.0rc6.dist-info/METADATA,sha256=TNNIE4xOpafcCHH1kRgORVUmANiLhs0toZ71XjnHYP0,25708
348
- mlrun-1.9.0rc6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
349
- mlrun-1.9.0rc6.dist-info/entry_points.txt,sha256=1Owd16eAclD5pfRCoJpYC2ZJSyGNTtUr0nCELMioMmU,46
350
- mlrun-1.9.0rc6.dist-info/top_level.txt,sha256=NObLzw3maSF9wVrgSeYBv-fgnHkAJ1kEkh12DLdd5KM,6
351
- mlrun-1.9.0rc6.dist-info/RECORD,,
346
+ mlrun-1.9.0rc7.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
347
+ mlrun-1.9.0rc7.dist-info/METADATA,sha256=NF4zWRstCbOQKe5_7kaLvP8ENRhlGNeY3S4ttpF33W4,25708
348
+ mlrun-1.9.0rc7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
349
+ mlrun-1.9.0rc7.dist-info/entry_points.txt,sha256=1Owd16eAclD5pfRCoJpYC2ZJSyGNTtUr0nCELMioMmU,46
350
+ mlrun-1.9.0rc7.dist-info/top_level.txt,sha256=NObLzw3maSF9wVrgSeYBv-fgnHkAJ1kEkh12DLdd5KM,6
351
+ mlrun-1.9.0rc7.dist-info/RECORD,,