yunion.io/x/cloudmux@v0.3.10-0-alpha.1/pkg/multicloud/azure/shell/cloudgroup.go (about) 1 // Copyright 2019 Yunion 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package shell 16 17 import ( 18 "yunion.io/x/cloudmux/pkg/multicloud/azure" 19 "yunion.io/x/onecloud/pkg/util/shellutils" 20 ) 21 22 func init() { 23 type CloudgroupListOptions struct { 24 Name string 25 } 26 shellutils.R(&CloudgroupListOptions{}, "cloud-group-list", "List cloudgroups", func(cli *azure.SRegion, args *CloudgroupListOptions) error { 27 groups, err := cli.GetClient().GetCloudgroups(args.Name) 28 if err != nil { 29 return err 30 } 31 printList(groups, 0, 0, 0, nil) 32 return nil 33 }) 34 35 type CloudgroupUserListOptions struct { 36 ID string 37 } 38 39 shellutils.R(&CloudgroupUserListOptions{}, "cloud-group-user-list", "List group cloudusers", func(cli *azure.SRegion, args *CloudgroupUserListOptions) error { 40 users, err := cli.GetClient().ListGroupMemebers(args.ID) 41 if err != nil { 42 return err 43 } 44 printList(users, 0, 0, 0, nil) 45 return nil 46 }) 47 48 type CloudgroupIdOptions struct { 49 ID string 50 } 51 52 shellutils.R(&CloudgroupIdOptions{}, "cloud-group-delete", "Delete cloudgroup", func(cli *azure.SRegion, args *CloudgroupIdOptions) error { 53 return cli.GetClient().DeleteGroup(args.ID) 54 }) 55 56 type CloudgroupCreateOptions struct { 57 NAME string 58 Desc string 59 } 60 61 shellutils.R(&CloudgroupCreateOptions{}, "cloud-group-create", "Create cloudgroup", func(cli *azure.SRegion, args *CloudgroupCreateOptions) error { 62 group, err := cli.GetClient().CreateGroup(args.NAME, args.Desc) 63 if err != nil { 64 return err 65 } 66 printObject(group) 67 return nil 68 }) 69 70 type CloudgroupUserOptions struct { 71 ID string 72 USER_NAME string 73 } 74 75 shellutils.R(&CloudgroupUserOptions{}, "cloud-group-remove-user", "Remove user from cloudgroup", func(cli *azure.SRegion, args *CloudgroupUserOptions) error { 76 return cli.GetClient().RemoveGroupUser(args.ID, args.USER_NAME) 77 }) 78 79 shellutils.R(&CloudgroupUserOptions{}, "cloud-group-add-user", "Add user to cloudgroup", func(cli *azure.SRegion, args *CloudgroupUserOptions) error { 80 return cli.GetClient().AddGroupUser(args.ID, args.USER_NAME) 81 }) 82 83 }