1
0
mirror of https://git.cloudron.io/cloudron/minio-app synced 2025-09-13 16:29:13 +00:00

Compare commits

...

35 Commits

Author SHA1 Message Date
Girish Ramakrishnan
37157e6538 Version 3.8.0 2023-09-01 07:38:33 +05:30
Girish Ramakrishnan
38e110edc7 Update minio to 2023-08-31T15-31-16Z 2023-09-01 07:00:00 +05:30
Girish Ramakrishnan
758b98fc20 Version 3.7.5 2023-08-30 15:33:14 +05:30
Girish Ramakrishnan
b92644ffdd Update minio to 2023-08-29T23-07-35Z 2023-08-30 13:19:40 +05:30
Girish Ramakrishnan
3b9e31f363 Version 3.7.4 2023-08-24 13:15:00 +05:30
Girish Ramakrishnan
17d5977c74 Update minio to 2023-08-23T10-07-06Z 2023-08-24 12:23:05 +05:30
Girish Ramakrishnan
d898eba22e Version 3.7.3 2023-08-17 08:37:34 +05:30
Girish Ramakrishnan
9c6a787df9 Update minio to 2023-08-16T20-17-30Z 2023-08-17 08:15:31 +05:30
Girish Ramakrishnan
9f4fc4c2f2 Version 3.7.2 2023-08-10 10:39:45 +05:30
Girish Ramakrishnan
2f271c7db9 Update minio to 2023-08-09T23-30-22Z 2023-08-10 06:21:16 +05:30
Girish Ramakrishnan
30f7bbf53b Version 3.7.1 2023-08-07 07:50:36 +05:30
Girish Ramakrishnan
b246112d3f Update minio to 2023-08-04T17-40-21Z 2023-08-07 07:26:20 +05:30
Girish Ramakrishnan
986df393a1 Version 3.7.0 2023-07-22 08:23:40 +05:30
Girish Ramakrishnan
d5b3bd9c2f Update minio to 2023-07-21T21-12-44Z 2023-07-22 07:43:24 +05:30
Girish Ramakrishnan
c1ce6031f7 Version 3.6.3 2023-07-19 08:32:46 +05:30
Girish Ramakrishnan
9c5f6b5636 Update minio to 2023-07-18T17-49-40Z 2023-07-19 08:08:43 +05:30
Girish Ramakrishnan
7fa5fa0427 Version 3.6.2 2023-07-12 09:05:00 +05:30
Girish Ramakrishnan
55711af940 Update minio to 2023-07-11T21-29-34Z 2023-07-12 08:37:01 +05:30
Girish Ramakrishnan
7a3ee2504f Version 3.6.1 2023-07-07 16:11:56 +05:30
Girish Ramakrishnan
c2388d2710 Update minio to 2023-07-07T07-13-57Z 2023-07-07 15:44:46 +05:30
Girish Ramakrishnan
81186e53f4 Version 3.6.0 2023-06-29 16:46:29 +05:30
Girish Ramakrishnan
f37fd6a660 Update minio to 2023-06-29T05-12-28Z 2023-06-29 16:29:10 +05:30
Girish Ramakrishnan
365254e971 Version 3.5.6 2023-06-25 15:14:58 +05:30
Girish Ramakrishnan
665851a84a Update minio to RELEASE.2023-06-23T20-26-00Z 2023-06-25 15:02:47 +05:30
Girish Ramakrishnan
a625014aeb Version 3.5.5 2023-06-20 12:18:30 +05:30
Girish Ramakrishnan
25ff8b66f6 Update minio to 2023-06-19T19-52-50Z 2023-06-20 11:27:41 +05:30
Girish Ramakrishnan
2fbefac3a9 Version 3.5.4 2023-06-16 17:29:29 +05:30
Girish Ramakrishnan
2bbf11f795 Fix test 2023-06-16 17:25:23 +05:30
Girish Ramakrishnan
ca3aebef4a Update minio to 2023-06-16T02-41-06Z 2023-06-16 16:34:49 +05:30
Girish Ramakrishnan
effb90c2ac Version 3.5.3 2023-06-10 12:07:15 +05:30
Girish Ramakrishnan
e8972242ca Update test packages 2023-06-10 12:05:56 +05:30
Girish Ramakrishnan
e84ef0cddf Update minio to RELEASE.2023-06-09T07-32-12Z 2023-06-10 12:00:09 +05:30
Girish Ramakrishnan
594b45051d Version 3.5.2 2023-06-03 10:26:25 +02:00
Girish Ramakrishnan
ed8e041180 Update tests 2023-06-03 10:26:21 +02:00
Girish Ramakrishnan
f9c0870c59 Update minio to 2023-06-02T23-17-26Z 2023-06-03 09:48:02 +02:00
6 changed files with 206 additions and 70 deletions

154
CHANGELOG
View File

@@ -1813,3 +1813,157 @@ Improve replication performance. See (#12080, #12054, #12009) for more details.
* Add object parity in listing V2M and listing versions M by @vadmeste in #17238 * Add object parity in listing V2M and listing versions M by @vadmeste in #17238
* allow specification of path/virtual style bucket lookup in batch replication by @poornas in #17201 * allow specification of path/virtual style bucket lookup in batch replication by @poornas in #17201
* fix: Avoid Income globalStats twice upon error by @jiuker in #17263 * fix: Avoid Income globalStats twice upon error by @jiuker in #17263
[3.5.2]
* Update minio to 2023-06-02T23-17-26Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2023-06-02T23-17-26Z)
* fix: on windows use FindClose close handler by @jiuker in #17306
* fix: cleanup empty multipart folders upon stale upload cleanup by @harshavardhana in #17312
* Revert s3 select simdjson reuse by @klauspost in #17310
* record err time when remote node is offline by @jiuker in #17262
* fix: proxy not set on subnet logger webhook sometimes by @anjalshireesh in #17320
* fix: time() returned function not being called as expected in globalSync() by @drivebyer in #17319
* fix: fail large content in DeleteMultipleObjects() early by @jiuker in #17321
[3.5.3]
* Update minio to 2023-06-09T07-32-12Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2023-06-09T07-32-12Z)
* fix: expMovingAvg is too small when startTime is zero by @jiuker in #17346
* log: Add a log when saving pool.bin fails by @vadmeste in #17338
* goroutines parser: Add --less flag to filter goroutines by @vadmeste in #17339
* only allow decryption of etag for only sse-s3 by @harshavardhana in #17335
* allow quota enforcement to rely on older values by @harshavardhana in #17351
[3.5.4]
* Update minio to 2023-06-16T02-41-06Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2023-06-16T02-41-06Z)
* return InvalidRequest when no parts are provided by @harshavardhana in #17395
* service accounts are allowed to have no expiration by @harshavardhana in #17397
* return 204 status code for DeleteBucketTagging by @harshavardhana in #17400
* listen: Only error out if not able to bind any interface by @vadmeste in #17353
* fix: protect ReplicationStats against concurrent map iteration and write crash by @klauspost in #17403
[3.5.5]
* Update minio to 2023-06-19T19-52-50Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2023-06-19T19-52-50Z)
* replication: Ensure metadata updates go to same pool where version ex… by @poornas in #17451
* upgrade pkg and dperf to latest packages by @harshavardhana in #17448
* fallback on etags if they match when mtime is not same by @harshavardhana in #17424
* event args list for fanOut notification must be sized same by @harshavardhana in #17450
* rebalance: Fix a integer divide by zero crash during state update by @vadmeste in #17455
[3.5.6]
* Update minio to 2023-06-23T20-26-00Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2023-06-23T20-26-00Z)
* Bump up madmin-go and pkg deps by @donatello in #17469
* safely ignore out of band deletions while decommissioning by @harshavardhana in #17473
* fix: replication check for duplicate endpoints detection with wrong route by @jiuker in #17474
* fix: do not crash rebalance code instead set the object layer by @harshavardhana in #17465
* skip onlineDisks with parity mismatch by @harshavardhana in #17478
* Add an option to make bucket notifications synchronous by @Praveenrajmani in #17406
* always look for expired versions v/s remaining versions by @harshavardhana in #17479
[3.6.0]
* Update minio to 2023-06-29T05-12-28Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2023-06-29T05-12-28Z)
* fix: do not listAndHeal() inline with PutObject() by @harshavardhana in #17499
* Print certain log messages once per error by @kaankabalak in #17484
* chore: pkg imported more than once by @testwill in #17444
* update all our deps by @harshavardhana in #17497
* Capture realtime metrics in health report by @anjalshireesh in #17516
* allow site-replication checks to work on non-distributed setups by @harshavardhana in #17524
* fix: bug in passing Versioned field set for getHealReplicationInfo() by @harshavardhana in #17498
[3.6.1]
* Update minio to 2023-07-07T07-13-57Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2023-07-07T07-13-57Z)
* fix: OpenID config initialization by @donatello in #17544
* fix: service account list for root user by @donatello in #17547
* fix: for FTP server driver allow implicit trust TLS by @harshavardhana in #17541
* s3: Fix a typo in per pool make/delete bucket errs calculation by @vadmeste in #17553
* fix: honor older scanner settings only if newer has not changed by @harshavardhana in #17564
* fix: upon DNS refresh() failure use previous values by @harshavardhana in #17561
* fix: create user without policy that is required by @jiuker in #17554
* fix: under FanOut API avoid repeated md5sum calculation by @harshavardhana in #17572
[3.6.2]
* Update minio to 2023-07-11T21-29-34Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2023-07-11T21-29-34Z)
* add variadic delays in peer notification retries by @harshavardhana in #17592
* Fix helm templating syntax in post-job by @aztechian in #17600
* Avoid per request URL parsing by @klauspost in #17593
* fix: set request ID in tracing context key by @donatello in #17602
* prometheus: Fix internode stats by @vadmeste in #17594
[3.6.3]
* Update minio to 2023-07-18T17-49-40Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2023-07-18T17-49-40Z)
* treat 0-byte objects to honor same quorum as delete marker by @harshavardhana in #17633
* fix: do not os.Exit(1) while writing goroutines during shutdown by @harshavardhana in #17640
* Corrected the API name for audit logging purpose by @shtripat in #17642
* chore: fix minor issues reported via staticcheck by @testwill in #17639
* Added endpoint and versions attributes to KMS details by @shtripat in #17350
* replication: Simplify mrf requeueing and add backlog handler by @poornas in #17171
* Use os.ReadFile instead of ioutil.ReadFile by @anjalshireesh in #17649
[3.7.0]
* Update minio to 2023-07-21T21-12-44Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2023-07-21T21-12-44Z)
* pick internode interface properly via globalLocalNodeName by @harshavardhana in #17680
* move bucket centric metrics to /minio/v2/metrics/bucket handlers by @harshavardhana in #17663
* fix: byHost realTime metrics API by @jiuker in #17681
* update grafana dashboard JSON with the new metrics by @harshavardhana in #17683
* fix: retry listing in decommissioning if it fails perpetually by @harshavardhana in #17682
* info: Report correct pool/set/disk indexes for offline disks by @vadmeste in #17695
* Add deletemarker_total metric by @krisis in #17689
[3.7.1]
* Update minio to 2023-08-04T17-40-21Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2023-08-04T17-40-21Z)
* return tags as part of Head/Get calls by @harshavardhana in #17635
* don't error when asked for 0-based range on empty objects by @flisk in #17708
* Revert "don't error when asked for 0-based range on empty objects (#17708) by @klauspost in #17713
* fix: Create metrics slice when necessary in getCacheMetrics() by @drivebyer in #17711
[3.7.2]
* Update minio to 2023-08-09T23-30-22Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2023-08-09T23-30-22Z)
* fix: batch replication pull must preserve versionID by @harshavardhana in #17805
* Ensure tracking 499 for canceled list objects v1, v2, versions calls by @vadmeste in #17804
* replication: set context timeout for NewMultipartUpload calls by @poornas in #17807
* batch: Strict unmarshal yaml document to avoid user made typos by @vadmeste in #17808
* fix: do not use PrefixEnabled() logic to ignore valid objects by @harshavardhana in #17677
[3.7.3]
* Update minio to 2023-08-16T20-17-30Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2023-08-16T20-17-30Z)
* Prometheus metrics for `cluster_disk_offline_total` has been renamed to `cluster_drive_offline_total`
* You may setup additional alerts on this to look for slow drives that timeout often, and also drives that return I/O errors at various intervals.
* ListObjects() continuation had a bug where in the continuation token would be ignored leading to expensive list operations when there are single prefixes with millions of objects.
[3.7.4]
* Update minio to 2023-08-23T10-07-06Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2023-08-23T10-07-06Z)
* fix: validate incoming uploadID to be base64 encoded by @harshavardhana in #17865
* do not log client canceled events by @harshavardhana in #17838
* if object is a delete marker it must skip tags filter in ILM by @harshavardhana in #17861
* ilm: Fix cleaning non current null versions by @vadmeste in #17876
* update minio/kes-go dep to v0.2.0 by @aead in #17850
* fix: replace req context by locker context by @jiuker in #17880
[3.7.5]
* Update minio to 2023-08-29T23-07-35Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2023-08-29T23-07-35Z)
* mark replication target offline if network timeouts seen by @poornas in #17907
* Retain current and upto NewerNoncurrentVersions versions by @krisis in #17909
* add missing IAM node metrics to cluster and node endpoint by @harshavardhana in #17908
* remove mTime requirement from pre-condition checks by @harshavardhana in #17916
* remove strict persistence requirements for List() .metacache objects by @harshavardhana in #17917
* fix: replace context by timeout-context from parent-context when selfSpeedTest by @jiuker in #17906
[3.8.0]
* Update minio to 2023-08-31T15-31-16Z
* [Changelog](https://github.com/minio/minio/releases/tag/RELEASE.2023-08-31T15-31-16Z)
* A major refactor of Replication metrics now provides detailed list of metrics for monitoring, alerts.
* New dashboards are introduced specifically for monitoring replication traffic between sites https://github.com/minio/minio/tree/master/docs/metrics/prometheus/grafana

View File

@@ -5,8 +5,8 @@
"description": "file://DESCRIPTION.md", "description": "file://DESCRIPTION.md",
"changelog": "file://CHANGELOG", "changelog": "file://CHANGELOG",
"tagline": "Distributed object storage", "tagline": "Distributed object storage",
"version": "3.5.1", "version": "3.8.0",
"upstreamVersion": "2023-05-27T05-56-19Z", "upstreamVersion": "2023-08-31T15-31-16Z",
"healthCheckPath": "/minio/login", "healthCheckPath": "/minio/login",
"memoryLimit": 805306368, "memoryLimit": 805306368,
"httpPort": 8000, "httpPort": 8000,

View File

@@ -3,7 +3,7 @@ FROM cloudron/base:4.0.0@sha256:31b195ed0662bdb06a6e8a5ddbedb6f191ce92e8bee04c03
RUN mkdir -p /app/code RUN mkdir -p /app/code
WORKDIR /app/code WORKDIR /app/code
ARG VERSION=RELEASE.2023-05-27T05-56-19Z ARG VERSION=RELEASE.2023-08-31T15-31-16Z
# sometimes here https://dl.min.io/server/minio/release/linux-amd64/archive/ # sometimes here https://dl.min.io/server/minio/release/linux-amd64/archive/
# RUN wget https://dl.min.io/server/minio/release/linux-amd64/minio.${VERSION} -O /app/code/minio && chmod +x /app/code/minio # RUN wget https://dl.min.io/server/minio/release/linux-amd64/minio.${VERSION} -O /app/code/minio && chmod +x /app/code/minio

91
test/package-lock.json generated
View File

@@ -9,12 +9,11 @@
"version": "1.0.0", "version": "1.0.0",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"chromedriver": "^112.0.1", "chromedriver": "^116.0.0",
"delay": "^5.0.0",
"expect.js": "^0.3.1", "expect.js": "^0.3.1",
"mocha": "^10.2.0", "mocha": "^10.2.0",
"selenium-webdriver": "^4.9.0", "selenium-webdriver": "^4.12.0",
"superagent": "^8.0.9" "superagent": "^8.1.2"
} }
}, },
"node_modules/@testim/chrome-version": { "node_modules/@testim/chrome-version": {
@@ -98,9 +97,9 @@
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
}, },
"node_modules/axios": { "node_modules/axios": {
"version": "1.2.2", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.2.2.tgz", "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz",
"integrity": "sha512-bz/J4gS2S3I7mpN/YZfGFTqhXTYzRho8Ay38w2otuuDR322KzFIWm/4W2K6gIwvWaws5n+mnb7D1lN9uD+QH6Q==", "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==",
"dependencies": { "dependencies": {
"follow-redirects": "^1.15.0", "follow-redirects": "^1.15.0",
"form-data": "^4.0.0", "form-data": "^4.0.0",
@@ -229,14 +228,14 @@
} }
}, },
"node_modules/chromedriver": { "node_modules/chromedriver": {
"version": "112.0.1", "version": "116.0.0",
"resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-112.0.1.tgz", "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-116.0.0.tgz",
"integrity": "sha512-ieQzvellbtPY4MUrFzzayC1bZa/HoBsGXejUQJhAPWcYALxtkjUZNUYWbojMjIzf8iIhVda9VvdXiRKqdlN7ow==", "integrity": "sha512-/TQaRn+RUAYnVqy5Vx8VtU8DvtWosU8QLM2u7BoNM5h55PRQPXF/onHAehEi8Sj/CehdKqH50NFdiumQAUr0DQ==",
"hasInstallScript": true, "hasInstallScript": true,
"dependencies": { "dependencies": {
"@testim/chrome-version": "^1.1.3", "@testim/chrome-version": "^1.1.3",
"axios": "^1.2.1", "axios": "^1.4.0",
"compare-versions": "^5.0.1", "compare-versions": "^6.0.0",
"extract-zip": "^2.0.1", "extract-zip": "^2.0.1",
"https-proxy-agent": "^5.0.1", "https-proxy-agent": "^5.0.1",
"proxy-from-env": "^1.1.0", "proxy-from-env": "^1.1.0",
@@ -327,9 +326,9 @@
} }
}, },
"node_modules/compare-versions": { "node_modules/compare-versions": {
"version": "5.0.1", "version": "6.0.0",
"resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-5.0.1.tgz", "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.0.0.tgz",
"integrity": "sha512-v8Au3l0b+Nwkp4G142JcgJFh1/TUhdxut7wzD1Nq1dyp5oa3tXaqb03EXOAB6jS4gMlalkjAUPZBMiAfKUixHQ==" "integrity": "sha512-s2MzYxfRsE9f/ow8hjn7ysa7pod1xhHdQMsgiJtKx6XSNf4x2N1KG4fjrkUmXcP/e9Y2ZX4zB6sHIso0Lm6evQ=="
}, },
"node_modules/component-emitter": { "node_modules/component-emitter": {
"version": "1.3.0", "version": "1.3.0",
@@ -383,17 +382,6 @@
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
}, },
"node_modules/delay": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz",
"integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==",
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/delayed-stream": { "node_modules/delayed-stream": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -1202,9 +1190,9 @@
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
}, },
"node_modules/selenium-webdriver": { "node_modules/selenium-webdriver": {
"version": "4.9.0", "version": "4.12.0",
"resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.9.0.tgz", "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.12.0.tgz",
"integrity": "sha512-QGaPoREo7sgOVhTiAvCasoi1f4ruTaJDtp0RKNFIbfyns5smK5+iCwnRTIPXb0R3CAYdaqUXd6BHduh37DorzQ==", "integrity": "sha512-zvPzmTsky6WfO6+BGMj2mCJsw7qKnfQONur2b+pGn8jeTiC+WAUOthZOnaK+HkX5wiU6L4uoMF+JIcOVstp25A==",
"dependencies": { "dependencies": {
"jszip": "^3.10.1", "jszip": "^3.10.1",
"tmp": "^0.2.1", "tmp": "^0.2.1",
@@ -1274,9 +1262,9 @@
} }
}, },
"node_modules/superagent": { "node_modules/superagent": {
"version": "8.0.9", "version": "8.1.2",
"resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.9.tgz", "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz",
"integrity": "sha512-4C7Bh5pyHTvU33KpZgwrNKh/VQnvgtCSqPRfJAUdmrtSYePVzVg4E4OzsrbkhJj9O7SO6Bnv75K/F8XVZT8YHA==", "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==",
"dependencies": { "dependencies": {
"component-emitter": "^1.3.0", "component-emitter": "^1.3.0",
"cookiejar": "^2.1.4", "cookiejar": "^2.1.4",
@@ -1625,9 +1613,9 @@
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
}, },
"axios": { "axios": {
"version": "1.2.2", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.2.2.tgz", "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz",
"integrity": "sha512-bz/J4gS2S3I7mpN/YZfGFTqhXTYzRho8Ay38w2otuuDR322KzFIWm/4W2K6gIwvWaws5n+mnb7D1lN9uD+QH6Q==", "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==",
"requires": { "requires": {
"follow-redirects": "^1.15.0", "follow-redirects": "^1.15.0",
"form-data": "^4.0.0", "form-data": "^4.0.0",
@@ -1720,13 +1708,13 @@
} }
}, },
"chromedriver": { "chromedriver": {
"version": "112.0.1", "version": "116.0.0",
"resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-112.0.1.tgz", "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-116.0.0.tgz",
"integrity": "sha512-ieQzvellbtPY4MUrFzzayC1bZa/HoBsGXejUQJhAPWcYALxtkjUZNUYWbojMjIzf8iIhVda9VvdXiRKqdlN7ow==", "integrity": "sha512-/TQaRn+RUAYnVqy5Vx8VtU8DvtWosU8QLM2u7BoNM5h55PRQPXF/onHAehEi8Sj/CehdKqH50NFdiumQAUr0DQ==",
"requires": { "requires": {
"@testim/chrome-version": "^1.1.3", "@testim/chrome-version": "^1.1.3",
"axios": "^1.2.1", "axios": "^1.4.0",
"compare-versions": "^5.0.1", "compare-versions": "^6.0.0",
"extract-zip": "^2.0.1", "extract-zip": "^2.0.1",
"https-proxy-agent": "^5.0.1", "https-proxy-agent": "^5.0.1",
"proxy-from-env": "^1.1.0", "proxy-from-env": "^1.1.0",
@@ -1795,9 +1783,9 @@
} }
}, },
"compare-versions": { "compare-versions": {
"version": "5.0.1", "version": "6.0.0",
"resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-5.0.1.tgz", "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.0.0.tgz",
"integrity": "sha512-v8Au3l0b+Nwkp4G142JcgJFh1/TUhdxut7wzD1Nq1dyp5oa3tXaqb03EXOAB6jS4gMlalkjAUPZBMiAfKUixHQ==" "integrity": "sha512-s2MzYxfRsE9f/ow8hjn7ysa7pod1xhHdQMsgiJtKx6XSNf4x2N1KG4fjrkUmXcP/e9Y2ZX4zB6sHIso0Lm6evQ=="
}, },
"component-emitter": { "component-emitter": {
"version": "1.3.0", "version": "1.3.0",
@@ -1837,11 +1825,6 @@
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
}, },
"delay": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz",
"integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw=="
},
"delayed-stream": { "delayed-stream": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -2417,9 +2400,9 @@
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
}, },
"selenium-webdriver": { "selenium-webdriver": {
"version": "4.9.0", "version": "4.12.0",
"resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.9.0.tgz", "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.12.0.tgz",
"integrity": "sha512-QGaPoREo7sgOVhTiAvCasoi1f4ruTaJDtp0RKNFIbfyns5smK5+iCwnRTIPXb0R3CAYdaqUXd6BHduh37DorzQ==", "integrity": "sha512-zvPzmTsky6WfO6+BGMj2mCJsw7qKnfQONur2b+pGn8jeTiC+WAUOthZOnaK+HkX5wiU6L4uoMF+JIcOVstp25A==",
"requires": { "requires": {
"jszip": "^3.10.1", "jszip": "^3.10.1",
"tmp": "^0.2.1", "tmp": "^0.2.1",
@@ -2471,9 +2454,9 @@
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
}, },
"superagent": { "superagent": {
"version": "8.0.9", "version": "8.1.2",
"resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.9.tgz", "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz",
"integrity": "sha512-4C7Bh5pyHTvU33KpZgwrNKh/VQnvgtCSqPRfJAUdmrtSYePVzVg4E4OzsrbkhJj9O7SO6Bnv75K/F8XVZT8YHA==", "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==",
"requires": { "requires": {
"component-emitter": "^1.3.0", "component-emitter": "^1.3.0",
"cookiejar": "^2.1.4", "cookiejar": "^2.1.4",

View File

@@ -9,11 +9,10 @@
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"chromedriver": "^112.0.1", "chromedriver": "^116.0.0",
"delay": "^5.0.0",
"expect.js": "^0.3.1", "expect.js": "^0.3.1",
"mocha": "^10.2.0", "mocha": "^10.2.0",
"selenium-webdriver": "^4.9.0", "selenium-webdriver": "^4.12.0",
"superagent": "^8.0.9" "superagent": "^8.1.2"
} }
} }

View File

@@ -11,12 +11,12 @@
require('chromedriver'); require('chromedriver');
const delay = require('delay'), const execSync = require('child_process').execSync,
execSync = require('child_process').execSync,
expect = require('expect.js'), expect = require('expect.js'),
fs = require('fs'), fs = require('fs'),
path = require('path'), path = require('path'),
superagent = require('superagent'), superagent = require('superagent'),
timers = require('timers/promises'),
{ Builder, By, until } = require('selenium-webdriver'), { Builder, By, until } = require('selenium-webdriver'),
{ Options } = require('selenium-webdriver/chrome'); { Options } = require('selenium-webdriver/chrome');
@@ -56,13 +56,13 @@ describe('Application life cycle test', function () {
await browser.findElement(By.id('secretKey')).sendKeys(secretKey); await browser.findElement(By.id('secretKey')).sendKeys(secretKey);
await browser.findElement(By.xpath('//button[@id="do-login"]')).click(); await browser.findElement(By.xpath('//button[@id="do-login"]')).click();
await waitForElement(By.xpath('//span[contains(text(), "Buckets")]')); await waitForElement(By.xpath('//span[contains(text(), "Buckets")]'));
await delay(5000); await timers.setTimeout(5000);
} }
async function logout() { async function logout() {
await browser.get(`https://${app.fqdn}/`); await browser.get(`https://${app.fqdn}/`);
await waitForElement(By.xpath('//span[contains(text(), "Buckets")]')); await waitForElement(By.xpath('//span[contains(text(), "Buckets")]'));
const button = await browser.findElement(By.xpath('//div/span[contains(text(), "Sign Out")]')); const button = await browser.findElement(By.xpath('//button[@id="sign-out"]'));
await browser.executeScript('arguments[0].scrollIntoView(false)', button); await browser.executeScript('arguments[0].scrollIntoView(false)', button);
await button.click(); await button.click();
await waitForElement(By.id('accessKey')); await waitForElement(By.id('accessKey'));
@@ -76,7 +76,7 @@ describe('Application life cycle test', function () {
await browser.findElement(By.xpath('//input[@id="bucket-name"]')).sendKeys(BUCKET); await browser.findElement(By.xpath('//input[@id="bucket-name"]')).sendKeys(BUCKET);
await browser.findElement(By.xpath('//button[@id="create-bucket"]')).click(); await browser.findElement(By.xpath('//button[@id="create-bucket"]')).click();
await waitForElement(By.xpath(`//h1[contains(text(), "${BUCKET}")]`)); await waitForElement(By.xpath(`//h1[contains(text(), "${BUCKET}")]`));
await delay(5000); await timers.setTimeout(5000);
} }
async function checkBucket() { async function checkBucket() {
@@ -99,7 +99,7 @@ describe('Application life cycle test', function () {
xit('build app', function () { execSync('cloudron build', EXEC_ARGS); }); xit('build app', function () { execSync('cloudron build', EXEC_ARGS); });
it('install app', async function () { it('install app', async function () {
execSync(`cloudron install --location ${LOCATION} --secondary-domains API_SERVER_DOMAIN=${LOCATION}-api`, EXEC_ARGS); execSync(`cloudron install --location ${LOCATION} --secondary-domains API_SERVER_DOMAIN=${LOCATION}-api`, EXEC_ARGS);
await delay(10000); await timers.setTimeout(10000);
}); });
it('can get app information', getAppInfo); it('can get app information', getAppInfo);
@@ -118,7 +118,7 @@ describe('Application life cycle test', function () {
fs.writeFileSync('/tmp/env.sh', data); fs.writeFileSync('/tmp/env.sh', data);
execSync(`cloudron push --app ${app.id} /tmp/env.sh /app/data/env.sh`, EXEC_ARGS); execSync(`cloudron push --app ${app.id} /tmp/env.sh /app/data/env.sh`, EXEC_ARGS);
execSync(`cloudron restart --app ${app.id}`, EXEC_ARGS); execSync(`cloudron restart --app ${app.id}`, EXEC_ARGS);
await delay(10000); await timers.setTimeout(10000);
}); });
it('can restart app', function () { execSync(`cloudron restart --app ${app.id}`, EXEC_ARGS); }); it('can restart app', function () { execSync(`cloudron restart --app ${app.id}`, EXEC_ARGS); });
@@ -136,7 +136,7 @@ describe('Application life cycle test', function () {
execSync('cloudron install --location ' + LOCATION, EXEC_ARGS); execSync('cloudron install --location ' + LOCATION, EXEC_ARGS);
getAppInfo(); getAppInfo();
execSync(`cloudron restore --backup ${backups[0].id} --app ${app.id}`, EXEC_ARGS); execSync(`cloudron restore --backup ${backups[0].id} --app ${app.id}`, EXEC_ARGS);
await delay(10000); await timers.setTimeout(10000);
}); });
it('can login', login.bind(null, 'minioakey', 'minioskey')); it('can login', login.bind(null, 'minioakey', 'minioskey'));
@@ -148,7 +148,7 @@ describe('Application life cycle test', function () {
it('move to different location', async function () { it('move to different location', async function () {
browser.manage().deleteAllCookies(); browser.manage().deleteAllCookies();
execSync('cloudron configure --location ' + LOCATION + '2', EXEC_ARGS); execSync('cloudron configure --location ' + LOCATION + '2', EXEC_ARGS);
await delay(10000); await timers.setTimeout(10000);
}); });
it('can get app information', getAppInfo); it('can get app information', getAppInfo);