diff --git a/data/sql/resources.sql b/data/sql/resources.sql index 06b0d15..513d458 100644 --- a/data/sql/resources.sql +++ b/data/sql/resources.sql @@ -25,7 +25,8 @@ CREATE TABLE resources ( type text NOT NULL REFERENCES resource_types(id), subtype text, creation_date timestamp NOT NULL DEFAULT now(), - modification_date timestamp NOT NULL DEFAULT now() + modification_date timestamp NOT NULL DEFAULT now(), + CONSTRAINT unique_name_type_constraint UNIQUE (name, type) ); CREATE VIEW resource_types_view AS ( diff --git a/dnet-app/apps/dnet-wf-manager/src/main/java/eu/dnetlib/wfs/manager/service/WorkflowManagerService.java b/dnet-app/apps/dnet-wf-manager/src/main/java/eu/dnetlib/wfs/manager/service/WorkflowManagerService.java index 9240db2..89add68 100644 --- a/dnet-app/apps/dnet-wf-manager/src/main/java/eu/dnetlib/wfs/manager/service/WorkflowManagerService.java +++ b/dnet-app/apps/dnet-wf-manager/src/main/java/eu/dnetlib/wfs/manager/service/WorkflowManagerService.java @@ -88,8 +88,12 @@ public class WorkflowManagerService { return conf; } - public WfTemplate findWfTemplate(final String id) { - return clientFactory.getClient(SimpleResourceClient.class).findResourceContent(WorkflowsConstants.WF_TEMPLATE, id, WfTemplate.class); + public WfTemplate findWfTemplate(final String name) { + return clientFactory.getClient(SimpleResourceClient.class).findResourceContent(WorkflowsConstants.WF_TEMPLATE, name, WfTemplate.class); + } + + public String findWfTemplateId(final String name) { + return clientFactory.getClient(SimpleResourceClient.class).findResource(WorkflowsConstants.WF_TEMPLATE, name).getId(); } @Transactional @@ -111,7 +115,8 @@ public class WorkflowManagerService { } public WfJournalEntry prepareNewJob(final WfConfiguration conf, final boolean destroy) { - final String wfTemplateId = destroy ? conf.getDestroyWf() : conf.getWorkflow(); + final String wfTemplateId = findWfTemplateId(destroy ? conf.getDestroyWf() : conf.getWorkflow()); + final String wfConfId = conf.getId(); final String name = conf.getName(); diff --git a/dnet-app/libs/dnet-app-common/src/main/java/eu/dnetlib/common/clients/SimpleResourceClient.java b/dnet-app/libs/dnet-app-common/src/main/java/eu/dnetlib/common/clients/SimpleResourceClient.java index 4e1d600..06a76b2 100644 --- a/dnet-app/libs/dnet-app-common/src/main/java/eu/dnetlib/common/clients/SimpleResourceClient.java +++ b/dnet-app/libs/dnet-app-common/src/main/java/eu/dnetlib/common/clients/SimpleResourceClient.java @@ -24,6 +24,10 @@ public class SimpleResourceClient extends DnetServiceClient { return httpGet("/api/resources/{id}/metadata", SimpleResource.class, Map.of("id", id)); } + public SimpleResource findResource(final String type, final String name) { + return httpGet("/api/resources/byType/{type}/{name}/metadata", SimpleResource.class, Map.of("type", type, "name", name)); + } + public T findResourceContent(final String id, final Class clazz) { return httpGet("/api/resources/{id}/content", clazz, Map.of("id", id)); } diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 2d71b1c..ec61ad1 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -132,7 +132,7 @@ services: - is-manager environment: - DNET_IS_URL=http://is-manager:${SPRING_BOOT_PORT} - - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_MAIN_DB} + - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_RESOURCES_DB} - SPRING_DATASOURCE_USERNAME=${PG_USER} - SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD} profiles: @@ -205,7 +205,7 @@ services: environment: POSTGRES_USER: ${PG_USER} POSTGRES_PASSWORD: ${PG_PASSWORD} - POSTGRES_DB: ${PG_MAIN_DB} + POSTGRES_DB: ${PG_RESOURCES_DB} POSTGRES_DB_DSM: ${PG_DSM_DB} POSTGRES_DB_WFS: ${PG_WFS_DB} POSTGRES_DB_VOCS: ${PG_VOCS_DB} diff --git a/docker-compose.yml b/docker-compose.yml index 7c4f50c..78c7fb5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -48,7 +48,7 @@ services: depends_on: - db-main environment: - - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_MAIN_DB} + - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_RESOURCES_DB} - SPRING_DATASOURCE_USERNAME=${PG_USER} - SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD} @@ -61,7 +61,7 @@ services: depends_on: - db-main environment: - - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_MAIN_DB} + - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_RESOURCES_DB} - SPRING_DATASOURCE_USERNAME=${PG_USER} - SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD} @@ -74,7 +74,7 @@ services: depends_on: - db-main environment: - - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_MAIN_DB} + - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_RESOURCES_DB} - SPRING_DATASOURCE_USERNAME=${PG_USER} - SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD} @@ -87,7 +87,7 @@ services: depends_on: - db-main environment: - - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_MAIN_DB} + - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_RESOURCES_DB} - SPRING_DATASOURCE_USERNAME=${PG_USER} - SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD} @@ -134,7 +134,7 @@ services: environment: POSTGRES_USER: ${PG_USER} POSTGRES_PASSWORD: ${PG_PASSWORD} - POSTGRES_DB: ${PG_MAIN_DB} + POSTGRES_DB: ${PG_RESOURCES_DB} POSTGRES_DB_DSM: ${PG_DSM_DB} POSTGRES_DB_WFS: ${PG_WFS_DB} POSTGRES_DB_VOCS: ${PG_VOCS_DB} diff --git a/start.sh b/start.sh index 2f49ec3..e22949e 100755 --- a/start.sh +++ b/start.sh @@ -9,7 +9,7 @@ export SOLR_PORT=8983 export PG_PORT=5432 export PG_USER=dnet export PG_PASSWORD=ax45vs#1A -export PG_MAIN_DB=dnet_is +export PG_RESOURCES_DB=dnet_resources export PG_DSM_DB=dnet_dsm export PG_MDSTORES_DB=dnet_mdstores export PG_WFS_DB=dnet_wfs