Skip to content

Commit f32f790

Browse files
refactor: incorporate changes from #73
1 parent 198117c commit f32f790

File tree

2 files changed

+26
-25
lines changed

2 files changed

+26
-25
lines changed

README.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -128,22 +128,22 @@ was used during creation.
128128

129129
| CLI option | Environment variable | Default |
130130
| ----------------------------------- | --------------------------------- | -------------------------- |
131-
| **`--hetzner-api-token`** | `HETZNER_API_TOKEN` | - |
131+
| **`--hetzner-api-token`** | `HETZNER_API_TOKEN` | |
132132
| `--hetzner-image` | `HETZNER_IMAGE` | `ubuntu-18.04` |
133-
| `--hetzner-image-id` | `HETZNER_IMAGE_ID` | - |
133+
| `--hetzner-image-id` | `HETZNER_IMAGE_ID` | |
134134
| `--hetzner-server-type` | `HETZNER_TYPE` | `cx11` |
135-
| `--hetzner-server-location` | `HETZNER_LOCATION` | - *(let Hetzner choose)* |
136-
| `--hetzner-existing-key-path` | `HETZNER_EXISTING_KEY_PATH` | - *(generate new keypair)* |
135+
| `--hetzner-server-location` | `HETZNER_LOCATION` | *(let Hetzner choose)* |
136+
| `--hetzner-existing-key-path` | `HETZNER_EXISTING_KEY_PATH` | *(generate new keypair)* |
137137
| `--hetzner-existing-key-id` | `HETZNER_EXISTING_KEY_ID` | 0 *(upload new key)* |
138-
| `--hetzner-additional-key` | `HETZNER_ADDITIONAL_KEYS` | - |
139-
| `--hetzner-user-data` | `HETZNER_USER_DATA` | - |
140-
| `--hetzner-networks` | `HETZNER_NETWORKS` | - |
141-
| `--hetzner-firewalls` | `HETZNER_FIREWALLS` | - |
142-
| `--hetzner-volumes` | `HETZNER_VOLUMES` | - |
138+
| `--hetzner-additional-key` | `HETZNER_ADDITIONAL_KEYS` | |
139+
| `--hetzner-user-data` | `HETZNER_USER_DATA` | |
140+
| `--hetzner-networks` | `HETZNER_NETWORKS` | |
141+
| `--hetzner-firewalls` | `HETZNER_FIREWALLS` | |
142+
| `--hetzner-volumes` | `HETZNER_VOLUMES` | |
143143
| `--hetzner-use-private-network` | `HETZNER_USE_PRIVATE_NETWORK` | false |
144144
| `--hetzner-server-label` | (inoperative) | `[]` |
145145
| `--hetzner-key-label` | (inoperative) | `[]` |
146-
| `--hetzner-placement-group` | `HETZNER_PLACEMENT_GROUP` | - |
146+
| `--hetzner-placement-group` | `HETZNER_PLACEMENT_GROUP` | |
147147
| `--hetzner-auto-spread` | `HETZNER_AUTO_SPREAD` | false |
148148

149149
## Building from source

driver.go

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -657,29 +657,30 @@ func (d *Driver) Remove() error {
657657
return errors.Wrap(err, "could not delete server")
658658
}
659659

660-
err = d.removeEmptyServerPlacementGroup(srv)
661-
if err != nil {
662-
log.Error(err) // not a hard failure
660+
// failure to remove a placement group is not a hard error
661+
if softErr := d.removeEmptyServerPlacementGroup(srv); softErr != nil {
662+
log.Error(softErr)
663663
}
664664
}
665665
}
666666

667-
// Failing to remove these is just a soft error
667+
// failure to remove a key is not ha hard error
668668
for i, id := range d.AdditionalKeyIDs {
669669
log.Infof(" -> Destroying additional key #%d (%d)", i, id)
670-
key, _, err := d.getClient().SSHKey.GetByID(context.Background(), id)
671-
if err != nil {
672-
log.Warnf(" -> -> could not retrieve key %v", err)
670+
key, _, softErr := d.getClient().SSHKey.GetByID(context.Background(), id)
671+
if softErr != nil {
672+
log.Warnf(" -> -> could not retrieve key %v", softErr)
673673
} else if key == nil {
674674
log.Warnf(" -> -> %d no longer exists", id)
675675
}
676676

677-
_, err = d.getClient().SSHKey.Delete(context.Background(), key)
678-
if err != nil {
679-
log.Warnf(" -> -> could not remove key: %v", err)
677+
_, softErr = d.getClient().SSHKey.Delete(context.Background(), key)
678+
if softErr != nil {
679+
log.Warnf(" -> -> could not remove key: %v", softErr)
680680
}
681681
}
682682

683+
// failure to remove a server-specific key is a hard error
683684
if !d.IsExistingKey && d.KeyID != 0 {
684685
key, err := d.getKey()
685686
if err != nil {
@@ -953,16 +954,16 @@ func (d *Driver) makePlacementGroup(name string, labels map[string]string) (*hcl
953954
d.dangling = append(d.dangling, func() {
954955
_, err := d.getClient().PlacementGroup.Delete(context.Background(), grp.PlacementGroup)
955956
if err != nil {
956-
log.Error(fmt.Errorf("could not delete placement group: %w", err))
957+
log.Errorf("could not delete placement group: %v", err)
957958
}
958959
})
959960
}
960961

961962
if err != nil {
962-
err = fmt.Errorf("could not create placement group: %w", err)
963+
return nil, fmt.Errorf("could not create placement group: %w", err)
963964
}
964965

965-
return grp.PlacementGroup, err
966+
return grp.PlacementGroup, nil
966967
}
967968

968969
func (d *Driver) getPlacementGroup() (*hcloud.PlacementGroup, error) {
@@ -1006,9 +1007,9 @@ func (d *Driver) removeEmptyServerPlacementGroup(srv *hcloud.Server) error {
10061007
if auto, exists := pg.Labels[d.labelName(labelAutoCreated)]; exists && auto == "true" {
10071008
_, err := d.getClient().PlacementGroup.Delete(context.Background(), pg)
10081009
if err != nil {
1009-
err = fmt.Errorf("could not remove placement group: %w", err)
1010+
return fmt.Errorf("could not remove placement group: %w", err)
10101011
}
1011-
return err
1012+
return nil
10121013
} else {
10131014
log.Debugf("group not auto-created, ignoring: %v", pg)
10141015
return nil

0 commit comments

Comments
 (0)