Skip to content

Commit 4869667

Browse files
author
Horacio Duran
committed
Addressed review commends by @axw
1 parent bd708b5 commit 4869667

File tree

4 files changed

+18
-14
lines changed

4 files changed

+18
-14
lines changed

provider/interfaces.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ package provider
55

66
import "github.com/juju/juju/version"
77

8-
// Upgradable represents a provider that supports upgrade steps
8+
// Upgradeable represents a provider that supports upgrade steps
99
// if present, these steps will get called upon upgrading.
10-
type Upgradable interface {
10+
type Upgradeable interface {
1111
RunUpgradeStepsFor(version.Number) error
1212
}

provider/openstack/upgrade.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,18 @@ func (e *Environ) RunUpgradeStepsFor(ver version.Number) error {
2626
return nil
2727
}
2828

29-
func replaceNameWithID(oldName, envName, eUUID string) (string, error, bool) {
30-
nameStart := strings.LastIndex(oldName, envName)
31-
if nameStart <= -1 {
32-
uuidPresent := strings.LastIndex(oldName, eUUID)
33-
if uuidPresent < 0 {
34-
return "", nil, false
29+
func replaceNameWithID(oldName, envName, eUUID string) (string, bool, error) {
30+
prefix := "juju-" + envName
31+
if !strings.HasPrefix(oldName, prefix) {
32+
return "", false, nil
33+
}
34+
if len(prefix) < len(oldName) {
35+
if oldName[len(prefix)] != '-' {
36+
return "", false, nil
3537
}
36-
return oldName, nil, false
3738
}
38-
partial := oldName[nameStart:]
39-
return fmt.Sprintf("%s%s", oldName[:nameStart], strings.Replace(partial, envName, eUUID, -1)), nil, true
39+
newPrefix := "juju-" + eUUID
40+
return strings.Replace(oldName, prefix, newPrefix, -1), true, nil
4041
}
4142

4243
func addUUIDToSecurityGroupNames(e *Environ) error {
@@ -52,7 +53,7 @@ func addUUIDToSecurityGroupNames(e *Environ) error {
5253
return errors.NotFoundf("environment uuid for environment %q", eName)
5354
}
5455
for _, group := range groups {
55-
newName, err, ok := replaceNameWithID(group.Name, eName, eUUID)
56+
newName, ok, err := replaceNameWithID(group.Name, eName, eUUID)
5657
if err != nil {
5758
return errors.Annotate(err, "generating the new security group name")
5859
}
@@ -90,7 +91,7 @@ func addUUIDToMachineNames(e *Environ) error {
9091
return errors.NotFoundf("environment uuid for environment %q", eName)
9192
}
9293
for _, server := range servers {
93-
newName, err, ok := replaceNameWithID(server.Name, eName, eUUID)
94+
newName, ok, err := replaceNameWithID(server.Name, eName, eUUID)
9495
if err != nil {
9596
return errors.Annotate(err, "generating the new server name")
9697
}

upgrades/providerchanges.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ func upgradeProviderChanges(env environs.Environ, reader environConfigReader, ve
1616
return errors.Annotate(err, "reading environment config")
1717
}
1818

19-
upgrader, ok := env.(provider.Upgradable)
19+
upgrader, ok := env.(provider.Upgradeable)
2020
if !ok {
2121
logger.Debugf("provider %q has no upgrades", cfg.Type())
2222
return nil

upgrades/steps126.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package upgrades
55

66
import (
77
"github.com/juju/errors"
8+
89
"github.com/juju/juju/environs"
910
"github.com/juju/juju/state"
1011
"github.com/juju/juju/state/utils"
@@ -44,6 +45,8 @@ func stateStepsFor126() []Step {
4445
return upgradeEnvironConfig(st, st, environs.GlobalProviderRegistry())
4546
},
4647
},
48+
//TODO(perrito666) make this an unconditional upgrade step.
49+
// it would be ideal not to have to modify this package whenever we add provider upgrade steps.
4750
&upgradeStep{
4851
description: "provider side upgrades",
4952
targets: []Target{DatabaseMaster},

0 commit comments

Comments
 (0)