You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by mc...@apache.org on 2016/04/21 23:30:36 UTC
[10/10] nifi git commit: NIFI-1554: - Introducing new REST endpoints
to align with the authorizable resources. - Additionally changes to support
the new endpoints. - Addressing comments in PR. - This closes #374.
NIFI-1554:
- Introducing new REST endpoints to align with the authorizable resources.
- Additionally changes to support the new endpoints.
- Addressing comments in PR.
- This closes #374.
Project: http://git-wip-us.apache.org/repos/asf/nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/add29816
Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/add29816
Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/add29816
Branch: refs/heads/master
Commit: add298168dcfe2d841d81d7680ea5a1179f5eb2b
Parents: 3239869
Author: Matt Gilman <ma...@gmail.com>
Authored: Thu Apr 21 17:19:21 2016 -0400
Committer: Matt Gilman <ma...@gmail.com>
Committed: Thu Apr 21 17:29:58 2016 -0400
----------------------------------------------------------------------
.../authorization/AuthorizerFactoryBean.java | 2 +-
.../org/apache/nifi/web/api/dto/AboutDTO.java | 31 +
.../web/api/dto/ControllerConfigurationDTO.java | 31 -
.../apache/nifi/web/api/dto/ResourceDTO.java | 65 +
.../api/entity/CopySnippetRequestEntity.java | 65 +
.../api/entity/CreateTemplateRequestEntity.java | 65 +
.../InstantiateTemplateRequestEntity.java | 65 +
.../nifi/web/api/entity/ResourcesEntity.java | 45 +
.../api/entity/SubmitReplayRequestEntity.java | 53 +
.../authorization/resource/ResourceType.java | 1 +
.../cluster/manager/impl/WebClusterManager.java | 36 +-
.../org/apache/nifi/groups/ProcessGroup.java | 21 +
.../nifi-framework/nifi-framework-core/pom.xml | 4 +
.../nifi/groups/StandardProcessGroup.java | 39 +
.../nifi/remote/StandardRemoteProcessGroup.java | 8 +-
.../nifi-web/nifi-web-api/pom.xml | 5 +
.../org/apache/nifi/web/NiFiServiceFacade.java | 10 +
.../web/NiFiWebApiSecurityConfiguration.java | 8 -
.../nifi/web/StandardNiFiContentAccess.java | 17 +-
.../nifi/web/StandardNiFiServiceFacade.java | 15 +-
.../StandardNiFiWebConfigurationContext.java | 8 +-
.../org/apache/nifi/web/api/AccessResource.java | 6 +-
.../nifi/web/api/ApplicationResource.java | 6 +
.../nifi/web/api/BulletinBoardResource.java | 187 --
.../apache/nifi/web/api/ClusterResource.java | 2 +-
.../apache/nifi/web/api/ConnectionResource.java | 822 +--------
.../apache/nifi/web/api/ControllerResource.java | 863 ++-------
.../nifi/web/api/ControllerServiceResource.java | 184 +-
.../nifi/web/api/FlowFileQueueResource.java | 755 ++++++++
.../org/apache/nifi/web/api/FlowResource.java | 1653 +++++++++++++++++
.../org/apache/nifi/web/api/FunnelResource.java | 7 +-
.../apache/nifi/web/api/HistoryResource.java | 7 +-
.../apache/nifi/web/api/InputPortResource.java | 114 +-
.../org/apache/nifi/web/api/LabelResource.java | 7 +-
.../apache/nifi/web/api/OutputPortResource.java | 114 +-
.../nifi/web/api/ProcessGroupResource.java | 1663 ++++++++++++------
.../apache/nifi/web/api/ProcessorResource.java | 178 +-
.../apache/nifi/web/api/ProvenanceResource.java | 266 +--
.../web/api/RemoteProcessGroupResource.java | 245 +--
.../nifi/web/api/ReportingTaskResource.java | 188 +-
.../apache/nifi/web/api/ResourceResource.java | 125 ++
.../apache/nifi/web/api/SiteToSiteResource.java | 126 ++
.../apache/nifi/web/api/SnippetResource.java | 664 -------
.../nifi/web/api/SystemDiagnosticsResource.java | 13 +-
.../apache/nifi/web/api/TemplateResource.java | 295 +---
.../org/apache/nifi/web/api/dto/DtoFactory.java | 15 +
.../nifi/web/controller/ControllerFacade.java | 81 +
.../nifi/web/filter/NodeRequestFilter.java | 10 -
.../src/main/resources/nifi-web-api-context.xml | 33 +-
.../src/main/webapp/js/application.js | 4 +-
.../anonymous/NiFiAnonymousUserFilter.java | 10 +-
.../nifi-framework/nifi-web/nifi-web-ui/pom.xml | 2 +
.../apache/nifi/web/filter/IeEdgeHeader.java | 56 -
.../resources/filters/provenance.properties | 3 +-
.../main/resources/filters/summary.properties | 1 +
.../src/main/webapp/WEB-INF/pages/canvas.jsp | 1 +
.../main/webapp/WEB-INF/pages/provenance.jsp | 1 +
.../src/main/webapp/WEB-INF/pages/summary.jsp | 1 +
.../partials/templates/templates-content.jsp | 4 +-
.../nifi-web-ui/src/main/webapp/WEB-INF/web.xml | 9 -
.../propertytable/jquery.propertytable.js | 2 +-
.../js/nf/bulletin-board/nf-bulletin-board.js | 8 +-
.../src/main/webapp/js/nf/canvas/nf-actions.js | 25 +-
.../webapp/js/nf/canvas/nf-canvas-header.js | 19 +-
.../webapp/js/nf/canvas/nf-canvas-toolbox.js | 23 +-
.../src/main/webapp/js/nf/canvas/nf-canvas.js | 157 +-
.../js/nf/canvas/nf-connection-configuration.js | 2 +-
.../js/nf/canvas/nf-controller-service.js | 2 +-
.../webapp/js/nf/canvas/nf-queue-listing.js | 2 +-
.../src/main/webapp/js/nf/canvas/nf-search.js | 2 +-
.../src/main/webapp/js/nf/canvas/nf-settings.js | 27 +-
.../src/main/webapp/js/nf/canvas/nf-snippet.js | 130 +-
.../src/main/webapp/js/nf/cluster/nf-cluster.js | 6 +-
.../main/webapp/js/nf/counters/nf-counters.js | 6 +-
.../src/main/webapp/js/nf/history/nf-history.js | 6 +-
.../src/main/webapp/js/nf/login/nf-login.js | 2 +-
.../src/main/webapp/js/nf/nf-common.js | 13 -
.../src/main/webapp/js/nf/nf-status-history.js | 11 +-
.../js/nf/provenance/nf-provenance-lineage.js | 15 +-
.../js/nf/provenance/nf-provenance-table.js | 81 +-
.../webapp/js/nf/provenance/nf-provenance.js | 63 +-
.../webapp/js/nf/summary/nf-cluster-search.js | 4 +-
.../webapp/js/nf/summary/nf-summary-table.js | 65 +-
.../src/main/webapp/js/nf/summary/nf-summary.js | 6 +-
.../js/nf/templates/nf-templates-table.js | 31 +-
.../main/webapp/js/nf/templates/nf-templates.js | 21 +-
86 files changed, 5139 insertions(+), 4905 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/authorization/AuthorizerFactoryBean.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/authorization/AuthorizerFactoryBean.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/authorization/AuthorizerFactoryBean.java
index cf35c15..3d3e826 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/authorization/AuthorizerFactoryBean.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/authorization/AuthorizerFactoryBean.java
@@ -136,7 +136,7 @@ public class AuthorizerFactoryBean implements FactoryBean, DisposableBean, Autho
final JAXBElement<Authorizers> element = unmarshaller.unmarshal(new StreamSource(authorizersConfigurationFile), Authorizers.class);
return element.getValue();
} catch (SAXException | JAXBException e) {
- throw new Exception("Unable to load the authorizer configuration file at: " + authorizersConfigurationFile.getAbsolutePath());
+ throw new Exception("Unable to load the authorizer configuration file at: " + authorizersConfigurationFile.getAbsolutePath(), e);
}
} else {
throw new Exception("Unable to find the authorizer configuration file at " + authorizersConfigurationFile.getAbsolutePath());
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/AboutDTO.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/AboutDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/AboutDTO.java
index 83aad41..fca8d96 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/AboutDTO.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/AboutDTO.java
@@ -17,6 +17,7 @@
package org.apache.nifi.web.api.dto;
import com.wordnik.swagger.annotations.ApiModelProperty;
+
import javax.xml.bind.annotation.XmlType;
/**
@@ -28,6 +29,9 @@ public class AboutDTO {
private String title;
private String version;
+ private String uri;
+ private String contentViewerUrl;
+
/* getters / setters */
/**
* The title to be used on the page and in the About dialog.
@@ -61,4 +65,31 @@ public class AboutDTO {
this.version = version;
}
+ /**
+ * @return URI for this NiFi controller
+ */
+ @ApiModelProperty(
+ value = "The URI for the NiFi."
+ )
+ public String getUri() {
+ return uri;
+ }
+
+ public void setUri(String uri) {
+ this.uri = uri;
+ }
+
+ /**
+ * @return the URL for the content viewer if configured
+ */
+ @ApiModelProperty(
+ value = "The URL for the content viewer if configured."
+ )
+ public String getContentViewerUrl() {
+ return contentViewerUrl;
+ }
+
+ public void setContentViewerUrl(String contentViewerUrl) {
+ this.contentViewerUrl = contentViewerUrl;
+ }
}
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerConfigurationDTO.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerConfigurationDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerConfigurationDTO.java
index 9f92598..c6a7766 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerConfigurationDTO.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerConfigurationDTO.java
@@ -39,9 +39,6 @@ public class ControllerConfigurationDTO {
private Date currentTime;
private Integer timeOffset;
- private String contentViewerUrl;
- private String uri;
-
/**
* @return maximum number of timer driven threads this NiFi has available
*/
@@ -156,32 +153,4 @@ public class ControllerConfigurationDTO {
public void setTimeOffset(Integer timeOffset) {
this.timeOffset = timeOffset;
}
-
- /**
- * @return the URL for the content viewer if configured
- */
- @ApiModelProperty(
- value = "The URL for the content viewer if configured."
- )
- public String getContentViewerUrl() {
- return contentViewerUrl;
- }
-
- public void setContentViewerUrl(String contentViewerUrl) {
- this.contentViewerUrl = contentViewerUrl;
- }
-
- /**
- * @return URI for this NiFi controller
- */
- @ApiModelProperty(
- value = "The URI for the NiFi."
- )
- public String getUri() {
- return uri;
- }
-
- public void setUri(String uri) {
- this.uri = uri;
- }
}
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ResourceDTO.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ResourceDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ResourceDTO.java
new file mode 100644
index 0000000..9560c13
--- /dev/null
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ResourceDTO.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.nifi.web.api.dto;
+
+import com.wordnik.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * Resource that supports access/authorization policies.
+ */
+@XmlType(name = "resource")
+public class ResourceDTO {
+
+ private String identifier;
+ private String name;
+
+ /* getters / setters */
+ /**
+ * The name of the resource.
+ *
+ * @return The name of the resource
+ */
+ @ApiModelProperty(
+ value = "The name of the resource."
+ )
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * The identifier of the resource.
+ *
+ * @return The identifier of the resource
+ */
+ @ApiModelProperty(
+ value = "The identifier of the resource."
+ )
+ public String getIdentifier() {
+ return identifier;
+ }
+
+ public void setIdentifier(String identifier) {
+ this.identifier = identifier;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/CopySnippetRequestEntity.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/CopySnippetRequestEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/CopySnippetRequestEntity.java
new file mode 100644
index 0000000..a20fee3
--- /dev/null
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/CopySnippetRequestEntity.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.nifi.web.api.entity;
+
+import com.wordnik.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ * A serialized representation of this class can be placed in the entity body of a request to the API.
+ */
+@XmlRootElement(name = "copySnippetRequestEntity")
+public class CopySnippetRequestEntity extends Entity {
+
+ private String snippetId;
+ private Double originX;
+ private Double originY;
+
+ @ApiModelProperty(
+ value = "The identifier of the snippet."
+ )
+ public String getSnippetId() {
+ return snippetId;
+ }
+
+ public void setSnippetId(String snippetId) {
+ this.snippetId = snippetId;
+ }
+
+ @ApiModelProperty(
+ value = "The x coordinate of the origin of the bounding box where the new components will be placed."
+ )
+ public Double getOriginX() {
+ return originX;
+ }
+
+ public void setOriginX(Double originX) {
+ this.originX = originX;
+ }
+
+ @ApiModelProperty(
+ value = "The y coordinate of the origin of the bounding box where the new components will be placed."
+ )
+ public Double getOriginY() {
+ return originY;
+ }
+
+ public void setOriginY(Double originY) {
+ this.originY = originY;
+ }
+}
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/CreateTemplateRequestEntity.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/CreateTemplateRequestEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/CreateTemplateRequestEntity.java
new file mode 100644
index 0000000..865631a
--- /dev/null
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/CreateTemplateRequestEntity.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.nifi.web.api.entity;
+
+import com.wordnik.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ * A serialized representation of this class can be placed in the entity body of a request to the API.
+ */
+@XmlRootElement(name = "copySnippetRequestEntity")
+public class CreateTemplateRequestEntity extends Entity {
+
+ private String name;
+ private String description;
+ private String snippetId;
+
+ @ApiModelProperty(
+ value = "The name of the template."
+ )
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @ApiModelProperty(
+ value = "The description of the template."
+ )
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ @ApiModelProperty(
+ value = "The identifier of the snippet."
+ )
+ public String getSnippetId() {
+ return snippetId;
+ }
+
+ public void setSnippetId(String snippetId) {
+ this.snippetId = snippetId;
+ }
+}
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/InstantiateTemplateRequestEntity.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/InstantiateTemplateRequestEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/InstantiateTemplateRequestEntity.java
new file mode 100644
index 0000000..f4e55d4
--- /dev/null
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/InstantiateTemplateRequestEntity.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.nifi.web.api.entity;
+
+import com.wordnik.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ * A serialized representation of this class can be placed in the entity body of a request to the API.
+ */
+@XmlRootElement(name = "instantiateTemplateRequestEntity")
+public class InstantiateTemplateRequestEntity extends Entity {
+
+ private String templateId;
+ private Double originX;
+ private Double originY;
+
+ @ApiModelProperty(
+ value = "The identifier of the template."
+ )
+ public String getTemplateId() {
+ return templateId;
+ }
+
+ public void setTemplateId(String templateId) {
+ this.templateId = templateId;
+ }
+
+ @ApiModelProperty(
+ value = "The x coordinate of the origin of the bounding box where the new components will be placed."
+ )
+ public Double getOriginX() {
+ return originX;
+ }
+
+ public void setOriginX(Double originX) {
+ this.originX = originX;
+ }
+
+ @ApiModelProperty(
+ value = "The y coordinate of the origin of the bounding box where the new components will be placed."
+ )
+ public Double getOriginY() {
+ return originY;
+ }
+
+ public void setOriginY(Double originY) {
+ this.originY = originY;
+ }
+}
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ResourcesEntity.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ResourcesEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ResourcesEntity.java
new file mode 100644
index 0000000..0cd8473
--- /dev/null
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ResourcesEntity.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.nifi.web.api.entity;
+
+import org.apache.nifi.web.api.dto.ResourceDTO;
+
+import javax.xml.bind.annotation.XmlRootElement;
+import java.util.List;
+
+/**
+ * A serialized representation of this class can be placed in the entity body of a request or response to or from the API. This particular entity holds references to ResourceDTOs.
+ */
+@XmlRootElement(name = "resourcesEntity")
+public class ResourcesEntity extends Entity {
+
+ private List<ResourceDTO> resources;
+
+ /**
+ * The AboutDTO that is being serialized.
+ *
+ * @return The AboutDTO object
+ */
+ public List<ResourceDTO> getResources() {
+ return resources;
+ }
+
+ public void setResources(List<ResourceDTO> resources) {
+ this.resources = resources;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/SubmitReplayRequestEntity.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/SubmitReplayRequestEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/SubmitReplayRequestEntity.java
new file mode 100644
index 0000000..f491e0d
--- /dev/null
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/SubmitReplayRequestEntity.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.nifi.web.api.entity;
+
+import com.wordnik.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ * A serialized representation of this class can be placed in the entity body of a request to the API.
+ */
+@XmlRootElement(name = "copySnippetRequestEntity")
+public class SubmitReplayRequestEntity extends Entity {
+
+ private Long eventId;
+ private String clusterNodeId;
+
+ @ApiModelProperty(
+ value = "The event identifier"
+ )
+ public Long getEventId() {
+ return eventId;
+ }
+
+ public void setEventId(Long eventId) {
+ this.eventId = eventId;
+ }
+
+ @ApiModelProperty(
+ value = "The identifier of the node where to submit the replay request."
+ )
+ public String getClusterNodeId() {
+ return clusterNodeId;
+ }
+
+ public void setClusterNodeId(String clusterNodeId) {
+ this.clusterNodeId = clusterNodeId;
+ }
+}
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-authorization/src/main/java/org/apache/nifi/authorization/resource/ResourceType.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-authorization/src/main/java/org/apache/nifi/authorization/resource/ResourceType.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-authorization/src/main/java/org/apache/nifi/authorization/resource/ResourceType.java
index 5e122ec..20ace59 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-authorization/src/main/java/org/apache/nifi/authorization/resource/ResourceType.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-authorization/src/main/java/org/apache/nifi/authorization/resource/ResourceType.java
@@ -25,6 +25,7 @@ public enum ResourceType {
RemoteProcessGroup("/remote-process-groups"),
Label("/labels"),
ControllerService("/controller-services"),
+ ReportingTask("/reporting-tasks"),
Template("/templates");
final String value;
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/WebClusterManager.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/WebClusterManager.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/WebClusterManager.java
index a745f5c..aefd307 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/WebClusterManager.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/WebClusterManager.java
@@ -331,7 +331,7 @@ public class WebClusterManager implements HttpClusterManager, ProtocolHandler, C
public static final Pattern PROCESSORS_URI_PATTERN = Pattern.compile("/nifi-api/process-groups/(?:(?:root)|(?:[a-f0-9\\-]{36}))/processors");
public static final Pattern PROCESSOR_URI_PATTERN = Pattern.compile("/nifi-api/processors/[a-f0-9\\-]{36}");
- public static final Pattern PROCESSOR_STATUS_URI_PATTERN = Pattern.compile("/nifi-api/processors/[a-f0-9\\-]{36}/status");
+ public static final Pattern PROCESSOR_STATUS_URI_PATTERN = Pattern.compile("/nifi-api/flow/processors/[a-f0-9\\-]{36}/status");
public static final Pattern PROCESSOR_STATE_URI_PATTERN = Pattern.compile("/nifi-api/processors/[a-f0-9\\-]{36}/state");
public static final Pattern CLUSTER_PROCESSOR_URI_PATTERN = Pattern.compile("/nifi-api/cluster/processors/[a-f0-9\\-]{36}");
@@ -339,20 +339,20 @@ public class WebClusterManager implements HttpClusterManager, ProtocolHandler, C
public static final Pattern REMOTE_PROCESS_GROUP_URI_PATTERN = Pattern.compile("/nifi-api/remote-process-groups/[a-f0-9\\-]{36}");
public static final Pattern PROCESS_GROUP_URI_PATTERN = Pattern.compile("/nifi-api/process-groups/(?:(?:root)|(?:[a-f0-9\\-]{36}))");
- public static final Pattern GROUP_STATUS_URI_PATTERN = Pattern.compile("/nifi-api/process-groups/(?:(?:root)|(?:[a-f0-9\\-]{36}))/status");
- public static final Pattern CONTROLLER_STATUS_URI_PATTERN = Pattern.compile("/nifi-api/controller/status");
+ public static final Pattern GROUP_STATUS_URI_PATTERN = Pattern.compile("/nifi-api/flow/process-groups/(?:(?:root)|(?:[a-f0-9\\-]{36}))/status");
+ public static final Pattern CONTROLLER_STATUS_URI_PATTERN = Pattern.compile("/nifi-api/flow/status");
public static final Pattern TEMPLATE_INSTANCE_URI_PATTERN = Pattern.compile("/nifi-api/process-groups/(?:(?:root)|(?:[a-f0-9\\-]{36}))/template-instance");
public static final Pattern FLOW_SNIPPET_INSTANCE_URI_PATTERN = Pattern.compile("/nifi-api/process-groups/(?:(?:root)|(?:[a-f0-9\\-]{36}))/snippet-instance");
- public static final String PROVENANCE_URI = "/nifi-api/controller/provenance";
- public static final Pattern PROVENANCE_QUERY_URI = Pattern.compile("/nifi-api/controller/provenance/[a-f0-9\\-]{36}");
- public static final Pattern PROVENANCE_EVENT_URI = Pattern.compile("/nifi-api/controller/provenance/events/[0-9]+");
+ public static final String PROVENANCE_URI = "/nifi-api/provenance";
+ public static final Pattern PROVENANCE_QUERY_URI = Pattern.compile("/nifi-api/provenance/[a-f0-9\\-]{36}");
+ public static final Pattern PROVENANCE_EVENT_URI = Pattern.compile("/nifi-api/provenance/events/[0-9]+");
- public static final String CONTROLLER_SERVICES_URI = "/nifi-api/controller-services/node";
+ public static final Pattern CONTROLLER_SERVICES_URI = Pattern.compile("/nifi-api/process-groups/(?:(?:root)|(?:[a-f0-9\\-]{36}))/controller-services/node");
public static final Pattern CONTROLLER_SERVICE_URI_PATTERN = Pattern.compile("/nifi-api/controller-services/node/[a-f0-9\\-]{36}");
public static final Pattern CONTROLLER_SERVICE_STATE_URI_PATTERN = Pattern.compile("/nifi-api/controller-services/node/[a-f0-9\\-]{36}/state");
public static final Pattern CONTROLLER_SERVICE_REFERENCES_URI_PATTERN = Pattern.compile("/nifi-api/controller-services/node/[a-f0-9\\-]{36}/references");
- public static final String REPORTING_TASKS_URI = "/nifi-api/reporting-tasks/node";
+ public static final String REPORTING_TASKS_URI = "/nifi-api/controller/reporting-tasks/node";
public static final Pattern REPORTING_TASK_URI_PATTERN = Pattern.compile("/nifi-api/reporting-tasks/node/[a-f0-9\\-]{36}");
public static final Pattern REPORTING_TASK_STATE_URI_PATTERN = Pattern.compile("/nifi-api/reporting-tasks/node/[a-f0-9\\-]{36}/state");
public static final Pattern BULLETIN_BOARD_URI_PATTERN = Pattern.compile("/nifi-api/bulletin-board");
@@ -361,17 +361,17 @@ public class WebClusterManager implements HttpClusterManager, ProtocolHandler, C
public static final Pattern COUNTER_URI_PATTERN = Pattern.compile("/nifi-api/controller/counters/[a-f0-9\\-]{36}");
public static final Pattern PROCESSOR_STATUS_HISTORY_URI_PATTERN =
- Pattern.compile("/nifi-api/processors/[a-f0-9\\-]{36}/status/history");
- public static final Pattern PROCESS_GROUP_STATUS_HISTORY_URI_PATTERN = Pattern.compile("/nifi-api/process-groups/(?:(?:root)|(?:[a-f0-9\\-]{36}))/status/history");
+ Pattern.compile("/nifi-api/flow/processors/[a-f0-9\\-]{36}/status/history");
+ public static final Pattern PROCESS_GROUP_STATUS_HISTORY_URI_PATTERN = Pattern.compile("/nifi-api/flow/process-groups/(?:(?:root)|(?:[a-f0-9\\-]{36}))/status/history");
public static final Pattern REMOTE_PROCESS_GROUP_STATUS_HISTORY_URI_PATTERN = Pattern
- .compile("/nifi-api/remote-process-groups/[a-f0-9\\-]{36}/status/history");
+ .compile("/nifi-api/flow/remote-process-groups/[a-f0-9\\-]{36}/status/history");
public static final Pattern CONNECTION_STATUS_HISTORY_URI_PATTERN = Pattern
- .compile("/nifi-api/connections/[a-f0-9\\-]{36}/status/history");
+ .compile("/nifi-api/flow/connections/[a-f0-9\\-]{36}/status/history");
- public static final Pattern CONNECTION_STATUS_URI_PATTERN = Pattern.compile("/nifi-api/connections/[a-f0-9\\-]{36}/status");
- public static final Pattern INPUT_PORT_STATUS_URI_PATTERN = Pattern.compile("/nifi-api/input-ports/[a-f0-9\\-]{36}/status");
- public static final Pattern OUTPUT_PORT_STATUS_URI_PATTERN = Pattern.compile("/nifi-api/output-ports/[a-f0-9\\-]{36}/status");
- public static final Pattern REMOTE_PROCESS_GROUP_STATUS_URI_PATTERN = Pattern.compile("/nifi-api/remote-process-groups/[a-f0-9\\-]{36}/status");
+ public static final Pattern CONNECTION_STATUS_URI_PATTERN = Pattern.compile("/nifi-api/flow/connections/[a-f0-9\\-]{36}/status");
+ public static final Pattern INPUT_PORT_STATUS_URI_PATTERN = Pattern.compile("/nifi-api/flow/input-ports/[a-f0-9\\-]{36}/status");
+ public static final Pattern OUTPUT_PORT_STATUS_URI_PATTERN = Pattern.compile("/nifi-api/flow/output-ports/[a-f0-9\\-]{36}/status");
+ public static final Pattern REMOTE_PROCESS_GROUP_STATUS_URI_PATTERN = Pattern.compile("/nifi-api/flow/remote-process-groups/[a-f0-9\\-]{36}/status");
public static final Pattern DROP_REQUESTS_URI = Pattern.compile("/nifi-api/connections/[a-f0-9\\-]{36}/drop-requests");
public static final Pattern DROP_REQUEST_URI = Pattern.compile("/nifi-api/connections/[a-f0-9\\-]{36}/drop-requests/[a-f0-9\\-]{36}");
@@ -2412,13 +2412,13 @@ public class WebClusterManager implements HttpClusterManager, ProtocolHandler, C
}
private static boolean isControllerServicesEndpoint(final URI uri, final String method) {
- return "GET".equalsIgnoreCase(method) && CONTROLLER_SERVICES_URI.equals(uri.getPath());
+ return "GET".equalsIgnoreCase(method) && CONTROLLER_SERVICES_URI.matcher(uri.getPath()).matches();
}
private static boolean isControllerServiceEndpoint(final URI uri, final String method) {
if (("GET".equalsIgnoreCase(method) || "PUT".equalsIgnoreCase(method)) && CONTROLLER_SERVICE_URI_PATTERN.matcher(uri.getPath()).matches()) {
return true;
- } else if ("POST".equalsIgnoreCase(method) && CONTROLLER_SERVICES_URI.equals(uri.getPath())) {
+ } else if ("POST".equalsIgnoreCase(method) && CONTROLLER_SERVICES_URI.matcher(uri.getPath()).matches()) {
return true;
}
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/ProcessGroup.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/ProcessGroup.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/ProcessGroup.java
index ee59942..56038fe 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/ProcessGroup.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/ProcessGroup.java
@@ -507,6 +507,13 @@ public interface ProcessGroup {
ProcessGroup findProcessGroup(String id);
/**
+ * @return a List of all ProcessGroups that are children or descendants of this
+ * ProcessGroup. This performs a recursive search of all descendant
+ * ProcessGroups
+ */
+ List<ProcessGroup> findAllProcessGroups();
+
+ /**
* @param id of the group
* @return the RemoteProcessGroup with the given ID, if it exists as a child
* or descendant of this ProcessGroup. This performs a recursive search of
@@ -560,6 +567,13 @@ public interface ProcessGroup {
Port findInputPort(String id);
/**
+ * @return a List of all InputPorts that are children or descendants of this
+ * ProcessGroup. This performs a recursive search of all descendant
+ * ProcessGroups
+ */
+ List<Port> findAllInputPorts();
+
+ /**
* @param name of port
* @return the input port with the given name, if it exists; otherwise
* returns null
@@ -575,6 +589,13 @@ public interface ProcessGroup {
Port findOutputPort(String id);
/**
+ * @return a List of all OutputPorts that are children or descendants of this
+ * ProcessGroup. This performs a recursive search of all descendant
+ * ProcessGroups
+ */
+ List<Port> findAllOutputPorts();
+
+ /**
* @param name of the port
* @return the output port with the given name, if it exists; otherwise
* returns null
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/pom.xml
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/pom.xml
index ff3ecba..ab318d3 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/pom.xml
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/pom.xml
@@ -72,6 +72,10 @@
<artifactId>nifi-site-to-site-client</artifactId>
</dependency>
<dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-framework-authorization</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/groups/StandardProcessGroup.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/groups/StandardProcessGroup.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/groups/StandardProcessGroup.java
index 71e51b6..db99771 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/groups/StandardProcessGroup.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/groups/StandardProcessGroup.java
@@ -1381,6 +1381,19 @@ public final class StandardProcessGroup implements ProcessGroup {
}
@Override
+ public List<ProcessGroup> findAllProcessGroups() {
+ return findAllProcessGroups(this);
+ }
+
+ private List<ProcessGroup> findAllProcessGroups(final ProcessGroup start) {
+ final List<ProcessGroup> allProcessGroups = new ArrayList<>(start.getProcessGroups());
+ for (final ProcessGroup childGroup : start.getProcessGroups()) {
+ allProcessGroups.addAll(findAllProcessGroups(childGroup));
+ }
+ return allProcessGroups;
+ }
+
+ @Override
public List<RemoteProcessGroup> findAllRemoteProcessGroups() {
return findAllRemoteProcessGroups(this);
}
@@ -1536,11 +1549,37 @@ public final class StandardProcessGroup implements ProcessGroup {
}
@Override
+ public List<Port> findAllInputPorts() {
+ return findAllInputPorts(this);
+ }
+
+ private List<Port> findAllInputPorts(final ProcessGroup start) {
+ final List<Port> allOutputPorts = new ArrayList<>(start.getInputPorts());
+ for (final ProcessGroup group : start.getProcessGroups()) {
+ allOutputPorts.addAll(findAllInputPorts(group));
+ }
+ return allOutputPorts;
+ }
+
+ @Override
public Port findOutputPort(final String id) {
return findPort(id, this, new OutputPortRetriever());
}
@Override
+ public List<Port> findAllOutputPorts() {
+ return findAllOutputPorts(this);
+ }
+
+ private List<Port> findAllOutputPorts(final ProcessGroup start) {
+ final List<Port> allOutputPorts = new ArrayList<>(start.getOutputPorts());
+ for (final ProcessGroup group : start.getProcessGroups()) {
+ allOutputPorts.addAll(findAllOutputPorts(group));
+ }
+ return allOutputPorts;
+ }
+
+ @Override
public Port getInputPortByName(final String name) {
return getPortByName(name, this, new InputPortRetriever());
}
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/StandardRemoteProcessGroup.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/StandardRemoteProcessGroup.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/StandardRemoteProcessGroup.java
index 55410a3..11d7b2f 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/StandardRemoteProcessGroup.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/StandardRemoteProcessGroup.java
@@ -80,8 +80,8 @@ public class StandardRemoteProcessGroup implements RemoteProcessGroup {
private static final Logger logger = LoggerFactory.getLogger(StandardRemoteProcessGroup.class);
- public static final String CONTROLLER_URI_PATH = "/controller";
- public static final String ROOT_GROUP_STATUS_URI_PATH = "/controller/process-groups/root/status";
+ public static final String SITE_TO_SITE_URI_PATH = "/site-to-site";
+ public static final String ROOT_GROUP_STATUS_URI_PATH = "/flow/process-groups/root/status";
// status codes
public static final int OK_STATUS_CODE = Status.OK.getStatusCode();
@@ -749,7 +749,7 @@ public class StandardRemoteProcessGroup implements RemoteProcessGroup {
}
final RemoteNiFiUtils utils = new RemoteNiFiUtils(isWebApiSecure() ? sslContext : null);
- final String uriVal = apiUri.toString() + CONTROLLER_URI_PATH;
+ final String uriVal = apiUri.toString() + SITE_TO_SITE_URI_PATH;
URI uri;
try {
uri = new URI(uriVal);
@@ -1080,7 +1080,7 @@ public class StandardRemoteProcessGroup implements RemoteProcessGroup {
public void run() {
try {
final RemoteNiFiUtils utils = new RemoteNiFiUtils(isWebApiSecure() ? sslContext : null);
- final ClientResponse response = utils.get(new URI(apiUri + CONTROLLER_URI_PATH), getCommunicationsTimeout(TimeUnit.MILLISECONDS));
+ final ClientResponse response = utils.get(new URI(apiUri + SITE_TO_SITE_URI_PATH), getCommunicationsTimeout(TimeUnit.MILLISECONDS));
final int statusCode = response.getStatus();
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml
index 38bafbd..2836641 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml
@@ -198,6 +198,11 @@
<scope>provided</scope>
</dependency>
<dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-framework-authorization</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacade.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacade.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacade.java
index 0c6cbee..67f24e1 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacade.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacade.java
@@ -46,6 +46,7 @@ import org.apache.nifi.web.api.dto.PropertyDescriptorDTO;
import org.apache.nifi.web.api.dto.RemoteProcessGroupDTO;
import org.apache.nifi.web.api.dto.RemoteProcessGroupPortDTO;
import org.apache.nifi.web.api.dto.ReportingTaskDTO;
+import org.apache.nifi.web.api.dto.ResourceDTO;
import org.apache.nifi.web.api.dto.RevisionDTO;
import org.apache.nifi.web.api.dto.SnippetDTO;
import org.apache.nifi.web.api.dto.SystemDiagnosticsDTO;
@@ -67,6 +68,7 @@ import org.apache.nifi.web.api.dto.status.RemoteProcessGroupStatusDTO;
import org.apache.nifi.web.api.dto.status.StatusHistoryDTO;
import java.util.Date;
+import java.util.List;
import java.util.Set;
/**
@@ -1400,4 +1402,12 @@ public interface NiFiServiceFacade {
* @return the system diagnostics
*/
SystemDiagnosticsDTO getSystemDiagnostics();
+
+ // ----------------------------------------
+ // Resources
+ // ----------------------------------------
+ /**
+ * @return the resources
+ */
+ List<ResourceDTO> getResources();
}
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiWebApiSecurityConfiguration.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiWebApiSecurityConfiguration.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiWebApiSecurityConfiguration.java
index a3a9e48..e9117a9 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiWebApiSecurityConfiguration.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiWebApiSecurityConfiguration.java
@@ -16,7 +16,6 @@
*/
package org.apache.nifi.web;
-import org.apache.nifi.admin.service.KeyService;
import org.apache.nifi.util.NiFiProperties;
import org.apache.nifi.web.security.anonymous.NiFiAnonymousUserFilter;
import org.apache.nifi.web.security.jwt.JwtAuthenticationFilter;
@@ -54,7 +53,6 @@ public class NiFiWebApiSecurityConfiguration extends WebSecurityConfigurerAdapte
private static final Logger logger = LoggerFactory.getLogger(NiFiWebApiSecurityConfiguration.class);
private NiFiProperties properties;
- private KeyService keyService;
private NodeAuthorizedUserFilter nodeAuthorizedUserFilter;
@@ -174,17 +172,11 @@ public class NiFiWebApiSecurityConfiguration extends WebSecurityConfigurerAdapte
public NiFiAnonymousUserFilter anonymousFilterBean() throws Exception {
if (anonymousAuthenticationFilter == null) {
anonymousAuthenticationFilter = new NiFiAnonymousUserFilter();
- anonymousAuthenticationFilter.setKeyService(keyService);
}
return anonymousAuthenticationFilter;
}
@Autowired
- public void setKeyService(KeyService keyService) {
- this.keyService = keyService;
- }
-
- @Autowired
public void setProperties(NiFiProperties properties) {
this.properties = properties;
}
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiContentAccess.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiContentAccess.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiContentAccess.java
index 7b5ab27..66f1546 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiContentAccess.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiContentAccess.java
@@ -56,10 +56,10 @@ public class StandardNiFiContentAccess implements ContentAccess {
public static final String CLIENT_ID_PARAM = "clientId";
private static final Pattern FLOWFILE_CONTENT_URI_PATTERN = Pattern
- .compile("/controller/process-groups/((?:root)|(?:[a-f0-9\\-]{36}))/connections/([a-f0-9\\-]{36})/flowfiles/([a-f0-9\\-]{36})/content.*");
+ .compile("/flowfile-queues/([a-f0-9\\-]{36})/flowfiles/([a-f0-9\\-]{36})/content.*");
private static final Pattern PROVENANCE_CONTENT_URI_PATTERN = Pattern
- .compile("/controller/provenance/events/([0-9]+)/content/((?:input)|(?:output)).*");
+ .compile("/provenance/events/([0-9]+)/content/((?:input)|(?:output)).*");
private NiFiProperties properties;
private NiFiServiceFacade serviceFacade;
@@ -140,8 +140,8 @@ public class StandardNiFiContentAccess implements ContentAccess {
return new DownloadableContent(filename, contentType, clientResponse.getEntityInputStream());
} else {
// example URIs:
- // http://localhost:8080/nifi-api/controller/provenance/events/{id}/content/{input|output}
- // http://localhost:8080/nifi-api/controller/process-groups/{root|uuid}/connections/{uuid}/flowfiles/{uuid}/content
+ // http://localhost:8080/nifi-api/provenance/events/{id}/content/{input|output}
+ // http://localhost:8080/nifi-api/flowfile-queues/{uuid}/flowfiles/{uuid}/content
// get just the context path for comparison
final String dataUri = StringUtils.substringAfter(request.getDataUri(), "/nifi-api");
@@ -152,11 +152,10 @@ public class StandardNiFiContentAccess implements ContentAccess {
// flowfile listing content
final Matcher flowFileMatcher = FLOWFILE_CONTENT_URI_PATTERN.matcher(dataUri);
if (flowFileMatcher.matches()) {
- final String groupId = flowFileMatcher.group(1);
- final String connectionId = flowFileMatcher.group(2);
- final String flowfileId = flowFileMatcher.group(3);
+ final String connectionId = flowFileMatcher.group(1);
+ final String flowfileId = flowFileMatcher.group(2);
- return getFlowFileContent(groupId, connectionId, flowfileId, dataUri);
+ return getFlowFileContent(connectionId, flowfileId, dataUri);
}
// provenance event content
@@ -177,7 +176,7 @@ public class StandardNiFiContentAccess implements ContentAccess {
}
}
- private DownloadableContent getFlowFileContent(final String groupId, final String connectionId, final String flowfileId, final String dataUri) {
+ private DownloadableContent getFlowFileContent(final String connectionId, final String flowfileId, final String dataUri) {
// TODO - ensure the user is authorized - not checking with @PreAuthorized annotation as aspect not trigger on call within a class
// if (!NiFiUserUtils.getAuthorities().contains(Authority.ROLE_DFM.toString())) {
// throw new AccessDeniedException("Access is denied.");
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
index 5621990..0969eac 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
@@ -24,6 +24,7 @@ import org.apache.nifi.action.Operation;
import org.apache.nifi.action.details.FlowChangePurgeDetails;
import org.apache.nifi.admin.service.AuditService;
import org.apache.nifi.admin.service.KeyService;
+import org.apache.nifi.authorization.Resource;
import org.apache.nifi.cluster.context.ClusterContext;
import org.apache.nifi.cluster.context.ClusterContextThreadLocal;
import org.apache.nifi.cluster.manager.exception.UnknownNodeException;
@@ -97,6 +98,7 @@ import org.apache.nifi.web.api.dto.PropertyHistoryDTO;
import org.apache.nifi.web.api.dto.RemoteProcessGroupDTO;
import org.apache.nifi.web.api.dto.RemoteProcessGroupPortDTO;
import org.apache.nifi.web.api.dto.ReportingTaskDTO;
+import org.apache.nifi.web.api.dto.ResourceDTO;
import org.apache.nifi.web.api.dto.RevisionDTO;
import org.apache.nifi.web.api.dto.SnippetDTO;
import org.apache.nifi.web.api.dto.SystemDiagnosticsDTO;
@@ -1529,6 +1531,16 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
return dtoFactory.createSystemDiagnosticsDto(sysDiagnostics);
}
+ @Override
+ public List<ResourceDTO> getResources() {
+ final List<Resource> resources = controllerFacade.getResources();
+ final List<ResourceDTO> resourceDtos = new ArrayList<>(resources.size());
+ for (final Resource resource : resources) {
+ resourceDtos.add(dtoFactory.createResourceDto(resource));
+ }
+ return resourceDtos;
+ }
+
/**
* Ensures the specified user has permission to access the specified port.
*/
@@ -1624,9 +1636,6 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
final long refreshInterval = FormatUtils.getTimeDuration(properties.getAutoRefreshInterval(), TimeUnit.SECONDS);
controllerConfig.setAutoRefreshIntervalSeconds(refreshInterval);
- // get the content viewer url
- controllerConfig.setContentViewerUrl(properties.getProperty(NiFiProperties.CONTENT_VIEWER_URL));
-
final Date now = new Date();
controllerConfig.setTimeOffset(TimeZone.getDefault().getOffset(now.getTime()));
controllerConfig.setCurrentTime(now);
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiWebConfigurationContext.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiWebConfigurationContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiWebConfigurationContext.java
index f5d5e2f..b8f1350 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiWebConfigurationContext.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiWebConfigurationContext.java
@@ -415,7 +415,7 @@ public class StandardNiFiWebConfigurationContext implements NiFiWebConfiguration
// create the request URL
URI requestUrl;
try {
- String path = "/nifi-api/controller/controller-services/node/" + URLEncoder.encode(id, "UTF-8");
+ String path = "/nifi-api/controller-services/node/" + URLEncoder.encode(id, "UTF-8");
requestUrl = new URI(requestContext.getScheme(), null, "localhost", 0, path, null, null);
} catch (final URISyntaxException | UnsupportedEncodingException use) {
throw new ClusterRequestException(use);
@@ -471,7 +471,7 @@ public class StandardNiFiWebConfigurationContext implements NiFiWebConfiguration
// create the request URL
URI requestUrl;
try {
- String path = "/nifi-api/controller/controller-services/node/" + URLEncoder.encode(id, "UTF-8");
+ String path = "/nifi-api/controller-services/node/" + URLEncoder.encode(id, "UTF-8");
requestUrl = new URI(requestContext.getScheme(), null, "localhost", 0, path, null, null);
} catch (final URISyntaxException | UnsupportedEncodingException use) {
throw new ClusterRequestException(use);
@@ -550,7 +550,7 @@ public class StandardNiFiWebConfigurationContext implements NiFiWebConfiguration
// create the request URL
URI requestUrl;
try {
- String path = "/nifi-api/controller/reporting-tasks/node/" + URLEncoder.encode(id, "UTF-8");
+ String path = "/nifi-api/reporting-tasks/node/" + URLEncoder.encode(id, "UTF-8");
requestUrl = new URI(requestContext.getScheme(), null, "localhost", 0, path, null, null);
} catch (final URISyntaxException | UnsupportedEncodingException use) {
throw new ClusterRequestException(use);
@@ -606,7 +606,7 @@ public class StandardNiFiWebConfigurationContext implements NiFiWebConfiguration
// create the request URL
URI requestUrl;
try {
- String path = "/nifi-api/controller/reporting-tasks/node/" + URLEncoder.encode(id, "UTF-8");
+ String path = "/nifi-api/reporting-tasks/node/" + URLEncoder.encode(id, "UTF-8");
requestUrl = new URI(requestContext.getScheme(), null, "localhost", 0, path, null, null);
} catch (final URISyntaxException | UnsupportedEncodingException use) {
throw new ClusterRequestException(use);
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/AccessResource.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/AccessResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/AccessResource.java
index c57e4ff..bb8e701 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/AccessResource.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/AccessResource.java
@@ -79,12 +79,12 @@ import java.util.List;
import java.util.concurrent.TimeUnit;
/**
- * RESTful endpoint for managing a cluster.
+ * RESTful endpoint for managing access.
*/
@Path("/access")
@Api(
- value = "/access",
- description = "Endpoints for obtaining an access token or checking access status"
+ value = "/access",
+ description = "Endpoints for obtaining an access token or checking access status."
)
public class AccessResource extends ApplicationResource {
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ApplicationResource.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ApplicationResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ApplicationResource.java
index 3b429e7..966aa29 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ApplicationResource.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ApplicationResource.java
@@ -337,6 +337,12 @@ public abstract class ApplicationResource {
return params;
}
+ /**
+ * Used when replicating requests to ensure the client id is the same on each node.
+ *
+ * @param entity entity
+ * @return entity with the client id set
+ */
protected Entity updateClientId(final Entity entity) {
if (entity != null && entity.getRevision() != null && StringUtils.isBlank(entity.getRevision().getClientId())) {
entity.getRevision().setClientId(new ClientIdParameter().getClientId());
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/BulletinBoardResource.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/BulletinBoardResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/BulletinBoardResource.java
deleted file mode 100644
index f7ae37e..0000000
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/BulletinBoardResource.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.nifi.web.api;
-
-import com.wordnik.swagger.annotations.ApiOperation;
-import com.wordnik.swagger.annotations.ApiParam;
-import com.wordnik.swagger.annotations.ApiResponse;
-import com.wordnik.swagger.annotations.ApiResponses;
-import com.wordnik.swagger.annotations.Authorization;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.nifi.cluster.manager.impl.WebClusterManager;
-import org.apache.nifi.util.NiFiProperties;
-import org.apache.nifi.web.NiFiServiceFacade;
-import org.apache.nifi.web.api.dto.BulletinBoardDTO;
-import org.apache.nifi.web.api.dto.BulletinQueryDTO;
-import org.apache.nifi.web.api.dto.RevisionDTO;
-import org.apache.nifi.web.api.entity.BulletinBoardEntity;
-import org.apache.nifi.web.api.request.BulletinBoardPatternParameter;
-import org.apache.nifi.web.api.request.ClientIdParameter;
-import org.apache.nifi.web.api.request.IntegerParameter;
-import org.apache.nifi.web.api.request.LongParameter;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DefaultValue;
-import javax.ws.rs.GET;
-import javax.ws.rs.HttpMethod;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-/**
- * RESTful endpoint for managing a Template.
- */
-@Path("bulletin-board")
-public class BulletinBoardResource extends ApplicationResource {
-
- private NiFiProperties properties;
- private WebClusterManager clusterManager;
-
- private NiFiServiceFacade serviceFacade;
-
- /**
- * Retrieves all the of templates in this NiFi.
- *
- * @param clientId Optional client id. If the client id is not specified, a
- * new one will be generated. This value (whether specified or generated) is
- * included in the response.
- * @param after Supporting querying for bulletins after a particular
- * bulletin id.
- * @param limit The max number of bulletins to return.
- * @param sourceName Source name filter. Supports a regular expression.
- * @param message Message filter. Supports a regular expression.
- * @param sourceId Source id filter. Supports a regular expression.
- * @param groupId Group id filter. Supports a regular expression.
- * @return A bulletinBoardEntity.
- */
- @GET
- @Consumes(MediaType.WILDCARD)
- @Produces(MediaType.APPLICATION_JSON)
- @Path("") // necessary due to bug in swagger
- // TODO - @PreAuthorize("hasAnyRole('ROLE_MONITOR', 'ROLE_DFM', 'ROLE_ADMIN')")
- @ApiOperation(
- value = "Gets current bulletins",
- response = BulletinBoardEntity.class,
- authorizations = {
- @Authorization(value = "Read Only", type = "ROLE_MONITOR"),
- @Authorization(value = "Data Flow Manager", type = "ROLE_DFM"),
- @Authorization(value = "Administrator", type = "ROLE_ADMIN")
- }
- )
- @ApiResponses(
- value = {
- @ApiResponse(code = 400, message = "NiFi was unable to complete the request because it was invalid. The request should not be retried without modification."),
- @ApiResponse(code = 401, message = "Client could not be authenticated."),
- @ApiResponse(code = 403, message = "Client is not authorized to make this request."),
- @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.")
- }
- )
- public Response getBulletinBoard(
- @ApiParam(
- value = "If the client id is not specified, new one will be generated. This value (whether specified or generated) is included in the response.",
- required = false
- )
- @QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId,
- @ApiParam(
- value = "Includes bulletins with an id after this value.",
- required = false
- )
- @QueryParam("after") LongParameter after,
- @ApiParam(
- value = "Includes bulletins originating from this sources whose name match this regular expression.",
- required = false
- )
- @QueryParam("sourceName") BulletinBoardPatternParameter sourceName,
- @ApiParam(
- value = "Includes bulletins whose message that match this regular expression.",
- required = false
- )
- @QueryParam("message") BulletinBoardPatternParameter message,
- @ApiParam(
- value = "Includes bulletins originating from this sources whose id match this regular expression.",
- required = false
- )
- @QueryParam("sourceId") BulletinBoardPatternParameter sourceId,
- @ApiParam(
- value = "Includes bulletins originating from this sources whose group id match this regular expression.",
- required = false
- )
- @QueryParam("groupId") BulletinBoardPatternParameter groupId,
- @ApiParam(
- value = "The number of bulletins to limit the response to.",
- required = false
- )
- @QueryParam("limit") IntegerParameter limit) {
-
- // replicate if cluster manager
- if (properties.isClusterManager()) {
- return clusterManager.applyRequest(HttpMethod.GET, getAbsolutePath(), getRequestParameters(true), getHeaders()).getResponse();
- }
-
- // build the bulletin query
- final BulletinQueryDTO query = new BulletinQueryDTO();
-
- if (sourceId != null) {
- query.setSourceId(sourceId.getRawPattern());
- }
- if (groupId != null) {
- query.setGroupId(groupId.getRawPattern());
- }
- if (sourceName != null) {
- query.setName(sourceName.getRawPattern());
- }
- if (message != null) {
- query.setMessage(message.getRawPattern());
- }
- if (after != null) {
- query.setAfter(after.getLong());
- }
- if (limit != null) {
- query.setLimit(limit.getInteger());
- }
-
- // get the bulletin board
- final BulletinBoardDTO bulletinBoard = serviceFacade.getBulletinBoard(query);
-
- // create the revision
- RevisionDTO revision = new RevisionDTO();
- revision.setClientId(clientId.getClientId());
-
- // create the response entity
- BulletinBoardEntity entity = new BulletinBoardEntity();
- entity.setRevision(revision);
- entity.setBulletinBoard(bulletinBoard);
-
- // generate the response
- return clusterContext(generateOkResponse(entity)).build();
- }
-
- // setters
- public void setServiceFacade(NiFiServiceFacade serviceFacade) {
- this.serviceFacade = serviceFacade;
- }
-
- public void setClusterManager(WebClusterManager clusterManager) {
- this.clusterManager = clusterManager;
- }
-
- public void setProperties(NiFiProperties properties) {
- this.properties = properties;
- }
-}
http://git-wip-us.apache.org/repos/asf/nifi/blob/add29816/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ClusterResource.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ClusterResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ClusterResource.java
index a2a2d5b..5266632 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ClusterResource.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ClusterResource.java
@@ -66,7 +66,7 @@ import java.util.List;
@Path("/cluster")
@Api(
value = "/cluster",
- description = "Provides access to the cluster of Nodes that comprise this NiFi"
+ description = "Endpoint for managing the cluster."
)
public class ClusterResource extends ApplicationResource {