@cloudant/couchbackup 2.9.9 → 2.9.10-SNAPSHOT.105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.scannerwork/report-task.txt +2 -2
- package/.scannerwork/scanner-report/analysis-warnings.pb +2 -2
- package/.scannerwork/scanner-report/changesets-11.pb +1 -0
- package/.scannerwork/scanner-report/changesets-12.pb +1 -0
- package/.scannerwork/scanner-report/changesets-13.pb +1 -0
- package/.scannerwork/scanner-report/changesets-14.pb +1 -0
- package/.scannerwork/scanner-report/changesets-15.pb +1 -0
- package/.scannerwork/scanner-report/changesets-16.pb +1 -0
- package/.scannerwork/scanner-report/changesets-17.pb +1 -0
- package/.scannerwork/scanner-report/changesets-4.pb +1 -0
- package/.scannerwork/scanner-report/changesets-51.pb +1 -0
- package/.scannerwork/scanner-report/changesets-53.pb +1 -0
- package/.scannerwork/scanner-report/changesets-54.pb +1 -0
- package/.scannerwork/scanner-report/component-1.pb +2 -1
- package/.scannerwork/scanner-report/component-10.pb +2 -0
- package/.scannerwork/scanner-report/component-11.pb +1 -0
- package/.scannerwork/scanner-report/component-12.pb +1 -0
- package/.scannerwork/scanner-report/component-13.pb +1 -0
- package/.scannerwork/scanner-report/component-14.pb +1 -0
- package/.scannerwork/scanner-report/component-15.pb +1 -0
- package/.scannerwork/scanner-report/component-16.pb +1 -0
- package/.scannerwork/scanner-report/component-17.pb +1 -0
- package/.scannerwork/scanner-report/component-18.pb +1 -1
- package/.scannerwork/scanner-report/component-19.pb +1 -1
- package/.scannerwork/scanner-report/component-2.pb +1 -1
- package/.scannerwork/scanner-report/component-20.pb +1 -1
- package/.scannerwork/scanner-report/component-21.pb +1 -1
- package/.scannerwork/scanner-report/component-22.pb +1 -1
- package/.scannerwork/scanner-report/component-23.pb +1 -1
- package/.scannerwork/scanner-report/component-24.pb +1 -1
- package/.scannerwork/scanner-report/component-26.pb +1 -1
- package/.scannerwork/scanner-report/component-27.pb +1 -1
- package/.scannerwork/scanner-report/component-3.pb +1 -1
- package/.scannerwork/scanner-report/component-30.pb +1 -1
- package/.scannerwork/scanner-report/component-32.pb +1 -1
- package/.scannerwork/scanner-report/component-33.pb +1 -1
- package/.scannerwork/scanner-report/component-35.pb +1 -1
- package/.scannerwork/scanner-report/component-36.pb +1 -1
- package/.scannerwork/scanner-report/component-37.pb +1 -1
- package/.scannerwork/scanner-report/component-38.pb +1 -1
- package/.scannerwork/scanner-report/component-39.pb +1 -1
- package/.scannerwork/scanner-report/component-4.pb +1 -1
- package/.scannerwork/scanner-report/component-51.pb +1 -0
- package/.scannerwork/scanner-report/component-52.pb +1 -1
- package/.scannerwork/scanner-report/component-53.pb +1 -0
- package/.scannerwork/scanner-report/component-54.pb +1 -0
- package/.scannerwork/scanner-report/component-55.pb +1 -1
- package/.scannerwork/scanner-report/component-56.pb +1 -1
- package/.scannerwork/scanner-report/component-57.pb +1 -1
- package/.scannerwork/scanner-report/component-58.pb +1 -1
- package/.scannerwork/scanner-report/component-59.pb +1 -1
- package/.scannerwork/scanner-report/component-60.pb +1 -1
- package/.scannerwork/scanner-report/component-61.pb +1 -1
- package/.scannerwork/scanner-report/component-62.pb +1 -1
- package/.scannerwork/scanner-report/component-63.pb +1 -1
- package/.scannerwork/scanner-report/component-64.pb +1 -1
- package/.scannerwork/scanner-report/component-65.pb +1 -1
- package/.scannerwork/scanner-report/component-66.pb +1 -1
- package/.scannerwork/scanner-report/component-67.pb +1 -1
- package/.scannerwork/scanner-report/component-68.pb +1 -1
- package/.scannerwork/scanner-report/coverages-11.pb +0 -0
- package/.scannerwork/scanner-report/coverages-12.pb +0 -0
- package/.scannerwork/scanner-report/coverages-13.pb +0 -0
- package/.scannerwork/scanner-report/coverages-14.pb +0 -0
- package/.scannerwork/scanner-report/coverages-16.pb +0 -0
- package/.scannerwork/scanner-report/coverages-17.pb +0 -0
- package/.scannerwork/scanner-report/coverages-18.pb +0 -0
- package/.scannerwork/scanner-report/coverages-19.pb +0 -0
- package/.scannerwork/scanner-report/coverages-2.pb +0 -0
- package/.scannerwork/scanner-report/coverages-20.pb +0 -0
- package/.scannerwork/scanner-report/coverages-21.pb +0 -0
- package/.scannerwork/scanner-report/coverages-22.pb +0 -0
- package/.scannerwork/scanner-report/coverages-23.pb +0 -0
- package/.scannerwork/scanner-report/coverages-24.pb +0 -0
- package/.scannerwork/scanner-report/coverages-3.pb +0 -0
- package/.scannerwork/scanner-report/coverages-30.pb +0 -0
- package/.scannerwork/scanner-report/coverages-32.pb +0 -0
- package/.scannerwork/scanner-report/coverages-33.pb +0 -0
- package/.scannerwork/scanner-report/coverages-35.pb +0 -0
- package/.scannerwork/scanner-report/coverages-36.pb +0 -0
- package/.scannerwork/scanner-report/coverages-37.pb +0 -0
- package/.scannerwork/scanner-report/coverages-38.pb +0 -0
- package/.scannerwork/scanner-report/coverages-39.pb +0 -0
- package/.scannerwork/scanner-report/coverages-52.pb +0 -0
- package/.scannerwork/scanner-report/coverages-54.pb +0 -0
- package/.scannerwork/scanner-report/coverages-55.pb +0 -0
- package/.scannerwork/scanner-report/coverages-56.pb +0 -0
- package/.scannerwork/scanner-report/coverages-57.pb +0 -0
- package/.scannerwork/scanner-report/coverages-58.pb +0 -0
- package/.scannerwork/scanner-report/coverages-59.pb +0 -0
- package/.scannerwork/scanner-report/coverages-60.pb +0 -0
- package/.scannerwork/scanner-report/coverages-61.pb +0 -0
- package/.scannerwork/scanner-report/coverages-62.pb +0 -0
- package/.scannerwork/scanner-report/coverages-63.pb +0 -0
- package/.scannerwork/scanner-report/coverages-64.pb +0 -0
- package/.scannerwork/scanner-report/coverages-65.pb +0 -0
- package/.scannerwork/scanner-report/coverages-66.pb +0 -0
- package/.scannerwork/scanner-report/coverages-67.pb +0 -0
- package/.scannerwork/scanner-report/duplications-17.pb +2 -0
- package/.scannerwork/scanner-report/duplications-19.pb +2 -0
- package/.scannerwork/scanner-report/duplications-22.pb +0 -3
- package/.scannerwork/scanner-report/duplications-3.pb +2 -0
- package/.scannerwork/scanner-report/duplications-30.pb +0 -2
- package/.scannerwork/scanner-report/duplications-37.pb +3 -2
- package/.scannerwork/scanner-report/duplications-39.pb +3 -0
- package/.scannerwork/scanner-report/duplications-4.pb +2 -0
- package/.scannerwork/scanner-report/duplications-51.pb +0 -0
- package/.scannerwork/scanner-report/duplications-54.pb +0 -0
- package/.scannerwork/scanner-report/duplications-56.pb +0 -2
- package/.scannerwork/scanner-report/duplications-59.pb +2 -0
- package/.scannerwork/scanner-report/duplications-61.pb +2 -0
- package/.scannerwork/scanner-report/duplications-62.pb +3 -0
- package/.scannerwork/scanner-report/duplications-63.pb +0 -2
- package/.scannerwork/scanner-report/measures-11.pb +0 -0
- package/.scannerwork/scanner-report/measures-12.pb +0 -0
- package/.scannerwork/scanner-report/measures-13.pb +15 -0
- package/.scannerwork/scanner-report/measures-14.pb +16 -0
- package/.scannerwork/scanner-report/measures-15.pb +0 -0
- package/.scannerwork/scanner-report/measures-16.pb +0 -0
- package/.scannerwork/scanner-report/measures-17.pb +0 -0
- package/.scannerwork/scanner-report/measures-18.pb +0 -0
- package/.scannerwork/scanner-report/measures-19.pb +0 -0
- package/.scannerwork/scanner-report/measures-2.pb +0 -0
- package/.scannerwork/scanner-report/measures-20.pb +0 -0
- package/.scannerwork/scanner-report/measures-21.pb +0 -0
- package/.scannerwork/scanner-report/measures-22.pb +0 -0
- package/.scannerwork/scanner-report/measures-23.pb +0 -0
- package/.scannerwork/scanner-report/measures-24.pb +0 -0
- package/.scannerwork/scanner-report/measures-26.pb +0 -0
- package/.scannerwork/scanner-report/measures-27.pb +0 -0
- package/.scannerwork/scanner-report/measures-3.pb +0 -0
- package/.scannerwork/scanner-report/measures-30.pb +0 -0
- package/.scannerwork/scanner-report/measures-32.pb +0 -0
- package/.scannerwork/scanner-report/measures-33.pb +0 -0
- package/.scannerwork/scanner-report/measures-35.pb +0 -0
- package/.scannerwork/scanner-report/measures-36.pb +0 -0
- package/.scannerwork/scanner-report/measures-37.pb +0 -0
- package/.scannerwork/scanner-report/measures-38.pb +0 -0
- package/.scannerwork/scanner-report/measures-39.pb +0 -0
- package/.scannerwork/scanner-report/measures-4.pb +0 -0
- package/.scannerwork/scanner-report/measures-51.pb +0 -0
- package/.scannerwork/scanner-report/measures-52.pb +0 -0
- package/.scannerwork/scanner-report/measures-54.pb +0 -0
- package/.scannerwork/scanner-report/measures-55.pb +0 -0
- package/.scannerwork/scanner-report/measures-56.pb +0 -0
- package/.scannerwork/scanner-report/measures-57.pb +0 -0
- package/.scannerwork/scanner-report/measures-58.pb +0 -0
- package/.scannerwork/scanner-report/measures-59.pb +0 -0
- package/.scannerwork/scanner-report/measures-60.pb +0 -0
- package/.scannerwork/scanner-report/measures-61.pb +0 -0
- package/.scannerwork/scanner-report/measures-62.pb +0 -0
- package/.scannerwork/scanner-report/measures-63.pb +0 -0
- package/.scannerwork/scanner-report/measures-64.pb +0 -0
- package/.scannerwork/scanner-report/measures-65.pb +0 -0
- package/.scannerwork/scanner-report/measures-66.pb +0 -0
- package/.scannerwork/scanner-report/measures-67.pb +0 -0
- package/.scannerwork/scanner-report/measures-68.pb +0 -0
- package/.scannerwork/scanner-report/metadata.pb +0 -0
- package/.scannerwork/scanner-report/{source-50.txt → source-10.txt} +49 -49
- package/.scannerwork/scanner-report/source-11.txt +118 -0
- package/.scannerwork/scanner-report/source-12.txt +164 -0
- package/.scannerwork/scanner-report/source-13.txt +104 -0
- package/.scannerwork/scanner-report/source-14.txt +178 -0
- package/.scannerwork/scanner-report/source-15.txt +281 -0
- package/.scannerwork/scanner-report/source-16.txt +31 -0
- package/.scannerwork/scanner-report/source-17.txt +75 -0
- package/.scannerwork/scanner-report/source-18.txt +94 -19
- package/.scannerwork/scanner-report/source-19.txt +67 -75
- package/.scannerwork/scanner-report/source-2.txt +99 -41
- package/.scannerwork/scanner-report/source-20.txt +25 -18
- package/.scannerwork/scanner-report/source-21.txt +114 -351
- package/.scannerwork/scanner-report/source-22.txt +57 -96
- package/.scannerwork/scanner-report/source-23.txt +39 -48
- package/.scannerwork/scanner-report/source-24.txt +32 -78
- package/.scannerwork/scanner-report/source-26.txt +509 -156
- package/.scannerwork/scanner-report/source-27.txt +509 -625
- package/.scannerwork/scanner-report/source-3.txt +172 -59
- package/.scannerwork/scanner-report/source-30.txt +362 -237
- package/.scannerwork/scanner-report/source-32.txt +62 -14
- package/.scannerwork/scanner-report/source-33.txt +40 -31
- package/.scannerwork/scanner-report/source-35.txt +24 -45
- package/.scannerwork/scanner-report/source-36.txt +125 -19
- package/.scannerwork/scanner-report/source-37.txt +88 -114
- package/.scannerwork/scanner-report/source-38.txt +126 -47
- package/.scannerwork/scanner-report/source-39.txt +201 -104
- package/.scannerwork/scanner-report/source-4.txt +175 -509
- package/.scannerwork/scanner-report/source-51.txt +625 -0
- package/.scannerwork/scanner-report/source-52.txt +43 -94
- package/.scannerwork/scanner-report/source-54.txt +68 -0
- package/.scannerwork/scanner-report/source-55.txt +19 -29
- package/.scannerwork/scanner-report/source-56.txt +19 -76
- package/.scannerwork/scanner-report/source-57.txt +139 -112
- package/.scannerwork/scanner-report/source-58.txt +20 -104
- package/.scannerwork/scanner-report/source-59.txt +273 -91
- package/.scannerwork/scanner-report/source-60.txt +351 -163
- package/.scannerwork/scanner-report/source-61.txt +124 -83
- package/.scannerwork/scanner-report/source-62.txt +113 -36
- package/.scannerwork/scanner-report/source-63.txt +67 -50
- package/.scannerwork/scanner-report/source-64.txt +79 -20
- package/.scannerwork/scanner-report/source-65.txt +46 -58
- package/.scannerwork/scanner-report/source-66.txt +21 -16
- package/.scannerwork/scanner-report/source-67.txt +15 -150
- package/.scannerwork/scanner-report/source-68.txt +509 -281
- package/.scannerwork/scanner-report/symbols-11.pb +30 -0
- package/.scannerwork/scanner-report/symbols-12.pb +126 -0
- package/.scannerwork/scanner-report/symbols-13.pb +42 -0
- package/.scannerwork/scanner-report/symbols-14.pb +144 -0
- package/.scannerwork/scanner-report/symbols-16.pb +14 -0
- package/.scannerwork/scanner-report/symbols-17.pb +42 -0
- package/.scannerwork/scanner-report/symbols-18.pb +59 -14
- package/.scannerwork/scanner-report/symbols-19.pb +43 -68
- package/.scannerwork/scanner-report/symbols-2.pb +28 -19
- package/.scannerwork/scanner-report/symbols-20.pb +17 -9
- package/.scannerwork/scanner-report/symbols-21.pb +33 -494
- package/.scannerwork/scanner-report/symbols-22.pb +41 -72
- package/.scannerwork/scanner-report/symbols-23.pb +14 -42
- package/.scannerwork/scanner-report/symbols-24.pb +20 -60
- package/.scannerwork/scanner-report/symbols-3.pb +180 -30
- package/.scannerwork/scanner-report/symbols-30.pb +554 -430
- package/.scannerwork/scanner-report/symbols-32.pb +30 -9
- package/.scannerwork/scanner-report/symbols-33.pb +19 -27
- package/.scannerwork/scanner-report/symbols-35.pb +27 -36
- package/.scannerwork/scanner-report/symbols-36.pb +116 -11
- package/.scannerwork/scanner-report/symbols-37.pb +77 -102
- package/.scannerwork/scanner-report/symbols-38.pb +85 -45
- package/.scannerwork/scanner-report/symbols-39.pb +394 -85
- package/.scannerwork/scanner-report/symbols-52.pb +42 -27
- package/.scannerwork/scanner-report/symbols-54.pb +45 -0
- package/.scannerwork/scanner-report/symbols-55.pb +14 -20
- package/.scannerwork/scanner-report/symbols-56.pb +16 -43
- package/.scannerwork/scanner-report/symbols-57.pb +110 -31
- package/.scannerwork/scanner-report/symbols-58.pb +10 -30
- package/.scannerwork/scanner-report/symbols-59.pb +485 -58
- package/.scannerwork/scanner-report/symbols-60.pb +494 -144
- package/.scannerwork/scanner-report/symbols-61.pb +102 -42
- package/.scannerwork/scanner-report/symbols-62.pb +97 -15
- package/.scannerwork/scanner-report/symbols-63.pb +60 -42
- package/.scannerwork/scanner-report/symbols-64.pb +68 -17
- package/.scannerwork/scanner-report/symbols-65.pb +33 -43
- package/.scannerwork/scanner-report/symbols-66.pb +11 -14
- package/.scannerwork/scanner-report/symbols-67.pb +9 -126
- package/.scannerwork/scanner-report/{syntax-highlightings-50.pb → syntax-highlightings-10.pb} +18 -18
- package/.scannerwork/scanner-report/syntax-highlightings-11.pb +113 -0
- package/.scannerwork/scanner-report/syntax-highlightings-12.pb +213 -0
- package/.scannerwork/scanner-report/syntax-highlightings-13.pb +116 -0
- package/.scannerwork/scanner-report/syntax-highlightings-14.pb +243 -0
- package/.scannerwork/scanner-report/syntax-highlightings-15.pb +285 -0
- package/.scannerwork/scanner-report/syntax-highlightings-16.pb +45 -0
- package/.scannerwork/scanner-report/syntax-highlightings-17.pb +78 -0
- package/.scannerwork/scanner-report/syntax-highlightings-18.pb +101 -22
- package/.scannerwork/scanner-report/syntax-highlightings-19.pb +51 -66
- package/.scannerwork/scanner-report/syntax-highlightings-2.pb +117 -61
- package/.scannerwork/scanner-report/syntax-highlightings-20.pb +20 -20
- package/.scannerwork/scanner-report/syntax-highlightings-21.pb +93 -594
- package/.scannerwork/scanner-report/syntax-highlightings-22.pb +58 -121
- package/.scannerwork/scanner-report/syntax-highlightings-23.pb +24 -52
- package/.scannerwork/scanner-report/syntax-highlightings-24.pb +32 -78
- package/.scannerwork/scanner-report/syntax-highlightings-26.pb +3727 -201
- package/.scannerwork/scanner-report/syntax-highlightings-27.pb +3396 -536
- package/.scannerwork/scanner-report/syntax-highlightings-3.pb +200 -78
- package/.scannerwork/scanner-report/syntax-highlightings-30.pb +403 -414
- package/.scannerwork/scanner-report/syntax-highlightings-32.pb +84 -29
- package/.scannerwork/scanner-report/syntax-highlightings-33.pb +59 -45
- package/.scannerwork/scanner-report/syntax-highlightings-35.pb +31 -58
- package/.scannerwork/scanner-report/syntax-highlightings-36.pb +100 -25
- package/.scannerwork/scanner-report/syntax-highlightings-37.pb +118 -187
- package/.scannerwork/scanner-report/syntax-highlightings-38.pb +151 -70
- package/.scannerwork/scanner-report/syntax-highlightings-39.pb +281 -143
- package/.scannerwork/scanner-report/syntax-highlightings-4.pb +199 -3732
- package/.scannerwork/scanner-report/syntax-highlightings-51.pb +887 -0
- package/.scannerwork/scanner-report/syntax-highlightings-52.pb +45 -101
- package/.scannerwork/scanner-report/syntax-highlightings-54.pb +110 -0
- package/.scannerwork/scanner-report/syntax-highlightings-55.pb +24 -34
- package/.scannerwork/scanner-report/syntax-highlightings-56.pb +30 -57
- package/.scannerwork/scanner-report/syntax-highlightings-57.pb +185 -91
- package/.scannerwork/scanner-report/syntax-highlightings-58.pb +21 -84
- package/.scannerwork/scanner-report/syntax-highlightings-59.pb +621 -95
- package/.scannerwork/scanner-report/syntax-highlightings-60.pb +552 -165
- package/.scannerwork/scanner-report/syntax-highlightings-61.pb +195 -84
- package/.scannerwork/scanner-report/syntax-highlightings-62.pb +153 -25
- package/.scannerwork/scanner-report/syntax-highlightings-63.pb +75 -43
- package/.scannerwork/scanner-report/syntax-highlightings-64.pb +73 -18
- package/.scannerwork/scanner-report/syntax-highlightings-65.pb +60 -60
- package/.scannerwork/scanner-report/syntax-highlightings-66.pb +30 -16
- package/.scannerwork/scanner-report/syntax-highlightings-67.pb +16 -181
- package/.scannerwork/scanner-report/syntax-highlightings-68.pb +3661 -199
- package/package.json +1 -1
- package/test-16-results.xml +152 -152
- package/test-18-results.xml +145 -145
- package/test-20-results.xml +143 -143
- package/test-iam-18-results.xml +49 -49
- package/.scannerwork/scanner-report/changesets-25.pb +0 -1
- package/.scannerwork/scanner-report/changesets-26.pb +0 -1
- package/.scannerwork/scanner-report/changesets-27.pb +0 -1
- package/.scannerwork/scanner-report/changesets-28.pb +0 -1
- package/.scannerwork/scanner-report/changesets-29.pb +0 -1
- package/.scannerwork/scanner-report/changesets-31.pb +0 -1
- package/.scannerwork/scanner-report/changesets-34.pb +0 -1
- package/.scannerwork/scanner-report/changesets-45.pb +0 -1
- package/.scannerwork/scanner-report/changesets-47.pb +0 -1
- package/.scannerwork/scanner-report/changesets-49.pb +0 -1
- package/.scannerwork/scanner-report/changesets-68.pb +0 -1
- package/.scannerwork/scanner-report/component-25.pb +0 -1
- package/.scannerwork/scanner-report/component-28.pb +0 -1
- package/.scannerwork/scanner-report/component-29.pb +0 -1
- package/.scannerwork/scanner-report/component-31.pb +0 -1
- package/.scannerwork/scanner-report/component-34.pb +0 -1
- package/.scannerwork/scanner-report/component-40.pb +0 -1
- package/.scannerwork/scanner-report/component-45.pb +0 -1
- package/.scannerwork/scanner-report/component-47.pb +0 -1
- package/.scannerwork/scanner-report/component-49.pb +0 -1
- package/.scannerwork/scanner-report/component-50.pb +0 -1
- package/.scannerwork/scanner-report/component-69.pb +0 -1
- package/.scannerwork/scanner-report/coverages-25.pb +0 -0
- package/.scannerwork/scanner-report/coverages-26.pb +0 -0
- package/.scannerwork/scanner-report/coverages-28.pb +0 -0
- package/.scannerwork/scanner-report/coverages-31.pb +0 -0
- package/.scannerwork/scanner-report/coverages-34.pb +0 -0
- package/.scannerwork/scanner-report/coverages-45.pb +0 -0
- package/.scannerwork/scanner-report/coverages-49.pb +0 -0
- package/.scannerwork/scanner-report/duplications-28.pb +0 -3
- package/.scannerwork/scanner-report/duplications-34.pb +0 -3
- package/.scannerwork/scanner-report/duplications-47.pb +0 -2
- package/.scannerwork/scanner-report/duplications-49.pb +0 -2
- package/.scannerwork/scanner-report/measures-25.pb +0 -0
- package/.scannerwork/scanner-report/measures-28.pb +0 -0
- package/.scannerwork/scanner-report/measures-31.pb +0 -0
- package/.scannerwork/scanner-report/measures-34.pb +0 -0
- package/.scannerwork/scanner-report/measures-40.pb +0 -0
- package/.scannerwork/scanner-report/measures-45.pb +0 -0
- package/.scannerwork/scanner-report/measures-47.pb +0 -0
- package/.scannerwork/scanner-report/measures-49.pb +0 -0
- package/.scannerwork/scanner-report/measures-69.pb +0 -0
- package/.scannerwork/scanner-report/source-25.txt +0 -142
- package/.scannerwork/scanner-report/source-28.txt +0 -244
- package/.scannerwork/scanner-report/source-31.txt +0 -35
- package/.scannerwork/scanner-report/source-34.txt +0 -131
- package/.scannerwork/scanner-report/source-40.txt +0 -509
- package/.scannerwork/scanner-report/source-45.txt +0 -418
- package/.scannerwork/scanner-report/source-47.txt +0 -175
- package/.scannerwork/scanner-report/source-49.txt +0 -190
- package/.scannerwork/scanner-report/source-69.txt +0 -509
- package/.scannerwork/scanner-report/symbols-25.pb +0 -116
- package/.scannerwork/scanner-report/symbols-26.pb +0 -112
- package/.scannerwork/scanner-report/symbols-28.pb +0 -394
- package/.scannerwork/scanner-report/symbols-31.pb +0 -17
- package/.scannerwork/scanner-report/symbols-34.pb +0 -97
- package/.scannerwork/scanner-report/symbols-45.pb +0 -610
- package/.scannerwork/scanner-report/symbols-49.pb +0 -180
- package/.scannerwork/scanner-report/syntax-highlightings-25.pb +0 -134
- package/.scannerwork/scanner-report/syntax-highlightings-28.pb +0 -329
- package/.scannerwork/scanner-report/syntax-highlightings-31.pb +0 -63
- package/.scannerwork/scanner-report/syntax-highlightings-34.pb +0 -182
- package/.scannerwork/scanner-report/syntax-highlightings-40.pb +0 -3747
- package/.scannerwork/scanner-report/syntax-highlightings-45.pb +0 -648
- package/.scannerwork/scanner-report/syntax-highlightings-47.pb +0 -214
- package/.scannerwork/scanner-report/syntax-highlightings-49.pb +0 -225
- package/.scannerwork/scanner-report/syntax-highlightings-69.pb +0 -3748
- /package/.scannerwork/scanner-report/{coverages-68.pb → coverages-15.pb} +0 -0
- /package/.scannerwork/scanner-report/{coverages-47.pb → coverages-4.pb} +0 -0
- /package/.scannerwork/scanner-report/{coverages-27.pb → coverages-51.pb} +0 -0
- /package/.scannerwork/scanner-report/{coverages-29.pb → coverages-53.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-25.pb → duplications-11.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-26.pb → duplications-12.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-27.pb → duplications-13.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-31.pb → duplications-14.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-45.pb → duplications-15.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-67.pb → duplications-16.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-68.pb → duplications-32.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-29.pb → duplications-53.pb} +0 -0
- /package/.scannerwork/scanner-report/{issues-33.pb → issues-35.pb} +0 -0
- /package/.scannerwork/scanner-report/{issues-25.pb → issues-36.pb} +0 -0
- /package/.scannerwork/scanner-report/{issues-28.pb → issues-39.pb} +0 -0
- /package/.scannerwork/scanner-report/{issues-21.pb → issues-60.pb} +0 -0
- /package/.scannerwork/scanner-report/{measures-50.pb → measures-10.pb} +0 -0
- /package/.scannerwork/scanner-report/{measures-29.pb → measures-53.pb} +0 -0
- /package/.scannerwork/scanner-report/{source-29.txt → source-53.txt} +0 -0
- /package/.scannerwork/scanner-report/{symbols-68.pb → symbols-15.pb} +0 -0
- /package/.scannerwork/scanner-report/{symbols-47.pb → symbols-4.pb} +0 -0
- /package/.scannerwork/scanner-report/{symbols-27.pb → symbols-51.pb} +0 -0
- /package/.scannerwork/scanner-report/{symbols-29.pb → symbols-53.pb} +0 -0
- /package/.scannerwork/scanner-report/{syntax-highlightings-29.pb → syntax-highlightings-53.pb} +0 -0
|
@@ -1,167 +1,167 @@
|
|
|
1
1
|
<testsuites name="test-iam">
|
|
2
|
-
<testsuite name="Basic backup and restore using API" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-
|
|
3
|
-
<testcase classname="test-iam.Basic backup and restore using API" name="should backup animaldb to a file correctly" time="1.
|
|
2
|
+
<testsuite name="Basic backup and restore using API" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-04T13:01:31" time="5.069">
|
|
3
|
+
<testcase classname="test-iam.Basic backup and restore using API" name="should backup animaldb to a file correctly" time="1.365">
|
|
4
4
|
<system-out><![CDATA[{ total: 15 }
|
|
5
5
|
]]></system-out>
|
|
6
6
|
</testcase>
|
|
7
|
-
<testcase classname="test-iam.Basic backup and restore using API" name="should restore animaldb to a database correctly" time="1.
|
|
7
|
+
<testcase classname="test-iam.Basic backup and restore using API" name="should restore animaldb to a database correctly" time="1.999">
|
|
8
8
|
<system-out><![CDATA[{ total: 15 }
|
|
9
9
|
]]></system-out>
|
|
10
10
|
</testcase>
|
|
11
|
-
<testcase classname="test-iam.Basic backup and restore using API" name="should execute a shallow mode backup successfully" time="0.
|
|
11
|
+
<testcase classname="test-iam.Basic backup and restore using API" name="should execute a shallow mode backup successfully" time="0.579">
|
|
12
12
|
<system-out><![CDATA[{ total: 11 }
|
|
13
13
|
]]></system-out>
|
|
14
14
|
</testcase>
|
|
15
15
|
</testsuite>
|
|
16
|
-
<testsuite name="Basic backup and restore using API Buffer size tests using API" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-
|
|
17
|
-
<testcase classname="test-iam.Basic backup and restore using API Buffer size tests using API" name="should backup/restore animaldb with the same buffer size" time="3.
|
|
16
|
+
<testsuite name="Basic backup and restore using API Buffer size tests using API" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-04T13:01:36" time="11.408">
|
|
17
|
+
<testcase classname="test-iam.Basic backup and restore using API Buffer size tests using API" name="should backup/restore animaldb with the same buffer size" time="3.72">
|
|
18
18
|
<system-out><![CDATA[{ total: 15 }
|
|
19
19
|
{ total: 15 }
|
|
20
20
|
]]></system-out>
|
|
21
21
|
</testcase>
|
|
22
|
-
<testcase classname="test-iam.Basic backup and restore using API Buffer size tests using API" name="should backup/restore animaldb with backup buffer > restore buffer" time="3.
|
|
22
|
+
<testcase classname="test-iam.Basic backup and restore using API Buffer size tests using API" name="should backup/restore animaldb with backup buffer > restore buffer" time="3.507">
|
|
23
23
|
<system-out><![CDATA[{ total: 15 }
|
|
24
24
|
{ total: 15 }
|
|
25
25
|
]]></system-out>
|
|
26
26
|
</testcase>
|
|
27
|
-
<testcase classname="test-iam.Basic backup and restore using API Buffer size tests using API" name="should backup/restore animaldb with backup buffer < restore buffer" time="3.
|
|
27
|
+
<testcase classname="test-iam.Basic backup and restore using API Buffer size tests using API" name="should backup/restore animaldb with backup buffer < restore buffer" time="3.409">
|
|
28
28
|
<system-out><![CDATA[{ total: 15 }
|
|
29
29
|
{ total: 15 }
|
|
30
30
|
]]></system-out>
|
|
31
31
|
</testcase>
|
|
32
32
|
</testsuite>
|
|
33
|
-
<testsuite name="Basic backup and restore using CLI" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-
|
|
34
|
-
<testcase classname="test-iam.Basic backup and restore using CLI" name="should backup animaldb to a file correctly" time="1.
|
|
33
|
+
<testsuite name="Basic backup and restore using CLI" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-04T13:01:48" time="5.348">
|
|
34
|
+
<testcase classname="test-iam.Basic backup and restore using CLI" name="should backup animaldb to a file correctly" time="1.262">
|
|
35
35
|
<system-out><![CDATA[Backup process close 0 null
|
|
36
36
|
]]></system-out>
|
|
37
37
|
</testcase>
|
|
38
|
-
<testcase classname="test-iam.Basic backup and restore using CLI" name="should restore animaldb to a database correctly" time="2.
|
|
38
|
+
<testcase classname="test-iam.Basic backup and restore using CLI" name="should restore animaldb to a database correctly" time="2.175">
|
|
39
39
|
</testcase>
|
|
40
|
-
<testcase classname="test-iam.Basic backup and restore using CLI" name="should execute a shallow mode backup successfully" time="1.
|
|
40
|
+
<testcase classname="test-iam.Basic backup and restore using CLI" name="should execute a shallow mode backup successfully" time="1.129">
|
|
41
41
|
<system-out><![CDATA[Backup process close 0 null
|
|
42
42
|
]]></system-out>
|
|
43
43
|
</testcase>
|
|
44
44
|
</testsuite>
|
|
45
|
-
<testsuite name="Basic backup and restore using CLI Buffer size tests using CLI" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-
|
|
46
|
-
<testcase classname="test-iam.Basic backup and restore using CLI Buffer size tests using CLI" name="should backup/restore animaldb with the same buffer size" time="4.
|
|
45
|
+
<testsuite name="Basic backup and restore using CLI Buffer size tests using CLI" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-04T13:01:53" time="13.923">
|
|
46
|
+
<testcase classname="test-iam.Basic backup and restore using CLI Buffer size tests using CLI" name="should backup/restore animaldb with the same buffer size" time="4.498">
|
|
47
47
|
<system-out><![CDATA[Backup process close 0 null
|
|
48
48
|
]]></system-out>
|
|
49
49
|
</testcase>
|
|
50
|
-
<testcase classname="test-iam.Basic backup and restore using CLI Buffer size tests using CLI" name="should backup/restore animaldb with backup buffer > restore buffer" time="4.
|
|
50
|
+
<testcase classname="test-iam.Basic backup and restore using CLI Buffer size tests using CLI" name="should backup/restore animaldb with backup buffer > restore buffer" time="4.271">
|
|
51
51
|
<system-out><![CDATA[Backup process close 0 null
|
|
52
52
|
]]></system-out>
|
|
53
53
|
</testcase>
|
|
54
|
-
<testcase classname="test-iam.Basic backup and restore using CLI Buffer size tests using CLI" name="should backup/restore animaldb with backup buffer < restore buffer" time="4.
|
|
54
|
+
<testcase classname="test-iam.Basic backup and restore using CLI Buffer size tests using CLI" name="should backup/restore animaldb with backup buffer < restore buffer" time="4.381">
|
|
55
55
|
<system-out><![CDATA[Backup process close 0 null
|
|
56
56
|
]]></system-out>
|
|
57
57
|
</testcase>
|
|
58
58
|
</testsuite>
|
|
59
|
-
<testsuite name="Compression tests using API" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-
|
|
60
|
-
<testcase classname="test-iam.Compression tests using API" name="should backup animaldb to a compressed file" time="0.
|
|
59
|
+
<testsuite name="Compression tests using API" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-04T13:02:07" time="6.411">
|
|
60
|
+
<testcase classname="test-iam.Compression tests using API" name="should backup animaldb to a compressed file" time="0.875">
|
|
61
61
|
<system-out><![CDATA[{ total: 15 }
|
|
62
62
|
]]></system-out>
|
|
63
63
|
</testcase>
|
|
64
|
-
<testcase classname="test-iam.Compression tests using API" name="should backup and restore animaldb via a compressed file" time="
|
|
64
|
+
<testcase classname="test-iam.Compression tests using API" name="should backup and restore animaldb via a compressed file" time="2.621">
|
|
65
65
|
<system-out><![CDATA[{ total: 15 }
|
|
66
66
|
{ total: 15 }
|
|
67
67
|
]]></system-out>
|
|
68
68
|
</testcase>
|
|
69
|
-
<testcase classname="test-iam.Compression tests using API" name="should backup and restore animaldb via a compressed stream" time="2.
|
|
69
|
+
<testcase classname="test-iam.Compression tests using API" name="should backup and restore animaldb via a compressed stream" time="2.143">
|
|
70
70
|
<system-out><![CDATA[{ total: 15 }
|
|
71
71
|
{ total: 15 }
|
|
72
72
|
]]></system-out>
|
|
73
73
|
</testcase>
|
|
74
74
|
</testsuite>
|
|
75
|
-
<testsuite name="Compression tests using CLI" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-
|
|
76
|
-
<testcase classname="test-iam.Compression tests using CLI" name="should backup animaldb to a compressed file" time="1.
|
|
75
|
+
<testsuite name="Compression tests using CLI" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-04T13:02:13" time="8.157">
|
|
76
|
+
<testcase classname="test-iam.Compression tests using CLI" name="should backup animaldb to a compressed file" time="1.239">
|
|
77
77
|
<system-out><![CDATA[Backup process close 0 null
|
|
78
78
|
]]></system-out>
|
|
79
79
|
</testcase>
|
|
80
|
-
<testcase classname="test-iam.Compression tests using CLI" name="should backup and restore animaldb via a compressed file" time="3.
|
|
80
|
+
<testcase classname="test-iam.Compression tests using CLI" name="should backup and restore animaldb via a compressed file" time="3.503">
|
|
81
81
|
<system-out><![CDATA[Backup process close 0 null
|
|
82
82
|
]]></system-out>
|
|
83
83
|
</testcase>
|
|
84
|
-
<testcase classname="test-iam.Compression tests using CLI" name="should backup and restore animaldb via a compressed stream" time="2.
|
|
84
|
+
<testcase classname="test-iam.Compression tests using CLI" name="should backup and restore animaldb via a compressed stream" time="2.64">
|
|
85
85
|
<system-out><![CDATA[Backup process close 0 null
|
|
86
86
|
]]></system-out>
|
|
87
87
|
</testcase>
|
|
88
88
|
</testsuite>
|
|
89
|
-
<testsuite name="End to end backup and restore using API" tests="2" errors="0" failures="0" skipped="0" timestamp="2023-05-
|
|
90
|
-
<testcase classname="test-iam.End to end backup and restore using API" name="should backup and restore animaldb" time="2.
|
|
89
|
+
<testsuite name="End to end backup and restore using API" tests="2" errors="0" failures="0" skipped="0" timestamp="2023-05-04T13:02:21" time="323.919">
|
|
90
|
+
<testcase classname="test-iam.End to end backup and restore using API" name="should backup and restore animaldb" time="2.133">
|
|
91
91
|
<system-out><![CDATA[{ total: 15 }
|
|
92
92
|
{ total: 15 }
|
|
93
93
|
]]></system-out>
|
|
94
94
|
</testcase>
|
|
95
|
-
<testcase classname="test-iam.End to end backup and restore using API" name="should backup and restore largedb1g #slow" time="
|
|
95
|
+
<testcase classname="test-iam.End to end backup and restore using API" name="should backup and restore largedb1g #slow" time="321.02">
|
|
96
96
|
<system-out><![CDATA[{ total: 522948 }
|
|
97
97
|
{ total: 522948 }
|
|
98
98
|
]]></system-out>
|
|
99
99
|
</testcase>
|
|
100
100
|
</testsuite>
|
|
101
|
-
<testsuite name="End to end backup and restore using CLI" tests="2" errors="0" failures="0" skipped="0" timestamp="2023-05-
|
|
102
|
-
<testcase classname="test-iam.End to end backup and restore using CLI" name="should backup and restore animaldb" time="2.
|
|
101
|
+
<testsuite name="End to end backup and restore using CLI" tests="2" errors="0" failures="0" skipped="0" timestamp="2023-05-04T13:07:45" time="524.017">
|
|
102
|
+
<testcase classname="test-iam.End to end backup and restore using CLI" name="should backup and restore animaldb" time="2.632">
|
|
103
103
|
<system-out><![CDATA[Backup process close 0 null
|
|
104
104
|
]]></system-out>
|
|
105
105
|
</testcase>
|
|
106
|
-
<testcase classname="test-iam.End to end backup and restore using CLI" name="should backup and restore largedb1g #slow" time="
|
|
106
|
+
<testcase classname="test-iam.End to end backup and restore using CLI" name="should backup and restore largedb1g #slow" time="520.611">
|
|
107
107
|
<system-out><![CDATA[Backup process close 0 null
|
|
108
108
|
]]></system-out>
|
|
109
109
|
</testcase>
|
|
110
110
|
</testsuite>
|
|
111
|
-
<testsuite name="Encryption tests" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-
|
|
112
|
-
<testcase classname="test-iam.Encryption tests" name="should backup and restore animaldb via an encrypted file" time="3.
|
|
111
|
+
<testsuite name="Encryption tests" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-04T13:16:29" time="4.025">
|
|
112
|
+
<testcase classname="test-iam.Encryption tests" name="should backup and restore animaldb via an encrypted file" time="3.765">
|
|
113
113
|
<system-out><![CDATA[Backup process close 0 null
|
|
114
114
|
]]></system-out>
|
|
115
115
|
</testcase>
|
|
116
116
|
</testsuite>
|
|
117
|
-
<testsuite name="Write error tests" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-
|
|
117
|
+
<testsuite name="Write error tests" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-04T13:16:33" time="0.265">
|
|
118
118
|
<testcase classname="test-iam.Write error tests" name="calls callback with error set when stream is not writeable" time="0.007">
|
|
119
119
|
</testcase>
|
|
120
120
|
</testsuite>
|
|
121
|
-
<testsuite name="Event tests" tests="2" errors="0" failures="0" skipped="0" timestamp="2023-05-
|
|
122
|
-
<testcase classname="test-iam.Event tests" name="should get a finished event when using stdout" time="0.
|
|
121
|
+
<testsuite name="Event tests" tests="2" errors="0" failures="0" skipped="0" timestamp="2023-05-04T13:16:34" time="2.379">
|
|
122
|
+
<testcase classname="test-iam.Event tests" name="should get a finished event when using stdout" time="0.964">
|
|
123
123
|
</testcase>
|
|
124
|
-
<testcase classname="test-iam.Event tests" name="should get a finished event when using file output" time="0.
|
|
124
|
+
<testcase classname="test-iam.Event tests" name="should get a finished event when using file output" time="0.891">
|
|
125
125
|
</testcase>
|
|
126
126
|
</testsuite>
|
|
127
|
-
<testsuite name="Resume tests using API" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-
|
|
128
|
-
<testcase classname="test-iam.Resume tests using API" name="should create a log file" time="0.
|
|
127
|
+
<testsuite name="Resume tests using API" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-04T13:16:36" time="5.024">
|
|
128
|
+
<testcase classname="test-iam.Resume tests using API" name="should create a log file" time="0.806">
|
|
129
129
|
<system-out><![CDATA[{ total: 15 }
|
|
130
130
|
]]></system-out>
|
|
131
131
|
</testcase>
|
|
132
|
-
<testcase classname="test-iam.Resume tests using API" name="should restore corrupted animaldb to a database correctly" time="1.
|
|
132
|
+
<testcase classname="test-iam.Resume tests using API" name="should restore corrupted animaldb to a database correctly" time="1.728">
|
|
133
133
|
<system-out><![CDATA[{ total: 15 }
|
|
134
134
|
]]></system-out>
|
|
135
135
|
</testcase>
|
|
136
|
-
<testcase classname="test-iam.Resume tests using API" name="should restore resumed animaldb with blank line to a database correctly" time="1.
|
|
136
|
+
<testcase classname="test-iam.Resume tests using API" name="should restore resumed animaldb with blank line to a database correctly" time="1.716">
|
|
137
137
|
<system-out><![CDATA[{ total: 15 }
|
|
138
138
|
]]></system-out>
|
|
139
139
|
</testcase>
|
|
140
140
|
</testsuite>
|
|
141
|
-
<testsuite name="Resume tests using CLI" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-
|
|
142
|
-
<testcase classname="test-iam.Resume tests using CLI" name="should create a log file" time="1.
|
|
141
|
+
<testsuite name="Resume tests using CLI" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-04T13:16:41" time="6.411">
|
|
142
|
+
<testcase classname="test-iam.Resume tests using CLI" name="should create a log file" time="1.225">
|
|
143
143
|
<system-out><![CDATA[Backup process close 0 null
|
|
144
144
|
]]></system-out>
|
|
145
145
|
</testcase>
|
|
146
|
-
<testcase classname="test-iam.Resume tests using CLI" name="should restore corrupted animaldb to a database correctly" time="2.
|
|
146
|
+
<testcase classname="test-iam.Resume tests using CLI" name="should restore corrupted animaldb to a database correctly" time="2.306">
|
|
147
147
|
</testcase>
|
|
148
|
-
<testcase classname="test-iam.Resume tests using CLI" name="should restore resumed animaldb with blank line to a database correctly" time="2.
|
|
148
|
+
<testcase classname="test-iam.Resume tests using CLI" name="should restore resumed animaldb with blank line to a database correctly" time="2.107">
|
|
149
149
|
</testcase>
|
|
150
150
|
</testsuite>
|
|
151
|
-
<testsuite name="Resume tests" tests="2" errors="0" failures="0" skipped="0" timestamp="2023-05-
|
|
152
|
-
<testcase classname="test-iam.Resume tests" name="should correctly backup and restore backup10m" time="16.
|
|
151
|
+
<testsuite name="Resume tests" tests="2" errors="0" failures="0" skipped="0" timestamp="2023-05-04T13:16:48" time="33.327">
|
|
152
|
+
<testcase classname="test-iam.Resume tests" name="should correctly backup and restore backup10m" time="16.157">
|
|
153
153
|
<system-out><![CDATA[Backup process close null SIGTERM
|
|
154
154
|
Backup process close 0 null
|
|
155
155
|
]]></system-out>
|
|
156
156
|
</testcase>
|
|
157
|
-
<testcase classname="test-iam.Resume tests" name="should correctly backup and restore backup10m using --output" time="16.
|
|
157
|
+
<testcase classname="test-iam.Resume tests" name="should correctly backup and restore backup10m using --output" time="16.651">
|
|
158
158
|
<system-out><![CDATA[Backup process close null SIGTERM
|
|
159
159
|
Backup process close 0 null
|
|
160
160
|
]]></system-out>
|
|
161
161
|
</testcase>
|
|
162
162
|
</testsuite>
|
|
163
|
-
<testsuite name="Longer spool changes checks" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-
|
|
164
|
-
<testcase classname="test-iam.Longer spool changes checks" name="#slow should keep collecting changes (25M)" time="
|
|
163
|
+
<testsuite name="Longer spool changes checks" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-04T13:17:21" time="47.244">
|
|
164
|
+
<testcase classname="test-iam.Longer spool changes checks" name="#slow should keep collecting changes (25M)" time="46.979">
|
|
165
165
|
</testcase>
|
|
166
166
|
</testsuite>
|
|
167
167
|
</testsuites>
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
// Copyright © 2017, 2021 IBM Corp. All rights reserved.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
'use strict';
|
|
15
|
+
|
|
16
|
+
const path = require('path');
|
|
17
|
+
const tmp = require('tmp');
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
Return API default settings.
|
|
21
|
+
*/
|
|
22
|
+
function apiDefaults() {
|
|
23
|
+
return {
|
|
24
|
+
parallelism: 5,
|
|
25
|
+
bufferSize: 500,
|
|
26
|
+
requestTimeout: 120000,
|
|
27
|
+
log: tmp.tmpNameSync(),
|
|
28
|
+
resume: false,
|
|
29
|
+
mode: 'full'
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
Return CLI default settings.
|
|
35
|
+
*/
|
|
36
|
+
function cliDefaults() {
|
|
37
|
+
const defaults = apiDefaults();
|
|
38
|
+
|
|
39
|
+
// add additional legacy settings
|
|
40
|
+
defaults.db = 'test';
|
|
41
|
+
defaults.url = 'http://localhost:5984';
|
|
42
|
+
|
|
43
|
+
// add CLI only option
|
|
44
|
+
defaults.quiet = false;
|
|
45
|
+
|
|
46
|
+
return defaults;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
Override settings **in-place** with environment variables.
|
|
51
|
+
*/
|
|
52
|
+
function applyEnvironmentVariables(opts) {
|
|
53
|
+
// if we have a custom CouchDB url
|
|
54
|
+
if (typeof process.env.COUCH_URL !== 'undefined') {
|
|
55
|
+
opts.url = process.env.COUCH_URL;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// if we have a specified databases
|
|
59
|
+
if (typeof process.env.COUCH_DATABASE !== 'undefined') {
|
|
60
|
+
opts.db = process.env.COUCH_DATABASE;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// if we have a specified buffer size
|
|
64
|
+
if (typeof process.env.COUCH_BUFFER_SIZE !== 'undefined') {
|
|
65
|
+
opts.bufferSize = parseInt(process.env.COUCH_BUFFER_SIZE);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// if we have a specified parallelism
|
|
69
|
+
if (typeof process.env.COUCH_PARALLELISM !== 'undefined') {
|
|
70
|
+
opts.parallelism = parseInt(process.env.COUCH_PARALLELISM);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// if we have a specified request timeout
|
|
74
|
+
if (typeof process.env.COUCH_REQUEST_TIMEOUT !== 'undefined') {
|
|
75
|
+
opts.requestTimeout = parseInt(process.env.COUCH_REQUEST_TIMEOUT);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// if we have a specified log file
|
|
79
|
+
if (typeof process.env.COUCH_LOG !== 'undefined') {
|
|
80
|
+
opts.log = path.normalize(process.env.COUCH_LOG);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// if we are instructed to resume
|
|
84
|
+
if (typeof process.env.COUCH_RESUME !== 'undefined' && process.env.COUCH_RESUME === 'true') {
|
|
85
|
+
opts.resume = true;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// if we are given an output filename
|
|
89
|
+
if (typeof process.env.COUCH_OUTPUT !== 'undefined') {
|
|
90
|
+
opts.output = path.normalize(process.env.COUCH_OUTPUT);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// if we only want a shallow copy
|
|
94
|
+
if (typeof process.env.COUCH_MODE !== 'undefined' && process.env.COUCH_MODE === 'shallow') {
|
|
95
|
+
opts.mode = 'shallow';
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// if we are instructed to be quiet
|
|
99
|
+
if (typeof process.env.COUCH_QUIET !== 'undefined' && process.env.COUCH_QUIET === 'true') {
|
|
100
|
+
opts.quiet = true;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// if we have a specified API key
|
|
104
|
+
if (typeof process.env.CLOUDANT_IAM_API_KEY !== 'undefined') {
|
|
105
|
+
opts.iamApiKey = process.env.CLOUDANT_IAM_API_KEY;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// if we have a specified IAM token endpoint
|
|
109
|
+
if (typeof process.env.CLOUDANT_IAM_TOKEN_URL !== 'undefined') {
|
|
110
|
+
opts.iamTokenUrl = process.env.CLOUDANT_IAM_TOKEN_URL;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
module.exports = {
|
|
115
|
+
apiDefaults: apiDefaults,
|
|
116
|
+
cliDefaults: cliDefaults,
|
|
117
|
+
applyEnvironmentVariables: applyEnvironmentVariables
|
|
118
|
+
};
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
// Copyright © 2017, 2021 IBM Corp. All rights reserved.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
'use strict';
|
|
15
|
+
|
|
16
|
+
const async = require('async');
|
|
17
|
+
const stream = require('stream');
|
|
18
|
+
const error = require('./error.js');
|
|
19
|
+
const debug = require('debug')('couchbackup:writer');
|
|
20
|
+
|
|
21
|
+
module.exports = function(db, bufferSize, parallelism, ee) {
|
|
22
|
+
const writer = new stream.Transform({ objectMode: true });
|
|
23
|
+
let buffer = [];
|
|
24
|
+
let written = 0;
|
|
25
|
+
let linenumber = 0;
|
|
26
|
+
|
|
27
|
+
// this is the queue of chunks that are written to the database
|
|
28
|
+
// the queue's payload will be an array of documents to be written,
|
|
29
|
+
// the size of the array will be bufferSize. The variable parallelism
|
|
30
|
+
// determines how many HTTP requests will occur at any one time.
|
|
31
|
+
const q = async.queue(function(payload, cb) {
|
|
32
|
+
// if we are restoring known revisions, we need to supply new_edits=false
|
|
33
|
+
if (payload.docs && payload.docs[0] && payload.docs[0]._rev) {
|
|
34
|
+
payload.new_edits = false;
|
|
35
|
+
debug('Using new_edits false mode.');
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if (!didError) {
|
|
39
|
+
db.service.postBulkDocs({
|
|
40
|
+
db: db.db,
|
|
41
|
+
bulkDocs: payload
|
|
42
|
+
}).then(response => {
|
|
43
|
+
if (!response.result || (payload.new_edits === false && response.result.length > 0)) {
|
|
44
|
+
throw new Error(`Error writing batch with new_edits:${payload.new_edits !== false}` +
|
|
45
|
+
` and ${response.result ? response.result.length : 'unavailable'} items`);
|
|
46
|
+
}
|
|
47
|
+
written += payload.docs.length;
|
|
48
|
+
writer.emit('restored', { documents: payload.docs.length, total: written });
|
|
49
|
+
cb();
|
|
50
|
+
}).catch(err => {
|
|
51
|
+
err = error.convertResponseError(err);
|
|
52
|
+
debug(`Error writing docs ${err.name} ${err.message}`);
|
|
53
|
+
cb(err, payload);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}, parallelism);
|
|
57
|
+
|
|
58
|
+
let didError = false;
|
|
59
|
+
|
|
60
|
+
// write the contents of the buffer to CouchDB in blocks of bufferSize
|
|
61
|
+
function processBuffer(flush, callback) {
|
|
62
|
+
function taskCallback(err, payload) {
|
|
63
|
+
if (err && !didError) {
|
|
64
|
+
debug(`Queue task failed with error ${err.name}`);
|
|
65
|
+
didError = true;
|
|
66
|
+
q.kill();
|
|
67
|
+
writer.emit('error', err);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (flush || buffer.length >= bufferSize) {
|
|
72
|
+
// work through the buffer to break off bufferSize chunks
|
|
73
|
+
// and feed the chunks to the queue
|
|
74
|
+
do {
|
|
75
|
+
// split the buffer into bufferSize chunks
|
|
76
|
+
const toSend = buffer.splice(0, bufferSize);
|
|
77
|
+
|
|
78
|
+
// and add the chunk to the queue
|
|
79
|
+
debug(`Adding ${toSend.length} to the write queue.`);
|
|
80
|
+
q.push({ docs: toSend }, taskCallback);
|
|
81
|
+
} while (buffer.length >= bufferSize);
|
|
82
|
+
|
|
83
|
+
// send any leftover documents to the queue
|
|
84
|
+
if (flush && buffer.length > 0) {
|
|
85
|
+
debug(`Adding remaining ${buffer.length} to the write queue.`);
|
|
86
|
+
q.push({ docs: buffer }, taskCallback);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// wait until the queue size falls to a reasonable level
|
|
90
|
+
async.until(
|
|
91
|
+
// wait until the queue length drops to twice the paralellism
|
|
92
|
+
// or until empty on the last write
|
|
93
|
+
function(callback) {
|
|
94
|
+
// if we encountered an error, stop this until loop
|
|
95
|
+
if (didError) {
|
|
96
|
+
return callback(null, true);
|
|
97
|
+
}
|
|
98
|
+
if (flush) {
|
|
99
|
+
callback(null, q.idle() && q.length() === 0);
|
|
100
|
+
} else {
|
|
101
|
+
callback(null, q.length() <= parallelism * 2);
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
function(cb) {
|
|
105
|
+
setTimeout(cb, 20);
|
|
106
|
+
},
|
|
107
|
+
|
|
108
|
+
function() {
|
|
109
|
+
if (flush && !didError) {
|
|
110
|
+
writer.emit('finished', { total: written });
|
|
111
|
+
}
|
|
112
|
+
// callback when we're happy with the queue size
|
|
113
|
+
callback();
|
|
114
|
+
});
|
|
115
|
+
} else {
|
|
116
|
+
callback();
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// take an object
|
|
121
|
+
writer._transform = function(obj, encoding, done) {
|
|
122
|
+
// each obj that arrives here is a line from the backup file
|
|
123
|
+
// it should contain an array of objects. The length of the array
|
|
124
|
+
// depends on the bufferSize at backup time.
|
|
125
|
+
linenumber++;
|
|
126
|
+
if (!didError && obj !== '') {
|
|
127
|
+
// see if it parses as JSON
|
|
128
|
+
try {
|
|
129
|
+
const arr = JSON.parse(obj);
|
|
130
|
+
|
|
131
|
+
// if it's an array with a length
|
|
132
|
+
if (typeof arr === 'object' && arr.length > 0) {
|
|
133
|
+
// push each document into a buffer
|
|
134
|
+
buffer = buffer.concat(arr);
|
|
135
|
+
|
|
136
|
+
// pause the stream
|
|
137
|
+
// it's likely that the speed with which data can be read from disk
|
|
138
|
+
// may exceed the rate it can be written to CouchDB. To prevent
|
|
139
|
+
// the whole file being buffered in memory, we pause the stream here.
|
|
140
|
+
// it is resumed, when processBuffer calls back and we call done()
|
|
141
|
+
this.pause();
|
|
142
|
+
|
|
143
|
+
// break the buffer in to bufferSize chunks to be written to the database
|
|
144
|
+
processBuffer(false, done);
|
|
145
|
+
} else {
|
|
146
|
+
ee.emit('error', new error.BackupError('BackupFileJsonError', `Error on line ${linenumber} of backup file - not an array`));
|
|
147
|
+
done();
|
|
148
|
+
}
|
|
149
|
+
} catch (e) {
|
|
150
|
+
ee.emit('error', new error.BackupError('BackupFileJsonError', `Error on line ${linenumber} of backup file - cannot parse as JSON`));
|
|
151
|
+
// Could be an incomplete write that was subsequently resumed
|
|
152
|
+
done();
|
|
153
|
+
}
|
|
154
|
+
} else {
|
|
155
|
+
done();
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
// called when we need to flush everything
|
|
160
|
+
writer._flush = function(done) {
|
|
161
|
+
processBuffer(true, done);
|
|
162
|
+
};
|
|
163
|
+
return writer;
|
|
164
|
+
};
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
// Copyright © 2017, 2021 IBM Corp. All rights reserved.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
'use strict';
|
|
15
|
+
|
|
16
|
+
// fatal errors
|
|
17
|
+
const codes = {
|
|
18
|
+
Error: 1,
|
|
19
|
+
InvalidOption: 2,
|
|
20
|
+
DatabaseNotFound: 10,
|
|
21
|
+
Unauthorized: 11,
|
|
22
|
+
Forbidden: 12,
|
|
23
|
+
DatabaseNotEmpty: 13,
|
|
24
|
+
NoLogFileName: 20,
|
|
25
|
+
LogDoesNotExist: 21,
|
|
26
|
+
IncompleteChangesInLogFile: 22,
|
|
27
|
+
SpoolChangesError: 30,
|
|
28
|
+
HTTPFatalError: 40,
|
|
29
|
+
BulkGetError: 50
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
class BackupError extends Error {
|
|
33
|
+
constructor(name, message) {
|
|
34
|
+
super(message);
|
|
35
|
+
this.name = name;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
class HTTPError extends BackupError {
|
|
40
|
+
constructor(responseError, name) {
|
|
41
|
+
// Special case some names for more useful error messages
|
|
42
|
+
switch (responseError.status) {
|
|
43
|
+
case 401:
|
|
44
|
+
name = 'Unauthorized';
|
|
45
|
+
break;
|
|
46
|
+
case 403:
|
|
47
|
+
name = 'Forbidden';
|
|
48
|
+
break;
|
|
49
|
+
default:
|
|
50
|
+
name = name || 'HTTPFatalError';
|
|
51
|
+
}
|
|
52
|
+
super(name, responseError.message);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Default function to return an error for HTTP status codes
|
|
57
|
+
// < 400 -> OK
|
|
58
|
+
// 4XX (except 429) -> Fatal
|
|
59
|
+
// 429 & >=500 -> Transient
|
|
60
|
+
function checkResponse(err) {
|
|
61
|
+
if (err) {
|
|
62
|
+
// Construct an HTTPError if there is request information on the error
|
|
63
|
+
// Codes < 400 are considered OK
|
|
64
|
+
if (err.status >= 400) {
|
|
65
|
+
return new HTTPError(err);
|
|
66
|
+
} else {
|
|
67
|
+
// Send it back again if there was no status code, e.g. a cxn error
|
|
68
|
+
return augmentMessage(err);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function convertResponseError(responseError, errorFactory) {
|
|
74
|
+
if (!errorFactory) {
|
|
75
|
+
errorFactory = checkResponse;
|
|
76
|
+
}
|
|
77
|
+
return errorFactory(responseError);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function augmentMessage(err) {
|
|
81
|
+
// For errors that don't have a status code, we are likely looking at a cxn
|
|
82
|
+
// error.
|
|
83
|
+
// Try to augment the message with more detail (core puts the code in statusText)
|
|
84
|
+
if (err && err.statusText) {
|
|
85
|
+
err.message = `${err.message} ${err.statusText}`;
|
|
86
|
+
}
|
|
87
|
+
if (err && err.description) {
|
|
88
|
+
err.message = `${err.message} ${err.description}`;
|
|
89
|
+
}
|
|
90
|
+
return err;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
module.exports = {
|
|
94
|
+
BackupError: BackupError,
|
|
95
|
+
HTTPError: HTTPError,
|
|
96
|
+
convertResponseError: convertResponseError,
|
|
97
|
+
terminationCallback: function terminationCallback(err, data) {
|
|
98
|
+
if (err) {
|
|
99
|
+
console.error(`ERROR: ${err.message}`);
|
|
100
|
+
process.exitCode = codes[err.name] || 1;
|
|
101
|
+
process.exit();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
};
|