This is an automated email from the ASF dual-hosted git repository.
riemer pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/streampipes.git
The following commit(s) were added to refs/heads/dev by this push:
new 0f6bcf55f Rename endpoint to fetch all pipelines from API (#1333)
(#1334)
0f6bcf55f is described below
commit 0f6bcf55f27b1c0640dd3adf9abef7b8dbc92289
Author: Dominik Riemer <[email protected]>
AuthorDate: Tue Feb 21 14:03:35 2023 +0100
Rename endpoint to fetch all pipelines from API (#1333) (#1334)
* Rename endpoint to fetch all pipelines from API (#1333)
* Harmonize REST endpoints for retrieval of pipeline elements (#1333)
---
.../org/apache/streampipes/client/api/DataProcessorApi.java | 3 +--
.../java/org/apache/streampipes/client/api/DataSinkApi.java | 3 +--
.../org/apache/streampipes/client/api/DataStreamApi.java | 3 +--
.../java/org/apache/streampipes/client/api/PipelineApi.java | 2 +-
.../management/AbstractPipelineElementResourceManager.java | 9 ++++++++-
.../streampipes/rest/impl/pe/DataProcessorResource.java | 12 ++++++++----
.../apache/streampipes/rest/impl/pe/DataSinkResource.java | 12 ++++++++----
.../apache/streampipes/rest/impl/pe/DataStreamResource.java | 9 +++++++--
.../src/lib/apis/pipeline-element.service.ts | 6 +++---
.../platform-services/src/lib/apis/pipeline.service.ts | 12 ++----------
ui/src/app/assets/dialog/base-asset-links.directive.ts | 2 +-
ui/src/app/home/components/status.component.ts | 2 +-
ui/src/app/notifications/notifications.component.ts | 2 +-
ui/src/app/pipelines/pipelines.component.ts | 2 +-
14 files changed, 44 insertions(+), 35 deletions(-)
diff --git
a/streampipes-client/src/main/java/org/apache/streampipes/client/api/DataProcessorApi.java
b/streampipes-client/src/main/java/org/apache/streampipes/client/api/DataProcessorApi.java
index 983dc4848..656d5cf18 100644
---
a/streampipes-client/src/main/java/org/apache/streampipes/client/api/DataProcessorApi.java
+++
b/streampipes-client/src/main/java/org/apache/streampipes/client/api/DataProcessorApi.java
@@ -39,8 +39,7 @@ public class DataProcessorApi extends
AbstractTypedClientApi<DataProcessorInvoca
@Override
protected StreamPipesApiPath getBaseResourcePath() {
return StreamPipesApiPath.fromBaseApiPath()
- .addToPath("sepas")
- .addToPath("own");
+ .addToPath("sepas");
}
@Override
diff --git
a/streampipes-client/src/main/java/org/apache/streampipes/client/api/DataSinkApi.java
b/streampipes-client/src/main/java/org/apache/streampipes/client/api/DataSinkApi.java
index b6a574fa0..d53d21047 100644
---
a/streampipes-client/src/main/java/org/apache/streampipes/client/api/DataSinkApi.java
+++
b/streampipes-client/src/main/java/org/apache/streampipes/client/api/DataSinkApi.java
@@ -100,7 +100,6 @@ public class DataSinkApi extends
AbstractTypedClientApi<DataSinkInvocation>
@Override
protected StreamPipesApiPath getBaseResourcePath() {
return StreamPipesApiPath.fromBaseApiPath()
- .addToPath("actions")
- .addToPath("own");
+ .addToPath("actions");
}
}
diff --git
a/streampipes-client/src/main/java/org/apache/streampipes/client/api/DataStreamApi.java
b/streampipes-client/src/main/java/org/apache/streampipes/client/api/DataStreamApi.java
index 935c474ff..d3b8d2842 100644
---
a/streampipes-client/src/main/java/org/apache/streampipes/client/api/DataStreamApi.java
+++
b/streampipes-client/src/main/java/org/apache/streampipes/client/api/DataStreamApi.java
@@ -103,7 +103,6 @@ public class DataStreamApi extends
AbstractTypedClientApi<SpDataStream> implemen
@Override
protected StreamPipesApiPath getBaseResourcePath() {
return StreamPipesApiPath.fromBaseApiPath()
- .addToPath("streams")
- .addToPath("own");
+ .addToPath("streams");
}
}
diff --git
a/streampipes-client/src/main/java/org/apache/streampipes/client/api/PipelineApi.java
b/streampipes-client/src/main/java/org/apache/streampipes/client/api/PipelineApi.java
index c49e2511a..c599fee2d 100644
---
a/streampipes-client/src/main/java/org/apache/streampipes/client/api/PipelineApi.java
+++
b/streampipes-client/src/main/java/org/apache/streampipes/client/api/PipelineApi.java
@@ -43,7 +43,7 @@ public class PipelineApi extends
AbstractTypedClientApi<Pipeline> implements CRU
*/
@Override
public List<Pipeline> all() {
- return getAll(getBaseResourcePath().addToPath("own"));
+ return getAll(getBaseResourcePath());
}
@Override
diff --git
a/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/AbstractPipelineElementResourceManager.java
b/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/AbstractPipelineElementResourceManager.java
index 7dacac05e..da3aed981 100644
---
a/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/AbstractPipelineElementResourceManager.java
+++
b/streampipes-resource-management/src/main/java/org/apache/streampipes/resource/management/AbstractPipelineElementResourceManager.java
@@ -23,6 +23,7 @@ import org.apache.streampipes.model.client.user.Permission;
import org.apache.streampipes.storage.api.CRUDStorage;
import java.util.List;
+import java.util.Objects;
import java.util.stream.Collectors;
public abstract class AbstractPipelineElementResourceManager<T extends
CRUDStorage<String, W>,
@@ -43,6 +44,7 @@ public abstract class
AbstractPipelineElementResourceManager<T extends CRUDStora
public List<X> findAllAsInvocation() {
return findAll()
.stream()
+ .filter(Objects::nonNull)
.map(this::toInvocation)
.collect(Collectors.toList());
}
@@ -52,7 +54,12 @@ public abstract class
AbstractPipelineElementResourceManager<T extends CRUDStora
}
public X findAsInvocation(String elementId) {
- return toInvocation(find(elementId));
+ var element = find(elementId);
+ if (Objects.nonNull(element)) {
+ return toInvocation(find(elementId));
+ } else {
+ throw new IllegalArgumentException("Could not find element with id " +
elementId);
+ }
}
public void delete(String elementId) {
diff --git
a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/pe/DataProcessorResource.java
b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/pe/DataProcessorResource.java
index 31991bf87..2d2ea2cc8 100644
---
a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/pe/DataProcessorResource.java
+++
b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/pe/DataProcessorResource.java
@@ -18,6 +18,7 @@
package org.apache.streampipes.rest.impl.pe;
+import org.apache.streampipes.model.StreamPipesErrorMessage;
import org.apache.streampipes.model.graph.DataProcessorDescription;
import org.apache.streampipes.model.graph.DataProcessorInvocation;
import org.apache.streampipes.model.message.NotificationType;
@@ -55,7 +56,6 @@ public class DataProcessorResource extends
AbstractAuthGuardedRestResource {
}
@GET
- @Path("/own")
@JacksonSerialized
@Produces({MediaType.APPLICATION_JSON})
@PreAuthorize(AuthConstants.HAS_READ_PIPELINE_ELEMENT_PRIVILEGE)
@@ -65,7 +65,7 @@ public class DataProcessorResource extends
AbstractAuthGuardedRestResource {
}
@DELETE
- @Path("/own/{elementId}")
+ @Path("/{elementId}")
@Produces(MediaType.APPLICATION_JSON)
@JacksonSerialized
@PreAuthorize(AuthConstants.HAS_DELETE_PIPELINE_ELEMENT_PRIVILEGE)
@@ -79,8 +79,12 @@ public class DataProcessorResource extends
AbstractAuthGuardedRestResource {
@Produces(MediaType.APPLICATION_JSON)
@JacksonSerialized
@PreAuthorize(AuthConstants.HAS_READ_PIPELINE_ELEMENT_PRIVILEGE)
- public DataProcessorInvocation getElement(@PathParam("elementId") String
elementId) {
- return getDataProcessorResourceManager().findAsInvocation(elementId);
+ public Response getElement(@PathParam("elementId") String elementId) {
+ try {
+ return ok(getDataProcessorResourceManager().findAsInvocation(elementId));
+ } catch (IllegalArgumentException e) {
+ return badRequest(StreamPipesErrorMessage.from(e));
+ }
}
private DataProcessorResourceManager getDataProcessorResourceManager() {
diff --git
a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/pe/DataSinkResource.java
b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/pe/DataSinkResource.java
index b289af8bf..8eb7deceb 100644
---
a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/pe/DataSinkResource.java
+++
b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/pe/DataSinkResource.java
@@ -18,6 +18,7 @@
package org.apache.streampipes.rest.impl.pe;
+import org.apache.streampipes.model.StreamPipesErrorMessage;
import org.apache.streampipes.model.graph.DataSinkDescription;
import org.apache.streampipes.model.graph.DataSinkInvocation;
import org.apache.streampipes.model.message.NotificationType;
@@ -56,7 +57,6 @@ public class DataSinkResource extends
AbstractAuthGuardedRestResource {
}
@GET
- @Path("/own")
@Produces({MediaType.APPLICATION_JSON, SpMediaType.JSONLD})
@JacksonSerialized
@PreAuthorize(AuthConstants.HAS_READ_PIPELINE_ELEMENT_PRIVILEGE)
@@ -66,7 +66,7 @@ public class DataSinkResource extends
AbstractAuthGuardedRestResource {
}
@DELETE
- @Path("/own/{elementId}")
+ @Path("/{elementId}")
@Produces(MediaType.APPLICATION_JSON)
@JacksonSerialized
@PreAuthorize(AuthConstants.HAS_DELETE_PIPELINE_ELEMENT_PRIVILEGE)
@@ -80,8 +80,12 @@ public class DataSinkResource extends
AbstractAuthGuardedRestResource {
@Produces(MediaType.APPLICATION_JSON)
@JacksonSerialized
@PreAuthorize(AuthConstants.HAS_READ_PIPELINE_ELEMENT_PRIVILEGE)
- public DataSinkInvocation getElement(@PathParam("elementId") String
elementId) {
- return getDataSinkResourceManager().findAsInvocation(elementId);
+ public Response getElement(@PathParam("elementId") String elementId) {
+ try {
+ return ok(getDataSinkResourceManager().findAsInvocation(elementId));
+ } catch (IllegalArgumentException e) {
+ return badRequest(StreamPipesErrorMessage.from(e));
+ }
}
private DataSinkResourceManager getDataSinkResourceManager() {
diff --git
a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/pe/DataStreamResource.java
b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/pe/DataStreamResource.java
index 760d664f9..09b79877c 100644
---
a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/pe/DataStreamResource.java
+++
b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/pe/DataStreamResource.java
@@ -19,6 +19,7 @@
package org.apache.streampipes.rest.impl.pe;
import org.apache.streampipes.model.SpDataStream;
+import org.apache.streampipes.model.StreamPipesErrorMessage;
import org.apache.streampipes.model.message.NotificationType;
import org.apache.streampipes.resource.management.DataStreamResourceManager;
import
org.apache.streampipes.rest.core.base.impl.AbstractAuthGuardedRestResource;
@@ -80,8 +81,12 @@ public class DataStreamResource extends
AbstractAuthGuardedRestResource {
@Produces(MediaType.APPLICATION_JSON)
@JacksonSerialized
@PreAuthorize(AuthConstants.HAS_READ_PIPELINE_ELEMENT_PRIVILEGE)
- public SpDataStream getElement(@PathParam("elementId") String elementId) {
- return getDataStreamResourceManager().findAsInvocation(elementId);
+ public Response getElement(@PathParam("elementId") String elementId) {
+ try {
+ return ok(getDataStreamResourceManager().findAsInvocation(elementId));
+ } catch (IllegalArgumentException e) {
+ return badRequest(StreamPipesErrorMessage.from(e));
+ }
}
@POST
diff --git
a/ui/projects/streampipes/platform-services/src/lib/apis/pipeline-element.service.ts
b/ui/projects/streampipes/platform-services/src/lib/apis/pipeline-element.service.ts
index 51bf9ed54..66aa59918 100644
---
a/ui/projects/streampipes/platform-services/src/lib/apis/pipeline-element.service.ts
+++
b/ui/projects/streampipes/platform-services/src/lib/apis/pipeline-element.service.ts
@@ -38,7 +38,7 @@ export class PipelineElementService {
) {}
getDataProcessors(): Observable<DataProcessorInvocation[]> {
- return this.http.get(this.dataProcessorsUrl + '/own').pipe(
+ return this.http.get(this.dataProcessorsUrl).pipe(
map(data => {
return (data as []).map(dpi =>
DataProcessorInvocation.fromData(dpi),
@@ -48,7 +48,7 @@ export class PipelineElementService {
}
getDataSinks(): Observable<DataSinkInvocation[]> {
- return this.http.get(this.dataSinksUrl + '/own').pipe(
+ return this.http.get(this.dataSinksUrl).pipe(
map(data => {
return (data as []).map(dpi =>
DataSinkInvocation.fromData(dpi),
@@ -58,7 +58,7 @@ export class PipelineElementService {
}
getDataStreams(): Observable<SpDataStream[]> {
- return this.http.get(this.dataStreamsUrl + '/own').pipe(
+ return this.http.get(this.dataStreamsUrl).pipe(
map(data => {
return (data as []).map(dpi => {
if (
diff --git
a/ui/projects/streampipes/platform-services/src/lib/apis/pipeline.service.ts
b/ui/projects/streampipes/platform-services/src/lib/apis/pipeline.service.ts
index 734a7c1a3..5a11c93a8 100644
--- a/ui/projects/streampipes/platform-services/src/lib/apis/pipeline.service.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/apis/pipeline.service.ts
@@ -116,8 +116,8 @@ export class PipelineService {
);
}
- getOwnPipelines(): Observable<Pipeline[]> {
- return this.http.get(`${this.apiBasePath}/pipelines/own`).pipe(
+ getPipelines(): Observable<Pipeline[]> {
+ return this.http.get(`${this.apiBasePath}/pipelines`).pipe(
map(response => {
return (response as any[]).map(p => Pipeline.fromData(p));
}),
@@ -128,14 +128,6 @@ export class PipelineService {
return this.http.delete(`${this.apiBasePath}/pipelines/${pipelineId}`);
}
- getSystemPipelines(): Observable<Pipeline[]> {
- return this.http.get(`${this.apiBasePath}/pipelines/system`).pipe(
- map(response => {
- return (response as any[]).map(p => Pipeline.fromData(p));
- }),
- );
- }
-
getPipelineStatusById(pipelineId): Observable<PipelineStatusMessage[]> {
return this.http
.get(`${this.apiBasePath}/pipelines/${pipelineId}/status`)
diff --git a/ui/src/app/assets/dialog/base-asset-links.directive.ts
b/ui/src/app/assets/dialog/base-asset-links.directive.ts
index 6c29c9ece..b7ec09568 100644
--- a/ui/src/app/assets/dialog/base-asset-links.directive.ts
+++ b/ui/src/app/assets/dialog/base-asset-links.directive.ts
@@ -65,7 +65,7 @@ export abstract class BaseAssetLinksDirective {
getAllResources() {
zip(
- this.pipelineService.getOwnPipelines(),
+ this.pipelineService.getPipelines(),
this.dataViewService.getDataViews(),
this.dashboardService.getDashboards(),
this.pipelineElementService.getDataStreams(),
diff --git a/ui/src/app/home/components/status.component.ts
b/ui/src/app/home/components/status.component.ts
index 4963dc5d9..08f491a00 100644
--- a/ui/src/app/home/components/status.component.ts
+++ b/ui/src/app/home/components/status.component.ts
@@ -53,7 +53,7 @@ export class StatusComponent implements OnInit {
}
getPipelines() {
- this.pipelineService.getOwnPipelines().subscribe(pipelines => {
+ this.pipelineService.getPipelines().subscribe(pipelines => {
this.pipelines = pipelines.length;
this.runningPipelines = pipelines.filter(p => p.running).length;
});
diff --git a/ui/src/app/notifications/notifications.component.ts
b/ui/src/app/notifications/notifications.component.ts
index 515885c95..e7d02be34 100644
--- a/ui/src/app/notifications/notifications.component.ts
+++ b/ui/src/app/notifications/notifications.component.ts
@@ -167,7 +167,7 @@ export class NotificationsComponent implements OnInit,
OnDestroy {
getPipelinesWithNotifications() {
this.notificationsLoading = true;
- this.pipelineService.getOwnPipelines().subscribe(pipelines => {
+ this.pipelineService.getPipelines().subscribe(pipelines => {
this.existingNotifications =
this.getAllExistingNotifications(pipelines);
this.notificationsLoading = false;
diff --git a/ui/src/app/pipelines/pipelines.component.ts
b/ui/src/app/pipelines/pipelines.component.ts
index d5ceba5de..69d5994da 100644
--- a/ui/src/app/pipelines/pipelines.component.ts
+++ b/ui/src/app/pipelines/pipelines.component.ts
@@ -124,7 +124,7 @@ export class PipelinesComponent implements OnInit {
getPipelines() {
this.pipelines = [];
- this.pipelineService.getOwnPipelines().subscribe(pipelines => {
+ this.pipelineService.getPipelines().subscribe(pipelines => {
this.pipelines = pipelines;
this.checkForImmediateStart(pipelines);
this.pipelinesReady = true;