Add madmin package context support (#9172)

This is to improve responsiveness for all
admin API operations and allowing callers
to cancel any on-going admin operations,
if they happen to be waiting too long.
This commit is contained in:
Harshavardhana
2020-03-20 15:00:44 -07:00
committed by GitHub
parent 1ffa983a9d
commit ae654831aa
47 changed files with 398 additions and 213 deletions
+2 -1
View File
@@ -20,6 +20,7 @@
package main
import (
"context"
"log"
"github.com/minio/minio/pkg/madmin"
@@ -36,7 +37,7 @@ func main() {
log.Fatalln(err)
}
accountingUsageInfo, err := madmClnt.AccountingUsageInfo()
accountingUsageInfo, err := madmClnt.AccountingUsageInfo(context.Background())
if err != nil {
log.Fatalln(err)
}
@@ -20,6 +20,7 @@
package main
import (
"context"
"fmt"
"log"
@@ -43,7 +44,7 @@ func main() {
// Create policy
policy := `{"Version": "2012-10-17","Statement": [{"Action": ["s3:GetObject"],"Effect": "Allow","Resource": ["arn:aws:s3:::testbucket/*"],"Sid": ""}]}`
creds, err := madmClnt.AddServiceAccount("parentuser", policy)
creds, err := madmClnt.AddServiceAccount(context.Background(), "parentuser", policy)
if err != nil {
log.Fatalln(err)
}
+4 -3
View File
@@ -20,6 +20,7 @@
package main
import (
"context"
"log"
"github.com/minio/minio/pkg/madmin"
@@ -39,18 +40,18 @@ func main() {
log.Fatalln(err)
}
if err = madmClnt.AddUser("newuser", "newstrongpassword"); err != nil {
if err = madmClnt.AddUser(context.Background(), "newuser", "newstrongpassword"); err != nil {
log.Fatalln(err)
}
// Create policy
policy := `{"Version": "2012-10-17","Statement": [{"Action": ["s3:GetObject"],"Effect": "Allow","Resource": ["arn:aws:s3:::my-bucketname/*"],"Sid": ""}]}`
if err = madmClnt.AddCannedPolicy("get-only", policy); err != nil {
if err = madmClnt.AddCannedPolicy(context.Background(), "get-only", policy); err != nil {
log.Fatalln(err)
}
if err = madmClnt.SetUserPolicy("newuser", "get-only"); err != nil {
if err = madmClnt.SetUserPolicy(context.Background(), "newuser", "get-only"); err != nil {
log.Fatalln(err)
}
}
+2 -1
View File
@@ -20,6 +20,7 @@
package main
import (
"context"
"log"
"github.com/minio/minio/pkg/madmin"
@@ -36,7 +37,7 @@ func main() {
log.Fatalln(err)
}
st, err := madmClnt.ServerCPULoadInfo()
st, err := madmClnt.ServerCPULoadInfo(context.Background())
if err != nil {
log.Fatalln(err)
}
+2 -1
View File
@@ -20,6 +20,7 @@
package main
import (
"context"
"log"
"github.com/minio/minio/pkg/madmin"
@@ -36,7 +37,7 @@ func main() {
log.Fatalln(err)
}
dataUsageInfo, err := madmClnt.DataUsageInfo()
dataUsageInfo, err := madmClnt.DataUsageInfo(context.Background())
if err != nil {
log.Fatalln(err)
}
+2 -1
View File
@@ -20,6 +20,7 @@
package main
import (
"context"
"log"
"github.com/minio/minio/pkg/madmin"
@@ -36,7 +37,7 @@ func main() {
log.Fatalln(err)
}
st, err := madmClnt.ServerDrivesPerfInfo(madmin.DefaultDrivePerfSize)
st, err := madmClnt.ServerDrivesPerfInfo(context.Background(), madmin.DefaultDrivePerfSize)
if err != nil {
log.Fatalln(err)
}
+2 -1
View File
@@ -20,6 +20,7 @@
package main
import (
"context"
"fmt"
"log"
@@ -40,7 +41,7 @@ func main() {
log.Fatalln(err)
}
creds, err := madmClnt.GetServiceAccount("service-account-access-key")
creds, err := madmClnt.GetServiceAccount(context.Background(), "service-account-access-key")
if err != nil {
log.Fatalln(err)
}
+3 -2
View File
@@ -20,6 +20,7 @@
package main
import (
"context"
"log"
"github.com/minio/minio/pkg/madmin"
@@ -38,7 +39,7 @@ func main() {
// Heal bucket mybucket - dry run
isDryRun := true
err = madmClnt.HealBucket("mybucket", isDryRun)
err = madmClnt.HealBucket(context.Background(), "mybucket", isDryRun)
if err != nil {
log.Fatalln(err)
@@ -46,7 +47,7 @@ func main() {
// Heal bucket mybucket - for real this time.
isDryRun := false
err = madmClnt.HealBucket("mybucket", isDryRun)
err = madmClnt.HealBucket(context.Background(), "mybucket", isDryRun)
if err != nil {
log.Fatalln(err)
}
+2 -1
View File
@@ -20,6 +20,7 @@ package main
*/
import (
"context"
"fmt"
"log"
@@ -39,7 +40,7 @@ func main() {
}
// List buckets that need healing
healBucketsList, err := madmClnt.ListBucketsHeal()
healBucketsList, err := madmClnt.ListBucketsHeal(context.Background())
if err != nil {
log.Fatalln(err)
}
+3 -2
View File
@@ -20,6 +20,7 @@
package main
import (
"context"
"log"
"github.com/minio/minio/pkg/madmin"
@@ -41,14 +42,14 @@ func main() {
// Attempt healing format in dry-run mode.
isDryRun := true
err = madmClnt.HealFormat(isDryRun)
err = madmClnt.HealFormat(context.Background(), isDryRun)
if err != nil {
log.Fatalln(err)
}
// Perform actual healing of format.
isDryRun = false
err = madmClnt.HealFormat(isDryRun)
err = madmClnt.HealFormat(context.Background(), isDryRun)
if err != nil {
log.Fatalln(err)
}
+3 -2
View File
@@ -20,6 +20,7 @@
package main
import (
"context"
"log"
"github.com/minio/minio/pkg/madmin"
@@ -41,14 +42,14 @@ func main() {
// Heal object mybucket/myobject - dry run.
isDryRun := true
_, err = madmClnt.HealObject("mybucket", "myobject", isDryRun)
_, err = madmClnt.HealObject(context.Background(), "mybucket", "myobject", isDryRun)
if err != nil {
log.Fatalln(err)
}
// Heal object mybucket/myobject - this time for real.
isDryRun = false
healResult, err := madmClnt.HealObject("mybucket", "myobject", isDryRun)
healResult, err := madmClnt.HealObject(context.Background(), "mybucket", "myobject", isDryRun)
if err != nil {
log.Fatalln(err)
}
+2 -1
View File
@@ -20,6 +20,7 @@
package main
import (
"context"
"log"
"github.com/minio/minio/pkg/madmin"
@@ -36,7 +37,7 @@ func main() {
log.Fatalln(err)
}
healStatusResult, err := madmClnt.BackgroundHealStatus()
healStatusResult, err := madmClnt.BackgroundHealStatus(context.Background())
if err != nil {
log.Fatalln(err)
}
+2 -1
View File
@@ -20,6 +20,7 @@
package main
import (
"context"
"log"
"github.com/minio/minio/pkg/madmin"
@@ -35,7 +36,7 @@ func main() {
if err != nil {
log.Fatalln(err)
}
st, err := madmClnt.ServerCPUHardwareInfo()
st, err := madmClnt.ServerCPUHardwareInfo(context.Background())
if err != nil {
log.Fatalln(err)
}
+2 -1
View File
@@ -20,6 +20,7 @@
package main
import (
"context"
"log"
"github.com/minio/minio/pkg/madmin"
@@ -35,7 +36,7 @@ func main() {
if err != nil {
log.Fatalln(err)
}
st, err := madmClnt.ServerNetworkHardwareInfo()
st, err := madmClnt.ServerNetworkHardwareInfo(context.Background())
if err != nil {
log.Fatalln(err)
}
+2 -1
View File
@@ -20,6 +20,7 @@
package main
import (
"context"
"log"
"github.com/minio/minio/pkg/madmin"
@@ -36,7 +37,7 @@ func main() {
log.Fatalln(err)
}
status, err := madmClnt.GetKeyStatus("") // empty string refers to the default master key
status, err := madmClnt.GetKeyStatus(context.Background(), "") // empty string refers to the default master key
if err != nil {
log.Fatalln(err)
}
+2 -1
View File
@@ -20,6 +20,7 @@
package main
import (
"context"
"log"
"time"
@@ -39,7 +40,7 @@ func main() {
// Clear locks held on mybucket/myprefix for longer than 30s.
olderThan := time.Duration(30 * time.Second)
locksCleared, err := madmClnt.ClearLocks("mybucket", "myprefix", olderThan)
locksCleared, err := madmClnt.ClearLocks(context.Background(), "mybucket", "myprefix", olderThan)
if err != nil {
log.Fatalln(err)
}
+2 -1
View File
@@ -20,6 +20,7 @@
package main
import (
"context"
"log"
"github.com/minio/minio/pkg/madmin"
@@ -36,7 +37,7 @@ func main() {
log.Fatalln(err)
}
st, err := madmClnt.ServerMemUsageInfo()
st, err := madmClnt.ServerMemUsageInfo(context.Background())
if err != nil {
log.Fatalln(err)
}
+2 -1
View File
@@ -20,6 +20,7 @@
package main
import (
"context"
"log"
"github.com/minio/minio/pkg/madmin"
@@ -36,7 +37,7 @@ func main() {
log.Fatalln(err)
}
st, err := madmClnt.NetPerfInfo(madmin.DefaultNetPerfSize)
st, err := madmClnt.NetPerfInfo(context.Background(), madmin.DefaultNetPerfSize)
if err != nil {
log.Fatalln(err)
}
+3 -2
View File
@@ -20,6 +20,7 @@
package main
import (
"context"
"io"
"log"
"os"
@@ -45,7 +46,7 @@ func main() {
profiler := madmin.ProfilerCPU
log.Println("Starting " + profiler + " profiling..")
startResults, err := madmClnt.StartProfiling(profiler)
startResults, err := madmClnt.StartProfiling(context.Background(), profiler)
if err != nil {
log.Fatalln(err)
}
@@ -63,7 +64,7 @@ func main() {
log.Println("Stopping profiling..")
profilingData, err := madmClnt.DownloadProfilingData()
profilingData, err := madmClnt.DownloadProfilingData(context.Background())
if err != nil {
log.Fatalln(err)
}
+2 -1
View File
@@ -20,6 +20,7 @@
package main
import (
"context"
"log"
"github.com/minio/minio/pkg/madmin"
@@ -36,7 +37,7 @@ func main() {
log.Fatalln(err)
}
st, err := madmClnt.ServerInfo()
st, err := madmClnt.ServerInfo(context.Background())
if err != nil {
log.Fatalln(err)
}
+2 -1
View File
@@ -20,6 +20,7 @@
package main
import (
"context"
"log"
"github.com/minio/minio/pkg/madmin"
@@ -36,7 +37,7 @@ func main() {
log.Fatalln(err)
}
err = madmClnt.ServiceRestart()
err = madmClnt.ServiceRestart(context.Background())
if err != nil {
log.Fatalln(err)
}
+2 -1
View File
@@ -20,6 +20,7 @@
package main
import (
"context"
"fmt"
"log"
@@ -43,7 +44,7 @@ func main() {
// in the minio cluster.
allTrace := false
errTrace := false
traceCh := madmClnt.ServiceTrace(allTrace, errTrace, doneCh)
traceCh := madmClnt.ServiceTrace(context.Background(), allTrace, errTrace, doneCh)
for traceInfo := range traceCh {
if traceInfo.Err != nil {
fmt.Println(traceInfo.Err)
+2 -1
View File
@@ -20,6 +20,7 @@
package main
import (
"context"
"log"
"github.com/minio/minio/pkg/madmin"
@@ -36,7 +37,7 @@ func main() {
log.Fatalln(err)
}
st, err := madmClnt.StorageInfo()
st, err := madmClnt.StorageInfo(context.Background())
if err != nil {
log.Fatalln(err)
}
+2 -1
View File
@@ -20,6 +20,7 @@
package main
import (
"context"
"encoding/json"
"log"
@@ -37,7 +38,7 @@ func main() {
log.Fatalln(err)
}
locks, err := madmClnt.TopLocks()
locks, err := madmClnt.TopLocks(context.Background())
if err != nil {
log.Fatalf("failed due to: %v", err)
}