Skip to content

Commit c04f3be

Browse files
authored
Make connector work with taxonomies (#566)
* Specify a user to allow bypassing of taxonomies * Start connector immediately in a dev setup
1 parent a900f06 commit c04f3be

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

docker-compose.dev.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,16 @@ services:
3939
volumes:
4040
- ./src:/app:ro
4141
- ./connectors/openml/:/opt/connectors/script:ro
42+
command: >
43+
/bin/bash -c "mkdir -p /opt/connectors/data/openml/dataset && /opt/connectors/script/datasets.sh"
44+
# /bin/bash -c "mkdir -p /opt/connectors/data/openml/dataset && /opt/connectors/script/datasets.sh"
4245
4346
zenodo-dataset-connector:
4447
volumes:
4548
- ./src:/app:ro
4649
- ./connectors/zenodo/:/opt/connectors/script:ro
50+
command: >
51+
/bin/bash -c "mkdir -p /opt/connectors/data/zenodo/dataset && /opt/connectors/script/datasets.sh"
4752
4853
es_logstash_setup:
4954
volumes:

src/connectors/synchronization.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ def save_to_database(
8989
connector: ResourceConnector,
9090
router: ResourceRouter,
9191
item: RESOURCE | ResourceWithRelations[RESOURCE] | RecordError,
92+
user,
9293
) -> Optional[RecordError]:
9394
if isinstance(item, RecordError):
9495
return item
@@ -103,7 +104,7 @@ def save_to_database(
103104
)
104105
# TODO: if not None, update (https://github.com/aiondemand/AIOD-rest-api/issues/131)
105106
if existing is None:
106-
resource = router.create_resource(session, resource_create_instance)
107+
resource = router.create_resource(session, resource_create_instance, user)
107108
publish_resource(session, resource)
108109

109110
except Exception as e:
@@ -217,9 +218,18 @@ def main():
217218
if router.resource_class == connector.resource_class
218219
]
219220

221+
class ConnectorUser:
222+
def is_connector(self) -> bool:
223+
return True
224+
225+
def is_connector_for_platform(self, platform: str) -> bool:
226+
return platform == connector.platform_name
227+
220228
with DbSession() as session:
221229
for i, item in enumerate(items):
222-
error = save_to_database(router=router, connector=connector, session=session, item=item)
230+
error = save_to_database(
231+
router=router, connector=connector, session=session, item=item, user=ConnectorUser()
232+
)
223233
if error:
224234
if not error.ignore:
225235
if isinstance(error.error, str):

0 commit comments

Comments
 (0)