[tests-only][full-ci] Add option to check ocis connection by authenticating user (#8540)

* Revert "use capabilites in ociswrapper"

This reverts commit 0768723c89.

* tests: check ocis connection with basic auth when provided

* ci: check ocis connection with admin basic auth

* list all ocis services

* list services with timeout

* ci: check ocis connection with admin basic auth

* list all ocis services
This commit is contained in:
Sawjan Gurung
2024-03-01 19:39:09 +05:45
committed by GitHub
parent 37e3ec2171
commit 58c083d311
4 changed files with 35 additions and 5 deletions

View File

@@ -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 = {

View File

@@ -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
}

View File

@@ -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) {

View File

@@ -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 {