airflow-unicore-integration 0.1.6__tar.gz → 0.1.8__tar.gz

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.
Files changed (21) hide show
  1. {airflow_unicore_integration-0.1.6/src/airflow_unicore_integration.egg-info → airflow_unicore_integration-0.1.8}/PKG-INFO +1 -1
  2. {airflow_unicore_integration-0.1.6 → airflow_unicore_integration-0.1.8}/pyproject.toml +1 -1
  3. {airflow_unicore_integration-0.1.6 → airflow_unicore_integration-0.1.8}/src/airflow_unicore_integration/__init__.py +3 -0
  4. {airflow_unicore_integration-0.1.6 → airflow_unicore_integration-0.1.8}/src/airflow_unicore_integration/executors/unicore_executor.py +16 -15
  5. {airflow_unicore_integration-0.1.6 → airflow_unicore_integration-0.1.8/src/airflow_unicore_integration.egg-info}/PKG-INFO +1 -1
  6. {airflow_unicore_integration-0.1.6 → airflow_unicore_integration-0.1.8}/LICENSE +0 -0
  7. {airflow_unicore_integration-0.1.6 → airflow_unicore_integration-0.1.8}/README.rst +0 -0
  8. {airflow_unicore_integration-0.1.6 → airflow_unicore_integration-0.1.8}/setup.cfg +0 -0
  9. {airflow_unicore_integration-0.1.6 → airflow_unicore_integration-0.1.8}/src/airflow_unicore_integration/executors/__init__.py +0 -0
  10. {airflow_unicore_integration-0.1.6 → airflow_unicore_integration-0.1.8}/src/airflow_unicore_integration/executors/run_task_via_supervisor.py +0 -0
  11. {airflow_unicore_integration-0.1.6 → airflow_unicore_integration-0.1.8}/src/airflow_unicore_integration/hooks/__init__.py +0 -0
  12. {airflow_unicore_integration-0.1.6 → airflow_unicore_integration-0.1.8}/src/airflow_unicore_integration/hooks/unicore_hooks.py +0 -0
  13. {airflow_unicore_integration-0.1.6 → airflow_unicore_integration-0.1.8}/src/airflow_unicore_integration/operators/__init__.py +0 -0
  14. {airflow_unicore_integration-0.1.6 → airflow_unicore_integration-0.1.8}/src/airflow_unicore_integration/operators/unicore_operators.py +0 -0
  15. {airflow_unicore_integration-0.1.6 → airflow_unicore_integration-0.1.8}/src/airflow_unicore_integration/policies/__init__.py +0 -0
  16. {airflow_unicore_integration-0.1.6 → airflow_unicore_integration-0.1.8}/src/airflow_unicore_integration/util/job.py +0 -0
  17. {airflow_unicore_integration-0.1.6 → airflow_unicore_integration-0.1.8}/src/airflow_unicore_integration.egg-info/SOURCES.txt +0 -0
  18. {airflow_unicore_integration-0.1.6 → airflow_unicore_integration-0.1.8}/src/airflow_unicore_integration.egg-info/dependency_links.txt +0 -0
  19. {airflow_unicore_integration-0.1.6 → airflow_unicore_integration-0.1.8}/src/airflow_unicore_integration.egg-info/entry_points.txt +0 -0
  20. {airflow_unicore_integration-0.1.6 → airflow_unicore_integration-0.1.8}/src/airflow_unicore_integration.egg-info/requires.txt +0 -0
  21. {airflow_unicore_integration-0.1.6 → airflow_unicore_integration-0.1.8}/src/airflow_unicore_integration.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airflow-unicore-integration
3
- Version: 0.1.6
3
+ Version: 0.1.8
4
4
  Summary: Running Unicore Jobs from airflow DAGs.
5
5
  Author-email: Christian Böttcher <c.boettcher@fz-juelich.de>
6
6
  License-Expression: BSD-3-Clause
@@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
7
7
 
8
8
  [project]
9
9
  name = "airflow-unicore-integration"
10
- version = "0.1.6"
10
+ version = "0.1.8"
11
11
  authors = [
12
12
  { name="Christian Böttcher", email="c.boettcher@fz-juelich.de" },
13
13
  ]
@@ -9,4 +9,7 @@ def get_provider_info():
9
9
  "hook-class-name": "airflow_unicore_integration.hooks.unicore_hooks.UnicoreHook",
10
10
  }
11
11
  ],
12
+ "executors": [
13
+ "airflow_unicore_integration.executors.unicore_executor.UnicoreExecutor",
14
+ ],
12
15
  }
@@ -19,8 +19,8 @@ from airflow.executors.workloads import All
19
19
  from airflow.executors.workloads import ExecuteTask
20
20
  from airflow.models.taskinstancekey import TaskInstanceKey
21
21
  from airflow.utils.state import TaskInstanceState
22
-
23
- from airflow_unicore_integration.hooks import unicore_hooks
22
+ from pyunicore import client
23
+ from pyunicore.credentials import create_credential
24
24
 
25
25
  from ..util.job import JobDescriptionGenerator
26
26
  from ..util.job import NaiveJobDescriptionGenerator
@@ -47,7 +47,6 @@ class UnicoreExecutor(BaseExecutor):
47
47
 
48
48
  def start(self):
49
49
  self.active_jobs: Dict[TaskInstanceKey, uc_client.Job] = {}
50
- self.uc_conn = unicore_hooks.UnicoreHook().get_conn()
51
50
  # TODO get job description generator class and init params from config
52
51
  self.job_descr_generator: JobDescriptionGenerator = NaiveJobDescriptionGenerator()
53
52
 
@@ -73,23 +72,25 @@ class UnicoreExecutor(BaseExecutor):
73
72
  return []
74
73
 
75
74
  def _get_unicore_client(self, executor_config: dict | None = {}):
76
- return self.uc_conn
77
- # include client desires from executor_config
78
- unicore_conn_id = executor_config.get( # type: ignore
79
- UnicoreExecutor.EXECUTOR_CONFIG_UNICORE_CONN_KEY,
80
- conf.get("unicore.executor", "UNICORE_CONN_ID"),
81
- ) # task can provide a different unicore connection to use, else airflow-wide default is used
82
- self.log.info(f"Using base unicore connection with id '{unicore_conn_id}'")
83
- hook = unicore_hooks.UnicoreHook(uc_conn_id=unicore_conn_id)
84
- unicore_site = executor_config.get( # type: ignore
75
+ overwrite_unicore_site = executor_config.get( # type: ignore
85
76
  UnicoreExecutor.EXECUTOR_CONFIG_UNICORE_SITE_KEY, None
86
77
  ) # task can provide a different site to run at, else default from connetion is used
87
- unicore_credential = executor_config.get( # type: ignore
78
+ overwrite_unicore_credential = executor_config.get( # type: ignore
88
79
  UnicoreExecutor.EXECUTOR_CONFIG_UNICORE_CREDENTIAL_KEY, None
89
80
  ) # task can provide a different credential to use, else default from connection is used
90
- return hook.get_conn(
91
- overwrite_base_url=unicore_site, overwrite_credential=unicore_credential
81
+ token = conf.get("unicore.executor", "AUTH_TOKEN", fallback="")
82
+ base_url = conf.get(
83
+ "unicore.executor", "DEFAULT_URL", fallback="http://localhost:8080/DEMO-SITE/rest/core"
92
84
  )
85
+ credential = create_credential(token=token)
86
+ if overwrite_unicore_site is not None:
87
+ base_url = overwrite_unicore_site
88
+ if overwrite_unicore_credential is not None:
89
+ credential = overwrite_unicore_credential
90
+ if not base_url:
91
+ raise TypeError()
92
+ conn = client.Client(credential, base_url)
93
+ return conn
93
94
 
94
95
  def _submit_job(self, workload: ExecuteTask):
95
96
  uc_client = self._get_unicore_client(executor_config=workload.ti.executor_config)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airflow-unicore-integration
3
- Version: 0.1.6
3
+ Version: 0.1.8
4
4
  Summary: Running Unicore Jobs from airflow DAGs.
5
5
  Author-email: Christian Böttcher <c.boettcher@fz-juelich.de>
6
6
  License-Expression: BSD-3-Clause