Descriptionprovider/openstack/provider: safer matching
bug #1257481 is because of how we are matching machines, if you have 2
environments with similar names (one is a prefix of the other) then
you can have 'juju destroy-environment short-name' actually kill all
the instances of 'short-name-but-longer'.
However, we do put a little bit more data into how we name machines,
so we can make it harder to trigger that by accident. This branch is
built on the 1.16 code base in case we decide to land it there.
The actual change is small and directly tested against HP and
Canonistack. I don't add a test because the actual test we would need
is to create 2 environments, and assert that AllInstances doesn't see
the instances in a similarly named environment.
I tried 2 regexes 'juju-ENV-machine-\d+' didn't work when testing
against canonistack, so I went with 'juju-ENV-machine-\d*'. That
should be pretty restrictive. Even if you name one environment 'ENV'
and another environment 'ENV-machine' the \d will prevent them from
matching (because the actual machines will be
juju-ENV-machine-machine-0).
I think this is as safe as we can be with a name-based approach, even
though we've discussed moving into a 'record the nodes only in state
and only delete ones recorded there', this is a pretty easy workaround
to make things nicer for real people.
https://codereview.appspot.com/37200043
https://code.launchpad.net/~jameinel/juju-core/openstack-filter-1257481/+merge/197730
(do not edit description out of merge proposal)
Patch Set 1 #
MessagesTotal messages: 2
|