Exemplo n.º 1
0
def test_list_all_connections(regress_nifi, fix_proc):
    f_p1 = fix_proc.generate()
    f_p2 = fix_proc.generate()
    r1 = [
        x for x in canvas.list_all_connections()
        if conftest.test_basename in x.component.name
    ]
    assert not r1
    # connect single relationship
    c1 = canvas.create_connection(f_p1, f_p2, ['success'],
                                  conftest.test_basename)
    r2 = [
        x for x in canvas.list_all_connections('root')
        if conftest.test_basename in x.component.name
    ]
    assert len(r2) == 1
    r3 = [
        x for x in canvas.list_all_connections(canvas.get_root_pg_id())
        if conftest.test_basename in x.component.name
    ]
    assert len(r3) == 1
    assert isinstance(r2[0], nifi.ConnectionEntity)
    c2 = canvas.create_connection(f_p1, f_p2, name=conftest.test_basename)
    r2 = [
        x for x in canvas.list_all_connections('root')
        if conftest.test_basename in x.component.name
    ]
    assert len(r2) == 2
    _ = canvas.delete_connection(c1)
    _ = canvas.delete_connection(c2)
    r3 = [
        x for x in canvas.list_all_connections('root')
        if conftest.test_basename in x.component.name
    ]
    assert not r3
Exemplo n.º 2
0
def test_nifi_queues():
    assert [] == \
        ['Found queue not empty: {} -> {}, Queued: {}'.format(
            conn.component.source.name, conn.component.destination.name,
            conn.status.aggregate_snapshot.queued)
         for conn in [x for x in canvas.list_all_connections()
                      if int(x.status.aggregate_snapshot.queued_count.replace(',', '')) > QUEUED_MSG_THRESHOLD]]
Exemplo n.º 3
0
    def add_output(self, obj, remove_existing_connections=True):
        assert isinstance(obj, nifi.ProcessorEntity) or isinstance(
            obj, nifi.PortEntity)

        self.outputs.append(obj)
        if remove_existing_connections:
            # connections = canvas.list_all_connections(self.base.component.id, True)
            connections = canvas.list_all_connections()
            this_connections = [
                x for x in connections if obj.component.id == x.source_id
            ]
            self.connections_to_remove += this_connections
Exemplo n.º 4
0
def update_connection(source, destination, new_destination):
    conn = [c for c in canvas.list_all_connections() if c.source_id == source.id and c.destination_id == destination.id][0]
    return nifi.ConnectionsApi().update_connection(conn.id, {
        "revision": conn.revision,
        "component": {
            "id": conn.id,
            "destination": {
                "id": new_destination.id,
                "groupId": new_destination.component.parent_group_id,
                "type": "INPUT_PORT"
            }
        }
    })
Exemplo n.º 5
0
def delete_all_connections(process_group, purge=True, descendants=True):
    """
    Purges and deletes all connections inside a process group

    Args:
        process_group (ProcessGroupEntity): Process group where connections should be purged and deleted
        purge (bool): True to Purge, Defaults to True
        descendants (bool): True to recurse child PGs, False to not
    """
    assert isinstance(process_group, nifi.ProcessGroupEntity)

    connections = canvas.list_all_connections(process_group.component.id, descendants=descendants)
    print("Listing connections in " + process_group.component.id)
    print(connections)
    for connection in connections:
        canvas.delete_connection(connection, purge=purge)
Exemplo n.º 6
0
    def test_run(self):
        content_string = "This is the content of the test message"

        message = FlowFile(content_string, {"attribute1": "value1"})
        result = Test1To1Test.test.run("Processor 2", message)
        # Check result
        assert result.content == content_string
        assert result.attributes['test_input_name'] == self.proc_2.component.name
        assert result.attributes['test_output_name'] == self.proc_3.component.name
        assert int(result.attributes['test_start_time']) > 0
        assert int(result.attributes['test_end_time']) > 0
        assert int(result.attributes['test_duration']) == int(result.attributes['test_end_time']) - int(result.attributes['test_start_time'])

        # Check is test was cleaned up nicely
        # The test process group should be removed
        assert len(canvas.list_all_process_groups(Test1To1Test.pg_test.component.id)) == 1  # Only counting self
        # Check if connections were built again; there should be 3 now
        assert len(canvas.list_all_connections(Test1To1Test.pg_test.component.id, descendants=False)) == 3
Exemplo n.º 7
0
def test_list_all_connections(regress_nifi, fix_pg, fix_proc):
    f_p1 = fix_proc.generate()
    f_p2 = fix_proc.generate()
    r1 = [
        x for x in canvas.list_all_connections()
        if conftest.test_basename in x.component.name
    ]
    assert not r1
    # connect single relationship
    c1 = canvas.create_connection(f_p1, f_p2, ['success'],
                                  conftest.test_basename)
    r2 = [
        x for x in canvas.list_all_connections('root')
        if conftest.test_basename in x.component.name
    ]
    assert len(r2) == 1
    r3 = [
        x for x in canvas.list_all_connections(canvas.get_root_pg_id())
        if conftest.test_basename in x.component.name
    ]
    assert len(r3) == 1
    assert isinstance(r2[0], nifi.ConnectionEntity)
    c2 = canvas.create_connection(f_p1, f_p2, name=conftest.test_basename)
    r2 = [
        x for x in canvas.list_all_connections('root')
        if conftest.test_basename in x.component.name
    ]
    assert len(r2) == 2
    _ = canvas.delete_connection(c1)
    _ = canvas.delete_connection(c2)
    r4 = [
        x for x in canvas.list_all_connections('root')
        if conftest.test_basename in x.component.name
    ]
    assert not r4
    # Test Issue #129 - nested PGs with descendents missing nested content
    f_pg1 = fix_pg.generate()
    f_pg2 = fix_pg.generate(parent_pg=f_pg1)
    f_p3 = fix_proc.generate(parent_pg=f_pg2)
    f_p4 = fix_proc.generate(parent_pg=f_pg2)
    c2 = canvas.create_connection(f_p3, f_p4, ['success'],
                                  conftest.test_basename)
    r5 = [
        x for x in canvas.list_all_connections(f_pg2.id)
        if conftest.test_basename in x.component.name
    ]
    assert len(r5) == 1
    assert r5[0].id == c2.id
Exemplo n.º 8
0
def nifi_delete_all(pg):
    canvas.schedule_process_group(pg.id, False)
    for conn in canvas.list_all_connections(pg.id):
        LOG.debug('Connection: ' + conn.id)
        canvas.delete_connection(conn, purge=True)
    for input_port in canvas.list_all_input_ports(pg.id):
        LOG.debug('Input Port: ' + input_port.id)
        canvas.delete_port(input_port)
    for output_port in canvas.list_all_output_ports(pg.id):
        LOG.debug('Output Port: ' + output_port.id)
        canvas.delete_port(output_port)
    for funnel in canvas.list_all_funnels(pg.id):
        LOG.debug('Funnel: ' + funnel.id)
        canvas.delete_funnel(funnel)
    for processor in canvas.list_all_processors(pg.id):
        LOG.debug('Processor: ' + processor.id)
        canvas.delete_processor(processor, force=True)
    for process_group in canvas.list_all_process_groups(pg.id):
        if pg.id == process_group.id:
            continue
        LOG.debug('Process Group: ' + process_group.id)
        nifi_delete_all(process_group)
        canvas.delete_process_group(process_group, force=True)