mirror of https://github.com/kubernetes/kops.git
Merge pull request #15141 from justinsb/hetzner_deletion_dependencies
hetzner: add dependency logic to deletion
This commit is contained in:
commit
a2d20ca97c
|
@ -182,6 +182,10 @@ func listServers(cloud fi.Cloud, clusterName string) ([]*resources.Resource, err
|
||||||
Obj: server,
|
Obj: server,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for _, firewall := range server.PublicNet.Firewalls {
|
||||||
|
resourceTracker.Blocks = append(resourceTracker.Blocks, fmt.Sprintf("%s:%d", resourceTypeFirewall, firewall.Firewall.ID))
|
||||||
|
}
|
||||||
|
|
||||||
resourceTrackers = append(resourceTrackers, resourceTracker)
|
resourceTrackers = append(resourceTrackers, resourceTracker)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -206,6 +210,10 @@ func listVolumes(cloud fi.Cloud, clusterName string) ([]*resources.Resource, err
|
||||||
Obj: volume,
|
Obj: volume,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if volume.Server != nil {
|
||||||
|
resourceTracker.Blocked = append(resourceTracker.Blocked, fmt.Sprintf("%s:%d", resourceTypeServer, volume.Server.ID))
|
||||||
|
}
|
||||||
|
|
||||||
resourceTrackers = append(resourceTrackers, resourceTracker)
|
resourceTrackers = append(resourceTrackers, resourceTracker)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -269,16 +277,25 @@ func deleteLoadBalancer(cloud fi.Cloud, r *resources.Resource) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func deleteServer(cloud fi.Cloud, r *resources.Resource) error {
|
func deleteServer(cloud fi.Cloud, r *resources.Resource) error {
|
||||||
|
ctx := context.TODO()
|
||||||
|
|
||||||
klog.Infof("Deleting Server: %s(%s)", r.Name, r.ID)
|
klog.Infof("Deleting Server: %s(%s)", r.Name, r.ID)
|
||||||
|
|
||||||
c := cloud.(hetzner.HetznerCloud)
|
c := cloud.(hetzner.HetznerCloud)
|
||||||
client := c.ServerClient()
|
serverClient := c.ServerClient()
|
||||||
|
actionClient := c.ActionClient()
|
||||||
|
|
||||||
server := r.Obj.(*hcloud.Server)
|
server := r.Obj.(*hcloud.Server)
|
||||||
_, err := client.Delete(context.TODO(), server)
|
result, _, err := serverClient.DeleteWithResult(ctx, server)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to delete server %s(%s): %w", r.Name, r.ID, err)
|
return fmt.Errorf("failed to delete server %s(%s): %w", r.Name, r.ID, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_, errCh := actionClient.WatchProgress(ctx, result.Action)
|
||||||
|
if err := <-errCh; err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue