diff --git a/.drone.star b/.drone.star index da728e8d3..897025ca2 100644 --- a/.drone.star +++ b/.drone.star @@ -1999,7 +1999,7 @@ def ocisServer(storage, accounts_hash_difficulty = 4, volumes = [], depends_on = wrapper_commands = [ "make -C %s build" % dirs["ocisWrapper"], - "%s/bin/ociswrapper serve --bin %s --url %s" % (dirs["ocisWrapper"], ocis_bin, OCIS_URL), + "%s/bin/ociswrapper serve --bin %s --url %s --admin-username admin --admin-password admin" % (dirs["ocisWrapper"], ocis_bin, OCIS_URL), ] wait_for_ocis = { diff --git a/tests/ociswrapper/cmd/cmd.go b/tests/ociswrapper/cmd/cmd.go index 8287ac339..d949ddab3 100644 --- a/tests/ociswrapper/cmd/cmd.go +++ b/tests/ociswrapper/cmd/cmd.go @@ -33,6 +33,8 @@ func serveCmd() *cobra.Command { ocisConfig.Set("bin", cmd.Flag("bin").Value.String()) ocisConfig.Set("url", cmd.Flag("url").Value.String()) ocisConfig.Set("retry", cmd.Flag("retry").Value.String()) + ocisConfig.Set("adminUsername", cmd.Flag("admin-username").Value.String()) + ocisConfig.Set("adminPassword", cmd.Flag("admin-password").Value.String()) go ocis.Start(nil) go wrapper.Start(cmd.Flag("port").Value.String()) @@ -45,6 +47,8 @@ func serveCmd() *cobra.Command { serveCmd.Flags().StringP("url", "", ocisConfig.Get("url"), "oCIS server url") serveCmd.Flags().StringP("retry", "", ocisConfig.Get("retry"), "Number of retries to start oCIS server") serveCmd.Flags().StringP("port", "p", wrapperConfig.Get("port"), "Wrapper API server port") + serveCmd.Flags().StringP("admin-username", "", "", "admin username for oCIS server") + serveCmd.Flags().StringP("admin-password", "", "", "admin password for oCIS server") return serveCmd } diff --git a/tests/ociswrapper/ocis/config/config.go b/tests/ociswrapper/ocis/config/config.go index b495db73a..904d42b21 100644 --- a/tests/ociswrapper/ocis/config/config.go +++ b/tests/ociswrapper/ocis/config/config.go @@ -1,9 +1,11 @@ package config var config = map[string]string{ - "bin": "/usr/bin/ocis", - "url": "https://localhost:9200", - "retry": "5", + "bin": "/usr/bin/ocis", + "url": "https://localhost:9200", + "retry": "5", + "adminUsername": "", + "adminPassword": "", } func Set(key string, value string) { diff --git a/tests/ociswrapper/ocis/ocis.go b/tests/ociswrapper/ocis/ocis.go index ab45e02a6..60e0382d9 100644 --- a/tests/ociswrapper/ocis/ocis.go +++ b/tests/ociswrapper/ocis/ocis.go @@ -125,7 +125,24 @@ func Stop() { waitUntilCompleteShutdown() } +func listAllServices(startTime time.Time, timeout time.Duration) { + timeoutS := timeout * time.Second + + c := exec.Command(config.Get("bin"), "list") + _, err := c.CombinedOutput() + if err != nil { + if time.Since(startTime) <= timeoutS { + time.Sleep(500 * time.Millisecond) + listAllServices(startTime, timeout) + } + return + } + log.Println("All services are up") +} + func WaitForConnection() bool { + listAllServices(time.Now(), 30) + transport := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, } @@ -137,7 +154,14 @@ func WaitForConnection() bool { Transport: transport, } - req, _ := http.NewRequest("GET", config.Get("url")+"/ocs/v1.php/cloud/capabilities?format=json", nil) + var req *http.Request + if config.Get("adminUsername") != "" && config.Get("adminPassword") != "" { + req, _ = http.NewRequest("GET", config.Get("url")+"/graph/v1.0/me/drives", nil) + req.SetBasicAuth(config.Get("adminUsername"), config.Get("adminPassword")) + } else { + req, _ = http.NewRequest("GET", config.Get("url")+"/ocs/v1.php/cloud/capabilities?format=json", nil) + } + timeout := time.After(timeoutValue) for {