diff --git a/contrib/pkg_tester/README.md b/contrib/pkg_tester/README.md index 68a6234b9b..fb06da56c2 100644 --- a/contrib/pkg_tester/README.md +++ b/contrib/pkg_tester/README.md @@ -50,7 +50,7 @@ docker, python - [x] Test rpms - [x] Test debs -- [ ] Test versioned packages +- [x] Test versioned packages - [ ] Test that upgrades preserve data/config # Development diff --git a/contrib/pkg_tester/__snapshots__/test_fdb_pkgs.ambr b/contrib/pkg_tester/__snapshots__/test_fdb_pkgs.ambr index 5b404627f6..5bdadf72ae 100644 --- a/contrib/pkg_tester/__snapshots__/test_fdb_pkgs.ambr +++ b/contrib/pkg_tester/__snapshots__/test_fdb_pkgs.ambr @@ -1,3 +1,15 @@ +# name: test_backup_restore[centos-versioned] + ' + Submitted and now waiting for the backup on tag `default' to complete. + + ' +--- +# name: test_backup_restore[centos-versioned].1 + ' + `x' is `y' + + ' +--- # name: test_backup_restore[centos] ' Submitted and now waiting for the backup on tag `default' to complete. @@ -10,6 +22,18 @@ ' --- +# name: test_backup_restore[ubuntu-versioned] + ' + Submitted and now waiting for the backup on tag `default' to complete. + + ' +--- +# name: test_backup_restore[ubuntu-versioned].1 + ' + `x' is `y' + + ' +--- # name: test_backup_restore[ubuntu] ' Submitted and now waiting for the backup on tag `default' to complete. @@ -22,6 +46,49 @@ ' --- +# name: test_fdbcli_help_text[centos-versioned] + ' + FoundationDB CLI 7.1 (v7.1.0) + usage: fdbcli [OPTIONS] + + -C CONNFILE The path of a file containing the connection string for the + FoundationDB cluster. The default is first the value of the + FDB_CLUSTER_FILE environment variable, then `./fdb.cluster', + then `/etc/foundationdb/fdb.cluster'. + --log Enables trace file logging for the CLI session. + --log-dir PATH Specifes the output directory for trace files. If + unspecified, defaults to the current directory. Has + no effect unless --log is specified. + --trace_format FORMAT + Select the format of the log files. xml (the default) and json + are supported. Has no effect unless --log is specified. + --exec CMDS Immediately executes the semicolon separated CLI commands + and then exits. + --no-status Disables the initial status check done when starting + the CLI. + --tls_certificate_file CERTFILE + The path of a file containing the TLS certificate and CA + chain. + --tls_ca_file CERTAUTHFILE + The path of a file containing the CA certificates chain. + --tls_key_file KEYFILE + The path of a file containing the private key corresponding + to the TLS certificate. + --tls_password PASSCODE + The passphrase of encrypted private key + --tls_verify_peers CONSTRAINTS + The constraints by which to validate TLS peers. The contents + and format of CONSTRAINTS are plugin-specific. + --knob_KNOBNAME KNOBVALUE + Changes a knob option. KNOBNAME should be lowercase. + --debug-tls Prints the TLS configuration and certificate chain, then exits. + Useful in reporting and diagnosing TLS issues. + --build_flags Print build information and exit. + -v, --version Print FoundationDB CLI version information and exit. + -h, --help Display this help and exit. + + ' +--- # name: test_fdbcli_help_text[centos] ' FoundationDB CLI 7.1 (v7.1.0) @@ -42,6 +109,62 @@ and then exits. --no-status Disables the initial status check done when starting the CLI. + --tls_certificate_file CERTFILE + The path of a file containing the TLS certificate and CA + chain. + --tls_ca_file CERTAUTHFILE + The path of a file containing the CA certificates chain. + --tls_key_file KEYFILE + The path of a file containing the private key corresponding + to the TLS certificate. + --tls_password PASSCODE + The passphrase of encrypted private key + --tls_verify_peers CONSTRAINTS + The constraints by which to validate TLS peers. The contents + and format of CONSTRAINTS are plugin-specific. + --knob_KNOBNAME KNOBVALUE + Changes a knob option. KNOBNAME should be lowercase. + --debug-tls Prints the TLS configuration and certificate chain, then exits. + Useful in reporting and diagnosing TLS issues. + --build_flags Print build information and exit. + -v, --version Print FoundationDB CLI version information and exit. + -h, --help Display this help and exit. + + ' +--- +# name: test_fdbcli_help_text[ubuntu-versioned] + ' + FoundationDB CLI 7.1 (v7.1.0) + usage: fdbcli [OPTIONS] + + -C CONNFILE The path of a file containing the connection string for the + FoundationDB cluster. The default is first the value of the + FDB_CLUSTER_FILE environment variable, then `./fdb.cluster', + then `/etc/foundationdb/fdb.cluster'. + --log Enables trace file logging for the CLI session. + --log-dir PATH Specifes the output directory for trace files. If + unspecified, defaults to the current directory. Has + no effect unless --log is specified. + --trace_format FORMAT + Select the format of the log files. xml (the default) and json + are supported. Has no effect unless --log is specified. + --exec CMDS Immediately executes the semicolon separated CLI commands + and then exits. + --no-status Disables the initial status check done when starting + the CLI. + --tls_certificate_file CERTFILE + The path of a file containing the TLS certificate and CA + chain. + --tls_ca_file CERTAUTHFILE + The path of a file containing the CA certificates chain. + --tls_key_file KEYFILE + The path of a file containing the private key corresponding + to the TLS certificate. + --tls_password PASSCODE + The passphrase of encrypted private key + --tls_verify_peers CONSTRAINTS + The constraints by which to validate TLS peers. The contents + and format of CONSTRAINTS are plugin-specific. --knob_KNOBNAME KNOBVALUE Changes a knob option. KNOBNAME should be lowercase. --debug-tls Prints the TLS configuration and certificate chain, then exits. @@ -72,6 +195,19 @@ and then exits. --no-status Disables the initial status check done when starting the CLI. + --tls_certificate_file CERTFILE + The path of a file containing the TLS certificate and CA + chain. + --tls_ca_file CERTAUTHFILE + The path of a file containing the CA certificates chain. + --tls_key_file KEYFILE + The path of a file containing the private key corresponding + to the TLS certificate. + --tls_password PASSCODE + The passphrase of encrypted private key + --tls_verify_peers CONSTRAINTS + The constraints by which to validate TLS peers. The contents + and format of CONSTRAINTS are plugin-specific. --knob_KNOBNAME KNOBVALUE Changes a knob option. KNOBNAME should be lowercase. --debug-tls Prints the TLS configuration and certificate chain, then exits. @@ -82,12 +218,24 @@ ' --- +# name: test_write[centos-versioned] + ' + `x' is `y' + + ' +--- # name: test_write[centos] ' `x' is `y' ' --- +# name: test_write[ubuntu-versioned] + ' + `x' is `y' + + ' +--- # name: test_write[ubuntu] ' `x' is `y' diff --git a/contrib/pkg_tester/test_fdb_pkgs.py b/contrib/pkg_tester/test_fdb_pkgs.py index 68b136b5bd..5d614257e1 100644 --- a/contrib/pkg_tester/test_fdb_pkgs.py +++ b/contrib/pkg_tester/test_fdb_pkgs.py @@ -169,15 +169,23 @@ def centos_image_with_fdb_versioned() -> Iterator[Optional[Image]]: def pytest_generate_tests(metafunc): if "linux_container" in metafunc.fixturenames: - metafunc.parametrize("linux_container", ["ubuntu", "centos", "ubuntu-versioned", "centos-versioned"], indirect=True) + metafunc.parametrize( + "linux_container", + ["ubuntu", "centos", "ubuntu-versioned", "centos-versioned"], + indirect=True, + ) @pytest.fixture() def linux_container( - request, ubuntu_image_with_fdb, centos_image_with_fdb, ubuntu_image_with_fdb_versioned, centos_image_with_fdb_versioned + request, + ubuntu_image_with_fdb, + centos_image_with_fdb, + ubuntu_image_with_fdb_versioned, + centos_image_with_fdb_versioned, ) -> Iterator[Container]: """ - Tests which accept this fixture will be run once for each supported platform. + Tests which accept this fixture will be run once for each supported platform, for each type of package (versioned or unversioned). """ container: Optional[Container] = None try: diff --git a/packaging/multiversion/clients/postinst b/packaging/multiversion/clients/postinst index 8f029cc25c..f1e700c3c9 100644 --- a/packaging/multiversion/clients/postinst +++ b/packaging/multiversion/clients/postinst @@ -15,14 +15,14 @@ fi getent group foundationdb >/dev/null || addgroup --system foundationdb getent passwd foundationdb >/dev/null || adduser --system --disabled-login --ingroup foundationdb --no-create-home --home /var/lib/foundationdb --gecos "FoundationDB" --shell /bin/false foundationdb -mkdir -p /usr/@LIB_DIR@/foundationdb/backup_agent +mkdir -p /usr/lib/foundationdb/backup_agent update-alternatives --install /usr/bin/fdbcli fdbclients /usr/lib/foundationdb-@PROJECT_VERSION@/bin/fdbcli @ALTERNATIVES_PRIORITY@ \ --slave /usr/bin/fdbbackup fdbbackup /usr/lib/foundationdb-@PROJECT_VERSION@/bin/fdbbackup \ --slave /usr/bin/fdbrestore fdbrestore /usr/lib/foundationdb-@PROJECT_VERSION@/bin/fdbbackup \ --slave /usr/bin/dr_agent dr_agent /usr/lib/foundationdb-@PROJECT_VERSION@/bin/fdbbackup \ --slave /usr/bin/fdbdr fdbdr /usr/lib/foundationdb-@PROJECT_VERSION@/bin/fdbbackup \ - --slave /usr/@LIB_DIR@/foundationdb/backup_agent/backup_agent backup_agent /usr/lib/foundationdb-@PROJECT_VERSION@/bin/fdbbackup \ + --slave /usr/lib/foundationdb/backup_agent/backup_agent backup_agent /usr/lib/foundationdb-@PROJECT_VERSION@/bin/fdbbackup \ --slave /usr/@LIB_DIR@/libfdb_c.so libfdb_c /usr/lib/foundationdb-@PROJECT_VERSION@/lib/libfdb_c.so \ --slave /usr/@LIB_DIR@/pkgconfig/foundationdb-client.pc foundationdb-client.pc /usr/lib/foundationdb-@PROJECT_VERSION@/lib/pkgconfig/foundationdb-client.pc \ --slave /usr/@LIB_DIR@/cmake/FoundationDB-Client FoundationDB-ClientConfig /usr/lib/foundationdb-@PROJECT_VERSION@/lib/cmake/FoundationDB-Client \