Replace tests

Describes the tests needed to validate the Replace functionality.

Examples of commands are given, though not all of them can be used exactly, since the checksums will change from test to test.

Succes scenarios

Basic replace

  1. Upload a new file with a unique name for this test.
      • bash bin/bitmag.sh put-file -c integrationtest2 -f conf/logback.xml -i replace_test_1_2022.xml
  2.  Replace the file at a pillar. The file should exist in the collection, providing the correct checksum for the existing file.
    1. First retrieve the checksum with GetChecksum (or just use md5sum on the local file):
      • bash bin/bitmag.sh get-checksums -c integrationtest2 -i replace_test_1_2022.xml
      1. Count:     Checksum:     Pillars:     FileID:

      2. 5     3228f1d3684c39ed782af5f9e6aee1b0     All     replace_test_1_2022.xml

    2. Use the checksum to replace the file:
      • bash bin/bitmag.sh replace-file -c integrationtest2 -i replace_test_1_2022.xml -f conf/RepositorySettings.xml -C 3228f1d3684c39ed782af5f9e6aee1b0 -p sbtape2
  3. Verify that the file has a different checksum at one pillar, and that the pillars does not agree upon the checksum any more:
      • bash bin/bitmag.sh get-checksums -c integrationtest2 -i replace_test_1_2022.xml
      1. Count:     Checksum:     Pillars:     FileID:

      2. 4     3228f1d3684c39ed782af5f9e6aee1b0     [kbpillar2, reference2, checksum2, sbdisk1]     replace_test_1_2022.xml

      3. 1     001a83061e71a22a3ac08759fcc082c9     [sbtape2]     replace_test_1_2022.xml

Replace with returned checksums

  1. Upload a new file with a unique id for this test.
      • bash bin/bitmag.sh put-file -c integrationtest2 -f conf/ReferenceSettings.xml -i replace_test_2_2022.xml
  2. Replace a file with including the a request of a salted checksum calculated on the pillars, which should be returned.
    1. First retrieve the salted checksum for the file at all pillars:
      • bash bin/bitmag.sh get-checksums -c integrationtest2 -i replace_test_2_2022.xml -R HMAC_SHA1 -S abab
      1. Count:     Checksum:     Pillars:     FileID:

      2. 4     15abc6f0098da5317ea58e6b850355d760790174     All     replace_test_2_2022.xml

    2. Replace the file and request the salted checksum:
      • bash bin/bitmag.sh replace-file -c integrationtest2 -i replace_test_2_2022.xml -f conf/RepositorySettings.xml -C 41e3d98b0e97f52f94fba6add86ce7db -p sbtape2 -R HMAC_SHA1 -S abab

      1. PillarId results

      2. sbtape2 :     Checksum for replaced file: 15abc6f0098da5317ea58e6b850355d760790174    Checksum for new file: f8fd8422ab0581a37382d2edb01533399c241f3d  

    3. Check that the file is replaced correctly, and that the returned checksums are correct and consistent across the responses returned by the pillars).
      • bash bin/bitmag.sh get-checksums -c integrationtest2 -i replace_test_2_2022.xml -R HMAC_SHA1 -S abab
      1. Count:     Checksum:     Pillars:     FileID:

      2. 3     15abc6f0098da5317ea58e6b850355d760790174     [kbpillar2, reference2, sbdisk1]     replace_test_2_2022.xml

      3. 1     f8fd8422ab0581a37382d2edb01533399c241f3d     [sbtape2]     replace_test_2_2022.xml

Replace with a URL instead of a local file

  1. Upload a new file with a unique id for this test, and get the checksum for the file
      • bash bin/bitmag.sh put-file -c integrationtest2 -f bin/massupload.sh -i replace_test_3_2022.xml
      • md5sum bin/massupload.sh

      1. 598c634a8d589b44339cdbffcad1ad44  bin/massupload.sh

  2. Upload a file to the dav-server (or find a file on the dav-server), and retrieve its checksum
      1. d41d8cd98f00b204e9800998ecf8427e  test.txt

  3. Replace the file with the URL:
      • bash bin/bitmag.sh replace-file -c integrationtest2 -i replace_test_3_2022.xml -u http://sandkasse-01.kb.dk/dav/test.txt -r d41d8cd98f00b204e9800998ecf8427e -C 598c634a8d589b44339cdbffcad1ad44 -p sbtape2
  4. Validate that it has been changed:
      • bash bin/bitmag.sh get-checksums -c integrationtest2 -i replace_test_3_2022.xml

      1. Count:     Checksum:     Pillars:     FileID:

      2. 1     d41d8cd98f00b204e9800998ecf8427e     [sbtape2]     replace_test_3_2022.xml

      3. 4     598c634a8d589b44339cdbffcad1ad44     [kbpillar2, reference2, checksum2, sbdisk1]     replace_test_3_2022.xml

Failure scenarios

Bad old file checksum

  1. Attempt to replace a file, providing the wrong checksum for the old file.
    1. The file shouldn't be replaced, and the user should be informed that the operation failed due to the invalid checksum for the old file.
      • bash bin/bitmag.sh replace-file -c integrationtest2 -i replace_test_1_2022.xml -f conf/RepositorySettings.xml -C 3228f1d3684c39ed782af5f9e6aee1b1 -p reference2

Missing file replace

  1. Attempt to replace a file that does not exist in the collection.
    1. The user should be informed that the operation failed because the file did't exist.
      • bash bin/bitmag.sh replace-file -c integrationtest2 -i replace_test_NON_EXISTING_FILE.xml -f conf/RepositorySettings.xml -C 3228f1d3684c39ed782af5f9e6aee1b1 -p reference2


Open issues

key priority summary type created
Loading...
Refresh