Commit Graph

4194 Commits

Author SHA1 Message Date
Mark Payne b6117743d4
NIFI-4436: Ensure that on save, we assign a Versioned Component Identifier to inner process groups that are tracking to remote flows, if they don't have one. This would occur, for instance, if a Process Group was imported into an existing group (or copied/moved into it) and then the existing group was saved.
NIFI-4436: Fixed a bug that caused a flow not to successfully change version if a connection is added to an existing component and that component is running at time of version change

NIFI-4436: Fixed bug with ordering of controller services being enabled and disabled

NIFI-4436: Fixed bug that prevented local input and output ports from being stopped and started as needed

NIFI-4436: Fixed bugs around referencing controller services that are at a higher level than the versioned flow

NIFI-4436: Ensure that we clear components from FlowController's cache when removed and that they are added to cache when created.

NIFI-4436: Fixed error message coming back if component is invalid when trying to be restarted/re-enabled

NIFI-4436: Addressed issue with children of a removed process group not being considered 'affected components' and as a result not being stopped/disabled/restarted/re-enabled

This closes #2219.

Signed-off-by: Matt Gilman <matt.c.gilman@gmail.com>
2018-01-08 13:10:13 -05:00
Matt Gilman fa996cd418
NIFI-4436:
- Minor tweak to when the max height for the options list is calculated per PR comments.
- Resolving logic issue in two phase commit when updating variable registry.
- Fixing variable visibility.
2018-01-08 12:44:57 -05:00
Mark Payne f702f808a7
NIFI-4436: Fixed bug that caused a Process Group to be 'dirty' if a processor that was referencing a non-existent controller service is updated to reference an externally available controller service
Signed-off-by: Matt Gilman <matt.c.gilman@gmail.com>
2018-01-08 12:44:57 -05:00
Matt Gilman b3e1584ef4
NIFI-4436:
- Addressing PR feedback.
- Addressing two phase commit logic issue when changing the flow version.
2018-01-08 12:44:57 -05:00
Mark Payne 63544c880f
NIFI-4436: Fixed bug that caused in Process Groups' names not to be fixed when reverting changes
Signed-off-by: Matt Gilman <matt.c.gilman@gmail.com>
2018-01-08 12:44:57 -05:00
Matt Gilman fd18eeb84e
NIFI-4436:
- Code clean up.
- Backing out incomplete fix for variable registry two phase commit to address in separate JIRA.
2018-01-08 12:44:57 -05:00
Mark Payne 118667a601
NIFI-4436: Bug fixes
Signed-off-by: Matt Gilman <matt.c.gilman@gmail.com>
2018-01-08 12:44:56 -05:00
Matt Gilman 20b539aac3
NIFI-4436:
- Bumping registry version to 0.1.0.
- Addressing PR comments.
2018-01-08 12:44:56 -05:00
Mark Payne 0127b02617
NIFI-4436: Fixed bug that causes a deadlock when changing version of a PG. Before this patch, an update would obtain a write lock and then recurse downward through the child groups, obtaining write locks to update variable registries. At the same time, if a Processor is obtaining a Controller Service, it will obtain a Read Lock on the Process Group and then recurse upward through the ancestors, obtaining Read Lock. If the timing is right, we can have a group obtain a read lock, then try to obtain its parent's Read Lock. At the same time, an update to the group could hold the Write Lock on the Process Group and attempt to obtain a Write Lock on child (where the Processor lives), resulting in a deadlock.
Signed-off-by: Matt Gilman <matt.c.gilman@gmail.com>
2018-01-08 12:44:56 -05:00
Matt Gilman c5b0931e55
NIFI-4436:
- Minor UX tweaks.
- Updating imports due to refactoring of Registry models.
- Fixing checkstyle issues.
2018-01-08 12:44:56 -05:00
Mark Payne 416b86145f
NIFI-4436: Bug fixes
Signed-off-by: Matt Gilman <matt.c.gilman@gmail.com>
2018-01-08 12:44:56 -05:00
Matt Gilman f48808b1f4
NIFI-4436:
- Updating buckets permissions based on new model.
- Adding check to ensure that flow name is non null before checking the length.
- Adding versioned flow state to the Process Group tab in the Summary table.
- Fixing issue with navigating to Controller Services from the local changes dialog.
2018-01-08 12:44:56 -05:00
Mark Payne 181d6809c1
NIFI-4436: Bug fixes; ensure correct Exception types are thrown
Signed-off-by: Matt Gilman <matt.c.gilman@gmail.com>
2018-01-08 12:44:55 -05:00
Matt Gilman 1266235c00
NIFI-4436:
- Code clean up.
- Improved error handling.
- Minor UX improvements.
- Always showing Process Group state to complement the aggregation counts.
- Adding the Process Group state to the top status bar.
2018-01-08 12:44:55 -05:00
Mark Payne fe8b30bf26
NIFI-4436: Removed isCurrent, isModified from VersionControlInformation and associated DTO. Bug fixes & code refactoring
Signed-off-by: Matt Gilman <matt.c.gilman@gmail.com>
2018-01-08 12:44:55 -05:00
Matt Gilman db2cc9fec1
NIFI-4436:
- Code clean up.
- Improved error handling.
- Minor UX improvements.
- Adding message to indicate that variables do not support sensitive values.
- Preventing a user from changing the flow version to the current version.
- Only presenting buckets a user has appropriate permissions to.
- Adding basic auditing to the version control actions.
2018-01-08 12:44:55 -05:00
Mark Payne 014c542f48
NIFI-4436: Bug fix to ensure that RPG's ports are not removed until after connections are established to the ports; ensure that if a registry's name is changed that it is updated immediately in VersionControlInformation objects
Signed-off-by: Matt Gilman <matt.c.gilman@gmail.com>
2018-01-08 12:44:55 -05:00
Matt Gilman 49aad2c3a8
NIFI-4436:
- Updating front end to use version control state/status.
- Fixing copy/paste issue during revert local changes.
- Code clean up in the breadcrumbs.
- Update VersionsResource authorization and two phase commit object usage.
2018-01-08 12:44:54 -05:00
Mark Payne fdef5b5605
NIFI-4436: More intelligently flag a ProcessGroup to indicate whether or not it has any local modifications compared to Versioned Flow - Bug fixes - Updated to include status of a Versioned Process Group to include VersionedFlowState and explanation
Signed-off-by: Matt Gilman <matt.c.gilman@gmail.com>
2018-01-08 12:44:54 -05:00
Matt Gilman d34fb5e2ef
NIFI-4436:
- Addressing miscellaneous minor UX issues.
- Updating comments UX for all components.
- Updating the styling of PG and RPG to be more consistent.
- Adding the icons for nested versioned process groups.
- Calculating the number/states of nested versioned process groups.
2018-01-08 12:44:54 -05:00
Mark Payne e1606701c7
NIFI-4436, NIFI-4461: When copying and pasting an RPG, ensure that we copy Batch Settings for each Port. Bug fixes. Now works in clustered mode.
Signed-off-by: Matt Gilman <matt.c.gilman@gmail.com>
2018-01-08 12:44:54 -05:00
Matt Gilman c92022dd60
NIFI-4436:
- Fixing default border radius.
- Code clean up.
- Ensuring component visibility is updated after updating/reverting.
- Fixing sort on component name in local changes dialog
NIFI-4526:
- Added front end controls for updating RPG target URL.
2018-01-08 12:44:54 -05:00
Mark Payne adacb204a8
NIFI-4436: Bug fixes - Checkpoint before allowing multiple Process Groups with same Versioned Component ID and same parent - Ensure that if flow update is cancelled while processors are being stopped/services disabled that we stop waiting for that to occur. Also ensure that if we fail to update flow that we re-enable/restart the processors and services - Updated verbiage to use a ConciseEvolvingDifferentDescriptor when getting local modifications for a versioned flow - Do not allow outer process group to be saved to flow registry or have local modifications reverted if it has a descendant process group that is under version control and is dirty. Fixed bug where ComponentDifferenceDTO was populated with wrong component id and group id
Signed-off-by: Matt Gilman <matt.c.gilman@gmail.com>
2018-01-08 12:44:53 -05:00
Matt Gilman 3d8b1e4890
NIFI-4436:
- Clearing bucket/flow/versions when changing the selected registry/bucket.
- Using the versioned flow to get the group name when importing.
- Adding menu items for viewing local changes.
- Showing local changes during revert request.
2018-01-08 12:44:53 -05:00
Mark Payne f6cc5b6cdc
NIFI-4436: Integrate with actual Flow Registry via REST Client - Store Bucket Name, Flow Name, Flow Description for VersionControlInformation - Added endpoint for determining local modifications to a process group - Updated authorizations required for version control endpoints - Add state and percent complete fields ot VersionedFlowUpdateRequestDTO - If a variable exists in a parent process group, do not include it in imported/updated process group when interacting with flow registry - Code cleanup, documentation; bug fixes - Ensure that we are passing NiFiUser to the flow registry client when appropriate - Updated to work against new version of flow registry client; deleted file-based flow registry client
Signed-off-by: Matt Gilman <matt.c.gilman@gmail.com>
2018-01-08 12:44:53 -05:00
Matt Gilman d6e54f19ee
NIFI-4436:
- Adding the version number to the start version control, commit, and change version dialog.
- Showing a loading item in the combo's while querying for the registries, buckets, and flows.
- Adding tooltips to display version control information on the canvas.
- Adding progress bar dialogs for changing version and reverting local changes.
- Updating canvas and breadcrumb according to the version control state.
- Updating to use registry name, bucket name, and flow name where appropriate.
2018-01-08 12:44:53 -05:00
Mark Payne 6b00dff1a8
NIFI-4436: Integrate with actual Flow Registry via REST Client - Store Bucket Name, Flow Name, Flow Description for VersionControlInformation - Added endpoint for determining local modifications to a process group - Updated authorizations required for version control endpoints - Add state and percent complete fields ot VersionedFlowUpdateRequestDTO
Signed-off-by: Matt Gilman <matt.c.gilman@gmail.com>
2018-01-08 12:44:53 -05:00
Matt Gilman 696d583b14
NIFI-4436:
- Added the import dialog for importing a versioned flow into a new process group.
- Added the change version dialog for upgrading/downgrading a versioned flow.
2018-01-08 12:44:52 -05:00
Mark Payne 6aa8b5c61c
NIFI-4436: Added additional endpoints; bug fixes
Signed-off-by: Matt Gilman <matt.c.gilman@gmail.com>
2018-01-08 12:44:52 -05:00
Matt Gilman 7a0a900a0f
NIFI-4436:
- Adding support to save a version of a flow based on a selected Process Group.
- Adding support for revert changes back to the most recent version.
- Adding support to disconnect from version control.
- Moving the version control information out of the entity objects and into the dto's.
- Fixing checkstyle issues.
NIFI-4502:
- Updating the UI to allow for the user to register registry clients.
- Updating the version control menu item names.
2018-01-08 12:44:52 -05:00
Mark Payne 6a58d780d7
NIFI-4436:
- Initial checkpoint: able ot start version control and detect changes, in standalone mode, still 'crude' implementation
- Checkpoint: Can place flow under version control and can determine if modified
- Checkpoint: Change version working in some cases. Does not work if processor removed because COMPONENT_REMOVED type has ComponentA whose ID is the VersionedComponentID but we are trying to call ProcessorDAO.get() with this ID
- Checkpoint: Able to change flow from Version 1 to Version 2 and back. Not yet tested with controller services. Have not tried changing/removing connections. Not cluster-friendly yet. All inline, not in background. Have not taken into account ports, funnels, remote ports, etc. Have not tested with Labels yet
- Checkpoint after implementing ClusterReplicationComponentLifecycle instead of JerseyClientComponentLifecycle
- Checkpoint: Updated to allow starting version control and updating version in clustered mode
- Checkpoint: Updated versioning endpoint so that when version of a flow is updated, the bundle information is populated and the snapshot is replicated to the cluster.
- Checkpoint: Implemented endpoint for reverting to previously sync'ed version of a flow and updated version control endpoint so that Process Group can be pushed as a new version to existing flow instead of only creating a new flow
- Checkpoint: Updated so that if a Process Group is under Version Control and it has a child Process Group, which is also under Version Control, we can handle that gracefully. Not yet tested because it depends on updates to the nifi-registry module, which can't be compiled due to maven dependency conflicts
2018-01-08 12:44:52 -05:00
Andre F de Miranda 8d4fe38bb4 NIFI-4197 - Expose some proxy settings to GCS Processors
Signed-off-by: James Wing <jvwing@gmail.com>

This closes #2017.
2018-01-06 17:33:31 -08:00
Mike Thomsen d9866c75e2 NIFI-4649 Added FlattenJson processor.
Signed-off-by: Matthew Burgess <mattyb149@apache.org>

This closes #2307

Replaced star imports, removed unused import

Added explanation for invalid Expression
2018-01-05 18:14:30 -05:00
Jeff Storck 89fb1b37d9 NIFI-3472 Fixed a typo in the Kerberos Relogin Period property description
This closes #2380
2018-01-05 16:41:33 -05:00
Matthew Burgess e43f07e31d
NIFI-4742: Clean up CaptureChangeMySQL connection resources on connect failure. This closes #2379 2018-01-05 16:00:13 -05:00
Kevin Doran 81d3f6f326
NIFI-4740 Fix User Group Data Integrity Checks. This closes #2378
Removes user existence check from FileUserGroupProvider when
group is created or updated. Replaces it with check in the
Authorizer Decorator class created by Authorizer Factory, so
that all providers are used.

Also fixes bug when searching for group membership by user
that returns results across all providers.
2018-01-05 14:22:35 -05:00
Koji Kawamura 4b8c80cccc
NIFI-4741: Avoid DelegationToken expiration at ReportLineageToAtlas. This closes #2377
The reporting task used to hold a single AtlasClientV2 instance
throughout its runtime starting from being started until being stopped.
If it is configured to use Kerberos authentication for Atlas REST API, after
a published DelegationToken expires (10 hours by default), the reporting
task will not be able to recover from 401 Unauthorized state.

In order to avoid stucking in such situation, this commit changes the
way ReportLineageToAtlas uses AtlasClientV2 instance to create an
instance per onTrigger execution. It also addresses Kerberos ticket
expiration.

This approach incurs some overheads by initiating the client each time,
however, it should be insignificant from an overall processing time
perspective including analyzing NiFi flow and Provenance records.
2018-01-05 11:17:33 -05:00
Koji Kawamura e5ed62a98f NIFI-4724: Support 0 byte message with PublishKafka
Before this fix, PublishKafka (0.9) and PublishKafka_0_10 fail with empty incoming FlowFiles due to 'transfer relationship not specified' error.
Because the internal 'publish' method is not called as StreamDemarcator does not emit any token regardless whether demarcator is set or not.

As for PublishKafka_0_11 and PublishKafka_1_0, empty FlowFiles are transferred to 'success' relationship, however no Kafka message is sent to Kafka.

Since Kafka allows 0 byte body empty messages, NiFi should be able to send it, too.

This commit changes above current situation to the followings, with all PublishKafka_* processors:

- If demarcator is not set, then publish incoming FlowFile content as it is. This enables sending an empty Kafka message.
- If demarcator is set, send each token as a separate message.
  Even if no token is found (empty incoming FlowFile), transfer the FlowFile to 'success'.

This closes #2362.

Signed-off-by: Mark Payne <markap14@hotmail.com>
2018-01-05 10:42:58 -05:00
Mark Payne 3b10a8479e Fixed bug in unit tests that were causing test failures 2018-01-05 09:59:01 -05:00
yuri1969 41d9506a2b
NIFI-4402 - Add component location in Summary view
Implemented as described in the issue. Improvements are welcome.
Reworded the title according to feedback.
This closes #2195
2018-01-05 09:09:37 -05:00
Matthew Burgess ce4374ee00
NIFI-4738: Fixed logic bug in JdbcCommon for 9-digit unsigned ints. This closes #2373 2018-01-04 15:20:35 -05:00
Pierre Villard 99d767aa44 NIFI-4383 - Fix UpdateRecord when updating arrays elements. This closes #2208.
Signed-off-by: Mark Payne <markap14@hotmail.com>
2018-01-04 14:30:14 -05:00
Koji Kawamura 98af3dc4cd NIFI-4595: This closes #2264. Add ConsumeAzureEventHub.
Signed-off-by: joewitt <joewitt@apache.org>
2018-01-04 14:14:17 -05:00
Matt Gilman 7a8dbb8b15
NIFI-4733:
- Resolving logic issue in two phase commit when updating variable registry. This closes #2370
2018-01-04 13:03:11 -05:00
Aldrin Piri f7f001eb9a NIFI-4531: This closes #2372.
Providing support for running NiFi Docker image with LDAP authentication provider.
2018-01-04 12:09:46 -05:00
Aldrin Piri c832a2ed7c NIFI-4530: This closes #2329. Initial support for two-way SSL user authentication in the Docker image.
Signed-off-by: joewitt <joewitt@apache.org>
2018-01-04 10:37:37 -05:00
Matthew Burgess e439cfef10 NIFI-4389: This closes #2368. Add Ivy to scripting NARs for Grape/Grab in Groovy
Signed-off-by: joewitt <joewitt@apache.org>
2018-01-04 10:20:47 -05:00
Matt Gilman a2a8fcb31c NIFI-4092: This closes #2365.
- Removing direct dependency on jaxb.

Signed-off-by: joewitt <joewitt@apache.org>
2018-01-04 09:38:35 -05:00
joewitt 6ee6b5e57c NIFI-4734 refactored couchbase bundle, jms bundle, removed jms test-lib usage, fixed broken SeeAlso and service links causing docs warns. Corrected L&N in each bundle. This closes #2369.
Signed-off-by: Mark Payne <markap14@hotmail.com>
2018-01-04 09:16:17 -05:00
Jeff Storck 42a1ee011b NIFI-4323 This closes #2360. Wrapped Get/ListHDFS hadoop operations in ugi.doAs calls
NIFI-3472 NIFI-4350 Removed explicit relogin code from HDFS/Hive/HBase components and updated SecurityUtils.loginKerberos to use UGI.loginUserFromKeytab. This brings those components in line with daemon-process-style usage, made possible by NiFi's InstanceClassloader isolation.  Relogin (on ticket expiry/connection failure) can now be properly handled by hadoop-client code implicitly.
NIFI-3472 Added default value (true) for javax.security.auth.useSubjectCredsOnly to bootstrap.conf
NIFI-3472 Added javadoc explaining the removal of explicit relogin threads and usage of UGI.loginUserFromKeytab
Readded Relogin Period property to AbstractHadoopProcessor, and updated its documentation to indicate that it is now a deprecated property
Additional cleanup of code that referenced relogin periods
Marked KerberosTicketRenewer is deprecated

NIFI-3472 Cleaned up imports in TestPutHiveStreaming
2018-01-03 11:31:47 -05:00