Skip to content

Commit

Permalink
delete network to v3.
Browse files Browse the repository at this point in the history
  • Loading branch information
Your Name committed Oct 29, 2024
1 parent 45a8128 commit e6ac11f
Showing 1 changed file with 25 additions and 11 deletions.
36 changes: 25 additions & 11 deletions cmd/private_network_delete.go
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
package cmd

import (
"errors"
"fmt"

"github.com/spf13/cobra"

"github.com/exoscale/cli/pkg/account"
"github.com/exoscale/cli/pkg/globalstate"
exoapi "github.com/exoscale/egoscale/v2/api"
v3 "github.com/exoscale/egoscale/v3"
)

type privateNetworkDeleteCmd struct {
Expand All @@ -18,8 +16,8 @@ type privateNetworkDeleteCmd struct {

PrivateNetwork string `cli-arg:"#" cli-usage:"NAME|ID"`

Force bool `cli-short:"f" cli-usage:"don't prompt for confirmation"`
Zone string `cli-short:"z" cli-usage:"Private Network zone"`
Force bool `cli-short:"f" cli-usage:"don't prompt for confirmation"`
Zone v3.ZoneName `cli-short:"z" cli-usage:"Private Network zone"`
}

func (c *privateNetworkDeleteCmd) cmdAliases() []string { return gRemoveAlias }
Expand All @@ -36,13 +34,24 @@ func (c *privateNetworkDeleteCmd) cmdPreRun(cmd *cobra.Command, args []string) e
}

func (c *privateNetworkDeleteCmd) cmdRun(_ *cobra.Command, _ []string) error {
ctx := exoapi.WithEndpoint(gContext, exoapi.NewReqEndpoint(account.CurrentAccount.Environment, c.Zone))
ctx := gContext
client, err := switchClientZoneV3(ctx, globalstate.EgoscaleV3Client, c.Zone)
if err != nil {
return err
}

privateNetwork, err := globalstate.EgoscaleClient.FindPrivateNetwork(ctx, c.Zone, c.PrivateNetwork)
resp, err := client.ListPrivateNetworks(ctx)
if err != nil {
return err
}

pn, err := resp.FindPrivateNetwork(c.PrivateNetwork)
if err != nil {
return err
}

privateNetwork, err := client.GetPrivateNetwork(ctx, pn.ID)
if err != nil {
if errors.Is(err, exoapi.ErrNotFound) {
return fmt.Errorf("resource not found in zone %q", c.Zone)
}
return err
}

Expand All @@ -52,8 +61,13 @@ func (c *privateNetworkDeleteCmd) cmdRun(_ *cobra.Command, _ []string) error {
}
}

op, err := client.DeletePrivateNetwork(ctx, privateNetwork.ID)
if err != nil {
return err
}

decorateAsyncOperation(fmt.Sprintf("Deleting Private Network %s...", c.PrivateNetwork), func() {
err = globalstate.EgoscaleClient.DeletePrivateNetwork(ctx, c.Zone, privateNetwork)
_, err = client.Wait(ctx, op, v3.OperationStateSuccess)
})
if err != nil {
return err
Expand Down

0 comments on commit e6ac11f

Please sign in to comment.