yunion.io/x/cloudmux@v0.3.10-0-alpha.1/pkg/multicloud/azure/shell/network.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 NetworkListOptions struct { 24 VPC string `help:"Vpc Id"` 25 Limit int `help:"page size"` 26 Offset int `help:"page offset"` 27 } 28 shellutils.R(&NetworkListOptions{}, "network-list", "List networks", func(cli *azure.SRegion, args *NetworkListOptions) error { 29 vpc, err := cli.GetVpc(args.VPC) 30 if err != nil { 31 return err 32 } 33 networks := vpc.GetNetworks() 34 printList(networks, len(networks), args.Offset, args.Limit, []string{}) 35 return nil 36 }) 37 38 type NetworkCreateOptions struct { 39 VPC string 40 NAME string 41 CIDR string 42 } 43 44 shellutils.R(&NetworkCreateOptions{}, "network-create", "Create network", func(cli *azure.SRegion, args *NetworkCreateOptions) error { 45 network, err := cli.CreateNetwork(args.VPC, args.NAME, args.CIDR, "") 46 if err != nil { 47 return err 48 } 49 printObject(network) 50 return nil 51 }) 52 53 type NetworkInterfaceListOptions struct { 54 } 55 56 shellutils.R(&NetworkInterfaceListOptions{}, "network-interface-list", "List network interface", func(cli *azure.SRegion, args *NetworkInterfaceListOptions) error { 57 nics, err := cli.GetNetworkInterfaces() 58 if err != nil { 59 return err 60 } 61 printList(nics, len(nics), 0, 0, []string{}) 62 return nil 63 }) 64 65 type NetworkInterfaceOptions struct { 66 ID string `help:"Network ineterface ID"` 67 } 68 69 shellutils.R(&NetworkInterfaceOptions{}, "network-interface-show", "Show network interface", func(cli *azure.SRegion, args *NetworkInterfaceOptions) error { 70 nic, err := cli.GetNetworkInterface(args.ID) 71 if err != nil { 72 return err 73 } 74 printObject(nic) 75 return nil 76 }) 77 78 type NetworkInterfaceCreateOptions struct { 79 ResourceGroup string `help:"ResourceGroup Name"` 80 NAME string `help:"Nic interface name"` 81 IP string `help:"Nic private ip address"` 82 NETWORK string `help:"Netowrk ID"` 83 SecurityGroup string `help:"SecurityGroup ID"` 84 } 85 86 shellutils.R(&NetworkInterfaceCreateOptions{}, "network-interface-create", "Create network interface", func(cli *azure.SRegion, args *NetworkInterfaceCreateOptions) error { 87 nic, err := cli.CreateNetworkInterface(args.ResourceGroup, args.NAME, args.IP, args.NETWORK, args.SecurityGroup) 88 if err != nil { 89 return err 90 } 91 printObject(nic) 92 return nil 93 }) 94 95 }