From 682aef3682047fdaefcc649c599f4c63c8909bfc Mon Sep 17 00:00:00 2001 From: Marc Harriss Date: Tue, 19 Jan 2021 21:22:37 +0100 Subject: [PATCH] add network creation to gscloud --- cmd/network.go | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/cmd/network.go b/cmd/network.go index 8c1d8156..da05c208 100644 --- a/cmd/network.go +++ b/cmd/network.go @@ -6,11 +6,20 @@ import ( "fmt" "time" + "github.com/gridscale/gsclient-go/v3" "github.com/gridscale/gscloud/render" log "github.com/sirupsen/logrus" "github.com/spf13/cobra" ) +type networkCmdFlags struct { + networkName string +} + +var ( + networkFlags networkCmdFlags +) + var networkCmd = &cobra.Command{ Use: "network", Short: "Operations on networks", @@ -61,6 +70,33 @@ var networkLsCmd = &cobra.Command{ }, } +var networkCreateCmd = &cobra.Command{ + Use: "create [flags]", + Example: `gscloud network create --name myNetwork`, + Short: "Create network", + Long: `Create a new network. + +# EXAMPLES + +Create a network: + + $ gscloud network create + +`, + Run: func(cmd *cobra.Command, args []string) { + networkOp := rt.NetworkOperator() + ctx := context.Background() + network, err := networkOp.CreateNetwork(ctx, gsclient.NetworkCreateRequest{ + Name: networkFlags.networkName, + }) + + if err != nil { + log.Fatalf("Creating network failed: %s", err) + } + fmt.Println("Network created:", network.ObjectUUID) + }, +} + var networkRmCmd = &cobra.Command{ Use: "rm [flags] [ID]", Aliases: []string{"remove"}, @@ -78,6 +114,8 @@ var networkRmCmd = &cobra.Command{ } func init() { - networkCmd.AddCommand(networkLsCmd, networkRmCmd) + networkCreateCmd.Flags().StringVar(&networkFlags.networkName, "name", "", "Name of the network") + + networkCmd.AddCommand(networkLsCmd, networkRmCmd, networkCreateCmd) rootCmd.AddCommand(networkCmd) }