Skip to content

Commit

Permalink
Merge 12b77fe into 859945a
Browse files Browse the repository at this point in the history
  • Loading branch information
Chaffelson committed Nov 6, 2019
2 parents 859945a + 12b77fe commit f5c792a
Show file tree
Hide file tree
Showing 345 changed files with 29,388 additions and 718 deletions.
2 changes: 1 addition & 1 deletion README.rst
Expand Up @@ -97,7 +97,7 @@ Background and Documentation
NiFi Version Support
--------------------

| Currently we are testing against NiFi versions 1.1.2 - 1.9.2, and NiFi-Registry versions 0.1.0 - 0.3.0.
| Currently we are testing against NiFi versions 1.1.2 - 1.10, and NiFi-Registry versions 0.1.0 - 0.5.0.
| If you find a version compatibility problem please raise an `issue <https://github.com/Chaffelson/nipyapi/issues>`_
Python Requirements
Expand Down
6 changes: 6 additions & 0 deletions docs/history.rst
Expand Up @@ -2,6 +2,12 @@
History
=======

0.14.0 (2019-11-06)
-------------------

| Updated NiFi client and helpers to 1.10.0

0.13.3 (2019-10-09)
-------------------

Expand Down
2 changes: 1 addition & 1 deletion nipyapi/__init__.py
Expand Up @@ -9,7 +9,7 @@

__author__ = """Daniel Chaffelson"""
__email__ = 'chaffelson@gmail.com'
__version__ = '0.13.3'
__version__ = '0.14.0'
__all__ = ['canvas', 'system', 'templates', 'config', 'nifi', 'registry',
'versioning', 'demo', 'utils', 'security']

Expand Down
86 changes: 85 additions & 1 deletion nipyapi/canvas.py
Expand Up @@ -24,7 +24,9 @@
'schedule_controller', 'get_controller', 'list_all_controller_types',
'list_all_by_kind', 'list_all_input_ports', 'list_all_output_ports',
'list_all_funnels', 'list_all_remote_process_groups', 'delete_funnel',
'get_remote_process_group', 'update_process_group', 'create_funnel'
'get_remote_process_group', 'update_process_group', 'create_funnel',
'create_remote_process_group', 'delete_remote_process_group',
'set_remote_process_group_transmission'
]

log = logging.getLogger(__name__)
Expand Down Expand Up @@ -1336,6 +1338,88 @@ def get_remote_process_group(rpg_id, summary=False):
return out


def create_remote_process_group(target_uris, transport='RAW', pg_id='root', position=None):
"""
Creates a new Remote Process Group with given parameters
Args:
target_uris (str): Comma separated list of target URIs
transport (str): optional, RAW or HTTP
pg_id (str): optional, UUID of parent Process Group for remote process group
position (tuple): optional, tuple of location ints
Returns:
(RemoteProcessGroupEntity)
"""
assert isinstance(target_uris, str)
assert transport in ['RAW', 'HTTP']
assert isinstance(pg_id, str)
pg_id = pg_id if not 'root' else get_root_pg_id()
position = position if position else (400, 400)
assert isinstance(position, tuple)
with nipyapi.utils.rest_exceptions():
return nipyapi.nifi.ProcessGroupsApi().create_remote_process_group(
id=pg_id,
body=nipyapi.nifi.RemoteProcessGroupEntity(
component=nipyapi.nifi.RemoteProcessGroupDTO(
position=nipyapi.nifi.PositionDTO(
x=float(position[0]),
y=float(position[1])
),
target_uris=target_uris,
transport_protocol=transport
),
revision=nipyapi.nifi.RevisionDTO(version=0),
)
)


def delete_remote_process_group(rpg, refresh=True):
"""
Deletes a given remote process group
Args:
rpg (RemoteProcessGroupEntity): Remote Process Group to remove
refresh (bool): Whether to refresh the object before action
Returns:
(RemoteProcessGroupEntity)
"""
assert isinstance(rpg, nipyapi.nifi.RemoteProcessGroupEntity)
if refresh:
rpg = get_remote_process_group(rpg.id)
with nipyapi.utils.rest_exceptions():
return nipyapi.nifi.RemoteProcessGroupsApi().remove_remote_process_group(
id=rpg.id,
version=rpg.revision.version
)


def set_remote_process_group_transmission(rpg, enable=True, refresh=True):
"""
Args:
rpg (RemoteProcessGroupEntity): The ID of the remote process group to modify
enable (bool): True to enable, False to disable
refresh (bool): Whether to refresh the object before action
Returns:
"""
assert isinstance(rpg, nipyapi.nifi.RemoteProcessGroupEntity)
assert isinstance(enable, bool)
if refresh:
rpg = get_remote_process_group(rpg.id)
with nipyapi.utils.rest_exceptions():
return nipyapi.nifi.RemoteProcessGroupsApi().update_remote_process_group_run_status(
id=rpg.id,
body=nipyapi.nifi.RemotePortRunStatusEntity(
state='TRANSMITTING' if enable else 'STOPPED',
revision=rpg.revision
)
)


def create_port(pg_id, port_type, name, state, position=None):
"""
Creates a new input or output port of given characteristics
Expand Down
31 changes: 28 additions & 3 deletions nipyapi/nifi/__init__.py
Expand Up @@ -5,7 +5,7 @@
The Rest Api provides programmatic access to command and control a NiFi instance in real time. Start and stop processors, monitor queues, query provenance data, and more. Each endpoint below includes a description, definitions of the expected input and output, potential response codes, and the authorizations required to invoke each service.
OpenAPI spec version: 1.9.1
OpenAPI spec version: 1.10.0
Contact: dev@nifi.apache.org
Generated by: https://github.com/swagger-api/swagger-codegen.git
"""
Expand Down Expand Up @@ -62,12 +62,19 @@
from .models.component_search_result_dto import ComponentSearchResultDTO
from .models.component_state_dto import ComponentStateDTO
from .models.component_state_entity import ComponentStateEntity
from .models.component_validation_result_dto import ComponentValidationResultDTO
from .models.component_validation_result_entity import ComponentValidationResultEntity
from .models.component_validation_results_entity import ComponentValidationResultsEntity
from .models.connectable_component import ConnectableComponent
from .models.connectable_dto import ConnectableDTO
from .models.connection_dto import ConnectionDTO
from .models.connection_entity import ConnectionEntity
from .models.connection_statistics_dto import ConnectionStatisticsDTO
from .models.connection_statistics_entity import ConnectionStatisticsEntity
from .models.connection_statistics_snapshot_dto import ConnectionStatisticsSnapshotDTO
from .models.connection_status_dto import ConnectionStatusDTO
from .models.connection_status_entity import ConnectionStatusEntity
from .models.connection_status_predictions_snapshot_dto import ConnectionStatusPredictionsSnapshotDTO
from .models.connection_status_snapshot_dto import ConnectionStatusSnapshotDTO
from .models.connection_status_snapshot_entity import ConnectionStatusSnapshotEntity
from .models.connections_entity import ConnectionsEntity
Expand Down Expand Up @@ -104,6 +111,7 @@
from .models.drop_request_dto import DropRequestDTO
from .models.drop_request_entity import DropRequestEntity
from .models.explicit_restriction_dto import ExplicitRestrictionDTO
from .models.external_controller_service_reference import ExternalControllerServiceReference
from .models.flow_breadcrumb_dto import FlowBreadcrumbDTO
from .models.flow_breadcrumb_entity import FlowBreadcrumbEntity
from .models.flow_comparison_entity import FlowComparisonEntity
Expand All @@ -123,16 +131,17 @@
from .models.history_entity import HistoryEntity
from .models.input_ports_entity import InputPortsEntity
from .models.instantiate_template_request_entity import InstantiateTemplateRequestEntity
from .models.jaxb_link import JaxbLink
from .models.label_dto import LabelDTO
from .models.label_entity import LabelEntity
from .models.labels_entity import LabelsEntity
from .models.lineage_dto import LineageDTO
from .models.lineage_entity import LineageEntity
from .models.lineage_request_dto import LineageRequestDTO
from .models.lineage_results_dto import LineageResultsDTO
from .models.link import Link
from .models.listing_request_dto import ListingRequestDTO
from .models.listing_request_entity import ListingRequestEntity
from .models.node_connection_statistics_snapshot_dto import NodeConnectionStatisticsSnapshotDTO
from .models.node_connection_status_snapshot_dto import NodeConnectionStatusSnapshotDTO
from .models.node_counters_snapshot_dto import NodeCountersSnapshotDTO
from .models.node_dto import NodeDTO
Expand All @@ -146,6 +155,19 @@
from .models.node_status_snapshots_dto import NodeStatusSnapshotsDTO
from .models.node_system_diagnostics_snapshot_dto import NodeSystemDiagnosticsSnapshotDTO
from .models.output_ports_entity import OutputPortsEntity
from .models.parameter_context_dto import ParameterContextDTO
from .models.parameter_context_entity import ParameterContextEntity
from .models.parameter_context_reference_dto import ParameterContextReferenceDTO
from .models.parameter_context_reference_entity import ParameterContextReferenceEntity
from .models.parameter_context_update_request_dto import ParameterContextUpdateRequestDTO
from .models.parameter_context_update_request_entity import ParameterContextUpdateRequestEntity
from .models.parameter_context_update_step_dto import ParameterContextUpdateStepDTO
from .models.parameter_context_validation_request_dto import ParameterContextValidationRequestDTO
from .models.parameter_context_validation_request_entity import ParameterContextValidationRequestEntity
from .models.parameter_context_validation_step_dto import ParameterContextValidationStepDTO
from .models.parameter_contexts_entity import ParameterContextsEntity
from .models.parameter_dto import ParameterDTO
from .models.parameter_entity import ParameterEntity
from .models.peer_dto import PeerDTO
from .models.peers_entity import PeersEntity
from .models.permissions import Permissions
Expand All @@ -165,6 +187,7 @@
from .models.process_group_entity import ProcessGroupEntity
from .models.process_group_flow_dto import ProcessGroupFlowDTO
from .models.process_group_flow_entity import ProcessGroupFlowEntity
from .models.process_group_name_dto import ProcessGroupNameDTO
from .models.process_group_status_dto import ProcessGroupStatusDTO
from .models.process_group_status_entity import ProcessGroupStatusEntity
from .models.process_group_status_snapshot_dto import ProcessGroupStatusSnapshotDTO
Expand Down Expand Up @@ -247,7 +270,6 @@
from .models.tenants_entity import TenantsEntity
from .models.transaction_result_entity import TransactionResultEntity
from .models.update_controller_service_reference_request_entity import UpdateControllerServiceReferenceRequestEntity
from .models.uri_builder import UriBuilder
from .models.user_dto import UserDTO
from .models.user_entity import UserEntity
from .models.user_group_dto import UserGroupDTO
Expand Down Expand Up @@ -281,6 +303,8 @@
from .models.versioned_flows_entity import VersionedFlowsEntity
from .models.versioned_funnel import VersionedFunnel
from .models.versioned_label import VersionedLabel
from .models.versioned_parameter import VersionedParameter
from .models.versioned_parameter_context import VersionedParameterContext
from .models.versioned_port import VersionedPort
from .models.versioned_process_group import VersionedProcessGroup
from .models.versioned_processor import VersionedProcessor
Expand All @@ -301,6 +325,7 @@
from .apis.input_ports_api import InputPortsApi
from .apis.labels_api import LabelsApi
from .apis.output_ports_api import OutputPortsApi
from .apis.parameter_contexts_api import ParameterContextsApi
from .apis.policies_api import PoliciesApi
from .apis.process_groups_api import ProcessGroupsApi
from .apis.processors_api import ProcessorsApi
Expand Down
2 changes: 1 addition & 1 deletion nipyapi/nifi/api_client.py
Expand Up @@ -4,7 +4,7 @@
The Rest Api provides programmatic access to command and control a NiFi instance in real time. Start and stop processors, monitor queues, query provenance data, and more. Each endpoint below includes a description, definitions of the expected input and output, potential response codes, and the authorizations required to invoke each service.
OpenAPI spec version: 1.9.1
OpenAPI spec version: 1.10.0
Contact: dev@nifi.apache.org
Generated by: https://github.com/swagger-api/swagger-codegen.git
"""
Expand Down
1 change: 1 addition & 0 deletions nipyapi/nifi/apis/__init__.py
Expand Up @@ -13,6 +13,7 @@
from .input_ports_api import InputPortsApi
from .labels_api import LabelsApi
from .output_ports_api import OutputPortsApi
from .parameter_contexts_api import ParameterContextsApi
from .policies_api import PoliciesApi
from .process_groups_api import ProcessGroupsApi
from .processors_api import ProcessorsApi
Expand Down
100 changes: 99 additions & 1 deletion nipyapi/nifi/apis/access_api.py
Expand Up @@ -5,7 +5,7 @@
The Rest Api provides programmatic access to command and control a NiFi instance in real time. Start and stop processors, monitor queues, query provenance data, and more. Each endpoint below includes a description, definitions of the expected input and output, potential response codes, and the authorizations required to invoke each service.
OpenAPI spec version: 1.9.1
OpenAPI spec version: 1.10.0
Contact: dev@nifi.apache.org
Generated by: https://github.com/swagger-api/swagger-codegen.git
"""
Expand Down Expand Up @@ -931,6 +931,104 @@ def knox_request_with_http_info(self, **kwargs):
_request_timeout=params.get('_request_timeout'),
collection_formats=collection_formats)

def log_out(self, **kwargs):
"""
Performs a logout for other providers that have been issued a JWT.
Note: This endpoint is subject to change as NiFi and it's REST API evolve.
This method makes a synchronous HTTP request by default. To make an
asynchronous HTTP request, please define a `callback` function
to be invoked when receiving the response.
>>> def callback_function(response):
>>> pprint(response)
>>>
>>> thread = api.log_out(callback=callback_function)
:param callback function: The callback function
for asynchronous request. (optional)
:return: None
If the method is called asynchronously,
returns the request thread.
"""
kwargs['_return_http_data_only'] = True
if kwargs.get('callback'):
return self.log_out_with_http_info(**kwargs)
else:
(data) = self.log_out_with_http_info(**kwargs)
return data

def log_out_with_http_info(self, **kwargs):
"""
Performs a logout for other providers that have been issued a JWT.
Note: This endpoint is subject to change as NiFi and it's REST API evolve.
This method makes a synchronous HTTP request by default. To make an
asynchronous HTTP request, please define a `callback` function
to be invoked when receiving the response.
>>> def callback_function(response):
>>> pprint(response)
>>>
>>> thread = api.log_out_with_http_info(callback=callback_function)
:param callback function: The callback function
for asynchronous request. (optional)
:return: None
If the method is called asynchronously,
returns the request thread.
"""

all_params = []
all_params.append('callback')
all_params.append('_return_http_data_only')
all_params.append('_preload_content')
all_params.append('_request_timeout')

params = locals()
for key, val in iteritems(params['kwargs']):
if key not in all_params:
raise TypeError(
"Got an unexpected keyword argument '%s'"
" to method log_out" % key
)
params[key] = val
del params['kwargs']

collection_formats = {}

path_params = {}

query_params = []

header_params = {}

form_params = []
local_var_files = {}

body_params = None
# HTTP header `Accept`
header_params['Accept'] = self.api_client.\
select_header_accept(['*/*'])

# HTTP header `Content-Type`
header_params['Content-Type'] = self.api_client.\
select_header_content_type(['*/*'])

# Authentication setting
auth_settings = ['tokenAuth']

return self.api_client.call_api('/access/logout', 'DELETE',
path_params,
query_params,
header_params,
body=body_params,
post_params=form_params,
files=local_var_files,
response_type=None,
auth_settings=auth_settings,
callback=params.get('callback'),
_return_http_data_only=params.get('_return_http_data_only'),
_preload_content=params.get('_preload_content', True),
_request_timeout=params.get('_request_timeout'),
collection_formats=collection_formats)

def oidc_callback(self, **kwargs):
"""
Redirect/callback URI for processing the result of the OpenId Connect login sequence.
Expand Down
2 changes: 1 addition & 1 deletion nipyapi/nifi/apis/connections_api.py
Expand Up @@ -5,7 +5,7 @@
The Rest Api provides programmatic access to command and control a NiFi instance in real time. Start and stop processors, monitor queues, query provenance data, and more. Each endpoint below includes a description, definitions of the expected input and output, potential response codes, and the authorizations required to invoke each service.
OpenAPI spec version: 1.9.1
OpenAPI spec version: 1.10.0
Contact: dev@nifi.apache.org
Generated by: https://github.com/swagger-api/swagger-codegen.git
"""
Expand Down
2 changes: 1 addition & 1 deletion nipyapi/nifi/apis/controller_api.py
Expand Up @@ -5,7 +5,7 @@
The Rest Api provides programmatic access to command and control a NiFi instance in real time. Start and stop processors, monitor queues, query provenance data, and more. Each endpoint below includes a description, definitions of the expected input and output, potential response codes, and the authorizations required to invoke each service.
OpenAPI spec version: 1.9.1
OpenAPI spec version: 1.10.0
Contact: dev@nifi.apache.org
Generated by: https://github.com/swagger-api/swagger-codegen.git
"""
Expand Down
2 changes: 1 addition & 1 deletion nipyapi/nifi/apis/controller_services_api.py
Expand Up @@ -5,7 +5,7 @@
The Rest Api provides programmatic access to command and control a NiFi instance in real time. Start and stop processors, monitor queues, query provenance data, and more. Each endpoint below includes a description, definitions of the expected input and output, potential response codes, and the authorizations required to invoke each service.
OpenAPI spec version: 1.9.1
OpenAPI spec version: 1.10.0
Contact: dev@nifi.apache.org
Generated by: https://github.com/swagger-api/swagger-codegen.git
"""
Expand Down

0 comments on commit f5c792a

Please sign in to comment.