feat: add account recharge way (#2432)

* feat: add account recharge way

Signed-off-by: 晓杰 <2561589453@qq.com>
This commit is contained in:
晓杰
2023-01-20 17:18:35 +08:00
committed by GitHub
parent 3ffdcc993f
commit 5e58e25fd1
2 changed files with 62 additions and 0 deletions
+6
View File
@@ -0,0 +1,6 @@
This code is used to modify the amount in your Account
usage:
```
go run recharge.go {name} {amount} //Fill values in the square brackets
```
+56
View File
@@ -0,0 +1,56 @@
package main
import (
"context"
"os"
"strconv"
userv1 "github.com/labring/sealos/controllers/user/api/v1"
baseapi "github.com/labring/sealos/test/testdata/api"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/runtime"
)
func main() {
args := os.Args
if len(args) != 3 {
panic("args error,len(args) != 3")
}
amount, err := strconv.Atoi(args[2])
if err != nil {
panic(err)
}
if err := RechargeAccount(args[1], "sealos-system", int64(amount)); err != nil {
panic(err)
}
}
func RechargeAccount(AccountName, namespace string, amount int64) error {
account, err := GetAccount(namespace, AccountName)
if err != nil {
return err
}
account.Status.Balance += amount
client := baseapi.GetDefaultDynamicClient()
gvr := userv1.GroupVersion.WithResource("accounts")
unstructured2, err := runtime.DefaultUnstructuredConverter.ToUnstructured(account)
if err != nil {
return err
}
un := &unstructured.Unstructured{Object: unstructured2}
_, err = client.Resource(gvr).Namespace(namespace).UpdateStatus(context.Background(), un, metav1.UpdateOptions{})
if err != nil {
return err
}
return nil
}
func GetAccount(namespace string, name string) (*userv1.Account, error) {
gvr := userv1.GroupVersion.WithResource("accounts")
var account userv1.Account
if err := baseapi.GetObject(namespace, name, gvr, &account); err != nil {
return nil, err
}
return &account, nil
}