Fixed
-
CreateTagsanswered that a resource the emulator had just created did not
exist. Reported by Vincent Dislaire against anoutscale_internet_service
with atagsblock: the apply failed onthe resource igw-… does not exist,
about a resourceReadInternetServiceswas serving. The prefix table in
tags.goheld four entries, written when the pack served four kinds, and
0.6.0 added ten resources without touching it. Three prefixes were reported;
reading which schemas declareTagsfound ten — volumes, snapshots,
images, security groups, route tables, public IPs, NICs, DHCP options, NAT
services and internet services. -
Two of the four
ResourceTypevaluesReadTagspublished were invented:
netwhere Outscale's own SDK saysvpc,vmwhere it saysinstance. A
client filtering oninstancematched nothing. No contract could see it —
their OpenAPI declaresResourceTypeas a bare string — and a unit test had
been assertingnetfor three releases, which is how an emulator's mistake
becomes the thing its own suite protects.The values now come from
TagResourceTypeinosc-sdk-go, and a test pins
every row of the table to that enum. -
The table that caused it can no longer fall behind in silence. Every
identifier prefix the pack mints is read from the source and has to be
triaged: taggable with its upstream type, or refused with a reason, the same
disciplineDeclined()applies to operations. Adding the ten missing rows
fixes today; the eleventh resource would have done it again.
Changed
-
Exoscale is starter, not preview. The label was taken deliberately,
with a written exit condition — until the Terraform provider is proven
against it — and that condition turned out to rest on an assumption
measurement refuted: the provider honoursEXOSCALE_API_ENDPOINTfor its
egoscale v3 client and builds a v2 one with no endpoint option, so an apply
splits between this emulator and a paying account.ClientOptWithAPIEndpoint
exists in egoscale and is never called; three sites build a v2 client without
it. Filed upstream as
exoscale/terraform-provider-exoscale#573.A condition nobody here can reach is not a condition, it is a hostage — and
what the label warned about was fixed by EXO-2 anyway:exodrives stop,
start, reboot, scale, resize, a delete refused while protected, a security
group rule round-trip, an anti-affinity group, and an elastic IP attached,
published and withdrawn. What still separates Exoscale from usable stays in
the generated coverage tables, where it cannot flatter: 75 operations
untriaged, against 18 for Outscale and 0 for Scaleway. -
The Outscale row credits Terraform, which has driven seventeen resources
end to end since 0.6.0 and was still listed asoapi-clialone.