tests/jetcli/methods/methods.go

198 lines
4.9 KiB
Go

package methods
import (
"context"
"gitlab.corp.mail.ru/cloud/go/jet/pkg/configured"
"gitlab.corp.mail.ru/cloud/go/jet/pkg/jet"
"log"
"time"
)
type Args struct {
URL *string
AuthUser *string
AuthPassword *string
PID *uint64
Name *string
UID *uint64
Email *string
TreeID *string
Operation *uint64
Quota *uint64
Mode *uint64
ToSet *string
ToUnset *string
}
func Call(method *string, args Args) {
ctx := context.Background()
client := jet.New(configured.JetClientConfig{
URL: "http://" + *args.URL,
Timeout: 10 * time.Second,
BasicAuthCred: configured.BasicAuthConfig{
Username: *args.AuthUser,
Password: *args.AuthPassword,
},
})
switch *method {
case "project_register":
err := client.BizProjectRegister(ctx, "some_request_id", &jet.BizProjectRegisterRequest{
PID: *args.PID,
Name: *args.Name,
})
if err != nil {
log.Fatal(err.Error())
}
case "project_delete":
err := client.BizProjectDelete(ctx, "some_request_id", &jet.BizProjectDeleteRequest{
PID: *args.PID,
})
if err != nil {
log.Fatal(err.Error())
}
case "catalog_acl_ctl":
err := client.BizCatalogACLCtl(ctx, "some_request_id", &jet.BizCatalogACLCtlRequest{
PID: *args.PID,
TreeID: []byte(*args.TreeID),
UID: *args.UID,
Operation: uint8(*args.Operation),
})
if err != nil {
log.Fatal(err.Error())
}
case "catalog_acl_list":
resp, err := client.BizCatalogACLList(ctx, "some_request_id", &jet.BizCatalogACLListRequest{
PID: *args.PID,
TreeID: []byte(*args.TreeID),
})
if err != nil {
log.Fatal(err.Error())
}
log.Printf("Method response: %#v", resp)
case "catalog_create":
resp, err := client.BizCatalogCreate(ctx, "some_request_id", &jet.BizCatalogCreateRequest{
PID: *args.PID,
Name: *args.Name,
Quota: *args.Quota,
})
if err != nil {
log.Fatal(err.Error())
}
log.Printf("Method response: %#v", resp)
case "catalog_delete":
err := client.BizCatalogDelete(ctx, "some_request_id", &jet.BizCatalogDeleteRequest{
PID: *args.PID,
TreeID: []byte(*args.TreeID),
})
if err != nil {
log.Fatal(err.Error())
}
case "catalog_mount":
err := client.BizCatalogMount(ctx, "some_request_id", &jet.BizCatalogMountRequest{
PID: *args.PID,
TreeID: []byte(*args.TreeID),
UID: *args.UID,
Mode: uint8(*args.Mode),
})
if err != nil {
log.Fatal(err.Error())
}
case "catalog_umount":
err := client.BizCatalogUMount(ctx, "some_request_id", &jet.BizCatalogUMountRequest{
PID: *args.PID,
TreeID: []byte(*args.TreeID),
UID: *args.UID,
})
if err != nil {
log.Fatal(err.Error())
}
case "catalog_quota_set":
err := client.BizCatalogQuotaSet(ctx, "some_request_id", &jet.BizCatalogQuotaSetRequest{
PID: *args.PID,
TreeID: []byte(*args.TreeID),
Quota: *args.Quota,
})
if err != nil {
log.Fatal(err.Error())
}
case "user_register":
err := client.BizUserRegister(ctx, "some_request_id", &jet.BizUserRegisterRequest{
PID: *args.PID,
UID: *args.UID,
Email: *args.Email,
Quota: *args.Quota,
})
if err != nil {
log.Fatal(err.Error())
}
case "user_delete":
err := client.BizUserDelete(ctx, "some_request_id", &jet.BizUserRequest{
PID: *args.PID,
UID: *args.UID,
})
if err != nil {
log.Fatal(err.Error())
}
case "user_block":
err := client.BizUserBlock(ctx, "some_request_id", &jet.BizUserRequest{
PID: *args.PID,
UID: *args.UID,
})
if err != nil {
log.Fatal(err.Error())
}
case "user_unblock":
err := client.BizUserUnblock(ctx, "some_request_id", &jet.BizUserRequest{
PID: *args.PID,
UID: *args.UID,
})
if err != nil {
log.Fatal(err.Error())
}
case "user_flags_get":
resp, err := client.BizUserFlagsGet(ctx, "some_request_id", &jet.BizUserRequest{
PID: *args.PID,
UID: *args.UID,
})
if err != nil {
log.Fatal(err.Error())
}
log.Printf("Method response: %#v", resp)
case "user_flags_set":
resp, err := client.BizUserFlagsSet(ctx, "some_request_id", &jet.BizUserSetFlagsRequest{
PID: *args.PID,
UID: *args.UID,
ToSet: []string{*args.ToSet},
ToUnset: []string{*args.ToUnset},
})
if err != nil {
log.Fatal(err.Error())
}
log.Printf("Method response: %#v", resp)
case "user_quota_set":
resp, err := client.BizUserQuotaSet(ctx, "some_request_id", &jet.BizUserSetQuotaRequest{
PID: *args.PID,
UID: *args.UID,
Operation: uint8(*args.Operation),
Quota: *args.Quota,
})
if err != nil {
log.Fatal(err.Error())
}
log.Printf("Method response: %#v", resp)
case "user_du":
resp, err := client.BizUserDU(ctx, "some_request_id", &jet.BizUserRequest{
PID: *args.PID,
UID: *args.UID,
})
if err != nil {
log.Fatal(err.Error())
}
log.Printf("Method response: %#v", resp)
default:
log.Fatalf("unknown method: %s", method)
}
log.Print("command applied successfully")
}