fix: hostbackupstorage climc subcmds (#20286)

Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
This commit is contained in:
Jian Qiu
2024-05-15 18:03:39 +08:00
committed by GitHub
co-authored by Qiu Jian
parent b65abfe76a
commit 6546056fbf
3 changed files with 95 additions and 3 deletions
+6
View File
@@ -50,4 +50,10 @@ func init() {
ibCmd.Create(&compute.InstanceBackupManagerCreateFromPackageOptions{})
ibCmd.Perform("syncstatus", &compute.DiskBackupSyncstatusOptions{})
ibCmd.Perform("set-class-metadata", &options.ResourceMetadataOptions{})
hbsCmd := shell.NewJointCmd(&modules.HostBackupstorages)
hbsCmd.List(&compute.HostBackupStorageListOptions{})
hbsCmd.Show(&compute.HostBackupStorageJoinOptions{})
hbsCmd.Attach(&compute.HostBackupStorageJoinOptions{})
hbsCmd.Detach(&compute.HostBackupStorageJoinOptions{})
}
+54 -3
View File
@@ -667,15 +667,15 @@ func (cmd JointCmd) List(args IJointListOpt) {
cmd.RunWithDesc("list", fmt.Sprintf("list %s %s pairs", man.MasterManager().KeyString(), man.SlaveManager().KeyString()), args, callback)
}
type IJointShowOpt interface {
type IJointOpt interface {
IOpt
GetMasterId() string
GetSlaveId() string
}
func (cmd JointCmd) Show(args IJointShowOpt) {
func (cmd JointCmd) Show(args IJointOpt) {
man := cmd.manager.(modulebase.JointManager)
callback := func(s *mcclient.ClientSession, args IJointShowOpt) error {
callback := func(s *mcclient.ClientSession, args IJointOpt) error {
params, err := args.Params()
if err != nil {
return err
@@ -689,3 +689,54 @@ func (cmd JointCmd) Show(args IJointShowOpt) {
}
cmd.Run("show", args, callback)
}
func (cmd JointCmd) Attach(args IJointOpt) {
man := cmd.manager.(modulebase.JointManager)
callback := func(s *mcclient.ClientSession, args IJointOpt) error {
params, err := args.Params()
if err != nil {
return err
}
result, err := man.Attach(s, args.GetMasterId(), args.GetSlaveId(), params)
if err != nil {
return err
}
PrintObject(result)
return nil
}
cmd.Run("attach", args, callback)
}
func (cmd JointCmd) Detach(args IJointOpt) {
man := cmd.manager.(modulebase.JointManager)
callback := func(s *mcclient.ClientSession, args IJointOpt) error {
params, err := args.Params()
if err != nil {
return err
}
result, err := man.Detach(s, args.GetMasterId(), args.GetSlaveId(), params)
if err != nil {
return err
}
PrintObject(result)
return nil
}
cmd.Run("detach", args, callback)
}
func (cmd JointCmd) Update(args IJointOpt) {
man := cmd.manager.(modulebase.JointManager)
callback := func(s *mcclient.ClientSession, args IJointOpt) error {
params, err := args.Params()
if err != nil {
return err
}
result, err := man.Update(s, args.GetMasterId(), args.GetSlaveId(), nil, params)
if err != nil {
return err
}
PrintObject(result)
return nil
}
cmd.Run("update", args, callback)
}