| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- // Copyright 2019 Yunion
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- package compute
- import (
- "yunion.io/x/jsonutils"
- "yunion.io/x/onecloud/pkg/mcclient"
- modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
- "yunion.io/x/onecloud/pkg/mcclient/options"
- )
- func init() {
- type ScalingGroupListOptions struct {
- options.BaseListOptions
- Hypervisor string `help:"Hypervisor"`
- Cloudregion string `help:"Cloudregion"`
- Network string `help:"network"`
- }
- R(&ScalingGroupListOptions{}, "scaling-group-list", "List scaling group", func(s *mcclient.ClientSession, args *ScalingGroupListOptions) error {
- params, err := options.ListStructToParams(args)
- if err != nil {
- return err
- }
- result, err := modules.ScalingGroup.List(s, params)
- if err != nil {
- return err
- }
- printList(result, modules.ScalingGroup.GetColumns(s))
- return nil
- })
- type ScalingGroupShowOptions struct {
- ID string
- }
- R(&ScalingGroupShowOptions{}, "scaling-group-show", "Show scaling group", func(s *mcclient.ClientSession,
- args *ScalingGroupShowOptions) error {
- result, err := modules.ScalingGroup.Get(s, args.ID, nil)
- if err != nil {
- return err
- }
- printObject(result)
- return nil
- })
- type ScalingGroupCreateOptions struct {
- NAME string
- Hypervisor string
- Cloudregion string
- Network string
- GuestTemplate string
- MinInstanceNumber string
- MaxInstanceNumber string
- DesireInstanceNumber string
- Loadbalance string
- }
- R(&ScalingGroupCreateOptions{}, "scaling-group-create", "Create scaling group", func(s *mcclient.ClientSession, args *ScalingGroupCreateOptions) error {
- params := jsonutils.Marshal(args).(*jsonutils.JSONDict)
- scalingGroup, err := modules.ScalingGroup.Create(s, params)
- if err != nil {
- return err
- }
- printObject(scalingGroup)
- return nil
- })
- type ScalingGroupDeleteOptions struct {
- ID string `help:"ScalingGroup ID or Name"`
- }
- R(&ScalingGroupDeleteOptions{}, "scaling-group-delete", "Delete Scaling Group", func(s *mcclient.ClientSession,
- args *ScalingGroupDeleteOptions) error {
- scalingGroup, err := modules.ScalingGroup.Delete(s, args.ID, jsonutils.NewDict())
- if err != nil {
- return err
- }
- printObject(scalingGroup)
- return nil
- })
- type ScalingGroupListInstanceOptions struct {
- ID string `help:"ScalingGroup ID or Name"`
- }
- R(&ScalingGroupListInstanceOptions{}, "scaling-group-list-instance", "List all instance of Scaling Group",
- func(s *mcclient.ClientSession, args *ScalingGroupListInstanceOptions) error {
- params := jsonutils.NewDict()
- params.Set("scaling_group", jsonutils.NewString(args.ID))
- servers, err := modules.Servers.List(s, params)
- if err != nil {
- return err
- }
- printList(servers, modules.Servers.GetColumns(s))
- return nil
- },
- )
- type ScalingGroupRemoveInstanceOptions struct {
- ID string `help:"ScalingGroup ID or Name"`
- SERVER string `help:"Server ID or Name"`
- Delete bool `help:"If delete the server"`
- }
- R(&ScalingGroupRemoveInstanceOptions{}, "scaling-group-remove-instance", "Remove instance of ScalingGroup",
- func(s *mcclient.ClientSession, args *ScalingGroupRemoveInstanceOptions) error {
- params := jsonutils.NewDict()
- params.Set("scaling_group", jsonutils.NewString(args.ID))
- params.Set("delete_server", jsonutils.NewBool(args.Delete))
- server, err := modules.Servers.PerformAction(s, args.SERVER, "detach-scaling-group", params)
- if err != nil {
- return err
- }
- printObject(server)
- return nil
- },
- )
- type ScalingGroupEnableOptions struct {
- ID string `help:"ScalingGroup ID or Name"`
- }
- R(&ScalingGroupEnableOptions{}, "scaling-group-enable", "Enable ScalingGroup", func(s *mcclient.ClientSession,
- args *ScalingGroupEnableOptions) error {
- ret, err := modules.ScalingGroup.PerformAction(s, args.ID, "enable", jsonutils.NewDict())
- if err != nil {
- return err
- }
- printObject(ret)
- return nil
- })
- R(&ScalingGroupEnableOptions{}, "scaling-group-disable", "Disable ScalingGroup", func(s *mcclient.ClientSession,
- args *ScalingGroupEnableOptions) error {
- ret, err := modules.ScalingGroup.PerformAction(s, args.ID, "disable", jsonutils.NewDict())
- if err != nil {
- return err
- }
- printObject(ret)
- return nil
- })
- }
|