1
0
mirror of https://git.cloudron.io/cloudron/minio-app synced 2025-09-05 00:35:14 +00:00

Compare commits

...

46 Commits

Author SHA1 Message Date
Girish Ramakrishnan
4bbe8f40b4 Version 1.151.2 2020-12-14 10:07:54 -08:00
Girish Ramakrishnan
369d25f615 Update minio to 2020-12-12T08-39-07Z 2020-12-14 10:07:06 -08:00
Johannes Zellner
9d63fc3fe0 Update test deps 2020-12-10 12:39:02 +01:00
Johannes Zellner
ce694b9cdb Bump version for RELEASE.2020-12-10T01-54-29Z 2020-12-10 12:34:27 +01:00
Girish Ramakrishnan
a0d8fabeea Version 1.151.0 2020-12-03 10:49:13 -08:00
Girish Ramakrishnan
9d61db56b3 Update test modules 2020-12-03 10:48:45 -08:00
Girish Ramakrishnan
d48dca5e2f Update minio to 2020-12-03T05-49-24Z 2020-12-03 10:42:04 -08:00
Johannes Zellner
e23c2a728b Bump version for RELEASE.2020-11-25T22-36-25Z 2020-11-26 13:14:11 +01:00
Girish Ramakrishnan
8a151ff784 Version 1.150.0 2020-11-24 09:59:34 -08:00
Girish Ramakrishnan
d3fd0b1d7b Actually update 2020-11-24 09:58:25 -08:00
Girish Ramakrishnan
d97140c83e Update tests 2020-11-24 09:53:41 -08:00
Girish Ramakrishnan
eb196a96fa Update minio to 2020-11-19T23-48-16Z 2020-11-24 09:53:30 -08:00
Girish Ramakrishnan
c792b2646f Version 1.149.0 2020-11-16 09:43:31 -08:00
Girish Ramakrishnan
fdb9011120 Update minio to RELEASE.2020-11-13T20-10-18Z 2020-11-16 09:33:15 -08:00
Girish Ramakrishnan
f4878ab442 Version 1.148.0 2020-11-13 10:13:39 -08:00
Girish Ramakrishnan
1cbf80465f Update minio to RELEASE.2020-11-12T22-33-34Z 2020-11-13 10:06:26 -08:00
Girish Ramakrishnan
7b9ebba5dd Update minio to RELEASE.2020-11-10T21-02-24Z 2020-11-11 09:24:11 -08:00
Girish Ramakrishnan
508ce1d809 Version 1.147.0 2020-11-07 18:33:14 -08:00
Girish Ramakrishnan
880c49c0ec Update minio to 2020-11-06T23-17-07Z 2020-11-07 18:13:56 -08:00
Girish Ramakrishnan
78d2b4b146 Version 1.146.0 2020-10-29 10:05:09 -07:00
Girish Ramakrishnan
74a4c25dc9 Update minio to RELEASE.2020-10-28T08-16-50Z 2020-10-29 09:59:35 -07:00
Girish Ramakrishnan
1bd9cea00b Version 1.145.0 2020-10-27 09:32:43 -07:00
Girish Ramakrishnan
a82850a2c2 Update minio to RELEASE.2020-10-27T04-03-55Z 2020-10-27 09:09:39 -07:00
Girish Ramakrishnan
6ad7cbf5fd Version 1.144.0 2020-10-19 20:07:04 -07:00
Girish Ramakrishnan
75a9554e11 Update minio to RELEASE.2020-10-18T21-54-12Z 2020-10-19 17:19:31 -07:00
Girish Ramakrishnan
907fda9cf6 Version 1.143.0 2020-10-14 09:50:53 -07:00
Girish Ramakrishnan
c7b2bfd874 Update minio to 2020-10-12T21-53-21Z 2020-10-14 09:46:11 -07:00
Johannes Zellner
8a2502a149 Update docs url 2020-10-11 15:28:38 +02:00
Johannes Zellner
c0933ab67f Update test deps and remove obsolete ones 2020-10-11 15:26:50 +02:00
Johannes Zellner
e62900974c Bump version for 2020-10-09T22-55-05Z 2020-10-11 15:26:32 +02:00
Girish Ramakrishnan
38e4036876 Version 1.141.0 2020-10-03 13:20:07 -07:00
Girish Ramakrishnan
38edc214a3 app needs restart 2020-10-03 13:13:26 -07:00
Girish Ramakrishnan
c1186748cf --address is an arg apparently
the rest are called "flags"
2020-10-03 13:11:08 -07:00
Girish Ramakrishnan
d0d13eccaf Update minio to RELEASE.2020-10-03T02-19-42Z 2020-10-03 13:10:46 -07:00
Girish Ramakrishnan
d94de7a13b Source custom config from /app/data/env.sh 2020-10-03 13:03:47 -07:00
Girish Ramakrishnan
6fdcff1acf Version 1.140.0 2020-09-29 15:52:02 -07:00
Girish Ramakrishnan
5d228c2a49 Update minio to RELEASE.2020-09-26T03-44-56Z 2020-09-29 15:42:22 -07:00
Girish Ramakrishnan
09db61f549 Version 1.139.0 2020-09-25 17:31:43 -07:00
Girish Ramakrishnan
2e340f386d Update minio to RELEASE.2020-09-23T19-18-30Z 2020-09-25 17:10:05 -07:00
Girish Ramakrishnan
440834cf09 Version 1.138.0 2020-09-22 09:56:30 -07:00
Girish Ramakrishnan
05eaf385d5 Update minio to RELEASE.2020-09-21T22-31-59Z 2020-09-22 09:20:12 -07:00
Girish Ramakrishnan
3f27a31f65 Version 1.137.0 2020-09-21 09:58:30 -07:00
Girish Ramakrishnan
fe1e252764 Update minio to RELEASE.2020-09-17T04-49-20Z 2020-09-21 09:28:10 -07:00
Girish Ramakrishnan
6391c53196 Version 1.136.0 2020-09-11 12:45:50 -07:00
Girish Ramakrishnan
4dc37ac1aa do not chown all the time (on update) 2020-09-11 12:34:40 -07:00
Girish Ramakrishnan
fbeaf26fec Update minio to 2020-09-10T22-02-45Z 2020-09-11 12:29:11 -07:00
8 changed files with 375 additions and 745 deletions

135
CHANGELOG
View File

@@ -602,7 +602,7 @@
* List common prefixes in ListObjectVersions. See (#10286) for more details.
[1.130.0]
* Update minio to 2020-08-25T00-21-20Z
* Update minio to 2020-08-25T00-21-20Z
* [Full changelog](https://github.com/minio/minio/releases/tag/RELEASE.2020-08-25T00-21-20Z)
[1.131.0]
@@ -634,3 +634,136 @@
* Remove MaxConnsPerHost settings to avoid potential hangs. See (#10438) for more details.
* Ignore config values from unknown subsystems. See (#10432) for more details.
[1.136.0]
* Update minio to 2020-09-10T22-02-45Z
* Change permissions only when required
[1.137.0]
* Update minio to 2020-09-17T04-49-20Z
* [Full changelog](https://github.com/minio/minio/releases/tag/RELEASE.2020-09-17T04-49-20Z)
* fix background disk healing. See (#10502) for more details.
* Minor fixes in listing, replication and ilm.
[1.138.0]
* Update minio to 2020-09-21T22-31-59Z
* [Full changelog](https://github.com/minio/minio/releases/tag/RELEASE.2020-09-21T22-31-59Z)
* Support for "directory" objects. See (#10499) for more details.
* Improve performance in listobjectparts and completemultipartupload in FS mode. See (#10522, #10510) for more details.
* More fixes in FS mode. See (#10512, #10533) for more details.
* Replication improvements. See (#10498, #10525) for more details.
* Browser: Support for searching objects. See (#10424) for more details.
* Miscellaneous fixes in ilm, healing, obd, and request start time logging. See (#10532, #10530, #10504, #10516) for more details.
* Changes related to locks. See (#10509, #10508) for more details.
[1.139.0]
* Update minio to 2020-09-23T19-18-30Z
* [Full changelog](https://github.com/minio/minio/releases/tag/RELEASE.2020-09-23T19-18-30Z)
* Improvements to replication. See (#10542, #10552) for more details.
* Change "disks" node to "drives" in OBD/info output. See (#10540) for more details.
* Please use mc version RELEASE.2020-09-23T20-02-13Z or newer along with this version of minio.
* Fix: uploads when quota is enabled. See (#10551) for more details.
* Fix: reduce healthcheck interval for storage rest client. See (#10544) for more details.
[1.140.0]
* Update minio to 2020-09-26T03-44-56Z
* [Full changelog](https://github.com/minio/minio/releases/tag/RELEASE.2020-09-26T03-44-56Z)
* Lock related improvements. See (#10571) for more details.
* Faster disconnects and improvements to network error checks. See (#10567, #10562) for more details.
* Improvements to healing. See (#10569, #10561) for more details.
* federation: Honor range with UploadObjectPart to a different cluster. See (#10570) for more details.
* avoid ListBuckets returning quorum errors when node is down. See (#10555) for more details.
[1.141.0]
* Update minio to 2020-10-03T02-19-42Z
* Source configuration from /app/data/env.sh
[1.142.0]
* Update minio to 2020-10-09T22-55-05Z
* [Full changelog](https://github.com/minio/minio/releases/tag/RELEASE.2020-10-09T22-55-05Z)
* Improvements to locking. See (#10644, #10640, #10637) for more details.
* remove safeMode behavior in startup. See (#10645) for more details.
* fix: cleanup old directory handling code. See (#10633) for more details.
* Fix replication slowness. See (#10632) for more details.
[1.143.0]
* Update minio to 2020-10-12T21-53-21Z
* [Full changelog](https://github.com/minio/minio/releases/tag/RELEASE.2020-10-12T21-53-21Z)
* Bump default idleConnsPerHost to control conns in time_wait . See(#10653) for more details.
* Add bandwidth monitoring for replication. See (#10501 #10652) for more details.ukla)
[1.144.0]
* Update minio to 2020-10-18T21-54-12Z
* [Full changelog](https://github.com/minio/minio/releases/tag/RELEASE.2020-10-18T21-54-12Z)
* Improvements to bandwidth monitoring. See (#10683, #10698) for more details.
* Improvements to crawler. See (#10667, #10677, ) for more details.
* Healing related improvements. See (#10686, #10687, #10688) for more details.
* Add DNS cache support to avoid DNS flooding. See (#10693) for more details.
* update NTP package for accurate time resolution fixes. See (#10670) for more details.
* rename crawler config option to heal. See (#10678) for more details.
* Improvements to connecting to disks during startup. See (#10685, #10669) for more details.
* fix: Send delete marker creation event when appropriate. See (#10696) for more details.
[1.145.0]
* Update minio to 2020-10-27T04-03-55Z
* [Full changelog](https://github.com/minio/minio/releases/tag/RELEASE.2020-10-27T04-03-55Z)
* Critical fixes related to replaced drives. See (#10748, #10759, #10764, #10766) for more details. Affects all releases since
RELEASE.2020-09-05T07-14-49Z, if you are running any releases since RELEASE.2020-09-05T07-14-49Z it is recommended
that you should schedule for an upgrade.
* Rolling upgrade is not supported (Internode API upgrade) (k8s/container deployments must upgrade all containers at once).
* Improvements to caching. See (#10762, #10763) for more details.
* Fix in Get/HeadObject to return 404 on dangling objects. See (#10753) for more details.
* IAM related improvements. See (#10719, #10700) for more details.
* Expire offline lockers. See (#10749) for more details.
* Aggressively slow down auto-healing. See (#10730) for more details.
[1.146.0]
* Update minio to 2020-10-28T08-16-50Z
* [Full changelog](https://github.com/minio/minio/releases/tag/RELEASE.2020-10-28T08-16-50Z)
* Continuation of critical fixes made in the last release.
* Healing handles drive order mismatches. See (#10773) for more details.
* Fixes for CopyObject,PutObjectTagging APIs to ensure drive order, also make sure GetObject honors fallbacks due to drive order changes. See (#10772) for more details.
[1.147.0]
* Update minio to 2020-11-06T23-17-07Z
* [Full changelog](https://github.com/minio/minio/releases/tag/RELEASE.2020-11-06T23-17-07Z)
Add support for ListObject caching. See (#10814, #10648, #10784, #10844, #10836, #10837, #10834, #10820, #10809, #10800, #10802, #10826, #10825, #10824) for more details.
* fix: replaced drive properly by healing the entire drive. See (#10799) for more details.
* allow requests to be proxied when server is booting up. See (#10790) for more details.
* Optimize decryptObjectInfo. See (#10726) for more details.
* fix: add support for O_DIRECT reads for erasure backends. See (#10718) for more details.
[1.148.0]
* Update minio to 2020-11-12T22-33-34Z
* [Full changelog](https://github.com/minio/minio/releases/tag/RELEASE.2020-11-12T22-33-34Z)
* Fix to sort directory objects correctly. See (#10886) for more details.
* fix: HDFS list bucket when subpath is provided. See (#10884) for more details.
* list cache improvements. See (#10879, #10883) for more details.
* fix: simplify healing metadata objects per set. See (#10867) for more details.
* DeletedObjects: Return objects on lock failure. See (#10874) for more details.
[1.149.0]
* Update minio to 2020-11-13T20-10-18Z
* [Full changelog](https://github.com/minio/minio/releases/tag/RELEASE.2020-11-13T20-10-18Z)
* Upgrade to Go 1.15.5 to address CVE-2020-28362, CVE-2020-28367 and CVE-2020-28366. [details](https://groups.google.com/g/golang-announce/c/NpBGTTmKzpM/m/fLguyiM2CAAJ)
[1.150.0]
* Update minio to 2020-11-19T23-48-16Z
* [Full changelog](https://github.com/minio/minio/releases/tag/RELEASE.2020-11-19T23-48-16Z)
[1.150.1]
* Update minio to 2020-11-25T22-36-25Z
* [Full changelog](https://github.com/minio/minio/releases/tag/RELEASE.2020-11-25T22-36-25Z)
[1.151.0]
* Update minio to 2020-12-03T05-49-24Z
* [Full changelog](https://github.com/minio/minio/releases/tag/RELEASE.2020-12-03T05-49-24Z)
[1.151.1]
* Update minio to 2020-12-10T01-54-29Z
* [Full changelog](https://github.com/minio/minio/releases/tag/RELEASE.2020-12-10T01-54-29Z)
[1.151.2]
* Update minio to 2020-12-12T08-39-07Z
* [Full changelog](https://github.com/minio/minio/releases/tag/RELEASE.2020-12-12T08-39-07Z)

View File

@@ -5,7 +5,7 @@
"description": "file://DESCRIPTION.md",
"changelog": "file://CHANGELOG",
"tagline": "Distributed object storage",
"version": "1.135.0",
"version": "1.151.2",
"healthCheckPath": "/minio/login",
"httpPort": 8000,
"addons": {
@@ -15,7 +15,7 @@
"website": "http://www.minio.io",
"minBoxVersion": "5.3.0",
"forumUrl": "https://forum.cloudron.io/category/69/minio",
"documentationUrl": "https://cloudron.io/documentation/apps/minio/",
"documentationUrl": "https://docs.cloudron.io/apps/minio/",
"contactEmail": "support@cloudron.io",
"icon": "logo.png",
"tags": [ "storage", "hosting", "s3", "objectstore" ],

View File

@@ -1,4 +1,4 @@
This app packages Minio <upstream>2020-09-08T23-05-18Z</upstream>.
This app packages Minio <upstream>2020-12-12T08-39-07Z</upstream>.
Minio is a distributed object storage server built for cloud applications and devops.

View File

@@ -1,6 +1,6 @@
FROM cloudron/base:2.0.0@sha256:f9fea80513aa7c92fe2e7bf3978b54c8ac5222f47a9a32a7f8833edf0eb5a4f4
ARG VERSION=RELEASE.2020-09-08T23-05-18Z
ARG VERSION=RELEASE.2020-12-12T08-39-07Z
RUN mkdir -p /app/code \
&& wget https://dl.min.io/server/minio/release/linux-amd64/minio.${VERSION} -O /app/code/minio \

View File

@@ -4,11 +4,16 @@ set -eu
mkdir -p /app/data/data /run/minio/config /run/minio/certs
# minio is used for backups at times and has a large number of files. optimize by checking if files
# are actually in correct chown state
echo "==> Changing ownership"
chown -R cloudron:cloudron /app/data
[[ $(stat --format '%U' /app/data/data) != "cloudron" ]] && chown -R cloudron:cloudron /app/data
[[ ! -f /app/data/env.sh ]] && echo -e "# Add custom minio configuration to this file. Restart the app for changes to take effect.\n\nexport CLOUDRON_MINIO_STARTUP_ARGS='server /app/data/data'" > /app/data/env.sh
source /app/data/env.sh
# the --config-dir is deprecated and not used. but without it, minio will try to create $HOME/.minio :/ same for --certs-dir
echo "==> Starting minio"
exec /usr/local/bin/gosu cloudron:cloudron /app/code/minio --certs-dir /run/minio/certs --config-dir /run/minio/config --quiet server --address :8000 /app/data/data
exec /usr/local/bin/gosu cloudron:cloudron /app/code/minio --certs-dir /run/minio/certs --config-dir /run/minio/config --quiet ${CLOUDRON_MINIO_STARTUP_ARGS} --address :8000

773
test/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -9,14 +9,9 @@
"author": "",
"license": "ISC",
"dependencies": {
"chromedriver": "^85.0.0",
"ejs": "^3.1.5",
"chromedriver": "^87.0.2",
"expect.js": "^0.3.1",
"mkdirp": "^1.0.4",
"mocha": "^8.1.3",
"rimraf": "^3.0.2",
"selenium-server-standalone-jar": "^3.141.59",
"selenium-webdriver": "^3.6.0",
"superagent": "^6.1.0"
"mocha": "^8.2.1",
"selenium-webdriver": "^3.6.0"
}
}

View File

@@ -1,5 +1,10 @@
#!/usr/bin/env node
/* global describe */
/* global before */
/* global after */
/* global it */
'use strict';
require('chromedriver');
@@ -7,43 +12,37 @@ require('chromedriver');
var execSync = require('child_process').execSync,
expect = require('expect.js'),
path = require('path'),
webdriver = require('selenium-webdriver');
{ Builder, By, Key, until } = require('selenium-webdriver'),
{ Options } = require('selenium-webdriver/chrome');
var by = require('selenium-webdriver').By,
until = require('selenium-webdriver').until,
Key = require('selenium-webdriver').Key,
Builder = require('selenium-webdriver').Builder;
var bucket = 'cloudrontestbucket';
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
describe('Application life cycle test', function () {
this.timeout(0);
var server, browser = new Builder().forBrowser('chrome').build();
const LOCATION = 'test';
const TEST_TIMEOUT = 10000;
const EXEC_ARGS = { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' };
const BUCKET = 'cloudrontestbucket';
before(function (done) {
var seleniumJar= require('selenium-server-standalone-jar');
var SeleniumServer = require('selenium-webdriver/remote').SeleniumServer;
server = new SeleniumServer(seleniumJar.path, { port: 4444 });
server.start();
done();
});
after(function (done) {
browser.quit();
server.stop();
done();
});
var LOCATION = 'test';
var TEST_TIMEOUT = 10000;
var app;
var browser;
before(function () {
browser = new Builder().forBrowser('chrome').setChromeOptions(new Options().windowSize({ width: 1280, height: 1024 })).build();
});
after(function () {
browser.quit();
});
function getAppInfo() {
var inspect = JSON.parse(execSync('cloudron inspect'));
app = inspect.apps.filter(function (a) { return a.location.indexOf(LOCATION) === 0; })[0];
expect(app).to.be.an('object');
}
function pageLoaded() {
return browser.wait(until.elementLocated(by.className('page-load pl-0 pl-1')), TEST_TIMEOUT);
return browser.wait(until.elementLocated(By.className('page-load pl-0 pl-1')), TEST_TIMEOUT);
}
function visible(selector) {
@@ -55,16 +54,16 @@ describe('Application life cycle test', function () {
function login(accessKey, secretKey, callback) {
browser.manage().deleteAllCookies();
browser.get('https://' + app.fqdn).then(function () {
return visible(by.id('accessKey'));
return visible(By.id('accessKey'));
}).then(function () {
return browser.findElement(by.id('accessKey')).sendKeys(accessKey);
return browser.findElement(By.id('accessKey')).sendKeys(accessKey);
}).then(function () {
return browser.findElement(by.id('secretKey')).sendKeys(secretKey);
return browser.findElement(By.id('secretKey')).sendKeys(secretKey);
}).then(function () {
// return browser.findElement(by.className('lw-btn')).click();
return browser.findElement(by.tagName('form')).submit();
// return browser.findElement(By.className('lw-btn')).click();
return browser.findElement(By.tagName('form')).submit();
}).then(function () {
return browser.wait(until.elementLocated(by.id('top-right-menu')), TEST_TIMEOUT);
return browser.wait(until.elementLocated(By.id('top-right-menu')), TEST_TIMEOUT);
}).then(function () {
callback();
});
@@ -74,15 +73,23 @@ describe('Application life cycle test', function () {
browser.get('https://' + app.fqdn);
pageLoaded().then(function () {
return visible(by.id('top-right-menu'));
return visible(By.id('top-right-menu'));
}).then(function () {
return browser.findElement(by.id('top-right-menu')).click();
return browser.findElement(By.id('top-right-menu')).click();
}).then(function () {
return visible(by.xpath('//*[text()="Sign Out "]'));
if (app.manifest.version === '1.137.0') {
return visible(By.xpath('//*[text()="Sign Out "]'));
} else {
return visible(By.xpath('//*[contains(text(), "Logout")]'));
}
}).then(function () {
return browser.findElement(by.xpath('//*[text()="Sign Out "]')).click();
if (app.manifest.version === '1.137.0') {
return browser.findElement(By.xpath('//*[text()="Sign Out "]')).click();
} else {
return browser.findElement(By.xpath('//*[contains(text(),"Logout")]')).click();
}
}).then(function () {
return browser.wait(until.elementLocated(by.id('accessKey')), TEST_TIMEOUT);
return browser.wait(until.elementLocated(By.id('accessKey')), TEST_TIMEOUT);
}).then(function () {
callback();
});
@@ -92,23 +99,23 @@ describe('Application life cycle test', function () {
browser.get('https://' + app.fqdn);
pageLoaded().then(function () {
return visible(by.className('fa-plus'));
return visible(By.className('fa-plus'));
}).then(function () {
return browser.findElement(by.className('fa-plus')).click();
return browser.findElement(By.className('fa-plus')).click();
}).then(function () {
const c = 'fa-hdd';
return visible(by.className(c));
return visible(By.className(c));
}).then(function () {
const c = 'fa-hdd';
return browser.findElement(by.className(c)).click();
return browser.findElement(By.className(c)).click();
}).then(function () {
return visible(by.xpath('//*[@class="modal-body"]/form/div/input'));
return visible(By.xpath('//*[@class="modal-body"]/form/div/input'));
}).then(function () {
return browser.findElement(by.xpath('//*[@class="modal-body"]/form/div/input')).sendKeys(bucket);
return browser.findElement(By.xpath('//*[@class="modal-body"]/form/div/input')).sendKeys(BUCKET);
}).then(function () {
return browser.findElement(by.xpath('//*[@class="modal-body"]/form')).submit();
return browser.findElement(By.xpath('//*[@class="modal-body"]/form')).submit();
}).then(function () {
return visible(by.xpath('//*[@class="main"]/a[text()="' + bucket + '"]'));
return visible(By.xpath('//*[@class="main"]/a[text()="' + BUCKET + '"]'));
}).then(function () {
callback();
});
@@ -118,7 +125,7 @@ describe('Application life cycle test', function () {
browser.get('https://' + app.fqdn);
pageLoaded().then(function () {
return browser.findElement(by.xpath(`//a[contains(text(), ${bucket})]`));
return browser.findElement(By.xpath(`//a[contains(text(), ${BUCKET})]`));
}).then(function () {
callback();
});
@@ -128,35 +135,24 @@ describe('Application life cycle test', function () {
browser.get('https://' + app.fqdn);
pageLoaded().then(function () {
return visible(by.id('top-right-menu'));
return visible(By.id('top-right-menu'));
}).then(function () {
return browser.findElement(by.id('top-right-menu')).click();
return browser.findElement(By.id('top-right-menu')).click();
}).then(function () {
return visible(by.xpath('//*[contains(text(), "Change Password")]'));
return visible(By.xpath('//*[contains(text(), "Change Password")]'));
}).then(function () {
return browser.findElement(by.xpath('//*[contains(text(),"Change Password")]')).click();
return browser.findElement(By.xpath('//*[contains(text(),"Change Password")]')).click();
}).then(function () {
return browser.wait(until.elementLocated(by.xpath('//*[contains(text(), "Change Password")]')), TEST_TIMEOUT);
return browser.wait(until.elementLocated(By.xpath('//*[contains(text(), "Change Password")]')), TEST_TIMEOUT);
}).then(function () {
callback();
});
}
xit('build app', function () {
execSync('cloudron build', { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
});
xit('build app', function () { execSync('cloudron build', EXEC_ARGS); });
it('install app', function () { execSync('cloudron install --location ' + LOCATION, EXEC_ARGS); });
it('install app', function () {
execSync('cloudron install --location ' + LOCATION, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
});
it('can get app information', function () {
var inspect = JSON.parse(execSync('cloudron inspect'));
app = inspect.apps.filter(function (a) { return a.location === LOCATION; })[0];
expect(app).to.be.an('object');
});
it('can get app information', getAppInfo);
it('can login', login.bind(null, 'minioadmin', 'minioadmin'));
it('can add bucket', addBucket);
@@ -164,29 +160,22 @@ describe('Application life cycle test', function () {
it('can logout', logout);
it('can change credentials', function () {
execSync('cloudron exec --app ' + app.id + ' -- /app/code/minio-credentials set minioakey minioskey', { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
execSync(`cloudron exec --app ${app.id} -- /app/code/minio-credentials set minioakey minioskey`, EXEC_ARGS);
});
it('can restart app', function (done) {
execSync('cloudron restart');
done();
});
it('can restart app', function () { execSync(`cloudron restart --app ${app.id}`, EXEC_ARGS); });
it('can login', login.bind(null, 'minioakey', 'minioskey'));
it('has bucket', checkBucket);
it('can logout', logout);
it('backup app', function () {
execSync('cloudron backup create --app ' + app.id, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
});
it('backup app', function () { execSync('cloudron backup create --app ' + app.id, EXEC_ARGS); });
it('restore app', function () {
const backups = JSON.parse(execSync('cloudron backup list --raw'));
execSync('cloudron uninstall --app ' + app.id, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
execSync('cloudron install --location ' + LOCATION, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
var inspect = JSON.parse(execSync('cloudron inspect'));
app = inspect.apps.filter(function (a) { return a.location === LOCATION; })[0];
execSync(`cloudron restore --backup ${backups[0].id} --app ${app.id}`, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
const backups = JSON.parse(execSync(`cloudron backup list --raw --app ${app.id}`));
execSync('cloudron uninstall --app ' + app.id, EXEC_ARGS);
execSync('cloudron install --location ' + LOCATION, EXEC_ARGS);
getAppInfo();
execSync(`cloudron restore --backup ${backups[0].id} --app ${app.id}`, EXEC_ARGS);
});
it('can login', login.bind(null, 'minioakey', 'minioskey'));
@@ -196,39 +185,30 @@ describe('Application life cycle test', function () {
it('move to different location', function () {
browser.manage().deleteAllCookies();
execSync('cloudron configure --location ' + LOCATION + '2', { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
var inspect = JSON.parse(execSync('cloudron inspect'));
app = inspect.apps.filter(function (a) { return a.location === LOCATION + '2'; })[0];
expect(app).to.be.an('object');
execSync('cloudron configure --location ' + LOCATION + '2', EXEC_ARGS);
});
it('can get app information', getAppInfo);
it('can login', login.bind(null, 'minioakey', 'minioskey'));
it('has bucket', checkBucket);
it('can logout', logout);
it('uninstall app', function () {
execSync('cloudron uninstall --app ' + app.id, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
});
it('uninstall app', function () { execSync('cloudron uninstall --app ' + app.id, EXEC_ARGS); });
// test update
it('can install app', function () {
execSync('cloudron install --appstore-id io.minio.cloudronapp --location ' + LOCATION, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
var inspect = JSON.parse(execSync('cloudron inspect'));
app = inspect.apps.filter(function (a) { return a.location === LOCATION; })[0];
expect(app).to.be.an('object');
});
it('can install app', function () { execSync('cloudron install --appstore-id io.minio.cloudronapp --location ' + LOCATION, EXEC_ARGS); });
it('can get app information', getAppInfo);
it('can login', login.bind(null, 'minioadmin', 'minioadmin'));
it('can add buckets', addBucket);
it('can logout', logout);
it('can update', function () {
execSync('cloudron update --app ' + LOCATION, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
});
it('can update', function () { execSync('cloudron update --app ' + LOCATION, EXEC_ARGS); });
it('can get app information', getAppInfo);
it('can login', login.bind(null, 'minioadmin', 'minioadmin'));
it('has bucket', checkBucket);
it('can logout', logout);
it('uninstall app', function () {
execSync('cloudron uninstall --app ' + app.id, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
});
it('uninstall app', function () { execSync('cloudron uninstall --app ' + app.id, EXEC_ARGS); });
});