102 Commits

Author SHA1 Message Date
Jeff Storck
08735a4f57 NIFI-2488 Wrapping ActionDTO and BulletinDTO in entities to be able to provide readability permission to the client 2016-08-18 09:37:11 -04:00
joewitt
6bf7e7f325 NIFI-2574 merging master with cluster changes to updated NiFiProperties approach 2016-08-17 01:23:54 -07:00
joewitt
7d7401add4 NIFI-2574 Changed NiFiProperties to avoid static initializer and updated all references to it. 2016-08-17 00:10:07 -07:00
Mark Payne
e42ea9ad45 NIFI-2566: Refactored to allow just the Leader Election Manager to be responsible for determining who is the Cluster Coordinator
NIFI-2566: Removed storage of cluster roles from heartbeats and NodeConnectionStatus; use LeaderElectionManager to determine roles instead

NIFI-2566: Updated Heartbeats so that if a node is out-of-sync with cluster topology, cluster coordinator will provide updated information back to the nodes

NIFI-2566: Fixed issue that prevented standalone instance from starting by creating a standalone-instance version of the Leader Election Manager. Also added Controller Service enabled/disabled state to fingerprint rather than attempting to update the state when joining the cluster, as the implementation was incorrect and the correct implementation will be a rather significant effort that doesn't have to happen for 1.0.0 release

This closes #866

Signed-off-by: jpercivall <joepercivall@yahoo.com>
2016-08-16 20:39:04 -04:00
jpercivall
6799bd4919 NIFI-1876 fixing counter URI pattern 2016-08-12 17:23:12 -04:00
Jeff Storck
bbdd087d77 NIFI-1876 Implemented PropertyDescriptorDTO merging
NIFI-1876 Updated PermissionsDTO to use boolean primitives instead of Boolean objects for read and write permission
Removed ISE throwing from EntityFactory, it will rely on null checks instead

This closes #694

Signed-off-by: jpercivall <joepercivall@yahoo.com>
2016-08-12 17:22:37 -04:00
Jeff Storck
572dfed78a NIFI-1876 Implements merging of responses to successful requests based on authorization, returning the most restrictive response - Added StandardHttpResponseMergerSpec for testing response merging - Added Permissible interface - Added nifi-api/controller/archive to ProcessGroupEndpointMerger - Removed AbstractMultiEntityEndpoint.java, not used anymore - Implemented reponse merging for GET requests where there are some successful and problematic responses, returning most restrictive one. - Updated nf-settings.js with ControllerConfigurationEntity property rename from controllerConfiguration to component - Implemented merging of status DTOs based on read permission NIFI-2264 Implemented merging of status history results based on readability permissions - Added StatusHistoryEndpointMergerSpec to test merging of status history based on read permission
NIFI-1876 Added merging for labels, funnels, and controller service references.

NIFI-1876 Added Label and Funnel merging to FlowMerger.java

NIFI-1876 Added replication of request for process group controller services
 - Updated merging code for Status and Status History based on read permissions

NIFI-1876 Fixed issue with node status snapshots all looking like they came from one node
Updated ProcessGroupStatusSnapshotDTO to contain status snapshot entities to retain readability permission
Added entity classes for ConnectionStatusSnapshotDTO, PortStatusSnapshotDTO, ProcessGroupStatusSnapshotDTO, ProcessorStatusSnapshotDTO, and RemoteProcessGroupStatusSnapshotDTO
Updated PropertyDescriptorDTO to contain AllowableValueEntity to retain readability permission
Added entity class for AllowableValueDTO
Moved AllowableValueDTO to its own top-level class
Updated DtoFactory to get permissions for status snapshot entities
Updated StatusMerger to merge status snapshot entities

Signed-off-by: jpercivall <joepercivall@yahoo.com>
2016-08-12 17:22:17 -04:00
Mark Payne
76a4a2c48b
NIFI-2544: Created integration tests for clustering and addressed a few minor bugs that were found in doing so
This closes #832.

Signed-off-by: Bryan Bende <bbende@apache.org>
2016-08-11 10:43:38 -04:00
Mark Payne
42df02f014 NIFI-2406 This closes #820. Addressed regression introduced in NIFI-2406 where the cluster does not recognize a new Cluster Coordinator when the coordinator is shutdown 2016-08-09 15:19:49 -04:00
Mark Payne
c1c052af71 NIFI-2406: Ensure that hearbeat monitor continues to run while instance is running. This way if a node sends heartbeat to this node as elected coordinator changes, we notify the node accordingly. Handle Exceptions more gracefully in leader election code. Tweaked some handling of how nodes reconnect to the cluster to ensure more stability with cluster
Signed-off-by: Yolanda M. Davis <ymdavis@apache.org>

This closes #729
2016-08-08 09:15:10 -04:00
Matt Gilman
fca59ff9d0 NIFI-2438:
- If a node reports forbidden, using an appropriate response failure exception.
This closes #760.
2016-08-03 15:01:04 -04:00
Mark Payne
16348b071d NIFI-2452: This closes #771. Ensure that we keep track of how many references we have to each lucene searcher and only close the underlying index reader if there are no references to the searcher. Also updated to prefer newer provenance events over older provenance events, and calculate FlowFile lineage based on an event id instead of a FlowFile UUID, as it's much more efficient 2016-08-03 08:05:26 -07:00
Mark Payne
09840027a3 NIFI-2304: If node address is not set, default to localhost, as the admin guide says it should
This closes #688

Signed-off-by: Koji Kawamura <ijokarumawak@apache.org>
2016-08-02 12:09:34 +09:00
Oleg Zhurakousky
1bf10944ea NIFI-2366 - Fixed ID generation semantics in clustered environment
- added SnippetUtilsTest
- renamed TypeOneUUIDGenerator to ComponentIdGenerator

- changed lsb part of ComponentIdGenerator back to long
- Fixed 'isCopy' condition for clustered environments

This closes #718.
2016-07-31 15:24:02 -04:00
Matt Gilman
a6d259ee01 NIFI-2245:
- If a single response exists using it, instead of attempting to merge anything.

This closes #743.
2016-07-29 15:29:06 -04:00
Matt Gilman
da238b16ef NIFI-2122: - Merging responses for the current user and the flow configuration. - Returning whether NiFi is configured with a policy based authorizer in the flow configuration. - Only showing the users and policy icons when configured with a policy based authorizer. - Failing faster when invoking the users or policies endpoint when not configured with a configurable authorizer.
This closes #736

Signed-off-by: jpercivall <joepercivall@yahoo.com>
2016-07-28 16:51:40 -04:00
Mark Payne
52bc23f5db NIFI-2316, NIFI-2318: Ensure that we do not save the flow before initializing the Run Status of components. Clarify the Node Event messages
This closes #678

Signed-off-by: jpercivall <joepercivall@yahoo.com>
2016-07-26 14:24:32 -04:00
Mark Payne
7779af69b4 NIFI-2292: Funnel all cluster node status changes through the cluster coordinator instead of having each node broadcast changes to the whole cluster. This gives us the ability to increment the updateId consistently without race conditions.
This closes #717

Signed-off-by: jpercivall <joepercivall@yahoo.com>
2016-07-25 23:17:37 -04:00
Mark Payne
b082858595 Revert "NIFI-2292: Funnel all cluster node status changes through the cluster coordinator instead of having each node broadcast changes to the whole cluster. This gives us the ability to increment the updateId consistently without race conditions."
This reverts commit 35ff0975bf1193a1c787af365e15a4e0da970ed9.
2016-07-25 12:35:43 -04:00
Mark Payne
35ff0975bf NIFI-2292: Funnel all cluster node status changes through the cluster coordinator instead of having each node broadcast changes to the whole cluster. This gives us the ability to increment the updateId consistently without race conditions. 2016-07-25 12:14:13 -04:00
Mark Payne
6932a53ec9 NIFI-2360: Leave ZooKeeper running when a node is disconnected. Do not allow the last node in the cluster to be disconnected. Change ClusterProtocoLHeartbeater to use RetryNTime retry strategy instead of RetryForever because web requests could block on this
This closes #705

Signed-off-by: jpercivall <joepercivall@yahoo.com>
2016-07-22 23:57:00 -04:00
Matt Gilman
4a4d60e6af NIFI-2307: - Enforcing connection permissions based on the source and destination comonent. - Removing connection specific access policies. NIFI-2265: - Filtering out sensitive details in component status and status history when appropriate. NIFI-1800: - Adding parent process group id to the Controller Services table. NIFI-2077: - Removing some old un-used icons following the UI refresh. NIFI-2242: - Requiring write permissions for all components in a selection. NIFI-2080: - Updating style of the name in the selection context to handle scroll bars and use available width. NIFI-2331: - Addressing issue when removing a user/group which was causing the tenant policy to be removed. NIFI-2335: - Ensuring the flow is saved after starting/stopping a process group. NIFI-2235: - Ensuring we use consistent conditions between the context menu and the operate palette.
- Allowing users with read only access to the tenants page.
- Fixing current user integration test.
- Ensuring schedule methods are locked appropriately.
- Addressing comments from PR.

This closes #698

Signed-off-by: jpercivall <joepercivall@yahoo.com>
2016-07-21 23:52:01 -04:00
Mark Payne
10b91ffe6c NIFI-2332: Ensure that bulletin node address is set when clustered but not overwritten if already set
This closes #692

Signed-off-by: jpercivall <joepercivall@yahoo.com>
2016-07-20 19:44:32 -04:00
Mark Payne
7f2bda29d9 NIFI-2289: Ensure that we include Node ID's of all nodes when finding cluster coordinator, even if the node is currently still connecting or has not yet joined the cluster, which ccan be the case if all nodes in the cluster are restarting at the same time.
This closes #681

Signed-off-by: jpercivall <joepercivall@yahoo.com>
2016-07-20 16:50:25 -04:00
Mark Payne
2a7f135f1c NIFI-2319: Ensure that when we set cluster node id's and node addresses, that we do so only if they are not already populated
This closes #680

Signed-off-by: jpercivall <joepercivall@yahoo.com>
2016-07-20 11:39:57 -04:00
Mark Payne
108c815988 NIFI-2324: Log number of requests per URI if we have too many outstanding requests to replicate
This closes #683

Signed-off-by: jpercivall <joepercivall@yahoo.com>
2016-07-20 11:22:24 -04:00
Mark Payne
5c8636edf4 NIFI-2289: Directly ask ZooKeeper which node is cluster coordinator and add watches on the ZNode rather than relying on Node Status Updates over the cluster protocol because cluster protocol may get the events out-of-order
This closes #665.

Signed-off-by: Bryan Bende <bbende@apache.org>
2016-07-18 10:13:42 -04:00
Oleg Zhurakousky
52a961873b NIFI-826 This closes #617. Added deterministic template support 2016-07-15 20:41:18 -04:00
Mark Payne
c81dc1959a NIFI-1992:
- Updated site-to-site client and server to support clustered nifi instances
NIFI-2274:
- Ensuring we use the correct URI when updating a connection.

This closes #530
2016-07-15 16:13:59 -04:00
Matt Gilman
5cd5a4ce78 NIFI-2260:
- Addressing issue searching provenance on a specific node.
- Fixing issues viewing content and replaying events.

This closes #658.
2016-07-15 12:14:24 -04:00
Aldrin Piri
d1129706e2 NIFI-1896 This closes #650. Refactored nifi-api into nifi-framework-api and other locations. The nifi-api is specific to that which is needed for intended extension points. 2016-07-14 18:24:48 -04:00
Mark Payne
f6136b69e5 NIFI-1413: Rebased against master and updated templates endpoint merge to use template entities instead of template dto's
This closes #649
2016-07-14 15:19:47 -04:00
Mark Payne
329192a7d3 NIFI-1413: Ensure that if a node's templates don't match the clusters that we take the following actions: -Local templates remain but aren't shown in the cluster's templates. -Any templates from the cluster that don't exist on the node are added to the node. -Any conflicting template definitions are replaced by those in the cluster
This closes #596
2016-07-14 15:01:46 -04:00
Matt Gilman
3373e18158 NIFI-1947 NIFI-2082:
- Making it more obviously when a nodes cluster state changes.
- Showing which node is the cluster coordinator.

This closes #651
2016-07-14 11:31:48 -04:00
Matt Gilman
6e5e4cf52b NIFI-2204:
- Move bulletins out of the controller status endpoint.
NIFI-2238:
- Ensuring the controller bulletins are rendered on screen.
NIFI-2246:
- Ensuring the correct number of bulletins are returned when clustered.
2016-07-14 08:50:26 -04:00
Matt Burgess
68242d4046 Revert "NIFI-1413: Ensure that if a node's templates don't match the clusters that we take the following actions: -Local templates remain but aren't shown in the cluster's templates. -Any templates from the cluster that don't exist on the node are added to the node. -Any conflicting template definitions are replaced by those in the cluster"
This reverts commit 6f6e1b32d98af87c335772fc00089a63b23e7bdf.
2016-07-13 18:10:43 -04:00
Mark Payne
6f6e1b32d9 NIFI-1413: Ensure that if a node's templates don't match the clusters that we take the following actions: -Local templates remain but aren't shown in the cluster's templates. -Any templates from the cluster that don't exist on the node are added to the node. -Any conflicting template definitions are replaced by those in the cluster
This closes #596
2016-07-13 17:35:15 -04:00
Mark Payne
3c49a93289 NIFI-2234: Fixed but that was overwriting the cluster node identifier in provenance events. This closes #633 2016-07-13 08:19:01 -04:00
Mark Payne
cf183e15e3 NIFI-2185: Proxy requests through the cluster coordinator rather than making use of distributed read/write locks. This closes #621 2016-07-11 08:12:44 -04:00
Mark Payne
f4c94e349c NIFI-2170: Refactor RevisionManager into a RevisionManager and a DistributedLockingManager. This closes #610 2016-07-06 14:36:12 -04:00
Matt Gilman
f0811ca45a NIFI-1554:
- Addressing access controls for the Controller resource.
- Addressing access controls for RAW site to site clients.
- Addressing access controls for downloading content (from provenance and queue).
- Addressing access controls for accessing queues.
- Addressing access controls for cluster endpoints.
- Addressing access controls for counter endpoints.
- Removing redundant authorization calls.
NIFI-2044:
- Requiring revision when creating components.
- Requiring component creation over POST requests.
NIFI-1901
- Continuing to restore access control tests.
- Converting access control tests to itegration tests.
- Restoring contrib check to travis build.
- This closes #567
2016-06-23 17:09:54 -04:00
Mark Payne
fd5327e1b9 NIFI-2059: Ensure that we properly pass along proxied entities in HTTP headers when secure and ensure that we don't keep creating new Root Group ID's once we've created one, even after restart. This closes #572. 2016-06-23 16:32:25 -04:00
Bryan Bende
4f2643f668 NIFI-2061 Added methods to AbstractPolicyBasedAuthorizer to generate and inherit a fingerprint
- Updated StandardFlowSynchronizer to compare authorization fingerprints
- This closes #566
2016-06-23 14:36:04 -04:00
Mark Payne
0e085bdddd NIFI-2065: When a provenance query matches the max number of results requested, stop querying lucene for improved performance
This closes #558
2016-06-22 13:27:31 -04:00
Scott Aslan
8b27ed905d [NIFI-1879] Responsive dialogs and dialog UX refresh. This closes #523 2016-06-21 14:48:14 -04:00
Mark Payne
ce8a0de368 NIFI-1994: Fixed issue with Controller Service Fully Qualified Class Names and ensure that services are added to the process groups as appropriate when instantiating templates
NIFI-1882: Ensuring Controller Services are copied as part of a ProcessGroupDTO. This closes #517
2016-06-20 22:24:25 -04:00
Yolanda M. Davis
cb3aa8f5c9 NIFI-1850 - Initial Commit for JSON-to-JSON Schema Converter Editor (merge from 0.7.0 - refactor for masterless cluster). This closes #511 2016-06-20 20:30:25 -04:00
Matt Gilman
2c69c25323 NIFI-2007:
- Restoring bulletin functionality.
- Ensuring appropriate merging of bulletins in clustered responses.

- Updated the phrasing for cluster-related bulletins

This closes #531.
2016-06-17 13:20:20 -04:00
Matt Gilman
0b437e09a7 NIFI-2007:
- Restoring bulletin functionality.
- Ensuring appropriate merging of bulletins in clustered responses.
2016-06-17 13:20:20 -04:00
Koji Kawamura
c120c4982d NIFI-1857: HTTPS Site-to-Site
- Enable HTTP(S) for Site-to-Site communication
- Support HTTP Proxy in the middle of local and remote NiFi
- Support BASIC and DIGEST auth with Proxy Server
- Provide 2-phase style commit same as existing socket version
- [WIP] Test with the latest cluster env (without NCM) hasn't tested yet

- Fixed Buffer handling issues at asyc http client POST
- Fixed JS error when applying Remote Process Group Port setting from UI
- Use compression setting from UI
- Removed already finished TODO comments

- Added additional buffer draining code after receiving EOF
- Added inspection and assert code to make sure Site-to-Site client has
  written data fully to output
stream
- Changed default nifi.remote.input.secure from true to false

This closes #497.
2016-06-09 15:09:57 -04:00