@platformatic/rdkafka 4.0.0 → 4.1.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/bench/seed.sh +0 -0
- package/binding.gyp +3 -3
- package/ci/prepublish.js +4 -3
- package/ci/update-version.js +123 -0
- package/config.d.ts +126 -10
- package/configure +0 -0
- package/deps/librdkafka/.semaphore/run-all-tests.yml +77 -0
- package/deps/librdkafka/.semaphore/semaphore-integration.yml +250 -0
- package/deps/librdkafka/.semaphore/semaphore.yml +67 -44
- package/deps/librdkafka/.semaphore/verify-linux-packages.yml +41 -0
- package/deps/librdkafka/CHANGELOG.md +471 -1
- package/deps/librdkafka/CONFIGURATION.md +29 -9
- package/deps/librdkafka/INTRODUCTION.md +909 -601
- package/deps/librdkafka/Makefile +2 -1
- package/deps/librdkafka/configure +0 -0
- package/deps/librdkafka/debian/rules +0 -0
- package/deps/librdkafka/dev-conf.sh +0 -0
- package/deps/librdkafka/examples/consumer.c +18 -8
- package/deps/librdkafka/examples/describe_consumer_groups.c +25 -6
- package/deps/librdkafka/examples/incremental_alter_configs.c +4 -5
- package/deps/librdkafka/examples/kafkatest_verifiable_client.cpp +26 -42
- package/deps/librdkafka/examples/openssl_engine_example.cpp +3 -4
- package/deps/librdkafka/examples/producer.cpp +2 -2
- package/deps/librdkafka/examples/user_scram.c +4 -5
- package/deps/librdkafka/examples/win_ssl_cert_store.cpp +4 -3
- package/deps/librdkafka/lds-gen.py +0 -0
- package/deps/librdkafka/mklove/Makefile.base +0 -0
- package/deps/librdkafka/packaging/RELEASE.md +8 -0
- package/deps/librdkafka/packaging/alpine/build-alpine.sh +0 -0
- package/deps/librdkafka/packaging/cp/README.md +4 -1
- package/deps/librdkafka/packaging/cp/check_features.c +12 -4
- package/deps/librdkafka/packaging/cp/verify-deb.sh +6 -6
- package/deps/librdkafka/packaging/cp/verify-packages.sh +52 -31
- package/deps/librdkafka/packaging/cp/verify-rpm.sh +6 -13
- package/deps/librdkafka/packaging/debian/docs +5 -0
- package/deps/librdkafka/packaging/debian/rules +0 -0
- package/deps/librdkafka/packaging/get_version.py +0 -0
- package/deps/librdkafka/packaging/homebrew/brew-update-pr.sh +0 -0
- package/deps/librdkafka/packaging/mingw-w64/{travis-before-install.sh → export-variables.sh} +0 -7
- package/deps/librdkafka/packaging/mingw-w64/semaphoreci-build.sh +1 -1
- package/deps/librdkafka/packaging/nuget/artifact.py +0 -0
- package/deps/librdkafka/packaging/nuget/cleanup-s3.py +0 -0
- package/deps/librdkafka/packaging/nuget/nuget.sh +0 -0
- package/deps/librdkafka/packaging/nuget/packaging.py +0 -0
- package/deps/librdkafka/packaging/nuget/push-to-nuget.sh +0 -0
- package/deps/librdkafka/packaging/nuget/release.py +0 -0
- package/deps/librdkafka/packaging/nuget/requirements.txt +3 -3
- package/deps/librdkafka/packaging/rpm/mock-on-docker.sh +0 -0
- package/deps/librdkafka/packaging/rpm/tests/run-test.sh +0 -0
- package/deps/librdkafka/packaging/rpm/tests/test-on-docker.sh +0 -0
- package/deps/librdkafka/packaging/tools/build-configurations-checks.sh +3 -1
- package/deps/librdkafka/packaging/tools/build-deb-package.sh +0 -0
- package/deps/librdkafka/packaging/tools/build-debian.sh +0 -0
- package/deps/librdkafka/packaging/tools/build-manylinux.sh +0 -0
- package/deps/librdkafka/packaging/tools/build-release-artifacts.sh +0 -0
- package/deps/librdkafka/packaging/tools/distro-build.sh +0 -0
- package/deps/librdkafka/packaging/tools/gh-release-checksums.py +0 -0
- package/deps/librdkafka/packaging/tools/rdutcoverage.sh +0 -0
- package/deps/librdkafka/packaging/tools/run-in-docker.sh +28 -0
- package/deps/librdkafka/packaging/tools/run-integration-tests.sh +31 -0
- package/deps/librdkafka/packaging/tools/run-style-check.sh +4 -0
- package/deps/librdkafka/packaging/tools/style-format.sh +6 -5
- package/deps/librdkafka/packaging/tools/update_rpcs_max_versions.py +100 -0
- package/deps/librdkafka/service.yml +154 -0
- package/deps/librdkafka/src/generate_proto.sh +0 -0
- package/deps/librdkafka/src/rd.h +145 -2
- package/deps/librdkafka/src/rdaddr.h +6 -7
- package/deps/librdkafka/src/rdatomic.h +15 -11
- package/deps/librdkafka/src/rdavg.h +3 -2
- package/deps/librdkafka/src/rdbase64.c +33 -2
- package/deps/librdkafka/src/rdbase64.h +2 -0
- package/deps/librdkafka/src/rdendian.h +10 -9
- package/deps/librdkafka/src/rdhttp.c +418 -100
- package/deps/librdkafka/src/rdhttp.h +23 -5
- package/deps/librdkafka/src/rdkafka.c +299 -145
- package/deps/librdkafka/src/rdkafka.h +89 -6
- package/deps/librdkafka/src/rdkafka_admin.c +482 -105
- package/deps/librdkafka/src/rdkafka_admin.h +42 -0
- package/deps/librdkafka/src/rdkafka_broker.c +463 -312
- package/deps/librdkafka/src/rdkafka_broker.h +68 -10
- package/deps/librdkafka/src/rdkafka_buf.c +8 -5
- package/deps/librdkafka/src/rdkafka_buf.h +4 -3
- package/deps/librdkafka/src/rdkafka_cert.c +25 -1
- package/deps/librdkafka/src/rdkafka_cert.h +4 -3
- package/deps/librdkafka/src/rdkafka_cgrp.c +468 -143
- package/deps/librdkafka/src/rdkafka_cgrp.h +36 -2
- package/deps/librdkafka/src/rdkafka_conf.c +526 -102
- package/deps/librdkafka/src/rdkafka_conf.h +68 -4
- package/deps/librdkafka/src/rdkafka_feature.c +472 -35
- package/deps/librdkafka/src/rdkafka_feature.h +2 -0
- package/deps/librdkafka/src/rdkafka_fetcher.c +22 -2
- package/deps/librdkafka/src/rdkafka_fetcher.h +2 -2
- package/deps/librdkafka/src/rdkafka_int.h +84 -46
- package/deps/librdkafka/src/rdkafka_metadata.c +221 -136
- package/deps/librdkafka/src/rdkafka_metadata.h +15 -11
- package/deps/librdkafka/src/rdkafka_metadata_cache.c +279 -73
- package/deps/librdkafka/src/rdkafka_mock.c +795 -19
- package/deps/librdkafka/src/rdkafka_mock.h +119 -0
- package/deps/librdkafka/src/rdkafka_mock_cgrp.c +1298 -132
- package/deps/librdkafka/src/rdkafka_mock_handlers.c +345 -49
- package/deps/librdkafka/src/rdkafka_mock_int.h +180 -61
- package/deps/librdkafka/src/rdkafka_msg.c +35 -19
- package/deps/librdkafka/src/rdkafka_msg.h +3 -3
- package/deps/librdkafka/src/rdkafka_msgset_writer.c +14 -10
- package/deps/librdkafka/src/rdkafka_offset.c +33 -5
- package/deps/librdkafka/src/rdkafka_op.c +1 -1
- package/deps/librdkafka/src/rdkafka_op.h +45 -21
- package/deps/librdkafka/src/rdkafka_partition.c +118 -23
- package/deps/librdkafka/src/rdkafka_partition.h +16 -7
- package/deps/librdkafka/src/rdkafka_proto.h +4 -1
- package/deps/librdkafka/src/rdkafka_protocol.h +1 -0
- package/deps/librdkafka/src/rdkafka_queue.c +125 -48
- package/deps/librdkafka/src/rdkafka_queue.h +19 -0
- package/deps/librdkafka/src/rdkafka_range_assignor.c +1 -1
- package/deps/librdkafka/src/rdkafka_request.c +336 -64
- package/deps/librdkafka/src/rdkafka_request.h +24 -1
- package/deps/librdkafka/src/rdkafka_sasl.c +5 -3
- package/deps/librdkafka/src/rdkafka_sasl_oauthbearer.c +14 -10
- package/deps/librdkafka/src/rdkafka_sasl_oauthbearer_oidc.c +1166 -89
- package/deps/librdkafka/src/rdkafka_sasl_oauthbearer_oidc.h +13 -3
- package/deps/librdkafka/src/rdkafka_sasl_plain.c +3 -3
- package/deps/librdkafka/src/rdkafka_sasl_scram.c +4 -3
- package/deps/librdkafka/src/rdkafka_ssl.c +306 -81
- package/deps/librdkafka/src/rdkafka_ssl.h +22 -0
- package/deps/librdkafka/src/rdkafka_sticky_assignor.c +4 -0
- package/deps/librdkafka/src/rdkafka_telemetry.c +80 -23
- package/deps/librdkafka/src/rdkafka_telemetry_encode.c +5 -1
- package/deps/librdkafka/src/rdkafka_telemetry_encode.h +20 -20
- package/deps/librdkafka/src/rdkafka_topic.c +220 -137
- package/deps/librdkafka/src/rdkafka_topic.h +14 -8
- package/deps/librdkafka/src/rdkafka_transport.c +59 -47
- package/deps/librdkafka/src/rdkafka_transport.h +5 -0
- package/deps/librdkafka/src/rdkafka_txnmgr.c +6 -1
- package/deps/librdkafka/src/rdmap.c +6 -1
- package/deps/librdkafka/src/rdrand.c +11 -1
- package/deps/librdkafka/src/rdtime.h +48 -17
- package/deps/librdkafka/src/rdunittest.c +42 -25
- package/deps/librdkafka/src/rdunittest.h +2 -0
- package/deps/librdkafka/src/rdwin32.h +1 -1
- package/deps/librdkafka/src/regexp.c +47 -42
- package/deps/librdkafka/src/tinycthread_extra.c +45 -21
- package/deps/librdkafka/src/tinycthread_extra.h +7 -3
- package/deps/librdkafka/src-cpp/rdkafkacpp.h +28 -2
- package/deps/librdkafka/tests/0001-multiobj.c +4 -0
- package/deps/librdkafka/tests/0004-conf.c +103 -36
- package/deps/librdkafka/tests/0009-mock_cluster.c +1 -0
- package/deps/librdkafka/tests/0011-produce_batch.c +2 -1
- package/deps/librdkafka/tests/0016-client_swname.c +18 -3
- package/deps/librdkafka/tests/0017-compression.c +6 -8
- package/deps/librdkafka/tests/0018-cgrp_term.c +8 -3
- package/deps/librdkafka/tests/0021-rkt_destroy.c +1 -0
- package/deps/librdkafka/tests/0022-consume_batch.c +4 -1
- package/deps/librdkafka/tests/0026-consume_pause.c +12 -14
- package/deps/librdkafka/tests/0028-long_topicnames.c +1 -1
- package/deps/librdkafka/tests/0029-assign_offset.c +6 -8
- package/deps/librdkafka/tests/0030-offset_commit.c +2 -2
- package/deps/librdkafka/tests/0033-regex_subscribe.c +33 -17
- package/deps/librdkafka/tests/0034-offset_reset.c +25 -4
- package/deps/librdkafka/tests/0036-partial_fetch.c +1 -0
- package/deps/librdkafka/tests/0038-performance.c +1 -0
- package/deps/librdkafka/tests/0040-io_event.c +11 -5
- package/deps/librdkafka/tests/0041-fetch_max_bytes.c +1 -0
- package/deps/librdkafka/tests/0044-partition_cnt.c +3 -2
- package/deps/librdkafka/tests/0045-subscribe_update.c +284 -20
- package/deps/librdkafka/tests/0047-partial_buf_tmout.c +1 -0
- package/deps/librdkafka/tests/0048-partitioner.c +1 -1
- package/deps/librdkafka/tests/0050-subscribe_adds.c +1 -0
- package/deps/librdkafka/tests/0051-assign_adds.c +1 -0
- package/deps/librdkafka/tests/0052-msg_timestamps.c +22 -4
- package/deps/librdkafka/tests/0053-stats_cb.cpp +12 -20
- package/deps/librdkafka/tests/0055-producer_latency.c +176 -3
- package/deps/librdkafka/tests/0056-balanced_group_mt.c +6 -2
- package/deps/librdkafka/tests/0058-log.cpp +3 -3
- package/deps/librdkafka/tests/0059-bsearch.cpp +8 -4
- package/deps/librdkafka/tests/0061-consumer_lag.cpp +25 -5
- package/deps/librdkafka/tests/0067-empty_topic.cpp +3 -0
- package/deps/librdkafka/tests/0068-produce_timeout.c +21 -23
- package/deps/librdkafka/tests/0069-consumer_add_parts.c +3 -7
- package/deps/librdkafka/tests/0075-retry.c +38 -1
- package/deps/librdkafka/tests/0076-produce_retry.c +2 -0
- package/deps/librdkafka/tests/0077-compaction.c +8 -2
- package/deps/librdkafka/tests/0080-admin_ut.c +34 -4
- package/deps/librdkafka/tests/0081-admin.c +455 -155
- package/deps/librdkafka/tests/0082-fetch_max_bytes.cpp +4 -0
- package/deps/librdkafka/tests/0083-cb_event.c +8 -3
- package/deps/librdkafka/tests/0084-destroy_flags.c +14 -18
- package/deps/librdkafka/tests/0085-headers.cpp +4 -0
- package/deps/librdkafka/tests/0086-purge.c +40 -7
- package/deps/librdkafka/tests/0088-produce_metadata_timeout.c +1 -1
- package/deps/librdkafka/tests/0089-max_poll_interval.c +12 -7
- package/deps/librdkafka/tests/0090-idempotence.c +1 -2
- package/deps/librdkafka/tests/0091-max_poll_interval_timeout.c +5 -7
- package/deps/librdkafka/tests/0092-mixed_msgver.c +6 -0
- package/deps/librdkafka/tests/0093-holb.c +8 -5
- package/deps/librdkafka/tests/0094-idempotence_msg_timeout.c +1 -0
- package/deps/librdkafka/tests/0097-ssl_verify.cpp +262 -70
- package/deps/librdkafka/tests/0098-consumer-txn.cpp +16 -16
- package/deps/librdkafka/tests/0099-commit_metadata.c +1 -1
- package/deps/librdkafka/tests/0101-fetch-from-follower.cpp +1 -1
- package/deps/librdkafka/tests/0102-static_group_rebalance.c +317 -16
- package/deps/librdkafka/tests/0103-transactions.c +7 -7
- package/deps/librdkafka/tests/0104-fetch_from_follower_mock.c +1 -0
- package/deps/librdkafka/tests/0105-transactions_mock.c +18 -11
- package/deps/librdkafka/tests/0106-cgrp_sess_timeout.c +35 -14
- package/deps/librdkafka/tests/0107-topic_recreate.c +2 -2
- package/deps/librdkafka/tests/0109-auto_create_topics.cpp +86 -26
- package/deps/librdkafka/tests/0110-batch_size.cpp +1 -2
- package/deps/librdkafka/tests/0112-assign_unknown_part.c +3 -14
- package/deps/librdkafka/tests/0113-cooperative_rebalance.cpp +248 -104
- package/deps/librdkafka/tests/0114-sticky_partitioning.cpp +3 -3
- package/deps/librdkafka/tests/0115-producer_auth.cpp +4 -1
- package/deps/librdkafka/tests/0116-kafkaconsumer_close.cpp +7 -5
- package/deps/librdkafka/tests/0117-mock_errors.c +15 -5
- package/deps/librdkafka/tests/0118-commit_rebalance.c +41 -8
- package/deps/librdkafka/tests/0119-consumer_auth.cpp +20 -1
- package/deps/librdkafka/tests/0120-asymmetric_subscription.c +8 -3
- package/deps/librdkafka/tests/0125-immediate_flush.c +1 -1
- package/deps/librdkafka/tests/0126-oauthbearer_oidc.c +323 -8
- package/deps/librdkafka/tests/0129-fetch_aborted_msgs.c +1 -0
- package/deps/librdkafka/tests/0132-strategy_ordering.c +12 -4
- package/deps/librdkafka/tests/0133-ssl_keys.c +28 -6
- package/deps/librdkafka/tests/0137-barrier_batch_consume.c +24 -14
- package/deps/librdkafka/tests/0139-offset_validation_mock.c +510 -2
- package/deps/librdkafka/tests/0140-commit_metadata.cpp +1 -1
- package/deps/librdkafka/tests/0142-reauthentication.c +37 -17
- package/deps/librdkafka/tests/0143-exponential_backoff_mock.c +39 -40
- package/deps/librdkafka/tests/0146-metadata_mock.c +76 -15
- package/deps/librdkafka/tests/0147-consumer_group_consumer_mock.c +952 -0
- package/deps/librdkafka/tests/0148-offset_fetch_commit_error_mock.c +563 -0
- package/deps/librdkafka/tests/0149-broker-same-host-port.c +140 -0
- package/deps/librdkafka/tests/0150-telemetry_mock.c +9 -6
- package/deps/librdkafka/tests/0151-purge-brokers.c +566 -0
- package/deps/librdkafka/tests/0152-rebootstrap.c +59 -0
- package/deps/librdkafka/tests/0153-memberid.c +128 -0
- package/deps/librdkafka/tests/CMakeLists.txt +6 -0
- package/deps/librdkafka/tests/LibrdkafkaTestApp.py +34 -9
- package/deps/librdkafka/tests/autotest.sh +0 -0
- package/deps/librdkafka/tests/broker_version_tests.py +0 -0
- package/deps/librdkafka/tests/buildbox.sh +0 -0
- package/deps/librdkafka/tests/cleanup-checker-tests.sh +0 -0
- package/deps/librdkafka/tests/cluster_testing.py +0 -0
- package/deps/librdkafka/tests/delete-test-topics.sh +0 -0
- package/deps/librdkafka/tests/fixtures/oauthbearer/jwt_assertion_template.json +10 -0
- package/deps/librdkafka/tests/fixtures/ssl/client.keystore.intermediate.p12 +0 -0
- package/deps/librdkafka/tests/fixtures/ssl/client.keystore.p12 +0 -0
- package/deps/librdkafka/tests/fixtures/ssl/client2.certificate.intermediate.pem +72 -0
- package/deps/librdkafka/tests/fixtures/ssl/client2.certificate.pem +42 -101
- package/deps/librdkafka/tests/fixtures/ssl/client2.intermediate.key +46 -0
- package/deps/librdkafka/tests/fixtures/ssl/client2.key +41 -29
- package/deps/librdkafka/tests/fixtures/ssl/create_keys.sh +112 -37
- package/deps/librdkafka/tests/gen-ssl-certs.sh +0 -0
- package/deps/librdkafka/tests/interactive_broker_version.py +0 -0
- package/deps/librdkafka/tests/java/Makefile +2 -1
- package/deps/librdkafka/tests/java/run-class.sh +0 -0
- package/deps/librdkafka/tests/lz4_manual_test.sh +0 -0
- package/deps/librdkafka/tests/multi-broker-version-test.sh +0 -0
- package/deps/librdkafka/tests/parse-refcnt.sh +0 -0
- package/deps/librdkafka/tests/performance_plot.py +0 -0
- package/deps/librdkafka/tests/requirements.txt +1 -1
- package/deps/librdkafka/tests/run-all-tests.sh +79 -0
- package/deps/librdkafka/tests/run-consumer-tests.sh +0 -0
- package/deps/librdkafka/tests/run-producer-tests.sh +0 -0
- package/deps/librdkafka/tests/run-test-batches.py +157 -0
- package/deps/librdkafka/tests/run-test.sh +0 -0
- package/deps/librdkafka/tests/sasl_test.py +0 -0
- package/deps/librdkafka/tests/test.c +478 -18
- package/deps/librdkafka/tests/test.h +62 -13
- package/deps/librdkafka/tests/testcpp.cpp +6 -1
- package/deps/librdkafka/tests/testcpp.h +30 -2
- package/deps/librdkafka/tests/testshared.h +16 -2
- package/deps/librdkafka/tests/tools/stats/graph.py +0 -0
- package/deps/librdkafka/tests/tools/stats/to_csv.py +1 -1
- package/deps/librdkafka/tests/trivup/trivup-0.14.0.tar.gz +0 -0
- package/deps/librdkafka/tests/until-fail.sh +0 -0
- package/deps/librdkafka/tests/xxxx-metadata.cpp +1 -1
- package/deps/librdkafka/vcpkg.json +1 -1
- package/deps/librdkafka/win32/setup-msys2.ps1 +24 -8
- package/deps/librdkafka/win32/setup-vcpkg.ps1 +28 -6
- package/deps/librdkafka/win32/tests/tests.vcxproj +6 -0
- package/deps/librdkafka/win32/wingetopt.h +5 -4
- package/errors.d.ts +27 -1
- package/lib/error.js +29 -3
- package/make_docs.sh +0 -0
- package/package.json +12 -13
- package/run_docker.sh +0 -0
- package/src/callbacks.cc +6 -9
- package/src/callbacks.h +1 -5
- package/test/kafka-consumer-worker.js +10 -7
- package/test/kafka-consumer.spec.js +32 -21
- package/deps/librdkafka/.semaphore/project.yml +0 -43
- package/deps/librdkafka/.semaphore/project_public.yml +0 -20
- package/deps/librdkafka/win32/install-openssl.ps1 +0 -33
|
@@ -1,35 +1,99 @@
|
|
|
1
1
|
#!/bin/sh
|
|
2
2
|
set -e
|
|
3
3
|
CA_PASSWORD="${CA_PASSWORD:-use_strong_password_ca}"
|
|
4
|
+
CA_INTERMEDIATE_PASSWORD="${CA_INTERMEDIATE_PASSWORD:-use_strong_password_intermediate_ca}"
|
|
4
5
|
KEYSTORE_PASSWORD="${KEYSTORE_PASSWORD:-use_strong_password_keystore}"
|
|
5
6
|
TRUSTSTORE_PASSWORD="${TRUSTSTORE_PASSWORD:-use_strong_password_truststore}"
|
|
6
7
|
OUTPUT_FOLDER=${OUTPUT_FOLDER:-$( dirname "$0" )}
|
|
7
8
|
CNS=${@:-client}
|
|
8
9
|
|
|
9
10
|
cd ${OUTPUT_FOLDER}
|
|
10
|
-
CA_ROOT_KEY
|
|
11
|
-
CA_ROOT_CRT
|
|
11
|
+
CA_ROOT_KEY=${CA_ROOT_KEY:-caroot.key}
|
|
12
|
+
CA_ROOT_CRT=${CA_ROOT_CRT:-caroot.crt}
|
|
13
|
+
CA_INTERMEDIATE_KEY=intermediate.key
|
|
14
|
+
CA_INTERMEDIATE_CSR=intermediate.csr
|
|
15
|
+
CA_INTERMEDIATE_CRT=intermediate.crt
|
|
12
16
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
generate_ca_extfile() {
|
|
18
|
+
echo "# $1: Generate extfile"
|
|
19
|
+
cat << EOF > extfile
|
|
20
|
+
[req]
|
|
21
|
+
distinguished_name=dn
|
|
22
|
+
[ dn ]
|
|
23
|
+
CN=$1
|
|
24
|
+
[ ext ]
|
|
25
|
+
basicConstraints=CA:TRUE,pathlen:0
|
|
26
|
+
subjectKeyIdentifier = hash
|
|
27
|
+
authorityKeyIdentifier = keyid:always, issuer:always
|
|
28
|
+
keyUsage = critical, cRLSign, digitalSignature, keyCertSign
|
|
29
|
+
extendedKeyUsage = clientAuth
|
|
30
|
+
EOF
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
generate_client_certificate_extfile() {
|
|
34
|
+
local CN=$1
|
|
35
|
+
echo "# $CN: Generate extfile"
|
|
36
|
+
cat << EOF > extfile
|
|
37
|
+
[req]
|
|
38
|
+
distinguished_name = req_distinguished_name
|
|
39
|
+
x509_extensions = v3_req
|
|
40
|
+
prompt = no
|
|
41
|
+
[req_distinguished_name]
|
|
42
|
+
CN = $CN
|
|
43
|
+
[v3_req]
|
|
44
|
+
subjectAltName = @alt_names
|
|
45
|
+
[alt_names]
|
|
46
|
+
DNS.1 = $CN
|
|
47
|
+
DNS.2 = localhost
|
|
48
|
+
EOF
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if [ ! -f $CA_ROOT_KEY -o ! -f $CA_ROOT_CRT ]; then
|
|
52
|
+
echo "# Generate CA"
|
|
53
|
+
generate_ca_extfile caroot
|
|
54
|
+
openssl req -new -x509 -config extfile -keyout $CA_ROOT_KEY \
|
|
55
|
+
-out $CA_ROOT_CRT -subj \
|
|
56
|
+
'/CN=caroot/OU=/O=/L=/ST=/C=' -passin "pass:${CA_PASSWORD}" \
|
|
57
|
+
-passout "pass:${CA_PASSWORD}"
|
|
58
|
+
fi
|
|
59
|
+
|
|
60
|
+
echo "# caintermediate: Generate CSR"
|
|
61
|
+
openssl req -new -keyout $CA_INTERMEDIATE_KEY \
|
|
62
|
+
-out $CA_INTERMEDIATE_CSR -subj \
|
|
63
|
+
'/CN=caintermediate/OU=/O=/L=/ST=/C=' \
|
|
64
|
+
-passin "pass:${CA_INTERMEDIATE_PASSWORD}" \
|
|
65
|
+
-passout "pass:${CA_INTERMEDIATE_PASSWORD}"
|
|
66
|
+
|
|
67
|
+
generate_ca_extfile caintermediate
|
|
68
|
+
|
|
69
|
+
echo "# caintermediate: Sign request"
|
|
70
|
+
openssl x509 -req -extfile extfile \
|
|
71
|
+
-passin "pass:${CA_PASSWORD}" \
|
|
72
|
+
-in "${CA_INTERMEDIATE_CSR}" \
|
|
73
|
+
-CA "${CA_ROOT_CRT}" \
|
|
74
|
+
-CAkey "${CA_ROOT_KEY}" \
|
|
75
|
+
-days 3650 \
|
|
76
|
+
-out "${CA_INTERMEDIATE_CRT}"
|
|
18
77
|
|
|
19
78
|
for CN in $CNS; do
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
79
|
+
for INTERMEDIATE in true false; do
|
|
80
|
+
INTERMEDIATE_PREFIX=""
|
|
81
|
+
if [ $INTERMEDIATE = "true" ]; then
|
|
82
|
+
INTERMEDIATE_PREFIX=".intermediate"
|
|
83
|
+
fi
|
|
84
|
+
|
|
85
|
+
KEYSTORE=${CN}.keystore${INTERMEDIATE_PREFIX}.p12
|
|
86
|
+
TRUSTSTORE=${CN}.truststore${INTERMEDIATE_PREFIX}.p12
|
|
87
|
+
CSR=${CN}${INTERMEDIATE_PREFIX}.csr
|
|
88
|
+
SIGNED_CRT=${CN}-ca-signed${INTERMEDIATE_PREFIX}.crt
|
|
89
|
+
CERTIFICATE=${CN}.certificate${INTERMEDIATE_PREFIX}.pem
|
|
90
|
+
KEY=${CN}${INTERMEDIATE_PREFIX}.key
|
|
25
91
|
# Get specific password for this CN
|
|
26
92
|
CN_KEYSTORE_PASSWORD="$(eval echo \$${CN}_KEYSTORE_PASSWORD)"
|
|
27
93
|
if [ -z "$CN_KEYSTORE_PASSWORD" ]; then
|
|
28
94
|
CN_KEYSTORE_PASSWORD=${KEYSTORE_PASSWORD}_$CN
|
|
29
95
|
fi
|
|
30
96
|
|
|
31
|
-
echo ${CN_KEYSTORE_PASSWORD}
|
|
32
|
-
|
|
33
97
|
echo "# $CN: Generate Keystore"
|
|
34
98
|
keytool -genkey -noprompt \
|
|
35
99
|
-alias $CN \
|
|
@@ -47,47 +111,58 @@ for CN in $CNS; do
|
|
|
47
111
|
|
|
48
112
|
echo "# $CN: Generate CSR"
|
|
49
113
|
keytool -keystore $KEYSTORE -alias $CN \
|
|
50
|
-
-certreq -file
|
|
114
|
+
-certreq -file $CSR -storepass "${CN_KEYSTORE_PASSWORD}" \
|
|
51
115
|
-keypass "${CN_KEYSTORE_PASSWORD}" \
|
|
52
116
|
-ext "SAN=dns:$CN,dns:localhost"
|
|
53
117
|
|
|
54
|
-
|
|
55
|
-
cat << EOF > extfile
|
|
56
|
-
[req]
|
|
57
|
-
distinguished_name = req_distinguished_name
|
|
58
|
-
x509_extensions = v3_req
|
|
59
|
-
prompt = no
|
|
60
|
-
[req_distinguished_name]
|
|
61
|
-
CN = $CN
|
|
62
|
-
[v3_req]
|
|
63
|
-
subjectAltName = @alt_names
|
|
64
|
-
[alt_names]
|
|
65
|
-
DNS.1 = $CN
|
|
66
|
-
DNS.2 = localhost
|
|
67
|
-
EOF
|
|
68
|
-
|
|
69
|
-
echo "# $CN: Sign the certificate with the CA"
|
|
70
|
-
openssl x509 -req -CA $CA_ROOT_CRT -CAkey $CA_ROOT_KEY \
|
|
71
|
-
-in $CN.csr \
|
|
72
|
-
-out $CN-ca-signed.crt -days 9999 \
|
|
73
|
-
-CAcreateserial -passin "pass:${CA_PASSWORD}" \
|
|
74
|
-
-extensions v3_req -extfile extfile
|
|
118
|
+
generate_client_certificate_extfile $CN
|
|
75
119
|
|
|
76
120
|
echo "# $CN: Import root certificate"
|
|
77
121
|
keytool -noprompt -keystore $KEYSTORE \
|
|
78
122
|
-alias caroot -import -file $CA_ROOT_CRT -storepass "${CN_KEYSTORE_PASSWORD}"
|
|
79
123
|
|
|
124
|
+
if [ $INTERMEDIATE = "true" ]; then
|
|
125
|
+
echo "# $CN: Sign the certificate with the intermediate CA"
|
|
126
|
+
openssl x509 -req -CA $CA_INTERMEDIATE_CRT -CAkey $CA_INTERMEDIATE_KEY \
|
|
127
|
+
-in $CSR \
|
|
128
|
+
-out $SIGNED_CRT -days 9999 \
|
|
129
|
+
-CAcreateserial -passin "pass:${CA_INTERMEDIATE_PASSWORD}" \
|
|
130
|
+
-extensions v3_req -extfile extfile
|
|
131
|
+
|
|
132
|
+
echo "# $CN: Import intermediate CA certificate"
|
|
133
|
+
keytool -noprompt -keystore $KEYSTORE \
|
|
134
|
+
-alias caintermediate -import -file $CA_INTERMEDIATE_CRT \
|
|
135
|
+
-storepass "${CN_KEYSTORE_PASSWORD}"
|
|
136
|
+
else
|
|
137
|
+
echo "# $CN: Sign the certificate with the CA"
|
|
138
|
+
openssl x509 -req -CA $CA_ROOT_CRT -CAkey $CA_ROOT_KEY \
|
|
139
|
+
-in $CSR \
|
|
140
|
+
-out $SIGNED_CRT -days 9999 \
|
|
141
|
+
-CAcreateserial -passin "pass:${CA_PASSWORD}" \
|
|
142
|
+
-extensions v3_req -extfile extfile
|
|
143
|
+
fi
|
|
144
|
+
|
|
80
145
|
echo "# $CN: Import signed certificate"
|
|
81
146
|
keytool -noprompt -keystore $KEYSTORE -alias $CN \
|
|
82
147
|
-import -file $SIGNED_CRT -storepass "${CN_KEYSTORE_PASSWORD}" \
|
|
83
148
|
-ext "SAN=dns:$CN,dns:localhost"
|
|
84
149
|
|
|
150
|
+
# Delete imported certificates as they were only used to import the
|
|
151
|
+
# signed certificate.
|
|
152
|
+
keytool -delete -alias caroot -keystore $KEYSTORE \
|
|
153
|
+
-storepass "${CN_KEYSTORE_PASSWORD}"
|
|
154
|
+
if [ $INTERMEDIATE = "true" ]; then
|
|
155
|
+
keytool -delete -alias caintermediate -keystore $KEYSTORE \
|
|
156
|
+
-storepass "${CN_KEYSTORE_PASSWORD}"
|
|
157
|
+
fi
|
|
158
|
+
|
|
85
159
|
echo "# $CN: Export PEM certificate"
|
|
86
160
|
openssl pkcs12 -in "$KEYSTORE" -out "$CERTIFICATE" \
|
|
87
|
-
-
|
|
161
|
+
-nokeys -passin "pass:${CN_KEYSTORE_PASSWORD}"
|
|
88
162
|
|
|
89
163
|
echo "# $CN: Export PEM key"
|
|
90
164
|
openssl pkcs12 -in "$KEYSTORE" -out "$KEY" \
|
|
91
165
|
-nocerts -passin "pass:${CN_KEYSTORE_PASSWORD}" \
|
|
92
166
|
-passout "pass:${CN_KEYSTORE_PASSWORD}"
|
|
93
167
|
done
|
|
168
|
+
done
|
|
File without changes
|
|
File without changes
|
|
@@ -6,7 +6,8 @@ CLASSES=Murmur2Cli.class TransactionProducerCli.class IncrementalRebalanceCli.cl
|
|
|
6
6
|
all: $(CLASSES)
|
|
7
7
|
|
|
8
8
|
%.class: %.java
|
|
9
|
-
|
|
9
|
+
CLIENTS_JAR=$$(ls $(KAFKA_JARS)/kafka-clients-*.jar); \
|
|
10
|
+
javac -classpath $$CLIENTS_JAR:$(KAFKA_PATH)/clients/build/classes/java/main $^
|
|
10
11
|
|
|
11
12
|
clean:
|
|
12
13
|
rm -f *.class
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
trivup/trivup-0.
|
|
1
|
+
trivup/trivup-0.14.0.tar.gz
|
|
2
2
|
jsoncomment
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -e
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
# Helper script to run all tests through the CI
|
|
6
|
+
# Converts the environment variables to the test arguments
|
|
7
|
+
# with the following defaults:
|
|
8
|
+
#
|
|
9
|
+
# - plaintext connection
|
|
10
|
+
# - no authentication
|
|
11
|
+
# - KRaft enabled
|
|
12
|
+
# - all tests
|
|
13
|
+
# - default parallelism
|
|
14
|
+
# - no assertions
|
|
15
|
+
# - following AK and CP versions
|
|
16
|
+
|
|
17
|
+
export TEST_KAFKA_GIT_REF=${TEST_KAFKA_GIT_REF:-4.0.0}
|
|
18
|
+
export TEST_CP_VERSION=${TEST_CP_VERSION:-8.0.0}
|
|
19
|
+
|
|
20
|
+
TEST_SSL_ARG=""
|
|
21
|
+
TEST_SSL_INTERMEDIATE_CA_ARG=""
|
|
22
|
+
TEST_SASL_ARG=""
|
|
23
|
+
TEST_KRAFT_ARG="--kraft"
|
|
24
|
+
TEST_LOCAL_ARG=""
|
|
25
|
+
TEST_CONF_ARG=""
|
|
26
|
+
TEST_QUICK_ARG=""
|
|
27
|
+
TEST_ASSERT_ARG=""
|
|
28
|
+
TEST_PARALLEL_ARG=""
|
|
29
|
+
if [ "$TEST_SSL" = "True" ]; then
|
|
30
|
+
TEST_SSL_ARG="--ssl"
|
|
31
|
+
fi
|
|
32
|
+
if [ "$TEST_SSL" = "True" -a "$TEST_SSL_INTERMEDIATE_CA" = "True" ]; then
|
|
33
|
+
TEST_SSL_ARG="$TEST_SSL_ARG --ssl-intermediate-ca"
|
|
34
|
+
fi
|
|
35
|
+
if [ ! -z $TEST_SASL ]; then
|
|
36
|
+
TEST_SASL_ARG="--sasl $TEST_SASL"
|
|
37
|
+
fi
|
|
38
|
+
if [ "$TEST_KRAFT" = "False" ]; then
|
|
39
|
+
TEST_KRAFT_ARG=""
|
|
40
|
+
fi
|
|
41
|
+
if [ "$TEST_LOCAL" = "Local" ]; then
|
|
42
|
+
TEST_LOCAL_ARG="-l"
|
|
43
|
+
fi
|
|
44
|
+
if [ "$TEST_LOCAL" = "Non-local" ]; then
|
|
45
|
+
TEST_LOCAL_ARG="-L"
|
|
46
|
+
fi
|
|
47
|
+
if [ "$TEST_QUICK" = "True" ]; then
|
|
48
|
+
TEST_QUICK_ARG="-Q"
|
|
49
|
+
fi
|
|
50
|
+
if [ "$TEST_ASSERT" = "True" ]; then
|
|
51
|
+
TEST_ASSERT_ARG="-a"
|
|
52
|
+
fi
|
|
53
|
+
if [ ! -z $TEST_PARALLEL ]; then
|
|
54
|
+
TEST_PARALLEL_ARG="-p$TEST_PARALLEL"
|
|
55
|
+
fi
|
|
56
|
+
if [ ! -z $TEST_CONF ]; then
|
|
57
|
+
TEST_CONF_ARG="--conf '$TEST_CONF'"
|
|
58
|
+
fi
|
|
59
|
+
if [ ! -z $TEST_ENV_VARIABLES ]; then
|
|
60
|
+
IFS=',' read -ra TEST_ENV_VARIABLES_ARRAY <<< "$TEST_ENV_VARIABLES"
|
|
61
|
+
for TEST_ENV_VARIABLE in "${TEST_ENV_VARIABLES_ARRAY[@]}"; do
|
|
62
|
+
export "$TEST_ENV_VARIABLE"
|
|
63
|
+
done
|
|
64
|
+
unset TEST_ENV_VARIABLES_ARRAY
|
|
65
|
+
fi
|
|
66
|
+
|
|
67
|
+
TEST_ARGS="$TEST_PARALLEL_ARG $TEST_ASSERT_ARG $TEST_QUICK_ARG $TEST_LOCAL_ARG $TEST_RUNNER_PARAMETERS $TEST_MODE"
|
|
68
|
+
TEST_CONFIGURATION="$TEST_SSL_ARG $TEST_SASL_ARG $TEST_KRAFT_ARG $TEST_CONF_ARG $TEST_TRIVUP_PARAMETERS"
|
|
69
|
+
|
|
70
|
+
echo "Running tests with:"
|
|
71
|
+
echo "kafka branch: $TEST_KAFKA_GIT_REF"
|
|
72
|
+
echo "kafka version: $TEST_KAFKA_VERSION"
|
|
73
|
+
echo "CP version: $TEST_CP_VERSION"
|
|
74
|
+
echo "configuration: $TEST_CONFIGURATION"
|
|
75
|
+
echo "arguments: $TEST_ARGS"
|
|
76
|
+
(cd tests && python3 -m trivup.clusters.KafkaCluster $TEST_CONFIGURATION \
|
|
77
|
+
--version "$TEST_KAFKA_GIT_REF" \
|
|
78
|
+
--cpversion "$TEST_CP_VERSION" \
|
|
79
|
+
--cmd "python run-test-batches.py $TEST_ARGS")
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
import os
|
|
3
|
+
import sys
|
|
4
|
+
import re
|
|
5
|
+
import subprocess
|
|
6
|
+
import signal
|
|
7
|
+
curr_dir = os.path.dirname(os.path.realpath(__file__))
|
|
8
|
+
os.chdir(curr_dir)
|
|
9
|
+
|
|
10
|
+
# This test script accepts the same arguments as run-test.sh, and
|
|
11
|
+
# the same environment variables as well. Additionally, it reads the following
|
|
12
|
+
# environment variables and can run tests in batches and for a certain
|
|
13
|
+
# number of iterations, especially useful when running tests with valgrind or
|
|
14
|
+
# to debug infrequent errors.
|
|
15
|
+
#
|
|
16
|
+
# TESTS: A comma-separated list of test numbers or test names. In case
|
|
17
|
+
# they're numeric there's no need to pad them with zeros. There can be
|
|
18
|
+
# ranges of tests, open ranges and they're sorted and deduplicated.
|
|
19
|
+
# If not set, it defaults to all tests in the current directory.
|
|
20
|
+
# Example: TESTS=1,2,3-5,2-,11
|
|
21
|
+
#
|
|
22
|
+
# TESTS_BATCH_SIZE: The number of tests to run in each batch. If not set, it
|
|
23
|
+
# defaults to the number of tests in TESTS.
|
|
24
|
+
#
|
|
25
|
+
# TEST_ITERATIONS: The number of iterations to run the tests. If not set, it
|
|
26
|
+
# defaults to 1. It continues iterating only if there are no
|
|
27
|
+
# errors. When "-a" is set it stops after the first error
|
|
28
|
+
# in any batch, when it isn't set it stops after the
|
|
29
|
+
# first error in any iteration.
|
|
30
|
+
|
|
31
|
+
# Max number of tests
|
|
32
|
+
max_automatic_tests = 1000
|
|
33
|
+
# Higher test number
|
|
34
|
+
max_test = 0
|
|
35
|
+
tests = set()
|
|
36
|
+
for f in os.listdir(curr_dir):
|
|
37
|
+
m = re.match(r'^(\d{4}).*\.c$', f)
|
|
38
|
+
if m:
|
|
39
|
+
test_num = int(m.group(1))
|
|
40
|
+
if test_num < max_automatic_tests:
|
|
41
|
+
tests.add(test_num)
|
|
42
|
+
max_test = max(tests)
|
|
43
|
+
# Tests batch size, defaults to len(TESTS).
|
|
44
|
+
batch_size = os.environ.get('TESTS_BATCH_SIZE', None)
|
|
45
|
+
if batch_size and batch_size.isnumeric():
|
|
46
|
+
batch_size = int(batch_size)
|
|
47
|
+
|
|
48
|
+
# Number of iterations for each batch, it continues iterating only
|
|
49
|
+
# if there are no errors, even when "-a" isn't set
|
|
50
|
+
test_iterations = os.environ.get('TEST_ITERATIONS', "1")
|
|
51
|
+
test_iterations = test_iterations.isnumeric() and int(test_iterations) or 1
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def valid_test_number(test_number):
|
|
55
|
+
return test_number >= 0 and test_number <= max_test
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def test_number_to_str(test_number):
|
|
59
|
+
return str(test_number).rjust(4, '0')
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def test_numbers_to_str(test_numbers):
|
|
63
|
+
return list(map(test_number_to_str, test_numbers))
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def extract_tests(tests):
|
|
67
|
+
test_ranges = [test_range for test_range in tests.strip().split(',')
|
|
68
|
+
if len(test_range.strip()) > 0]
|
|
69
|
+
all_tests = []
|
|
70
|
+
for test_range in test_ranges:
|
|
71
|
+
|
|
72
|
+
if '-' in test_range:
|
|
73
|
+
# 13-15 or 13- or -13
|
|
74
|
+
start, end = test_range.split('-')
|
|
75
|
+
start, end = start.strip(), end.strip()
|
|
76
|
+
|
|
77
|
+
if start.isnumeric() and end.isnumeric():
|
|
78
|
+
start, end = int(start), int(end)
|
|
79
|
+
if valid_test_number(start) and valid_test_number(
|
|
80
|
+
end) and start <= end:
|
|
81
|
+
all_tests.extend(
|
|
82
|
+
test_numbers_to_str(range(start, end + 1)))
|
|
83
|
+
|
|
84
|
+
elif start.isnumeric() and end == '':
|
|
85
|
+
start = int(start)
|
|
86
|
+
if valid_test_number(start):
|
|
87
|
+
all_tests.extend(
|
|
88
|
+
test_numbers_to_str(range(start, max_test + 1)))
|
|
89
|
+
elif start == '' and end.isnumeric():
|
|
90
|
+
end = int(end)
|
|
91
|
+
if valid_test_number(end):
|
|
92
|
+
all_tests.extend(
|
|
93
|
+
test_numbers_to_str(range(0, end + 1)))
|
|
94
|
+
|
|
95
|
+
elif test_range.isnumeric():
|
|
96
|
+
# 13 or 0013
|
|
97
|
+
all_tests.append(test_number_to_str(test_range))
|
|
98
|
+
else:
|
|
99
|
+
# A specific test like 0045_subscribe_update_racks_mock
|
|
100
|
+
all_tests.append(test_range)
|
|
101
|
+
|
|
102
|
+
return list(sorted(set(all_tests)))
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
if 'TESTS' in os.environ:
|
|
106
|
+
TESTS = extract_tests(os.environ['TESTS'])
|
|
107
|
+
else:
|
|
108
|
+
TESTS = test_numbers_to_str(range(0, max_test + 1))
|
|
109
|
+
|
|
110
|
+
if batch_size is None:
|
|
111
|
+
batch_size = len(TESTS)
|
|
112
|
+
|
|
113
|
+
args = sys.argv[1:]
|
|
114
|
+
|
|
115
|
+
exit_on_first_error = '-a' in args
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def run_tests():
|
|
119
|
+
first_error = None
|
|
120
|
+
for i in range(test_iterations):
|
|
121
|
+
for j in range(0, len(TESTS), batch_size):
|
|
122
|
+
interrupted = False
|
|
123
|
+
TESTS_BATCH = ','.join(TESTS[j:j + batch_size])
|
|
124
|
+
print(f"Running tests: {TESTS_BATCH}, iteration: {i + 1}",
|
|
125
|
+
file=sys.stderr)
|
|
126
|
+
p = subprocess.Popen(['./run-test.sh', '-D'] + args,
|
|
127
|
+
env={**os.environ, 'TESTS': TESTS_BATCH},
|
|
128
|
+
start_new_session=True)
|
|
129
|
+
try:
|
|
130
|
+
p.communicate()
|
|
131
|
+
if p.returncode != 0 and first_error is None:
|
|
132
|
+
first_error = p.returncode
|
|
133
|
+
if exit_on_first_error:
|
|
134
|
+
return first_error
|
|
135
|
+
except BaseException:
|
|
136
|
+
first_error = 1
|
|
137
|
+
interrupted = True
|
|
138
|
+
return first_error
|
|
139
|
+
finally:
|
|
140
|
+
if interrupted:
|
|
141
|
+
print('Terminating process group...', file=sys.stderr)
|
|
142
|
+
os.killpg(p.pid, signal.SIGTERM)
|
|
143
|
+
try:
|
|
144
|
+
p.wait(10)
|
|
145
|
+
except subprocess.TimeoutExpired:
|
|
146
|
+
os.killpg(p.pid, signal.SIGKILL)
|
|
147
|
+
p.wait(10)
|
|
148
|
+
if first_error is not None:
|
|
149
|
+
# Stop running more iterations if there was an error
|
|
150
|
+
return first_error
|
|
151
|
+
return first_error
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
first_error = run_tests()
|
|
155
|
+
print('End of run-test-batches', file=sys.stderr)
|
|
156
|
+
if first_error:
|
|
157
|
+
sys.exit(first_error)
|
|
File without changes
|
|
File without changes
|