diff --git a/.evergreen/aws_lambda b/.evergreen/aws_lambda new file mode 120000 index 0000000000..3366dcbced --- /dev/null +++ b/.evergreen/aws_lambda @@ -0,0 +1 @@ +../.mod/drivers-evergreen-tools/.evergreen/aws_lambda \ No newline at end of file diff --git a/.evergreen/config.yml b/.evergreen/config.yml index 7db7bc4ea7..db53650e21 100644 --- a/.evergreen/config.yml +++ b/.evergreen/config.yml @@ -14,7 +14,7 @@ pre_error_fails_task: true command_type: system # Protect ourself against rogue test case, or curl gone wild, that runs forever. -exec_timeout_secs: 3600 +exec_timeout_secs: 5400 # What to do when evergreen hits the timeout (`post:` tasks are run automatically) timeout: @@ -168,6 +168,25 @@ functions: EOT + "run CSOT tests": + - command: shell.exec + type: test + params: + shell: bash + working_dir: "src" + script: | + ${PREPARE_SHELL} + # Needed for generating temporary aws credentials. + if [ -n "${FLE}" ]; + then + export AWS_ACCESS_KEY_ID="${fle_aws_key}" + export AWS_SECRET_ACCESS_KEY="${fle_aws_secret}" + export AWS_DEFAULT_REGION="${fle_aws_region}" + fi + export CSOT_SPEC_TESTS=1 + TEST_CMD="bundle exec rspec spec/spec_tests/client_side_operations_timeout_spec.rb" \ + .evergreen/run-tests.sh + "export FLE credentials": - command: shell.exec type: test @@ -327,7 +346,7 @@ functions: "upload test results": - command: attach.xunit_results params: - file: ./src/tmp/rspec.xml + file: ./src/rspec.xml "delete private environment": - command: shell.exec @@ -463,7 +482,7 @@ post: # Removed, causing timeouts # - func: "upload working dir" - func: "upload mo artifacts" - #- func: "upload test results" + # - func: "upload test results" - func: "upload test results to s3" task_groups: @@ -496,36 +515,6 @@ task_groups: tasks: - "test-serverless" - - name: serverless_next_task_group - setup_group_can_fail_task: true - setup_group_timeout_secs: 1800 # 30 minutes - setup_group: - - func: "fetch source" - - func: "create expansions" - - command: ec2.assume_role - params: - role_arn: ${aws_test_secrets_role} - - command: shell.exec - params: - shell: "bash" - script: | - ${PREPARE_SHELL} - bash ${DRIVERS_TOOLS}/.evergreen/serverless/setup-secrets.sh serverless_next - bash ${DRIVERS_TOOLS}/.evergreen/serverless/create-instance.sh - - command: expansions.update - params: - file: serverless-expansion.yml - teardown_task: - - command: shell.exec - params: - script: | - ${PREPARE_SHELL} - bash ${DRIVERS_TOOLS}/.evergreen/serverless/setup-secrets.sh serverless_next - bash ${DRIVERS_TOOLS}/.evergreen/serverless/delete-instance.sh - - func: "upload test results" - tasks: - - "test-serverless" - - name: testatlas_task_group setup_group_can_fail_task: true setup_group_timeout_secs: 1800 # 30 minutes @@ -546,6 +535,7 @@ task_groups: DRIVERS_ATLAS_GROUP_ID="${DRIVERS_ATLAS_GROUP_ID}" \ DRIVERS_ATLAS_LAMBDA_USER="${DRIVERS_ATLAS_LAMBDA_USER}" \ DRIVERS_ATLAS_LAMBDA_PASSWORD="${DRIVERS_ATLAS_LAMBDA_PASSWORD}" \ + DRIVERS_ATLAS_BASE_URL="${DRIVERS_ATLAS_BASE_URL}" \ LAMBDA_STACK_NAME="dbx-ruby-lambda" \ MONGODB_VERSION="7.0" \ task_id="${task_id}" \ @@ -567,6 +557,7 @@ task_groups: DRIVERS_ATLAS_PUBLIC_API_KEY="${DRIVERS_ATLAS_PUBLIC_API_KEY}" \ DRIVERS_ATLAS_PRIVATE_API_KEY="${DRIVERS_ATLAS_PRIVATE_API_KEY}" \ DRIVERS_ATLAS_GROUP_ID="${DRIVERS_ATLAS_GROUP_ID}" \ + DRIVERS_ATLAS_BASE_URL="${DRIVERS_ATLAS_BASE_URL}" \ LAMBDA_STACK_NAME="dbx-ruby-lambda" \ task_id="${task_id}" \ execution="${execution}" \ @@ -594,6 +585,7 @@ task_groups: DRIVERS_ATLAS_GROUP_ID="${DRIVERS_ATLAS_GROUP_ID}" \ DRIVERS_ATLAS_LAMBDA_USER="${DRIVERS_ATLAS_LAMBDA_USER}" \ DRIVERS_ATLAS_LAMBDA_PASSWORD="${DRIVERS_ATLAS_LAMBDA_PASSWORD}" \ + DRIVERS_ATLAS_BASE_URL="${DRIVERS_ATLAS_BASE_URL}" \ LAMBDA_STACK_NAME="dbx-ruby-lambda" \ MONGODB_VERSION="7.0" \ task_id="${task_id}" \ @@ -615,6 +607,7 @@ task_groups: DRIVERS_ATLAS_PUBLIC_API_KEY="${DRIVERS_ATLAS_PUBLIC_API_KEY}" \ DRIVERS_ATLAS_PRIVATE_API_KEY="${DRIVERS_ATLAS_PRIVATE_API_KEY}" \ DRIVERS_ATLAS_GROUP_ID="${DRIVERS_ATLAS_GROUP_ID}" \ + DRIVERS_ATLAS_BASE_URL="${DRIVERS_ATLAS_BASE_URL}" \ LAMBDA_STACK_NAME="dbx-ruby-lambda" \ task_id="${task_id}" \ execution="${execution}" \ @@ -642,6 +635,7 @@ task_groups: DRIVERS_ATLAS_GROUP_ID="${DRIVERS_ATLAS_GROUP_ID}" \ DRIVERS_ATLAS_LAMBDA_USER="${DRIVERS_ATLAS_LAMBDA_USER}" \ DRIVERS_ATLAS_LAMBDA_PASSWORD="${DRIVERS_ATLAS_LAMBDA_PASSWORD}" \ + DRIVERS_ATLAS_BASE_URL="${DRIVERS_ATLAS_BASE_URL}" \ LAMBDA_STACK_NAME="dbx-ruby-lambda" \ MONGODB_VERSION="7.0" \ task_id="${task_id}" \ @@ -663,6 +657,7 @@ task_groups: DRIVERS_ATLAS_PUBLIC_API_KEY="${DRIVERS_ATLAS_PUBLIC_API_KEY}" \ DRIVERS_ATLAS_PRIVATE_API_KEY="${DRIVERS_ATLAS_PRIVATE_API_KEY}" \ DRIVERS_ATLAS_GROUP_ID="${DRIVERS_ATLAS_GROUP_ID}" \ + DRIVERS_ATLAS_BASE_URL="${DRIVERS_ATLAS_BASE_URL}" \ LAMBDA_STACK_NAME="dbx-ruby-lambda" \ task_id="${task_id}" \ execution="${execution}" \ @@ -778,6 +773,9 @@ tasks: - name: "test-kerberos" commands: - func: "run Kerberos unit tests" + - name: "test-csot" + commands: + - func: "run CSOT tests" - name: "test-fle" commands: - func: "export FLE credentials" @@ -889,10 +887,12 @@ tasks: DRIVERS_ATLAS_LAMBDA_USER: ${DRIVERS_ATLAS_LAMBDA_USER} DRIVERS_ATLAS_LAMBDA_PASSWORD: ${DRIVERS_ATLAS_LAMBDA_PASSWORD} DRIVERS_ATLAS_GROUP_ID: ${DRIVERS_ATLAS_GROUP_ID} + DRIVERS_ATLAS_BASE_URL: ${DRIVERS_ATLAS_BASE_URL} AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID} AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY} AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN} LAMBDA_STACK_NAME: "dbx-ruby-lambda" + CLUSTER_PREFIX: "dbx-ruby-lambda" RVM_RUBY: ruby-3.2 MONGODB_URI: ${MONGODB_URI} axes: @@ -915,6 +915,10 @@ axes: variables: MONGODB_VERSION: "latest" CRYPT_SHARED_VERSION: "latest" + - id: "8.0" + display_name: "8.0" + variables: + MONGODB_VERSION: "8.0" - id: "7.0" display_name: "7.0" variables: @@ -923,11 +927,6 @@ axes: display_name: "6.0" variables: MONGODB_VERSION: "6.0" - - id: "5.3" - display_name: "5.3" - variables: - MONGODB_VERSION: "5.3" - CRYPT_SHARED_VERSION: "6.0.5" - id: "5.0" display_name: "5.0" variables: @@ -971,6 +970,10 @@ axes: display_name: Replica Set variables: TOPOLOGY: replica-set + - id: "replica-set-single-node" + display_name: Replica Set (Single Node) + variables: + TOPOLOGY: replica-set-single-node - id: "sharded-cluster" display_name: Sharded variables: @@ -1078,18 +1081,24 @@ axes: - id: debian11 display_name: "Debian 11" run_on: debian11-small + - id: ubuntu2404 + display_name: "Ubuntu 24.04" + run_on: ubuntu2404-small + - id: ubuntu2404-arm + display_name: "Ubuntu 24.04 ARM64" + run_on: ubuntu2404-arm64-small - id: ubuntu2204 display_name: "Ubuntu 22.04" run_on: ubuntu2204-small + - id: ubuntu2204-arm + display_name: "Ubuntu 22.04 ARM64" + run_on: ubuntu2204-arm64-small - id: ubuntu2004 display_name: "Ubuntu 20.04" run_on: ubuntu2004-small - - id: rhel8 - display_name: "RHEL 8" - run_on: rhel80-small - - id: rhel8-arm - display_name: "RHEL 8 ARM64" - run_on: rhel82-arm64-small + - id: ubuntu1804 + display_name: "Ubuntu 18.04" + run_on: ubuntu1804-small - id: docker-distro display_name: Docker Distro @@ -1196,7 +1205,7 @@ axes: values: - id: mmapv1 display_name: MMAPv1 - run_on: rhel80-small + run_on: ubuntu1804-small variables: MMAPV1: 'true' @@ -1302,7 +1311,7 @@ buildvariants: ruby: "ruby-3.2" mongodb-version: "7.0" topology: standalone - run_on: rhel80-large + os: ubuntu2204 display_name: DriverBench tasks: - name: "driver-bench" @@ -1311,41 +1320,39 @@ buildvariants: matrix_spec: auth-and-ssl: ["auth-and-ssl", "noauth-and-nossl"] ruby: "ruby-3.2" - mongodb-version: ["latest", "7.0", "6.0"] + mongodb-version: ["7.0"] topology: ["standalone", "replica-set", "sharded-cluster"] - os: rhel8 + os: ubuntu2204 display_name: ${auth-and-ssl} ${ruby} db-${mongodb-version} ${topology} tasks: - name: "test-mlaunch" - matrix_name: "mongo-recent" matrix_spec: - ruby: ["ruby-3.2", "ruby-3.1", "jruby-9.4"] - mongodb-version: ["latest", "7.0", "6.0"] + ruby: ["ruby-3.2", "jruby-9.4"] + mongodb-version: ["7.0"] topology: ["standalone", "replica-set", "sharded-cluster"] - os: ['rhel8'] - # There is no latest for ubuntu2204, so we can't test it here. - # os: ['rhel8', 'ubuntu2204'] + os: ubuntu2204 display_name: "${mongodb-version} ${os} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "mongo-recent-arm" + - matrix_name: "mongo-8-arm" matrix_spec: ruby: "ruby-3.2" - mongodb-version: ["latest", "7.0", "6.0"] + mongodb-version: [ '8.0' ] topology: ["standalone", "replica-set", "sharded-cluster"] - os: 'rhel8-arm' + os: ubuntu2404-arm display_name: "${mongodb-version} ${os} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - matrix_name: "mongo-5.x" matrix_spec: - ruby: ["ruby-3.2", "ruby-2.7", "jruby-9.4"] - mongodb-version: ['5.3', '5.0'] + ruby: ["ruby-3.2", "jruby-9.4"] + mongodb-version: ['5.0'] topology: ["standalone", "replica-set", "sharded-cluster"] - os: rhel8 + os: ubuntu1804 display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" @@ -1355,7 +1362,7 @@ buildvariants: ruby: ["ruby-3.0", "ruby-2.7"] mongodb-version: ['4.4', '4.2', '4.0'] topology: ["standalone", "replica-set", "sharded-cluster"] - os: rhel8 + os: ubuntu1804 display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" @@ -1365,7 +1372,7 @@ buildvariants: ruby: "ruby-2.7" mongodb-version: ['3.6'] topology: ["standalone", "replica-set", "sharded-cluster"] - os: rhel8 + os: ubuntu1804 display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" @@ -1376,18 +1383,18 @@ buildvariants: mongodb-version: "7.0" topology: load-balanced single-mongos: single-mongos - os: rhel8 + os: ubuntu2204 display_name: "${mongodb-version} ${topology} single-lb ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "mongo-5.0-api-version" + - matrix_name: "mongo-api-version" matrix_spec: ruby: "ruby-3.2" - mongodb-version: '5.0' + mongodb-version: '7.0' topology: standalone api-version-required: yes - os: rhel8 + os: ubuntu2204 display_name: "${mongodb-version} api-version-required ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" @@ -1398,7 +1405,7 @@ buildvariants: mongodb-version: "7.0" topology: "sharded-cluster" single-mongos: single-mongos - os: rhel8 + os: ubuntu2204 display_name: "${mongodb-version} ${topology} single-mongos ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" @@ -1409,7 +1416,7 @@ buildvariants: ruby: "ruby-3.2" mongodb-version: "7.0" topology: ["standalone", "replica-set", "sharded-cluster"] - os: rhel8 + os: ubuntu2204 display_name: "${mongodb-version} ${topology} ${retry-reads} ${ruby}" tasks: - name: "test-mlaunch" @@ -1420,7 +1427,7 @@ buildvariants: ruby: "ruby-3.2" mongodb-version: "7.0" topology: [replica-set, sharded-cluster] - os: rhel8 + os: ubuntu2204 display_name: "${mongodb-version} ${topology} ${retry-writes} ${ruby}" tasks: - name: "test-mlaunch" @@ -1431,7 +1438,7 @@ buildvariants: mongodb-version: ['3.6', '4.0'] topology: ["standalone", "replica-set", "sharded-cluster"] storage-engine: mmapv1 - os: rhel8 + os: ubuntu1804 display_name: "${mongodb-version} ${topology} mmapv1 ${ruby}" tasks: - name: "test-mlaunch" @@ -1441,8 +1448,8 @@ buildvariants: lint: on ruby: "ruby-3.2" mongodb-version: "7.0" - topology: '*' - os: rhel8 + topology: ["standalone", "replica-set", "sharded-cluster"] + os: ubuntu2204 display_name: "${mongodb-version} ${topology} ${lint} ${ruby}" tasks: - name: "test-mlaunch" @@ -1453,7 +1460,7 @@ buildvariants: ruby: "ruby-3.2" mongodb-version: "7.0" topology: ["standalone", "replica-set", "sharded-cluster"] - os: rhel8 + os: ubuntu2204 display_name: "${mongodb-version} ${topology} fork ${ruby}" tasks: - name: "test-mlaunch" @@ -1461,10 +1468,10 @@ buildvariants: - matrix_name: "solo" matrix_spec: solo: on - ruby: ["ruby-3.2", "ruby-3.1", "ruby-3.0", "ruby-2.7", "jruby-9.4", "jruby-9.3"] + ruby: ["ruby-3.2", "ruby-3.1"] mongodb-version: "7.0" topology: ["standalone", "replica-set", "sharded-cluster"] - os: rhel8 + os: ubuntu2204 display_name: "${mongodb-version} ${topology} solo ${ruby}" tasks: - name: "test-mlaunch" @@ -1472,10 +1479,10 @@ buildvariants: - matrix_name: "stress older" matrix_spec: stress: on - ruby: ["ruby-2.7"] + ruby: "ruby-2.7" mongodb-version: ['4.2', '4.0', '3.6'] topology: replica-set - os: rhel8 + os: ubuntu1804 display_name: "${mongodb-version} ${topology} stress ${ruby}" tasks: - name: "test-mlaunch" @@ -1484,9 +1491,9 @@ buildvariants: matrix_spec: stress: on ruby: "ruby-3.2" - mongodb-version: ["6.0", "5.3"] + mongodb-version: ["7.0"] topology: replica-set - os: rhel8 + os: ubuntu2204 display_name: "${mongodb-version} ${topology} stress ${ruby}" tasks: - name: "test-mlaunch" @@ -1495,14 +1502,9 @@ buildvariants: matrix_spec: auth-and-ssl: "x509" ruby: "ruby-3.2" - # needs the latest_5x_mdb because run-tests.sh uses `mongo` to configure - # the server for certain auth mechanisms. Once run-tests.sh is made smart - # enough to install mongosh, and then use either mongo or mongosh - # (depending on server version and what's available), we can bump this to - # the latest stable db version. - mongodb-version: "5.3" + mongodb-version: "7.0" topology: standalone - os: rhel8 + os: ubuntu2204 display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" @@ -1513,31 +1515,31 @@ buildvariants: ruby: jruby-9.4 mongodb-version: "7.0" topology: ["standalone", "replica-set", "sharded-cluster"] - os: rhel8 + os: ubuntu2204 display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "zlib" + - matrix_name: zlib-"ruby-3.2" matrix_spec: auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ] - ruby: ["ruby-3.2", "ruby-2.7", "jruby-9.4"] + ruby: "ruby-3.2" mongodb-version: "7.0" topology: "replica-set" compressor: 'zlib' - os: rhel8 + os: ubuntu2204 display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "snappy" + - matrix_name: snappy-"ruby-3.2" matrix_spec: auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ] - ruby: ["ruby-3.2", "ruby-2.7", "jruby-9.4"] + ruby: "ruby-3.2" mongodb-version: "7.0" topology: "replica-set" compressor: 'snappy' - os: rhel8 + os: ubuntu2204 display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" @@ -1546,40 +1548,112 @@ buildvariants: # apparently a zstd-jni gem for JRuby that we could investigate here; if # this test is ever supported to support jruby, the `sample_mri_rubies` # reference should be replaced with `sample_rubies`. - - matrix_name: "zstd-auth" + - matrix_name: zstd-auth-"ruby-3.2" matrix_spec: auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ] - ruby: ["ruby-3.2", "ruby-2.7"] + ruby: "ruby-3.2" mongodb-version: "7.0" topology: "replica-set" compressor: 'zstd' - os: rhel8 + os: ubuntu2204 display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "activesupport" + - matrix_name: activesupport-"ruby-3.2" matrix_spec: - ruby: ["ruby-3.2", "ruby-2.7", "jruby-9.4"] + ruby: "ruby-3.2" mongodb-version: "7.0" topology: replica-set as: as - os: rhel8 + os: ubuntu2204 display_name: "AS ${mongodb-version} ${topology} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "bson" + - matrix_name: bson-"ruby-3.2" matrix_spec: - ruby: ["ruby-3.2", "ruby-2.7", "jruby-9.4"] + ruby: "ruby-3.2" mongodb-version: "7.0" topology: replica-set bson: "*" - os: rhel8 + os: ubuntu2204 + display_name: "bson-${bson} ${mongodb-version} ${topology} ${ruby}" + tasks: + - name: "test-mlaunch" + - matrix_name: zlib-"ruby-2.7" + matrix_spec: + auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ] + ruby: "ruby-2.7" + mongodb-version: "6.0" + topology: "replica-set" + compressor: 'zlib' + os: ubuntu2004 + display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" + tasks: + - name: "test-mlaunch" + + - matrix_name: snappy-"ruby-2.7" + matrix_spec: + auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ] + ruby: "ruby-2.7" + mongodb-version: "6.0" + topology: "replica-set" + compressor: 'snappy' + os: ubuntu2004 + display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" + tasks: + - name: "test-mlaunch" + + # the zstd-ruby gem does not support JRuby (explicitly). However, there is + # apparently a zstd-jni gem for JRuby that we could investigate here; if + # this test is ever supported to support jruby, the `sample_mri_rubies` + # reference should be replaced with `sample_rubies`. + - matrix_name: zstd-auth-"ruby-2.7" + matrix_spec: + auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ] + ruby: "ruby-2.7" + mongodb-version: "6.0" + topology: "replica-set" + compressor: 'zstd' + os: ubuntu2004 + display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" + tasks: + - name: "test-mlaunch" + + - matrix_name: activesupport-"ruby-2.7" + matrix_spec: + ruby: "ruby-2.7" + mongodb-version: "6.0" + topology: replica-set + as: as + os: ubuntu2004 + display_name: "AS ${mongodb-version} ${topology} ${ruby}" + tasks: + - name: "test-mlaunch" + + - matrix_name: bson-"ruby-2.7" + matrix_spec: + ruby: "ruby-2.7" + mongodb-version: "6.0" + topology: replica-set + bson: "*" + os: ubuntu2004 display_name: "bson-${bson} ${mongodb-version} ${topology} ${ruby}" tasks: - name: "test-mlaunch" + - matrix_name: "fle above 4.4" + matrix_spec: + auth-and-ssl: "noauth-and-nossl" + ruby: ["ruby-3.2", "ruby-3.1"] + topology: [replica-set, sharded-cluster] + mongodb-version: [ '6.0', '7.0', '8.0' ] + os: ubuntu2204 + fle: helper + display_name: "FLE: ${mongodb-version} ${topology} ${ruby}" + tasks: + - name: "test-fle" # kerberos integration tests are broken (RUBY-3266) # - matrix_name: "kerberos-integration" # matrix_spec: @@ -1594,7 +1668,7 @@ buildvariants: ruby: "ruby-3.2" mongodb-version: "7.0" topology: standalone - os: rhel8 + os: ubuntu2204 auth-and-ssl: kerberos display_name: "Kerberos Tests" tasks: @@ -1605,20 +1679,8 @@ buildvariants: auth-and-ssl: "noauth-and-nossl" ruby: "ruby-3.2" topology: [replica-set, sharded-cluster] - mongodb-version: [ 'latest', '7.0' ] - os: rhel8 - fle: helper - display_name: "FLE: ${mongodb-version} ${topology} ${ruby}" - tasks: - - name: "test-fle" - - - matrix_name: "fle" - matrix_spec: - auth-and-ssl: "noauth-and-nossl" - ruby: ["ruby-3.2", "ruby-2.7"] - topology: [replica-set, sharded-cluster] - mongodb-version: [ '6.0', '4.4', '4.2', '4.0' ] - os: rhel8 + mongodb-version: [ 'latest' ] + os: ubuntu2204 fle: helper display_name: "FLE: ${mongodb-version} ${topology} ${ruby}" tasks: @@ -1631,13 +1693,8 @@ buildvariants: auth-and-ssl: [ aws-regular, aws-assume-role, aws-ecs, aws-web-identity ] ruby: "ruby-3.2" topology: standalone - # needs the latest_5x_mdb because run-tests.sh uses `mongo` to configure - # the server for certain auth mechanisms. Once run-tests.sh is made smart - # enough to install mongosh, and then use either mongo or mongosh - # (depending on server version and what's available), we can bump this to - # the latest stable db version. - mongodb-version: "5.3" - os: ubuntu2004 + mongodb-version: "7.0" + os: ubuntu2204 display_name: "AWS ${auth-and-ssl} ${mongodb-version} ${ruby}" tasks: - name: "test-aws-auth" @@ -1646,10 +1703,10 @@ buildvariants: matrix_spec: ocsp-verifier: true # No JRuby due to https://github.com/jruby/jruby-openssl/issues/210 - ruby: ["ruby-3.2", "ruby-3.1", "ruby-3.0", "ruby-2.7"] + ruby: ["ruby-3.2", "ruby-3.1"] topology: standalone mongodb-version: "7.0" - os: rhel8 + os: ubuntu2204 display_name: "OCSP verifier: ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch @@ -1659,10 +1716,10 @@ buildvariants: ocsp-algorithm: ecdsa ocsp-must-staple: on ocsp-delegate: on - ruby: ["ruby-3.2", "ruby-2.7"] + ruby: "ruby-3.2" topology: standalone mongodb-version: "7.0" - os: rhel8 + os: ubuntu2204 auth-and-ssl: noauth-and-ssl display_name: "OCSP integration - must staple: ${mongodb-version} ${ruby}" tasks: @@ -1672,10 +1729,10 @@ buildvariants: matrix_spec: ocsp-algorithm: rsa ocsp-status: unknown - ruby: ["ruby-3.2", "ruby-2.7"] + ruby: "ruby-3.2" topology: standalone mongodb-version: "7.0" - os: rhel8 + os: ubuntu2204 auth-and-ssl: noauth-and-ssl display_name: "OCSP integration - unknown: ${mongodb-version} ${ruby}" tasks: @@ -1688,10 +1745,10 @@ buildvariants: ocsp-delegate: '*' ocsp-connectivity: pass extra-uri-options: "none" - ruby: ["ruby-3.2", "ruby-2.7"] + ruby: "ruby-3.2" topology: standalone mongodb-version: "7.0" - os: rhel8 + os: ubuntu2204 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${extra-uri-options} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch @@ -1702,10 +1759,10 @@ buildvariants: ocsp-delegate: '*' ocsp-connectivity: pass extra-uri-options: "none" - ruby: ["ruby-3.2", "ruby-2.7"] + ruby: "ruby-3.2" topology: standalone mongodb-version: "7.0" - os: rhel8 + os: ubuntu2204 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${extra-uri-options} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch @@ -1716,10 +1773,10 @@ buildvariants: ocsp-delegate: '*' ocsp-connectivity: fail extra-uri-options: "none" - ruby: ["ruby-3.2", "ruby-2.7"] + ruby: "ruby-3.2" topology: standalone mongodb-version: "7.0" - os: rhel8 + os: ubuntu2204 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${extra-uri-options} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch @@ -1730,10 +1787,10 @@ buildvariants: ocsp-delegate: '*' ocsp-connectivity: pass extra-uri-options: "tlsInsecure=true" - ruby: ["ruby-3.2", "ruby-2.7"] + ruby: "ruby-3.2" topology: standalone mongodb-version: "7.0" - os: rhel8 + os: ubuntu2204 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${extra-uri-options} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch @@ -1744,10 +1801,10 @@ buildvariants: ocsp-delegate: '*' ocsp-connectivity: pass extra-uri-options: "tlsInsecure=true" - ruby: ["ruby-3.2", "ruby-2.7"] + ruby: "ruby-3.2" topology: standalone mongodb-version: "7.0" - os: rhel8 + os: ubuntu2204 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${extra-uri-options} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch @@ -1758,10 +1815,10 @@ buildvariants: ocsp-delegate: '*' ocsp-connectivity: pass extra-uri-options: "tlsInsecure=true" - ruby: ["ruby-3.2", "ruby-2.7"] + ruby: "ruby-3.2" topology: standalone mongodb-version: "7.0" - os: rhel8 + os: ubuntu2204 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${extra-uri-options} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch @@ -1772,10 +1829,10 @@ buildvariants: ocsp-delegate: '*' ocsp-connectivity: pass extra-uri-options: "tlsAllowInvalidCertificates=true" - ruby: ["ruby-3.2", "ruby-2.7"] + ruby: "ruby-3.2" topology: standalone mongodb-version: "7.0" - os: rhel8 + os: ubuntu2204 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${extra-uri-options} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch @@ -1786,10 +1843,10 @@ buildvariants: ocsp-delegate: '*' ocsp-connectivity: pass extra-uri-options: "tlsAllowInvalidCertificates=true" - ruby: ["ruby-3.2", "ruby-2.7"] + ruby: "ruby-3.2" topology: standalone mongodb-version: "7.0" - os: rhel8 + os: ubuntu2204 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${extra-uri-options} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch @@ -1800,10 +1857,10 @@ buildvariants: ocsp-delegate: '*' ocsp-connectivity: pass extra-uri-options: "tlsAllowInvalidCertificates=true" - ruby: ["ruby-3.2", "ruby-2.7"] + ruby: "ruby-3.2" topology: standalone mongodb-version: "7.0" - os: rhel8 + os: ubuntu2204 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${extra-uri-options} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch @@ -1823,22 +1880,23 @@ buildvariants: ruby: jruby-9.4 topology: standalone mongodb-version: "7.0" - os: rhel8 + os: ubuntu2204 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch - - matrix_name: testgcpkms-variant - matrix_spec: - ruby: "ruby-3.2" - fle: helper - topology: standalone - os: rhel8 - mongodb-version: "7.0" - display_name: "GCP KMS" - tasks: - - name: testgcpkms_task_group - batchtime: 20160 # Use a batchtime of 14 days as suggested by the CSFLE test README + # https://jira.mongodb.org/browse/RUBY-3540 + #- matrix_name: testgcpkms-variant + # matrix_spec: + # ruby: "ruby-3.2" + # fle: helper + # topology: standalone + # os: ubuntu2204 + # mongodb-version: "7.0" + # display_name: "GCP KMS" + # tasks: + # - name: testgcpkms_task_group + # batchtime: 20160 # Use a batchtime of 14 days as suggested by the CSFLE test README - matrix_name: testazurekms-variant matrix_spec: @@ -1855,45 +1913,31 @@ buildvariants: - matrix_name: atlas-full matrix_spec: ruby: "ruby-3.2" - os: rhel8 + os: ubuntu2204 display_name: "Atlas (Full)" tasks: - name: testatlas_full_task_group - matrix_name: "atlas" matrix_spec: - ruby: ["ruby-3.2", "ruby-3.1", "ruby-3.0", "ruby-2.7", "jruby-9.4", "jruby-9.3"] - os: rhel8 + ruby: ["ruby-3.2", "ruby-3.1"] + os: ubuntu2204 display_name: "Atlas tests ${ruby}" tasks: - name: testatlas_task_group -# Commented out, pending RUBY-3414 -# - matrix_name: "serverless" -# matrix_spec: -# # https://jira.mongodb.org/browse/RUBY-3217 -# # ruby: ["ruby-3.2", "ruby-3.1", "ruby-3.0", "ruby-2.7", "jruby-9.4", "jruby-9.3"] -# ruby: ["ruby-3.2", "ruby-3.1", "ruby-3.0", "ruby-2.7"] -# fle: path -# os: rhel8 -# display_name: "Atlas serverless ${ruby}" -# tasks: -# - name: serverless_task_group -# -# - matrix_name: "serverless-next" -# matrix_spec: -# # https://jira.mongodb.org/browse/RUBY-3217 -# # ruby: ["ruby-3.2", "ruby-3.1", "ruby-3.0", "ruby-2.7", "jruby-9.4", "jruby-9.3"] -# ruby: ["ruby-3.2", "ruby-3.1", "ruby-3.0", "ruby-2.7"] -# fle: path -# os: rhel8 -# display_name: "Atlas serverless-next ${ruby}" -# tasks: -# - name: serverless_next_task_group + - matrix_name: "serverless" + matrix_spec: + ruby: "ruby-3.2" + fle: path + os: ubuntu2204 + display_name: "Atlas serverless ${ruby}" + tasks: + - name: serverless_task_group - matrix_name: "aws-lambda" matrix_spec: - ruby: "ruby-3.2" + ruby: 'ruby-3.2' os: ubuntu2204 display_name: "AWS Lambda" tasks: diff --git a/.evergreen/config/axes.yml.erb b/.evergreen/config/axes.yml.erb index c433cf9c22..05c11b488a 100644 --- a/.evergreen/config/axes.yml.erb +++ b/.evergreen/config/axes.yml.erb @@ -18,6 +18,10 @@ axes: variables: MONGODB_VERSION: "latest" CRYPT_SHARED_VERSION: "latest" + - id: "8.0" + display_name: "8.0" + variables: + MONGODB_VERSION: "8.0" - id: "7.0" display_name: "7.0" variables: @@ -26,11 +30,6 @@ axes: display_name: "6.0" variables: MONGODB_VERSION: "6.0" - - id: "5.3" - display_name: "5.3" - variables: - MONGODB_VERSION: "5.3" - CRYPT_SHARED_VERSION: "6.0.5" - id: "5.0" display_name: "5.0" variables: @@ -74,6 +73,10 @@ axes: display_name: Replica Set variables: TOPOLOGY: replica-set + - id: "replica-set-single-node" + display_name: Replica Set (Single Node) + variables: + TOPOLOGY: replica-set-single-node - id: "sharded-cluster" display_name: Sharded variables: @@ -181,18 +184,24 @@ axes: - id: debian11 display_name: "Debian 11" run_on: debian11-small + - id: ubuntu2404 + display_name: "Ubuntu 24.04" + run_on: ubuntu2404-small + - id: ubuntu2404-arm + display_name: "Ubuntu 24.04 ARM64" + run_on: ubuntu2404-arm64-small - id: ubuntu2204 display_name: "Ubuntu 22.04" run_on: ubuntu2204-small + - id: ubuntu2204-arm + display_name: "Ubuntu 22.04 ARM64" + run_on: ubuntu2204-arm64-small - id: ubuntu2004 display_name: "Ubuntu 20.04" run_on: ubuntu2004-small - - id: rhel8 - display_name: "RHEL 8" - run_on: rhel80-small - - id: rhel8-arm - display_name: "RHEL 8 ARM64" - run_on: rhel82-arm64-small + - id: ubuntu1804 + display_name: "Ubuntu 18.04" + run_on: ubuntu1804-small - id: docker-distro display_name: Docker Distro @@ -297,7 +306,7 @@ axes: values: - id: mmapv1 display_name: MMAPv1 - run_on: rhel80-small + run_on: ubuntu1804-small variables: MMAPV1: 'true' diff --git a/.evergreen/config/common.yml.erb b/.evergreen/config/common.yml.erb index cacba6b5aa..60f7707b8a 100644 --- a/.evergreen/config/common.yml.erb +++ b/.evergreen/config/common.yml.erb @@ -11,7 +11,7 @@ pre_error_fails_task: true command_type: system # Protect ourself against rogue test case, or curl gone wild, that runs forever. -exec_timeout_secs: 3600 +exec_timeout_secs: 5400 # What to do when evergreen hits the timeout (`post:` tasks are run automatically) timeout: @@ -165,6 +165,25 @@ functions: EOT + "run CSOT tests": + - command: shell.exec + type: test + params: + shell: bash + working_dir: "src" + script: | + ${PREPARE_SHELL} + # Needed for generating temporary aws credentials. + if [ -n "${FLE}" ]; + then + export AWS_ACCESS_KEY_ID="${fle_aws_key}" + export AWS_SECRET_ACCESS_KEY="${fle_aws_secret}" + export AWS_DEFAULT_REGION="${fle_aws_region}" + fi + export CSOT_SPEC_TESTS=1 + TEST_CMD="bundle exec rspec spec/spec_tests/client_side_operations_timeout_spec.rb" \ + .evergreen/run-tests.sh + "export FLE credentials": - command: shell.exec type: test @@ -324,7 +343,7 @@ functions: "upload test results": - command: attach.xunit_results params: - file: ./src/tmp/rspec.xml + file: ./src/rspec.xml "delete private environment": - command: shell.exec @@ -460,7 +479,7 @@ post: # Removed, causing timeouts # - func: "upload working dir" - func: "upload mo artifacts" - #- func: "upload test results" + # - func: "upload test results" - func: "upload test results to s3" task_groups: @@ -493,36 +512,6 @@ task_groups: tasks: - "test-serverless" - - name: serverless_next_task_group - setup_group_can_fail_task: true - setup_group_timeout_secs: 1800 # 30 minutes - setup_group: - - func: "fetch source" - - func: "create expansions" - - command: ec2.assume_role - params: - role_arn: ${aws_test_secrets_role} - - command: shell.exec - params: - shell: "bash" - script: | - ${PREPARE_SHELL} - bash ${DRIVERS_TOOLS}/.evergreen/serverless/setup-secrets.sh serverless_next - bash ${DRIVERS_TOOLS}/.evergreen/serverless/create-instance.sh - - command: expansions.update - params: - file: serverless-expansion.yml - teardown_task: - - command: shell.exec - params: - script: | - ${PREPARE_SHELL} - bash ${DRIVERS_TOOLS}/.evergreen/serverless/setup-secrets.sh serverless_next - bash ${DRIVERS_TOOLS}/.evergreen/serverless/delete-instance.sh - - func: "upload test results" - tasks: - - "test-serverless" - - name: testatlas_task_group setup_group_can_fail_task: true setup_group_timeout_secs: 1800 # 30 minutes @@ -543,6 +532,7 @@ task_groups: DRIVERS_ATLAS_GROUP_ID="${DRIVERS_ATLAS_GROUP_ID}" \ DRIVERS_ATLAS_LAMBDA_USER="${DRIVERS_ATLAS_LAMBDA_USER}" \ DRIVERS_ATLAS_LAMBDA_PASSWORD="${DRIVERS_ATLAS_LAMBDA_PASSWORD}" \ + DRIVERS_ATLAS_BASE_URL="${DRIVERS_ATLAS_BASE_URL}" \ LAMBDA_STACK_NAME="dbx-ruby-lambda" \ MONGODB_VERSION="7.0" \ task_id="${task_id}" \ @@ -564,6 +554,7 @@ task_groups: DRIVERS_ATLAS_PUBLIC_API_KEY="${DRIVERS_ATLAS_PUBLIC_API_KEY}" \ DRIVERS_ATLAS_PRIVATE_API_KEY="${DRIVERS_ATLAS_PRIVATE_API_KEY}" \ DRIVERS_ATLAS_GROUP_ID="${DRIVERS_ATLAS_GROUP_ID}" \ + DRIVERS_ATLAS_BASE_URL="${DRIVERS_ATLAS_BASE_URL}" \ LAMBDA_STACK_NAME="dbx-ruby-lambda" \ task_id="${task_id}" \ execution="${execution}" \ @@ -591,6 +582,7 @@ task_groups: DRIVERS_ATLAS_GROUP_ID="${DRIVERS_ATLAS_GROUP_ID}" \ DRIVERS_ATLAS_LAMBDA_USER="${DRIVERS_ATLAS_LAMBDA_USER}" \ DRIVERS_ATLAS_LAMBDA_PASSWORD="${DRIVERS_ATLAS_LAMBDA_PASSWORD}" \ + DRIVERS_ATLAS_BASE_URL="${DRIVERS_ATLAS_BASE_URL}" \ LAMBDA_STACK_NAME="dbx-ruby-lambda" \ MONGODB_VERSION="7.0" \ task_id="${task_id}" \ @@ -612,6 +604,7 @@ task_groups: DRIVERS_ATLAS_PUBLIC_API_KEY="${DRIVERS_ATLAS_PUBLIC_API_KEY}" \ DRIVERS_ATLAS_PRIVATE_API_KEY="${DRIVERS_ATLAS_PRIVATE_API_KEY}" \ DRIVERS_ATLAS_GROUP_ID="${DRIVERS_ATLAS_GROUP_ID}" \ + DRIVERS_ATLAS_BASE_URL="${DRIVERS_ATLAS_BASE_URL}" \ LAMBDA_STACK_NAME="dbx-ruby-lambda" \ task_id="${task_id}" \ execution="${execution}" \ @@ -639,6 +632,7 @@ task_groups: DRIVERS_ATLAS_GROUP_ID="${DRIVERS_ATLAS_GROUP_ID}" \ DRIVERS_ATLAS_LAMBDA_USER="${DRIVERS_ATLAS_LAMBDA_USER}" \ DRIVERS_ATLAS_LAMBDA_PASSWORD="${DRIVERS_ATLAS_LAMBDA_PASSWORD}" \ + DRIVERS_ATLAS_BASE_URL="${DRIVERS_ATLAS_BASE_URL}" \ LAMBDA_STACK_NAME="dbx-ruby-lambda" \ MONGODB_VERSION="7.0" \ task_id="${task_id}" \ @@ -660,6 +654,7 @@ task_groups: DRIVERS_ATLAS_PUBLIC_API_KEY="${DRIVERS_ATLAS_PUBLIC_API_KEY}" \ DRIVERS_ATLAS_PRIVATE_API_KEY="${DRIVERS_ATLAS_PRIVATE_API_KEY}" \ DRIVERS_ATLAS_GROUP_ID="${DRIVERS_ATLAS_GROUP_ID}" \ + DRIVERS_ATLAS_BASE_URL="${DRIVERS_ATLAS_BASE_URL}" \ LAMBDA_STACK_NAME="dbx-ruby-lambda" \ task_id="${task_id}" \ execution="${execution}" \ @@ -775,6 +770,9 @@ tasks: - name: "test-kerberos" commands: - func: "run Kerberos unit tests" + - name: "test-csot" + commands: + - func: "run CSOT tests" - name: "test-fle" commands: - func: "export FLE credentials" @@ -886,9 +884,11 @@ tasks: DRIVERS_ATLAS_LAMBDA_USER: ${DRIVERS_ATLAS_LAMBDA_USER} DRIVERS_ATLAS_LAMBDA_PASSWORD: ${DRIVERS_ATLAS_LAMBDA_PASSWORD} DRIVERS_ATLAS_GROUP_ID: ${DRIVERS_ATLAS_GROUP_ID} + DRIVERS_ATLAS_BASE_URL: ${DRIVERS_ATLAS_BASE_URL} AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID} AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY} AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN} LAMBDA_STACK_NAME: "dbx-ruby-lambda" + CLUSTER_PREFIX: "dbx-ruby-lambda" RVM_RUBY: ruby-3.2 MONGODB_URI: ${MONGODB_URI} diff --git a/.evergreen/config/standard.yml.erb b/.evergreen/config/standard.yml.erb index 668e65a9b1..c326ede4f0 100644 --- a/.evergreen/config/standard.yml.erb +++ b/.evergreen/config/standard.yml.erb @@ -6,7 +6,7 @@ latest_ruby = "ruby-3.2".inspect # so it gets quoted as a string # these are used for testing against a few recent ruby versions - recent_rubies = %w( ruby-3.2 ruby-3.1 jruby-9.4 ) + recent_rubies = %w( ruby-3.2 jruby-9.4 ) # this is a list of the most most recent 3.x and 2.x MRI ruby versions sample_mri_rubies = %w( ruby-3.2 ruby-2.7 ) @@ -20,19 +20,25 @@ # all supported JRuby versions provided by 10gen/mongo-ruby-toolchain jrubies = %w( jruby-9.4 jruby-9.3 ) - supported_mri_rubies = %w( ruby-3.2 ruby-3.1 ruby-3.0 - ruby-2.7 ) + supported_mri_rubies_3 = %w( ruby-3.2 ruby-3.1 ruby-3.0 ) - supported_rubies = supported_mri_rubies + jrubies + supported_mri_rubies_3_ubuntu = %w( ruby-3.2 ruby-3.1 ) + + supported_mri_ruby_2 = "ruby-2.7".inspect + + supported_rubies = supported_mri_rubies_3 + + %w( ruby-2.7 ) + + jrubies # The latest stable version of MongoDB latest_stable_mdb = "7.0".inspect # so it gets quoted as a string # A few of the most recent MongoDB versions - actual_and_upcoming_mdb = %w( latest 7.0 6.0 ) + actual_and_upcoming_mdb = %w( 7.0 ) + + recent_mdb = %w( 7.0 ) - recent_mdb = %w( 6.0 5.3 ) - latest_5x_mdb = "5.3".inspect # so it gets quoted as a string + all_dbs = %w( 7.0 6.0 5.0 4.4 4.2 4.0 3.6 ) %> buildvariants: @@ -41,7 +47,7 @@ buildvariants: ruby: <%= latest_ruby %> mongodb-version: <%= latest_stable_mdb %> topology: standalone - run_on: rhel80-large + os: ubuntu2204 display_name: DriverBench tasks: - name: "driver-bench" @@ -52,7 +58,7 @@ buildvariants: ruby: <%= latest_ruby %> mongodb-version: <%= actual_and_upcoming_mdb %> topology: <%= topologies %> - os: rhel8 + os: ubuntu2204 display_name: ${auth-and-ssl} ${ruby} db-${mongodb-version} ${topology} tasks: - name: "test-mlaunch" @@ -62,29 +68,27 @@ buildvariants: ruby: <%= recent_rubies %> mongodb-version: <%= actual_and_upcoming_mdb %> topology: <%= topologies %> - os: ['rhel8'] - # There is no latest for ubuntu2204, so we can't test it here. - # os: ['rhel8', 'ubuntu2204'] + os: ubuntu2204 display_name: "${mongodb-version} ${os} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "mongo-recent-arm" + - matrix_name: "mongo-8-arm" matrix_spec: ruby: <%= latest_ruby %> - mongodb-version: <%= actual_and_upcoming_mdb %> + mongodb-version: [ '8.0' ] topology: <%= topologies %> - os: 'rhel8-arm' + os: ubuntu2404-arm display_name: "${mongodb-version} ${os} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - matrix_name: "mongo-5.x" matrix_spec: - ruby: <%= sample_rubies %> - mongodb-version: ['5.3', '5.0'] + ruby: <%= recent_rubies %> + mongodb-version: ['5.0'] topology: <%= topologies %> - os: rhel8 + os: ubuntu1804 display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" @@ -94,17 +98,17 @@ buildvariants: ruby: <%= older_rubies %> mongodb-version: ['4.4', '4.2', '4.0'] topology: <%= topologies %> - os: rhel8 + os: ubuntu1804 display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - matrix_name: "mongo-3.6" matrix_spec: - ruby: "ruby-2.7" + ruby: <%= supported_mri_ruby_2 %> mongodb-version: ['3.6'] topology: <%= topologies %> - os: rhel8 + os: ubuntu1804 display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" @@ -115,18 +119,18 @@ buildvariants: mongodb-version: <%= latest_stable_mdb %> topology: load-balanced single-mongos: single-mongos - os: rhel8 + os: ubuntu2204 display_name: "${mongodb-version} ${topology} single-lb ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "mongo-5.0-api-version" + - matrix_name: "mongo-api-version" matrix_spec: ruby: <%= latest_ruby %> - mongodb-version: '5.0' + mongodb-version: '7.0' topology: standalone api-version-required: yes - os: rhel8 + os: ubuntu2204 display_name: "${mongodb-version} api-version-required ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" @@ -137,7 +141,7 @@ buildvariants: mongodb-version: <%= latest_stable_mdb %> topology: "sharded-cluster" single-mongos: single-mongos - os: rhel8 + os: ubuntu2204 display_name: "${mongodb-version} ${topology} single-mongos ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" @@ -148,7 +152,7 @@ buildvariants: ruby: <%= latest_ruby %> mongodb-version: <%= latest_stable_mdb %> topology: <%= topologies %> - os: rhel8 + os: ubuntu2204 display_name: "${mongodb-version} ${topology} ${retry-reads} ${ruby}" tasks: - name: "test-mlaunch" @@ -159,18 +163,18 @@ buildvariants: ruby: <%= latest_ruby %> mongodb-version: <%= latest_stable_mdb %> topology: [replica-set, sharded-cluster] - os: rhel8 + os: ubuntu2204 display_name: "${mongodb-version} ${topology} ${retry-writes} ${ruby}" tasks: - name: "test-mlaunch" - matrix_name: mmapv1 matrix_spec: - ruby: "ruby-2.7" + ruby: <%= supported_mri_ruby_2 %> mongodb-version: ['3.6', '4.0'] topology: <%= topologies %> storage-engine: mmapv1 - os: rhel8 + os: ubuntu1804 display_name: "${mongodb-version} ${topology} mmapv1 ${ruby}" tasks: - name: "test-mlaunch" @@ -180,8 +184,8 @@ buildvariants: lint: on ruby: <%= latest_ruby %> mongodb-version: <%= latest_stable_mdb %> - topology: '*' - os: rhel8 + topology: <%= topologies %> + os: ubuntu2204 display_name: "${mongodb-version} ${topology} ${lint} ${ruby}" tasks: - name: "test-mlaunch" @@ -192,7 +196,7 @@ buildvariants: ruby: <%= latest_ruby %> mongodb-version: <%= latest_stable_mdb %> topology: <%= topologies %> - os: rhel8 + os: ubuntu2204 display_name: "${mongodb-version} ${topology} fork ${ruby}" tasks: - name: "test-mlaunch" @@ -200,10 +204,10 @@ buildvariants: - matrix_name: "solo" matrix_spec: solo: on - ruby: <%= supported_rubies %> + ruby: <%= supported_mri_rubies_3_ubuntu %> mongodb-version: <%= latest_stable_mdb %> topology: <%= topologies %> - os: rhel8 + os: ubuntu2204 display_name: "${mongodb-version} ${topology} solo ${ruby}" tasks: - name: "test-mlaunch" @@ -211,10 +215,10 @@ buildvariants: - matrix_name: "stress older" matrix_spec: stress: on - ruby: ["ruby-2.7"] + ruby: <%= supported_mri_ruby_2 %> mongodb-version: ['4.2', '4.0', '3.6'] topology: replica-set - os: rhel8 + os: ubuntu1804 display_name: "${mongodb-version} ${topology} stress ${ruby}" tasks: - name: "test-mlaunch" @@ -225,7 +229,7 @@ buildvariants: ruby: <%= latest_ruby %> mongodb-version: <%= recent_mdb %> topology: replica-set - os: rhel8 + os: ubuntu2204 display_name: "${mongodb-version} ${topology} stress ${ruby}" tasks: - name: "test-mlaunch" @@ -234,14 +238,9 @@ buildvariants: matrix_spec: auth-and-ssl: "x509" ruby: <%= latest_ruby %> - # needs the latest_5x_mdb because run-tests.sh uses `mongo` to configure - # the server for certain auth mechanisms. Once run-tests.sh is made smart - # enough to install mongosh, and then use either mongo or mongosh - # (depending on server version and what's available), we can bump this to - # the latest stable db version. - mongodb-version: <%= latest_5x_mdb %> + mongodb-version: <%= latest_stable_mdb %> topology: standalone - os: rhel8 + os: ubuntu2204 display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" @@ -252,31 +251,36 @@ buildvariants: ruby: <%= jrubies.first %> mongodb-version: <%= latest_stable_mdb %> topology: <%= topologies %> - os: rhel8 + os: ubuntu2204 display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "zlib" + <% [ + [latest_ruby, latest_stable_mdb, 'ubuntu2204'], + [supported_mri_ruby_2, '"6.0"', 'ubuntu2004'] + ].each do |rubies, mdb, distro| + %> + - matrix_name: <%= "zlib-#{rubies}" %> matrix_spec: auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ] - ruby: <%= sample_rubies %> - mongodb-version: <%= latest_stable_mdb %> + ruby: <%= rubies %> + mongodb-version: <%= mdb %> topology: "replica-set" compressor: 'zlib' - os: rhel8 + os: <%= distro %> display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "snappy" + - matrix_name: <%= "snappy-#{rubies}" %> matrix_spec: auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ] - ruby: <%= sample_rubies %> - mongodb-version: <%= latest_stable_mdb %> + ruby: <%= rubies %> + mongodb-version: <%= mdb %> topology: "replica-set" compressor: 'snappy' - os: rhel8 + os: <%= distro %> display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" @@ -285,40 +289,52 @@ buildvariants: # apparently a zstd-jni gem for JRuby that we could investigate here; if # this test is ever supported to support jruby, the `sample_mri_rubies` # reference should be replaced with `sample_rubies`. - - matrix_name: "zstd-auth" + - matrix_name: <%= "zstd-auth-#{rubies}" %> matrix_spec: auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ] - ruby: <%= sample_mri_rubies %> - mongodb-version: <%= latest_stable_mdb %> + ruby: <%= rubies %> + mongodb-version: <%= mdb %> topology: "replica-set" compressor: 'zstd' - os: rhel8 + os: <%= distro %> display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "activesupport" + - matrix_name: <%= "activesupport-#{rubies}" %> matrix_spec: - ruby: <%= sample_rubies %> - mongodb-version: <%= latest_stable_mdb %> + ruby: <%= rubies %> + mongodb-version: <%= mdb %> topology: replica-set as: as - os: rhel8 + os: <%= distro %> display_name: "AS ${mongodb-version} ${topology} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "bson" + - matrix_name: <%= "bson-#{rubies}" %> matrix_spec: - ruby: <%= sample_rubies %> - mongodb-version: <%= latest_stable_mdb %> + ruby: <%= rubies %> + mongodb-version: <%= mdb %> topology: replica-set bson: "*" - os: rhel8 + os: <%= distro %> display_name: "bson-${bson} ${mongodb-version} ${topology} ${ruby}" tasks: - name: "test-mlaunch" + <% end %> + - matrix_name: "fle above 4.4" + matrix_spec: + auth-and-ssl: "noauth-and-nossl" + ruby: <%= supported_mri_rubies_3_ubuntu %> + topology: [replica-set, sharded-cluster] + mongodb-version: [ '6.0', '7.0', '8.0' ] + os: ubuntu2204 + fle: helper + display_name: "FLE: ${mongodb-version} ${topology} ${ruby}" + tasks: + - name: "test-fle" # kerberos integration tests are broken (RUBY-3266) # - matrix_name: "kerberos-integration" # matrix_spec: @@ -333,7 +349,7 @@ buildvariants: ruby: <%= latest_ruby %> mongodb-version: <%= latest_stable_mdb %> topology: standalone - os: rhel8 + os: ubuntu2204 auth-and-ssl: kerberos display_name: "Kerberos Tests" tasks: @@ -344,20 +360,8 @@ buildvariants: auth-and-ssl: "noauth-and-nossl" ruby: <%= latest_ruby %> topology: [replica-set, sharded-cluster] - mongodb-version: [ 'latest', '7.0' ] - os: rhel8 - fle: helper - display_name: "FLE: ${mongodb-version} ${topology} ${ruby}" - tasks: - - name: "test-fle" - - - matrix_name: "fle" - matrix_spec: - auth-and-ssl: "noauth-and-nossl" - ruby: <%= sample_mri_rubies %> - topology: [replica-set, sharded-cluster] - mongodb-version: [ '6.0', '4.4', '4.2', '4.0' ] - os: rhel8 + mongodb-version: [ 'latest' ] + os: ubuntu2204 fle: helper display_name: "FLE: ${mongodb-version} ${topology} ${ruby}" tasks: @@ -370,13 +374,8 @@ buildvariants: auth-and-ssl: [ aws-regular, aws-assume-role, aws-ecs, aws-web-identity ] ruby: <%= latest_ruby %> topology: standalone - # needs the latest_5x_mdb because run-tests.sh uses `mongo` to configure - # the server for certain auth mechanisms. Once run-tests.sh is made smart - # enough to install mongosh, and then use either mongo or mongosh - # (depending on server version and what's available), we can bump this to - # the latest stable db version. - mongodb-version: <%= latest_5x_mdb %> - os: ubuntu2004 + mongodb-version: <%= latest_stable_mdb %> + os: ubuntu2204 display_name: "AWS ${auth-and-ssl} ${mongodb-version} ${ruby}" tasks: - name: "test-aws-auth" @@ -385,10 +384,10 @@ buildvariants: matrix_spec: ocsp-verifier: true # No JRuby due to https://github.com/jruby/jruby-openssl/issues/210 - ruby: <%= supported_mri_rubies %> + ruby: <%= supported_mri_rubies_3_ubuntu %> topology: standalone mongodb-version: <%= latest_stable_mdb %> - os: rhel8 + os: ubuntu2204 display_name: "OCSP verifier: ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch @@ -398,10 +397,10 @@ buildvariants: ocsp-algorithm: ecdsa ocsp-must-staple: on ocsp-delegate: on - ruby: <%= sample_mri_rubies %> + ruby: <%= latest_ruby %> topology: standalone mongodb-version: <%= latest_stable_mdb %> - os: rhel8 + os: ubuntu2204 auth-and-ssl: noauth-and-ssl display_name: "OCSP integration - must staple: ${mongodb-version} ${ruby}" tasks: @@ -411,10 +410,10 @@ buildvariants: matrix_spec: ocsp-algorithm: rsa ocsp-status: unknown - ruby: <%= sample_mri_rubies %> + ruby: <%= latest_ruby %> topology: standalone mongodb-version: <%= latest_stable_mdb %> - os: rhel8 + os: ubuntu2204 auth-and-ssl: noauth-and-ssl display_name: "OCSP integration - unknown: ${mongodb-version} ${ruby}" tasks: @@ -441,10 +440,10 @@ buildvariants: ocsp-delegate: '*' ocsp-connectivity: <%= outcome %> extra-uri-options: "<%= extra_uri_options %>" - ruby: <%= sample_mri_rubies %> + ruby: <%= latest_ruby %> topology: standalone mongodb-version: <%= latest_stable_mdb %> - os: rhel8 + os: ubuntu2204 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${extra-uri-options} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch @@ -465,22 +464,23 @@ buildvariants: ruby: <%= jrubies.first %> topology: standalone mongodb-version: <%= latest_stable_mdb %> - os: rhel8 + os: ubuntu2204 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch - - matrix_name: testgcpkms-variant - matrix_spec: - ruby: <%= latest_ruby %> - fle: helper - topology: standalone - os: rhel8 - mongodb-version: <%= latest_stable_mdb %> - display_name: "GCP KMS" - tasks: - - name: testgcpkms_task_group - batchtime: 20160 # Use a batchtime of 14 days as suggested by the CSFLE test README + # https://jira.mongodb.org/browse/RUBY-3540 + #- matrix_name: testgcpkms-variant + # matrix_spec: + # ruby: <%= latest_ruby %> + # fle: helper + # topology: standalone + # os: ubuntu2204 + # mongodb-version: <%= latest_stable_mdb %> + # display_name: "GCP KMS" + # tasks: + # - name: testgcpkms_task_group + # batchtime: 20160 # Use a batchtime of 14 days as suggested by the CSFLE test README - matrix_name: testazurekms-variant matrix_spec: @@ -497,45 +497,31 @@ buildvariants: - matrix_name: atlas-full matrix_spec: ruby: <%= latest_ruby %> - os: rhel8 + os: ubuntu2204 display_name: "Atlas (Full)" tasks: - name: testatlas_full_task_group - matrix_name: "atlas" matrix_spec: - ruby: <%= supported_rubies %> - os: rhel8 + ruby: <%= supported_mri_rubies_3_ubuntu %> + os: ubuntu2204 display_name: "Atlas tests ${ruby}" tasks: - name: testatlas_task_group -# Commented out, pending RUBY-3414 -# - matrix_name: "serverless" -# matrix_spec: -# # https://jira.mongodb.org/browse/RUBY-3217 -# # ruby: <%= supported_rubies %> -# ruby: <%= supported_mri_rubies %> -# fle: path -# os: rhel8 -# display_name: "Atlas serverless ${ruby}" -# tasks: -# - name: serverless_task_group -# -# - matrix_name: "serverless-next" -# matrix_spec: -# # https://jira.mongodb.org/browse/RUBY-3217 -# # ruby: <%= supported_rubies %> -# ruby: <%= supported_mri_rubies %> -# fle: path -# os: rhel8 -# display_name: "Atlas serverless-next ${ruby}" -# tasks: -# - name: serverless_next_task_group + - matrix_name: "serverless" + matrix_spec: + ruby: <%= latest_ruby %> + fle: path + os: ubuntu2204 + display_name: "Atlas serverless ${ruby}" + tasks: + - name: serverless_task_group - matrix_name: "aws-lambda" matrix_spec: - ruby: <%= latest_ruby %> + ruby: 'ruby-3.2' os: ubuntu2204 display_name: "AWS Lambda" tasks: diff --git a/.evergreen/functions-kerberos.sh b/.evergreen/functions-kerberos.sh index 310e58218c..2ce893f175 100644 --- a/.evergreen/functions-kerberos.sh +++ b/.evergreen/functions-kerberos.sh @@ -76,8 +76,8 @@ configure_local_kerberos() { EOT `" - "$BINDIR"/mongo --eval "$create_user_cmd" - "$BINDIR"/mongo --eval 'db.getSiblingDB("kerberos").test.insert({kerberos: true, authenticated: "yeah"})' + "$BINDIR"/mongosh --eval "$create_user_cmd" + "$BINDIR"/mongosh --eval 'db.getSiblingDB("kerberos").test.insert({kerberos: true, authenticated: "yeah"})' pkill mongod sleep 1 diff --git a/.evergreen/handle-paths.sh b/.evergreen/handle-paths.sh new file mode 120000 index 0000000000..77a67a0271 --- /dev/null +++ b/.evergreen/handle-paths.sh @@ -0,0 +1 @@ +../.mod/drivers-evergreen-tools/.evergreen/handle-paths.sh \ No newline at end of file diff --git a/.evergreen/run-tests-deployed-lambda.sh b/.evergreen/run-tests-deployed-lambda.sh index 2d587d12db..7e2a2f4832 100755 --- a/.evergreen/run-tests-deployed-lambda.sh +++ b/.evergreen/run-tests-deployed-lambda.sh @@ -14,4 +14,4 @@ export MONGODB_URI=${MONGODB_URI} export CLUSTER_PREFIX="ruby-driver-" export TEST_LAMBDA_DIRECTORY=`dirname "$0"`/../spec/faas/ruby-sam-app -. `dirname "$0"`/run-deployed-lambda-aws-tests.sh +. `dirname "$0"`/aws_lambda/run-deployed-lambda-aws-tests.sh diff --git a/.evergreen/run-tests-kerberos-integration.sh b/.evergreen/run-tests-kerberos-integration.sh index e7002d898e..b56e22ec1a 100755 --- a/.evergreen/run-tests-kerberos-integration.sh +++ b/.evergreen/run-tests-kerberos-integration.sh @@ -55,7 +55,7 @@ configure_kerberos_ip_addr # To test authentication using the mongo shell, note that the host name # must be uppercased when it is used in the username. # The following call works when using the docker image: -# /opt/mongodb/bin/mongo --host $SASL_HOST --authenticationMechanism=GSSAPI \ +# /opt/mongodb/bin/mongosh --host $SASL_HOST --authenticationMechanism=GSSAPI \ # --authenticationDatabase='$external' --username $SASL_USER@`echo $SASL_HOST |tr a-z A-Z` echo "Install dependencies" diff --git a/.evergreen/run-tests-serverless.sh b/.evergreen/run-tests-serverless.sh index cd71e41d6e..e2447ba008 100755 --- a/.evergreen/run-tests-serverless.sh +++ b/.evergreen/run-tests-serverless.sh @@ -10,6 +10,8 @@ set_env_vars set_env_python set_env_ruby +source ${DRIVERS_TOOLS}/.evergreen/serverless/secrets-export.sh + bundle_install export MONGODB_URI=`echo ${SERVERLESS_URI} | sed -r 's/mongodb\+srv:\/\//mongodb\+srv:\/\/'"${SERVERLESS_ATLAS_USER}"':'"${SERVERLESS_ATLAS_PASSWORD}@"'/g'` @@ -23,7 +25,7 @@ else python3 -u .evergreen/mongodl.py --component crypt_shared -V ${SERVERLESS_MONGODB_VERSION} --out `pwd`/csfle_lib --target `host_distro` || true if test -f `pwd`/csfle_lib/lib/mongo_crypt_v1.so then - echo Usinn crypt shared library version ${SERVERLESS_MONGODB_VERSION} + echo Using crypt shared library version ${SERVERLESS_MONGODB_VERSION} export MONGO_RUBY_DRIVER_CRYPT_SHARED_LIB_PATH=`pwd`/csfle_lib/lib/mongo_crypt_v1.so else echo Failed to download crypt shared library @@ -31,8 +33,8 @@ else fi fi -if ! ( test -f /etc/os-release & grep -q ^ID.*rhel /etc/os-release & grep -q ^VERSION_ID.*8.0 /etc/os-release ); then - echo Serverless tests assume rhel80 +if ! ( test -f /etc/os-release & grep -q ^ID.*ubuntu /etc/os-release & grep -q ^VERSION_ID.*22.04 /etc/os-release ); then + echo Serverless tests assume ubuntu2204 echo If this has changed, update .evergreen/run-tests-serverless.sh as necessary exit -1 fi @@ -41,8 +43,8 @@ mkdir libmongocrypt cd libmongocrypt curl --retry 3 -fLo libmongocrypt-all.tar.gz "https://s3.amazonaws.com/mciuploads/libmongocrypt/all/master/latest/libmongocrypt-all.tar.gz" tar xf libmongocrypt-all.tar.gz -# We assume that serverless tests always use rhel80 -export LIBMONGOCRYPT_PATH=`pwd`/rhel-80-64-bit/nocrypto/lib64/libmongocrypt.so +# We assume that serverless tests always use ubuntu2204 +export LIBMONGOCRYPT_PATH=`pwd`/ubuntu2204-64/nocrypto/lib/libmongocrypt.so cd - cd .evergreen/csfle diff --git a/.evergreen/run-tests.sh b/.evergreen/run-tests.sh index a2203eb79a..6dfa54c343 100755 --- a/.evergreen/run-tests.sh +++ b/.evergreen/run-tests.sh @@ -22,6 +22,10 @@ else set -x fi +if test -z "$PROJECT_DIRECTORY"; then + PROJECT_DIRECTORY=`realpath $(dirname $0)/..` +fi + MRSS_ROOT=`dirname "$0"`/../spec/shared . $MRSS_ROOT/shlib/distro.sh @@ -41,7 +45,7 @@ set_env_vars set_env_python set_env_ruby -prepare_server $arch +prepare_server if test "$DOCKER_PRELOAD" != 1; then install_mlaunch_venv @@ -53,6 +57,10 @@ if [ "$FLE" = "helper" ]; then install_cmake fi +if test "$TOPOLOGY" = load-balanced; then + install_haproxy +fi + # Launching mongod under $MONGO_ORCHESTRATION_HOME # makes its log available through log collecting machinery @@ -65,6 +73,7 @@ fi calculate_server_args launch_ocsp_mock + launch_server "$dbdir" uri_options="$URI_OPTIONS" @@ -90,6 +99,9 @@ elif test "$TOPOLOGY" = replica-set; then # or it can try to send the commands to secondaries. hosts=localhost:27017,localhost:27018 uri_options="$uri_options&replicaSet=test-rs" +elif test "$TOPOLOGY" = replica-set-single-node; then + hosts=localhost:27017 + uri_options="$uri_options&replicaSet=test-rs" else hosts=localhost:27017 fi @@ -110,7 +122,7 @@ elif test "$AUTH" = x509; then EOT `" - "$BINDIR"/mongo --tls \ + "$BINDIR"/mongosh --tls \ --tlsCAFile spec/support/certificates/ca.crt \ --tlsCertificateKeyFile spec/support/certificates/client-x509.pem \ -u bootstrap -p bootstrap \ @@ -207,6 +219,7 @@ if test -n "$FLE"; then python3 -u .evergreen/csfle/kms_http_server.py --ca_file .evergreen/x509gen/ca.pem --cert_file .evergreen/x509gen/server.pem --port 8002 --require_client_cert & python3 -u .evergreen/csfle/kms_kmip_server.py & python3 -u .evergreen/csfle/fake_azure.py & + python3 -u .evergreen/csfle/kms_failpoint_server.py --port 9003 & # Obtain temporary AWS credentials PYTHON=python3 . .evergreen/csfle/set-temp-creds.sh @@ -278,12 +291,12 @@ fi export MONGODB_URI="mongodb://$hosts/?serverSelectionTimeoutMS=30000$uri_options" if echo "$AUTH" |grep -q ^aws-assume-role; then - $BINDIR/mongo "$MONGODB_URI" --eval 'db.runCommand({serverStatus: 1})' |wc + $BINDIR/mongosh "$MONGODB_URI" --eval 'db.runCommand({serverStatus: 1})' | wc fi set_fcv -if test "$TOPOLOGY" = replica-set && ! echo "$MONGODB_VERSION" |fgrep -q 2.6; then +if test "$TOPOLOGY" = replica-set || test "$TOPOLOGY" = replica-set-single-node; then ruby -Ilib -I.evergreen/lib -rbundler/setup -rserver_setup -e ServerSetup.new.setup_tags fi @@ -345,6 +358,7 @@ elif test "$SOLO" = 1; then fi done else + export JRUBY_OPTS=-J-Xmx2g bundle exec rake spec:ci fi @@ -356,18 +370,18 @@ if test -f tmp/rspec-all.json; then mv tmp/rspec-all.json tmp/rspec.json fi -kill_jruby +kill_jruby || true if test -n "$OCSP_MOCK_PID"; then kill "$OCSP_MOCK_PID" fi -python3 -m mtools.mlaunch.mlaunch stop --dir "$dbdir" +python3 -m mtools.mlaunch.mlaunch stop --dir "$dbdir" || true if test -n "$FLE" && test "$DOCKER_PRELOAD" != 1; then # Terminate all kmip servers... and whatever else happens to be running # that is a python script. - pkill python3 + pkill python3 || true fi exit ${test_status} diff --git a/.github/workflows/rubocop.yml b/.github/workflows/rubocop.yml index b5eb3da8ef..424a79cc0d 100644 --- a/.github/workflows/rubocop.yml +++ b/.github/workflows/rubocop.yml @@ -14,7 +14,7 @@ jobs: - name: Set up Ruby 3.0 uses: ruby/setup-ruby@v1 with: - ruby-version: 3.0 + ruby-version: '3.3' bundler-cache: true - name: Run RuboCop run: bundle exec rubocop --parallel diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e3f468fe8b..713c394b55 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,7 +17,7 @@ jobs: matrix: os: [ ubuntu-20.04 ] ruby: ["2.7", "3.0", "3.1", "3.2"] - mongodb: ["3.6", "4.4", "5.0", "6.0", "7.0"] + mongodb: ["4.4", "5.0", "6.0", "7.0"] topology: [replica_set, sharded_cluster] include: - os: macos diff --git a/.gitmodules b/.gitmodules index 6d428f359d..366d171c3a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -3,4 +3,4 @@ url = https://github.com/mongodb-labs/drivers-evergreen-tools [submodule "spec/shared"] path = spec/shared - url = git@github.com:mongodb-labs/mongo-ruby-spec-shared.git + url = https://github.com/mongodb-labs/mongo-ruby-spec-shared diff --git a/.mod/drivers-evergreen-tools b/.mod/drivers-evergreen-tools index 8c948a286f..20a7868c1b 160000 --- a/.mod/drivers-evergreen-tools +++ b/.mod/drivers-evergreen-tools @@ -1 +1 @@ -Subproject commit 8c948a286f1b82427b5a409b8c42475b599d4d6f +Subproject commit 20a7868c1b44300c57bdd348421886b554e280a2 diff --git a/lib/mongo/auth/credential_cache.rb b/lib/mongo/auth/credential_cache.rb index 16d7962775..c9888ce3dd 100644 --- a/lib/mongo/auth/credential_cache.rb +++ b/lib/mongo/auth/credential_cache.rb @@ -22,19 +22,24 @@ module Auth # # @api private module CredentialCache - class << self attr_reader :store end + MUTEX = Mutex.new + module_function def get(key) - @store ||= {} - @store[key] + MUTEX.synchronize do + @store ||= {} + @store[key] + end end module_function def set(key, value) - @store ||= {} - @store[key] = value + MUTEX.synchronize do + @store ||= {} + @store[key] = value + end end module_function def cache(key) @@ -47,7 +52,9 @@ class << self end module_function def clear - @store = {} + MUTEX.synchronize do + @store = {} + end end end end diff --git a/profile/driver_bench/rake/tasks.rake b/profile/driver_bench/rake/tasks.rake index 7614a3a44c..253acfbb32 100644 --- a/profile/driver_bench/rake/tasks.rake +++ b/profile/driver_bench/rake/tasks.rake @@ -2,7 +2,7 @@ task driver_bench: %i[ driver_bench:data driver_bench:run ] -SPECS_REPO_URI = 'git@github.com:mongodb/specifications.git' +SPECS_REPO_URI = 'https://github.com/mongodb/specifications.git' SPECS_PATH = File.expand_path('../../../specifications', __dir__) DRIVER_BENCH_DATA = File.expand_path('../../data/driver_bench', __dir__) diff --git a/spec/shared b/spec/shared index cee4bc0264..d73378a4cc 160000 --- a/spec/shared +++ b/spec/shared @@ -1 +1 @@ -Subproject commit cee4bc02649a573c8256b0505c1d23f503ac2609 +Subproject commit d73378a4cc9d07cda8375e1300c15add2c6b9a6c diff --git a/spec/support/certificates/atlas-ocsp-ca.crt b/spec/support/certificates/atlas-ocsp-ca.crt index d4309071e1..1e7edb5447 100644 --- a/spec/support/certificates/atlas-ocsp-ca.crt +++ b/spec/support/certificates/atlas-ocsp-ca.crt @@ -2,35 +2,35 @@ Certificate: Data: Version: 3 (0x2) Serial Number: - 91:2b:08:4a:cf:0c:18:a7:53:f6:d6:2e:25:a7:5f:5a + 4b:a8:52:93:f7:9a:2f:a2:73:06:4b:a8:04:8d:75:d0 Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, O=Internet Security Research Group, CN=ISRG Root X1 Validity - Not Before: Sep 4 00:00:00 2020 GMT - Not After : Sep 15 16:00:00 2025 GMT - Subject: C=US, O=Let's Encrypt, CN=R3 + Not Before: Mar 13 00:00:00 2024 GMT + Not After : Mar 12 23:59:59 2027 GMT + Subject: C=US, O=Let's Encrypt, CN=R10 Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: - 00:bb:02:15:28:cc:f6:a0:94:d3:0f:12:ec:8d:55: - 92:c3:f8:82:f1:99:a6:7a:42:88:a7:5d:26:aa:b5: - 2b:b9:c5:4c:b1:af:8e:6b:f9:75:c8:a3:d7:0f:47: - 94:14:55:35:57:8c:9e:a8:a2:39:19:f5:82:3c:42: - a9:4e:6e:f5:3b:c3:2e:db:8d:c0:b0:5c:f3:59:38: - e7:ed:cf:69:f0:5a:0b:1b:be:c0:94:24:25:87:fa: - 37:71:b3:13:e7:1c:ac:e1:9b:ef:db:e4:3b:45:52: - 45:96:a9:c1:53:ce:34:c8:52:ee:b5:ae:ed:8f:de: - 60:70:e2:a5:54:ab:b6:6d:0e:97:a5:40:34:6b:2b: - d3:bc:66:eb:66:34:7c:fa:6b:8b:8f:57:29:99:f8: - 30:17:5d:ba:72:6f:fb:81:c5:ad:d2:86:58:3d:17: - c7:e7:09:bb:f1:2b:f7:86:dc:c1:da:71:5d:d4:46: - e3:cc:ad:25:c1:88:bc:60:67:75:66:b3:f1:18:f7: - a2:5c:e6:53:ff:3a:88:b6:47:a5:ff:13:18:ea:98: - 09:77:3f:9d:53:f9:cf:01:e5:f5:a6:70:17:14:af: - 63:a4:ff:99:b3:93:9d:dc:53:a7:06:fe:48:85:1d: - a1:69:ae:25:75:bb:13:cc:52:03:f5:ed:51:a1:8b: - db:15 + 00:cf:57:e5:e6:c4:54:12:ed:b4:47:fe:c9:27:58: + 76:46:50:28:8c:1d:3e:88:df:05:9d:d5:b5:18:29: + bd:dd:b5:5a:bf:fa:f6:ce:a3:be:af:00:21:4b:62: + 5a:5a:3c:01:2f:c5:58:03:f6:89:ff:8e:11:43:eb: + c1:b5:e0:14:07:96:8f:6f:1f:d7:e7:ba:81:39:09: + 75:65:b7:c2:af:18:5b:37:26:28:e7:a3:f4:07:2b: + 6d:1a:ff:ab:58:bc:95:ae:40:ff:e9:cb:57:c4:b5: + 5b:7f:78:0d:18:61:bc:17:e7:54:c6:bb:49:91:cd: + 6e:18:d1:80:85:ee:a6:65:36:bc:74:ea:bc:50:4c: + ea:fc:21:f3:38:16:93:94:ba:b0:d3:6b:38:06:cd: + 16:12:7a:ca:52:75:c8:ad:76:b2:c2:9c:5d:98:45: + 5c:6f:61:7b:c6:2d:ee:3c:13:52:86:01:d9:57:e6: + 38:1c:df:8d:b5:1f:92:91:9a:e7:4a:1c:cc:45:a8: + 72:55:f0:b0:e6:a3:07:ec:fd:a7:1b:66:9e:3f:48: + 8b:71:84:71:58:c9:3a:fa:ef:5e:f2:5b:44:2b:3c: + 74:e7:8f:b2:47:c1:07:6a:cd:9a:b7:0d:96:f7:12: + 81:26:51:54:0a:ec:61:f6:f7:f5:e2:f2:8a:c8:95: + 0d:8d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Key Usage: critical @@ -40,76 +40,74 @@ Certificate: X509v3 Basic Constraints: critical CA:TRUE, pathlen:0 X509v3 Subject Key Identifier: - 14:2E:B3:17:B7:58:56:CB:AE:50:09:40:E6:1F:AF:9D:8B:14:C2:C6 + BB:BC:C3:47:A5:E4:BC:A9:C6:C3:A4:72:0C:10:8D:A2:35:E1:C8:E8 X509v3 Authority Key Identifier: 79:B4:59:E6:7B:B6:E5:E4:01:73:80:08:88:C8:1A:58:F6:E9:9B:6E Authority Information Access: CA Issuers - URI:http://x1.i.lencr.org/ + X509v3 Certificate Policies: + Policy: 2.23.140.1.2.1 X509v3 CRL Distribution Points: Full Name: URI:http://x1.c.lencr.org/ - X509v3 Certificate Policies: - Policy: 2.23.140.1.2.1 - Policy: 1.3.6.1.4.1.44947.1.1.1 Signature Algorithm: sha256WithRSAEncryption Signature Value: - 85:ca:4e:47:3e:a3:f7:85:44:85:bc:d5:67:78:b2:98:63:ad: - 75:4d:1e:96:3d:33:65:72:54:2d:81:a0:ea:c3:ed:f8:20:bf: - 5f:cc:b7:70:00:b7:6e:3b:f6:5e:94:de:e4:20:9f:a6:ef:8b: - b2:03:e7:a2:b5:16:3c:91:ce:b4:ed:39:02:e7:7c:25:8a:47: - e6:65:6e:3f:46:f4:d9:f0:ce:94:2b:ee:54:ce:12:bc:8c:27: - 4b:b8:c1:98:2f:a2:af:cd:71:91:4a:08:b7:c8:b8:23:7b:04: - 2d:08:f9:08:57:3e:83:d9:04:33:0a:47:21:78:09:82:27:c3: - 2a:c8:9b:b9:ce:5c:f2:64:c8:c0:be:79:c0:4f:8e:6d:44:0c: - 5e:92:bb:2e:f7:8b:10:e1:e8:1d:44:29:db:59:20:ed:63:b9: - 21:f8:12:26:94:93:57:a0:1d:65:04:c1:0a:22:ae:10:0d:43: - 97:a1:18:1f:7e:e0:e0:86:37:b5:5a:b1:bd:30:bf:87:6e:2b: - 2a:ff:21:4e:1b:05:c3:f5:18:97:f0:5e:ac:c3:a5:b8:6a:f0: - 2e:bc:3b:33:b9:ee:4b:de:cc:fc:e4:af:84:0b:86:3f:c0:55: - 43:36:f6:68:e1:36:17:6a:8e:99:d1:ff:a5:40:a7:34:b7:c0: - d0:63:39:35:39:75:6e:f2:ba:76:c8:93:02:e9:a9:4b:6c:17: - ce:0c:02:d9:bd:81:fb:9f:b7:68:d4:06:65:b3:82:3d:77:53: - f8:8e:79:03:ad:0a:31:07:75:2a:43:d8:55:97:72:c4:29:0e: - f7:c4:5d:4e:c8:ae:46:84:30:d7:f2:85:5f:18:a1:79:bb:e7: - 5e:70:8b:07:e1:86:93:c3:b9:8f:dc:61:71:25:2a:af:df:ed: - 25:50:52:68:8b:92:dc:e5:d6:b5:e3:da:7d:d0:87:6c:84:21: - 31:ae:82:f5:fb:b9:ab:c8:89:17:3d:e1:4c:e5:38:0e:f6:bd: - 2b:bd:96:81:14:eb:d5:db:3d:20:a7:7e:59:d3:e2:f8:58:f9: - 5b:b8:48:cd:fe:5c:4f:16:29:fe:1e:55:23:af:c8:11:b0:8d: - ea:7c:93:90:17:2f:fd:ac:a2:09:47:46:3f:f0:e9:b0:b7:ff: - 28:4d:68:32:d6:67:5e:1e:69:a3:93:b8:f5:9d:8b:2f:0b:d2: - 52:43:a6:6f:32:57:65:4d:32:81:df:38:53:85:5d:7e:5d:66: - 29:ea:b8:dd:e4:95:b5:cd:b5:56:12:42:cd:c4:4e:c6:25:38: - 44:50:6d:ec:ce:00:55:18:fe:e9:49:64:d4:4e:ca:97:9c:b4: - 5b:c0:73:a8:ab:b8:47:c2 + 92:b1:e7:41:37:eb:79:9d:81:e6:cd:e2:25:e1:3a:20:e9:90: + 44:95:a3:81:5c:cf:c3:5d:fd:bd:a0:70:d5:b1:96:28:22:0b: + d2:f2:28:cf:0c:e7:d4:e6:43:8c:24:22:1d:c1:42:92:d1:09: + af:9f:4b:f4:c8:70:4f:20:16:b1:5a:dd:01:f6:1f:f8:1f:61: + 6b:14:27:b0:72:8d:63:ae:ee:e2:ce:4b:cf:37:dd:bb:a3:d4: + cd:e7:ad:50:ad:bd:bf:e3:ec:3e:62:36:70:99:31:a7:e8:8d: + dd:ea:62:e2:12:ae:f5:9c:d4:3d:2c:0c:aa:d0:9c:79:be:ea: + 3d:5c:44:6e:96:31:63:5a:7d:d6:7e:4f:24:a0:4b:05:7f:5e: + 6f:d2:d4:ea:5f:33:4b:13:d6:57:b6:ca:de:51:b8:5d:a3:09: + 82:74:fd:c7:78:9e:b3:b9:ac:16:da:4a:2b:96:c3:b6:8b:62: + 8f:f9:74:19:a2:9e:03:de:e9:6f:9b:b0:0f:d2:a0:5a:f6:85: + 5c:c2:04:b7:c8:d5:4e:32:c4:bf:04:5d:bc:29:f6:f7:81:8f: + 0c:5d:3c:53:c9:40:90:8b:fb:b6:08:65:b9:a4:21:d5:09:e5: + 13:84:84:37:82:ce:10:28:fc:76:c2:06:25:7a:46:52:4d:da: + 53:72:a4:27:3f:62:70:ac:be:69:48:00:fb:67:0f:db:5b:a1: + e8:d7:03:21:2d:d7:c9:f6:99:42:39:83:43:df:77:0a:12:08: + f1:25:d6:ba:94:19:54:18:88:a5:c5:8e:e1:1a:99:93:79:6b: + ec:1c:f9:31:40:b0:cc:32:00:df:9f:5e:e7:b4:92:ab:90:82: + 91:8d:0d:e0:1e:95:ba:59:3b:2e:4b:5f:c2:b7:46:35:52:39: + 06:c0:bd:aa:ac:52:c1:22:a0:44:97:99:f7:0c:a0:21:a7:a1: + 6c:71:47:16:17:01:68:c0:ca:a6:26:65:04:7c:b3:ae:c9:e7: + 94:55:c2:6f:9b:3c:1c:a9:f9:2e:c5:20:1a:f0:76:e0:be:ec: + 18:d6:4f:d8:25:fb:76:11:e8:bf:e6:21:0f:e8:e8:cc:b5:b6: + a7:d5:b8:f7:9f:41:cf:61:22:46:6a:83:b6:68:97:2e:7c:ea: + 4e:95:db:23:eb:2e:c8:2b:28:84:a4:60:e9:49:f4:44:2e:3b: + f9:ca:62:57:01:e2:5d:90:16:f9:c9:fc:7a:23:48:8e:a6:d5: + 81:72:f1:28:fa:5d:ce:fb:ed:4e:73:8f:94:2e:d2:41:94:98: + 99:db:a7:af:70:5f:f5:be:fb:02:20:bf:66:27:6c:b4:ad:fa: + 75:12:0b:2b:3e:ce:03:9e -----BEGIN CERTIFICATE----- -MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw -TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh -cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw -WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg -RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK -AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP -R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx -sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm -NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg -Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG -/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC -AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB -Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA -FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw -AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw -Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB -gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W -PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl -ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz -CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm -lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4 -avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2 -yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O -yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids -hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+ -HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv -MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX -nLRbwHOoq7hHwg== +MIIFBTCCAu2gAwIBAgIQS6hSk/eaL6JzBkuoBI110DANBgkqhkiG9w0BAQsFADBP +MQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFy +Y2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMTAeFw0yNDAzMTMwMDAwMDBa +Fw0yNzAzMTIyMzU5NTlaMDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBF +bmNyeXB0MQwwCgYDVQQDEwNSMTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQDPV+XmxFQS7bRH/sknWHZGUCiMHT6I3wWd1bUYKb3dtVq/+vbOo76vACFL +YlpaPAEvxVgD9on/jhFD68G14BQHlo9vH9fnuoE5CXVlt8KvGFs3Jijno/QHK20a +/6tYvJWuQP/py1fEtVt/eA0YYbwX51TGu0mRzW4Y0YCF7qZlNrx06rxQTOr8IfM4 +FpOUurDTazgGzRYSespSdcitdrLCnF2YRVxvYXvGLe48E1KGAdlX5jgc3421H5KR +mudKHMxFqHJV8LDmowfs/acbZp4/SItxhHFYyTr6717yW0QrPHTnj7JHwQdqzZq3 +DZb3EoEmUVQK7GH29/Xi8orIlQ2NAgMBAAGjgfgwgfUwDgYDVR0PAQH/BAQDAgGG +MB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATASBgNVHRMBAf8ECDAGAQH/ +AgEAMB0GA1UdDgQWBBS7vMNHpeS8qcbDpHIMEI2iNeHI6DAfBgNVHSMEGDAWgBR5 +tFnme7bl5AFzgAiIyBpY9umbbjAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAKG +Fmh0dHA6Ly94MS5pLmxlbmNyLm9yZy8wEwYDVR0gBAwwCjAIBgZngQwBAgEwJwYD +VR0fBCAwHjAcoBqgGIYWaHR0cDovL3gxLmMubGVuY3Iub3JnLzANBgkqhkiG9w0B +AQsFAAOCAgEAkrHnQTfreZ2B5s3iJeE6IOmQRJWjgVzPw139vaBw1bGWKCIL0vIo +zwzn1OZDjCQiHcFCktEJr59L9MhwTyAWsVrdAfYf+B9haxQnsHKNY67u4s5Lzzfd +u6PUzeetUK29v+PsPmI2cJkxp+iN3epi4hKu9ZzUPSwMqtCceb7qPVxEbpYxY1p9 +1n5PJKBLBX9eb9LU6l8zSxPWV7bK3lG4XaMJgnT9x3ies7msFtpKK5bDtotij/l0 +GaKeA97pb5uwD9KgWvaFXMIEt8jVTjLEvwRdvCn294GPDF08U8lAkIv7tghluaQh +1QnlE4SEN4LOECj8dsIGJXpGUk3aU3KkJz9icKy+aUgA+2cP21uh6NcDIS3XyfaZ +QjmDQ993ChII8SXWupQZVBiIpcWO4RqZk3lr7Bz5MUCwzDIA359e57SSq5CCkY0N +4B6Vulk7LktfwrdGNVI5BsC9qqxSwSKgRJeZ9wygIaehbHFHFhcBaMDKpiZlBHyz +rsnnlFXCb5s8HKn5LsUgGvB24L7sGNZP2CX7dhHov+YhD+jozLW2p9W4959Bz2Ei +RmqDtmiXLnzqTpXbI+suyCsohKRg6Un0RC47+cpiVwHiXZAW+cn8eiNIjqbVgXLx +KPpdzvvtTnOPlC7SQZSYmdunr3Bf9b77AiC/ZidstK36dRILKz7OA54= -----END CERTIFICATE----- \ No newline at end of file diff --git a/spec/support/certificates/atlas-ocsp.crt b/spec/support/certificates/atlas-ocsp.crt index ad4d13a368..075383c059 100644 --- a/spec/support/certificates/atlas-ocsp.crt +++ b/spec/support/certificates/atlas-ocsp.crt @@ -2,52 +2,52 @@ Certificate: Data: Version: 3 (0x2) Serial Number: - 04:ae:c2:45:fc:ba:ae:16:d6:38:7e:de:04:c4:2b:41:fd:a0 + 04:60:93:4c:38:cf:3b:3a:7e:1a:1f:bf:c4:72:01:7f:fc:b6 Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, O=Let's Encrypt, CN=R3 + Issuer: C=US, O=Let's Encrypt, CN=R10 Validity - Not Before: Jun 5 14:02:45 2024 GMT - Not After : Sep 3 14:02:44 2024 GMT + Not Before: Jan 19 11:09:50 2025 GMT + Not After : Apr 19 11:09:49 2025 GMT Subject: CN=*.g6fyiaq.mongodb-dev.net Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (4096 bit) Modulus: - 00:c0:d4:93:f2:7c:b5:64:56:a2:ed:07:ab:96:00: - 61:8d:74:03:ee:10:dc:7f:92:26:ea:b1:c9:2f:7a: - 33:d2:05:b2:25:ff:15:c0:fc:37:5c:8c:a9:36:82: - 66:eb:07:70:f9:ec:b3:ca:88:9d:07:51:ef:f2:18: - e3:88:3b:f7:f5:b2:29:e2:7f:7b:00:dc:9f:b8:95: - cf:f4:58:37:0d:cd:b0:ec:9b:d0:c3:ec:71:d8:4d: - 97:5a:a2:c6:66:2e:c1:dc:4f:38:f3:ba:43:3d:3e: - 46:12:a8:08:7a:e3:bc:fa:52:3f:b4:4f:3e:25:9f: - 4a:c9:fd:af:42:cc:62:59:ba:e1:92:1c:6c:57:2d: - 86:fb:62:08:08:5b:f9:5e:3c:3b:e8:9a:b2:1c:a0: - 82:58:0c:e9:40:c2:21:c2:71:93:32:68:44:f9:61: - 13:bc:d6:c8:71:1e:9c:37:f4:b9:cd:13:30:cd:4b: - 42:c0:c5:95:91:86:b5:e9:7f:f6:37:de:20:8e:cc: - 05:3d:14:aa:29:c2:bf:4f:34:71:89:07:54:5b:b4: - cd:13:bd:53:74:e7:6f:33:c5:73:36:24:5b:37:88: - d1:9e:fc:98:e1:7a:a2:25:65:c5:b1:21:ad:2c:99: - 0b:03:2e:92:06:ef:c1:31:b6:3b:00:32:00:f5:c4: - 70:0d:1d:43:1c:a7:31:03:40:a6:95:6c:29:b3:93: - 54:3b:9f:bd:5f:44:be:ba:04:a9:5c:f1:2d:0d:04: - 18:51:27:75:47:d7:4b:06:e7:df:bc:2c:4e:c7:4b: - 18:60:de:51:ce:41:a9:6c:6a:19:d1:a5:0b:03:e5: - ec:89:10:6b:b4:94:ba:79:b6:06:11:2e:b2:5f:e6: - 19:f0:f9:ad:3e:4f:a4:cc:3d:7b:69:46:ed:71:1c: - f6:50:6c:53:08:9e:a3:05:59:de:fb:36:a1:92:ad: - 7d:78:c6:37:13:d1:1a:9a:56:cc:fb:bd:21:34:ec: - 8d:a5:73:59:6f:4e:aa:e2:2e:16:d6:d6:89:92:a3: - 8f:d7:b0:46:cf:07:70:75:dc:dc:b3:70:cf:2a:12: - 84:4e:41:57:10:68:7b:5f:f9:8f:64:d2:d4:e9:c0: - eb:b4:68:37:87:40:32:9e:f6:7f:be:31:fb:d5:36: - a4:15:ba:52:24:c1:5d:ae:d0:41:e3:ff:88:09:7d: - e7:98:23:bb:09:9b:7b:6d:e4:c0:ca:7a:1b:6e:32: - 63:69:42:7b:26:9d:c9:f0:c3:b9:58:88:c3:74:9d: - d3:54:3b:20:09:76:5c:54:4e:60:f7:35:53:e4:f9: - aa:af:0e:bd:24:d1:0e:c5:8a:7e:26:f0:e7:a0:26: - d0:9d:01 + 00:d6:d7:c5:1f:76:f4:c7:a6:df:23:59:d6:0a:e4: + c5:f7:a4:80:6b:4e:e9:66:1a:e6:43:21:27:04:41: + 11:9f:32:7e:7d:93:c8:77:4a:d3:84:72:f7:4d:40: + 38:47:00:a7:dc:4c:ca:f3:ef:c5:cf:d6:a0:06:f6: + 8b:be:06:64:11:b0:f2:ad:b6:2d:78:84:d4:99:65: + d8:eb:4c:b2:d3:aa:d0:29:62:c5:77:2d:ce:8f:71: + 4e:26:27:b3:83:27:2c:06:a9:d2:d4:83:de:b0:b3: + 37:b1:9a:a9:24:af:93:91:67:28:4e:e3:cf:c1:aa: + 75:99:83:0d:4c:e2:cc:02:0f:59:98:a4:b7:7b:79: + 04:ea:f7:ea:5c:2f:2d:48:1b:4c:68:4c:53:5f:69: + db:16:f7:6b:3f:d8:a4:8c:63:76:c6:f5:b8:90:3f: + 4d:95:f3:68:b2:c9:df:cc:37:ac:e1:17:e6:bb:0e: + 02:64:b5:75:f0:c1:77:5d:dc:0f:9c:09:d3:b1:f7: + a6:95:54:13:82:83:1d:be:17:e2:d3:fb:f8:53:2b: + 15:ef:b8:7d:f5:6c:0f:43:e2:22:66:7e:bc:c3:bd: + d4:70:ba:71:1d:0e:67:c9:4e:2a:74:7d:30:88:87: + 19:c9:51:54:12:23:14:c8:4f:18:41:46:4f:47:85: + 31:6d:a1:30:f1:99:99:de:1d:d6:e2:e3:b3:ae:57: + 02:01:a5:35:1f:22:21:32:2c:70:0d:c5:0c:63:fe: + 9d:72:44:08:d6:c7:fe:91:bf:c9:9a:4e:d9:1e:35: + 5e:44:22:00:b2:8b:17:16:26:f7:60:2d:9e:ce:bd: + 27:28:f7:29:3d:9f:0f:61:bc:7e:76:3f:c5:1e:24: + dc:1b:79:aa:54:0c:51:9f:af:7c:64:e7:dd:de:ff: + 23:8c:84:1c:32:46:82:53:89:14:a0:47:a3:36:3b: + 7b:a6:0e:62:a5:5b:2d:07:94:6a:42:6f:5e:eb:48: + a7:ce:b2:d9:25:91:7d:96:6c:c2:45:61:fb:e2:11: + ac:6f:b3:62:34:16:d1:03:13:85:0e:1f:5d:f9:02: + 39:3c:04:e9:35:ec:0e:12:77:99:79:eb:77:ed:7d: + 90:26:b7:14:51:bc:a4:fa:e9:24:da:14:cf:93:39: + 35:8f:71:62:5a:d9:e0:e5:16:c7:a7:fd:3b:ce:82: + 59:0f:f5:7b:d2:bc:40:c7:39:be:47:80:5e:19:31: + 0c:f1:e5:25:52:77:8d:67:8f:1d:01:cd:26:03:65: + 9a:fe:4e:2e:5a:a6:05:f2:25:55:83:3b:6a:44:ce: + 2c:1b:40:74:3a:e7:23:47:a8:8d:29:2f:d6:1f:82: + 40:59:01 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Key Usage: critical @@ -57,12 +57,12 @@ Certificate: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: - 03:4A:67:8B:0B:1C:86:4C:9D:D9:E6:E2:43:B1:BA:93:53:50:DE:28 + 22:2D:D2:FA:B7:C9:B9:67:B1:FD:1A:AE:A1:37:32:A6:E4:7B:0D:78 X509v3 Authority Key Identifier: - 14:2E:B3:17:B7:58:56:CB:AE:50:09:40:E6:1F:AF:9D:8B:14:C2:C6 + BB:BC:C3:47:A5:E4:BC:A9:C6:C3:A4:72:0C:10:8D:A2:35:E1:C8:E8 Authority Information Access: - OCSP - URI:http://r3.o.lencr.org - CA Issuers - URI:http://r3.i.lencr.org/ + OCSP - URI:http://r10.o.lencr.org + CA Issuers - URI:http://r10.i.lencr.org/ X509v3 Subject Alternative Name: DNS:*.g6fyiaq.mesh.mongodb-dev.net, DNS:*.g6fyiaq.mongodb-dev.net X509v3 Certificate Policies: @@ -70,78 +70,78 @@ Certificate: CT Precertificate SCTs: Signed Certificate Timestamp: Version : v1 (0x0) - Log ID : 3F:17:4B:4F:D7:22:47:58:94:1D:65:1C:84:BE:0D:12: - ED:90:37:7F:1F:85:6A:EB:C1:BF:28:85:EC:F8:64:6E - Timestamp : Jun 5 15:02:46.375 2024 GMT + Log ID : A2:E3:0A:E4:45:EF:BD:AD:9B:7E:38:ED:47:67:77:53: + D7:82:5B:84:94:D7:2B:5E:1B:2C:C4:B9:50:A4:47:E7 + Timestamp : Jan 19 12:08:20.846 2025 GMT Extensions: none Signature : ecdsa-with-SHA256 - 30:45:02:21:00:A2:21:6F:59:A8:6F:DF:1F:D8:BF:D5: - 0C:C8:90:9C:15:F6:02:20:97:22:70:BD:DF:C6:F8:41: - 02:A3:86:FB:0F:02:20:5F:4C:E5:7D:38:D7:AF:7C:40: - 41:B1:99:8A:04:83:2C:95:7F:71:34:42:2F:B9:94:DC: - EE:85:D9:2E:6A:FE:0E + 30:44:02:20:62:EF:5D:53:0F:5D:A6:89:28:82:A0:F4: + 4D:2B:B6:68:C4:0A:0E:D8:18:C1:3E:C3:44:20:18:1F: + AB:E0:62:41:02:20:41:EB:DC:F8:37:5C:96:61:93:DC: + C4:06:C6:05:29:72:8A:65:DC:16:02:99:6D:4B:F4:69: + 69:D5:29:30:5A:79 Signed Certificate Timestamp: Version : v1 (0x0) - Log ID : 76:FF:88:3F:0A:B6:FB:95:51:C2:61:CC:F5:87:BA:34: - B4:A4:CD:BB:29:DC:68:42:0A:9F:E6:67:4C:5A:3A:74 - Timestamp : Jun 5 15:02:46.419 2024 GMT + Log ID : 7D:59:1E:12:E1:78:2A:7B:1C:61:67:7C:5E:FD:F8:D0: + 87:5C:14:A0:4E:95:9E:B9:03:2F:D9:0E:8C:2E:79:B8 + Timestamp : Jan 19 12:08:20.951 2025 GMT Extensions: none Signature : ecdsa-with-SHA256 - 30:46:02:21:00:FA:63:32:6E:58:54:6F:36:EE:9C:BA: - FB:AF:E1:5E:B5:A9:24:8A:81:84:7A:E5:F3:A9:38:42: - 57:CC:E3:09:C9:02:21:00:E2:BD:7E:3D:45:28:05:91: - F6:46:1C:EA:5C:31:DA:4A:88:D2:F8:A2:98:9E:E3:A1: - 36:1D:41:BF:DA:0A:45:D9 + 30:44:02:20:6F:06:37:B0:88:E2:58:D3:C7:E8:CD:F0: + 57:AF:BF:87:C8:44:EC:30:D2:3A:19:FC:3E:53:BF:8B: + D1:CE:0D:9D:02:20:1F:DF:1F:97:71:1B:64:B3:D5:C2: + D9:6D:27:31:B4:D7:41:1E:7E:F2:39:CC:A3:1C:8E:65: + 9B:A5:11:D8:69:FB Signature Algorithm: sha256WithRSAEncryption Signature Value: - 61:76:67:a7:27:1f:ac:52:59:f6:73:dd:98:6b:52:25:b2:a3: - 1b:f1:23:8f:07:75:7f:e9:1a:fa:c7:99:61:3c:c4:d6:d4:24: - a6:2e:e9:67:c6:18:ca:76:57:63:bf:ce:ad:74:92:e1:e5:84: - 1d:94:80:f2:a9:90:a5:8e:83:74:80:cf:d1:2e:be:f7:13:6e: - 84:22:44:e1:a9:bd:60:85:81:ad:ee:17:68:d1:e7:83:dd:aa: - 8e:35:5e:0b:e5:9a:52:23:4d:c6:85:cc:fc:45:09:d3:f7:63: - 1d:72:69:09:99:36:53:97:43:54:53:2e:47:8d:ec:29:f1:d2: - 54:e4:35:f9:84:a1:ef:f0:4b:23:cf:1c:b3:06:c5:6a:bc:d9: - 7e:b3:8c:3a:76:74:28:d8:2b:75:b2:fd:bb:c3:62:02:46:ed: - ca:47:b2:c9:7a:f3:99:e3:c8:5c:6a:c0:02:a4:25:b9:2d:82: - 87:6c:7a:1f:5d:41:37:53:8f:8a:71:91:13:ed:d7:3f:ac:29: - 58:83:08:1f:1d:62:d4:e9:d9:c8:63:05:0d:24:44:45:44:58: - be:4a:09:ff:e5:56:e8:67:ad:2d:ee:42:f9:a3:fa:fa:3f:72: - ab:eb:eb:4b:23:94:f3:ac:91:f5:34:6a:8a:3d:2f:89:52:54: - a4:7e:5f:db + 57:fb:59:39:c2:04:47:96:43:ff:81:b5:8f:a8:ed:88:b2:2b: + c3:47:0b:90:35:8d:bd:03:9c:26:29:f0:6b:9c:16:dd:e5:4a: + ed:80:75:60:3b:f5:71:32:79:61:a0:3d:71:a4:4c:f4:2a:f6: + ad:de:b2:6b:f2:51:fc:d0:ed:2f:ce:51:59:51:29:d1:9d:0f: + 6b:da:3c:26:ab:23:9b:c3:cb:99:ed:2f:db:15:f5:9b:cd:57: + 0b:79:36:bd:a4:c5:77:57:cf:36:fe:d0:c8:31:19:b0:1c:a0: + 4b:fe:75:bd:92:ad:5b:8b:2b:95:df:2f:f3:c9:46:72:03:a2: + 2c:a8:ac:59:cf:de:53:fa:3f:54:67:c9:45:86:34:ae:43:5e: + 75:8c:57:45:19:78:1f:88:f5:da:ef:cc:b4:40:00:05:d8:a2: + 3a:28:51:ae:1d:c0:bf:cd:61:e4:30:15:e5:d4:fd:bb:d0:bb: + fb:4d:34:60:49:b7:a0:a9:bf:af:e7:44:d9:85:e9:9e:48:d3: + e4:b2:28:e1:80:7d:c3:59:7f:c1:b2:61:16:49:24:8d:81:bc: + 06:dc:58:12:b6:e9:19:9c:8e:d7:2b:f5:79:ac:84:dc:37:8a: + 59:28:4d:90:c1:96:b7:e9:03:24:aa:42:b9:ec:ba:4d:81:7f: + 69:d1:f9:ed -----BEGIN CERTIFICATE----- -MIIGIDCCBQigAwIBAgISBK7CRfy6rhbWOH7eBMQrQf2gMA0GCSqGSIb3DQEBCwUA -MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD -EwJSMzAeFw0yNDA2MDUxNDAyNDVaFw0yNDA5MDMxNDAyNDRaMCQxIjAgBgNVBAMM -GSouZzZmeWlhcS5tb25nb2RiLWRldi5uZXQwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQDA1JPyfLVkVqLtB6uWAGGNdAPuENx/kibqsckvejPSBbIl/xXA -/DdcjKk2gmbrB3D57LPKiJ0HUe/yGOOIO/f1sinif3sA3J+4lc/0WDcNzbDsm9DD -7HHYTZdaosZmLsHcTzjzukM9PkYSqAh647z6Uj+0Tz4ln0rJ/a9CzGJZuuGSHGxX -LYb7YggIW/lePDvomrIcoIJYDOlAwiHCcZMyaET5YRO81shxHpw39LnNEzDNS0LA -xZWRhrXpf/Y33iCOzAU9FKopwr9PNHGJB1RbtM0TvVN0528zxXM2JFs3iNGe/Jjh -eqIlZcWxIa0smQsDLpIG78ExtjsAMgD1xHANHUMcpzEDQKaVbCmzk1Q7n71fRL66 -BKlc8S0NBBhRJ3VH10sG59+8LE7HSxhg3lHOQalsahnRpQsD5eyJEGu0lLp5tgYR -LrJf5hnw+a0+T6TMPXtpRu1xHPZQbFMInqMFWd77NqGSrX14xjcT0RqaVsz7vSE0 -7I2lc1lvTqriLhbW1omSo4/XsEbPB3B13NyzcM8qEoROQVcQaHtf+Y9k0tTpwOu0 -aDeHQDKe9n++MfvVNqQVulIkwV2u0EHj/4gJfeeYI7sJm3tt5MDKehtuMmNpQnsm -ncnww7lYiMN0ndNUOyAJdlxUTmD3NVPk+aqvDr0k0Q7Fin4m8OegJtCdAQIDAQAB -o4ICPDCCAjgwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggr -BgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQDSmeLCxyGTJ3Z5uJDsbqT -U1DeKDAfBgNVHSMEGDAWgBQULrMXt1hWy65QCUDmH6+dixTCxjBVBggrBgEFBQcB -AQRJMEcwIQYIKwYBBQUHMAGGFWh0dHA6Ly9yMy5vLmxlbmNyLm9yZzAiBggrBgEF -BQcwAoYWaHR0cDovL3IzLmkubGVuY3Iub3JnLzBEBgNVHREEPTA7gh4qLmc2Znlp -YXEubWVzaC5tb25nb2RiLWRldi5uZXSCGSouZzZmeWlhcS5tb25nb2RiLWRldi5u -ZXQwEwYDVR0gBAwwCjAIBgZngQwBAgEwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEA -dgA/F0tP1yJHWJQdZRyEvg0S7ZA3fx+FauvBvyiF7PhkbgAAAY/o7IdnAAAEAwBH -MEUCIQCiIW9ZqG/fH9i/1QzIkJwV9gIglyJwvd/G+EECo4b7DwIgX0zlfTjXr3xA -QbGZigSDLJV/cTRCL7mU3O6F2S5q/g4AdwB2/4g/Crb7lVHCYcz1h7o0tKTNuync -aEIKn+ZnTFo6dAAAAY/o7IeTAAAEAwBIMEYCIQD6YzJuWFRvNu6cuvuv4V61qSSK -gYR65fOpOEJXzOMJyQIhAOK9fj1FKAWR9kYc6lwx2kqI0viimJ7joTYdQb/aCkXZ -MA0GCSqGSIb3DQEBCwUAA4IBAQBhdmenJx+sUln2c92Ya1IlsqMb8SOPB3V/6Rr6 -x5lhPMTW1CSmLulnxhjKdldjv86tdJLh5YQdlIDyqZCljoN0gM/RLr73E26EIkTh -qb1ghYGt7hdo0eeD3aqONV4L5ZpSI03Ghcz8RQnT92MdcmkJmTZTl0NUUy5Hjewp -8dJU5DX5hKHv8EsjzxyzBsVqvNl+s4w6dnQo2Ct1sv27w2ICRu3KR7LJevOZ48hc -asACpCW5LYKHbHofXUE3U4+KcZET7dc/rClYgwgfHWLU6dnIYwUNJERFRFi+Sgn/ -5VboZ60t7kL5o/r6P3Kr6+tLI5TzrJH1NGqKPS+JUlSkfl/b +MIIGIDCCBQigAwIBAgISBGCTTDjPOzp+Gh+/xHIBf/y2MA0GCSqGSIb3DQEBCwUA +MDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQD +EwNSMTAwHhcNMjUwMTE5MTEwOTUwWhcNMjUwNDE5MTEwOTQ5WjAkMSIwIAYDVQQD +DBkqLmc2ZnlpYXEubW9uZ29kYi1kZXYubmV0MIICIjANBgkqhkiG9w0BAQEFAAOC +Ag8AMIICCgKCAgEA1tfFH3b0x6bfI1nWCuTF96SAa07pZhrmQyEnBEERnzJ+fZPI +d0rThHL3TUA4RwCn3EzK8+/Fz9agBvaLvgZkEbDyrbYteITUmWXY60yy06rQKWLF +dy3Oj3FOJiezgycsBqnS1IPesLM3sZqpJK+TkWcoTuPPwap1mYMNTOLMAg9ZmKS3 +e3kE6vfqXC8tSBtMaExTX2nbFvdrP9ikjGN2xvW4kD9NlfNossnfzDes4Rfmuw4C +ZLV18MF3XdwPnAnTsfemlVQTgoMdvhfi0/v4UysV77h99WwPQ+IiZn68w73UcLpx +HQ5nyU4qdH0wiIcZyVFUEiMUyE8YQUZPR4UxbaEw8ZmZ3h3W4uOzrlcCAaU1HyIh +MixwDcUMY/6dckQI1sf+kb/Jmk7ZHjVeRCIAsosXFib3YC2ezr0nKPcpPZ8PYbx+ +dj/FHiTcG3mqVAxRn698ZOfd3v8jjIQcMkaCU4kUoEejNjt7pg5ipVstB5RqQm9e +60inzrLZJZF9lmzCRWH74hGsb7NiNBbRAxOFDh9d+QI5PATpNewOEneZeet37X2Q +JrcUUbyk+ukk2hTPkzk1j3FiWtng5RbHp/07zoJZD/V70rxAxzm+R4BeGTEM8eUl +UneNZ48dAc0mA2Wa/k4uWqYF8iVVgztqRM4sG0B0OucjR6iNKS/WH4JAWQECAwEA +AaOCAjswggI3MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYI +KwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUIi3S+rfJuWex/RquoTcy +puR7DXgwHwYDVR0jBBgwFoAUu7zDR6XkvKnGw6RyDBCNojXhyOgwVwYIKwYBBQUH +AQEESzBJMCIGCCsGAQUFBzABhhZodHRwOi8vcjEwLm8ubGVuY3Iub3JnMCMGCCsG +AQUFBzAChhdodHRwOi8vcjEwLmkubGVuY3Iub3JnLzBEBgNVHREEPTA7gh4qLmc2 +ZnlpYXEubWVzaC5tb25nb2RiLWRldi5uZXSCGSouZzZmeWlhcS5tb25nb2RiLWRl +di5uZXQwEwYDVR0gBAwwCjAIBgZngQwBAgEwggECBgorBgEEAdZ5AgQCBIHzBIHw +AO4AdQCi4wrkRe+9rZt+OO1HZ3dT14JbhJTXK14bLMS5UKRH5wAAAZR+dsZuAAAE +AwBGMEQCIGLvXVMPXaaJKIKg9E0rtmjECg7YGME+w0QgGB+r4GJBAiBB69z4N1yW +YZPcxAbGBSlyimXcFgKZbUv0aWnVKTBaeQB1AH1ZHhLheCp7HGFnfF79+NCHXBSg +TpWeuQMv2Q6MLnm4AAABlH52xtcAAAQDAEYwRAIgbwY3sIjiWNPH6M3wV6+/h8hE +7DDSOhn8PlO/i9HODZ0CIB/fH5dxG2Sz1cLZbScxtNdBHn7yOcyjHI5lm6UR2Gn7 +MA0GCSqGSIb3DQEBCwUAA4IBAQBX+1k5wgRHlkP/gbWPqO2IsivDRwuQNY29A5wm +KfBrnBbd5UrtgHVgO/VxMnlhoD1xpEz0Kvat3rJr8lH80O0vzlFZUSnRnQ9r2jwm +qyObw8uZ7S/bFfWbzVcLeTa9pMV3V882/tDIMRmwHKBL/nW9kq1biyuV3y/zyUZy +A6IsqKxZz95T+j9UZ8lFhjSuQ151jFdFGXgfiPXa78y0QAAF2KI6KFGuHcC/zWHk +MBXl1P270Lv7TTRgSbegqb+v50TZhemeSNPksijhgH3DWX/BsmEWSSSNgbwG3FgS +tukZnI7XK/V5rITcN4pZKE2QwZa36QMkqkK57LpNgX9p0fnt -----END CERTIFICATE----- \ No newline at end of file