Skip to content

Commit

Permalink
ignore 403 on device and ssh key delete requests
Browse files Browse the repository at this point in the history
Signed-off-by: Marques Johansson <mjohansson@equinix.com>
  • Loading branch information
displague committed Oct 5, 2021
1 parent d0a1d02 commit 2f23b60
Showing 1 changed file with 17 additions and 10 deletions.
27 changes: 17 additions & 10 deletions pkg/drivers/metal/metal.go
Original file line number Diff line number Diff line change
Expand Up @@ -462,21 +462,28 @@ func (d *Driver) Stop() error {
return err
}

func (d *Driver) Remove() error {
client := d.getClient()
func ignoreStatusCodes(err error, codes ...int) error {
e, ok := err.(*packngo.ErrorResponse)
if !ok || e.Response == nil {
return err
}

if _, err := client.SSHKeys.Delete(d.SSHKeyID); err != nil {
if er, ok := err.(*packngo.ErrorResponse); !ok || er.Response.StatusCode != 404 {
return err
for _, c := range codes {
if e.Response.StatusCode == c {
return nil
}
}
return err
}

if _, err := client.Devices.Delete(d.DeviceID, false); err != nil {
if er, ok := err.(*packngo.ErrorResponse); !ok || er.Response.StatusCode != 404 {
return err
}
func (d *Driver) Remove() error {
client := d.getClient()
if _, err := client.SSHKeys.Delete(d.SSHKeyID); ignoreStatusCodes(err, 403, 404) != nil {
return err
}
return nil

_, err := client.Devices.Delete(d.DeviceID, false)
return ignoreStatusCodes(err, 403, 404)
}

func (d *Driver) Restart() error {
Expand Down

0 comments on commit 2f23b60

Please sign in to comment.