diff --git a/upup/pkg/fi/cloudup/openstacktasks/port.go b/upup/pkg/fi/cloudup/openstacktasks/port.go index e28f2743e198..477c3385a11c 100644 --- a/upup/pkg/fi/cloudup/openstacktasks/port.go +++ b/upup/pkg/fi/cloudup/openstacktasks/port.go @@ -144,7 +144,7 @@ func (_ *Port) CheckChanges(a, e, changes *Port) error { if changes.Name != nil { return fi.CannotChangeField("Name") } - if e.Network != nil { + if changes.Network != nil { return fi.CannotChangeField("Network") } } diff --git a/upup/pkg/fi/cloudup/openstacktasks/port_test.go b/upup/pkg/fi/cloudup/openstacktasks/port_test.go index 580ae06579fe..c478a02bee08 100644 --- a/upup/pkg/fi/cloudup/openstacktasks/port_test.go +++ b/upup/pkg/fi/cloudup/openstacktasks/port_test.go @@ -389,10 +389,26 @@ func Test_Port_CheckChanges(t *testing.T) { }, changes: &Port{ Name: nil, - Network: &Network{ID: fi.String("networkID")}, + Network: nil, }, expectedError: nil, }, + { + desc: "actual not nil all changeable fields set", + actual: &Port{ + Name: fi.String("name"), + Network: nil, + }, + expected: &Port{ + Name: fi.String("name"), + Network: nil, + }, + changes: &Port{ + Name: nil, + Network: &Network{ID: fi.String("networkID")}, + }, + expectedError: fi.CannotChangeField("Network"), + }, { desc: "actual not nil unchangeable field Name set", actual: &Port{