Skip to content

Real-OCI Execute (create+update) verification, dual-realm support - #13

Merged
sinkog merged 2 commits into
mainfrom
devel
Aug 3, 2026
Merged

Real-OCI Execute (create+update) verification, dual-realm support#13
sinkog merged 2 commits into
mainfrom
devel

Conversation

@sinkog

@sinkog sinkog commented Aug 3, 2026

Copy link
Copy Markdown
Member

Summary

  • Adds TestManualRealOCIExecute to the manual real-OCI harness: runs one provider_operation (Create*/Update*/Delete*) for real, env-driven (OCI_EXEC_OPERATION/OCI_EXEC_METHOD/OCI_EXEC_PATH/OCI_EXEC_CONFIG_JSON).
  • Verified CreateVcn + UpdateVcn (displayName rename) against an empty personal trial tenancy (commercial realm) — both synchronous, no work request produced (poll still unverified).
  • Generalizes the hardcoded oraclecloud.eu host into ociHost(region), reading OCI_REALM_DOMAIN (default oraclecloud.com) — the harness now works against both the commercial realm and the EU Sovereign realm tenancy it was originally verified against.
  • Documents a real gotcha: re-Observe with byte-identical env vars to a prior run gets Go's test-result cache replaying stale output instead of re-hitting OCI — looks exactly like a failed update. -count=1 is now called out in the test file, the Makefile target, and docs/design/manual-verification.md.

Test plan

  • go vet -tags manual_real_oci ./... clean
  • CreateVcn against the trial tenancy — HTTP 200, confirmed via oci network vcn get
  • UpdateVcn (displayName) — HTTP 200, new etag; confirmed via oci network vcn get and a -count=1 re-Observe (first re-Observe without -count=1 showed the Go-cache gotcha itself)
  • CI green on devel (lint_and_test, WASM build/host-load steps unaffected)

Gábor Z Sinkó added 2 commits August 3, 2026 07:59
…enancy

Adds TestManualRealOCIExecute — a generic, env-driven runner for one
provider_operation (Create*/Update*/Delete*), so the mutating side of the
cic:provider ABI gets the same real-OCI verification the read-only ops
already had. Verified CreateVcn + UpdateVcn (displayName rename) against an
empty personal trial tenancy (commercial realm) — both synchronous, no work
request produced, so poll is still unverified.

Generalizes the hardcoded oraclecloud.eu host into ociHost(region), reading
OCI_REALM_DOMAIN (default oraclecloud.com) — the harness was previously only
usable against the EU Sovereign realm tenancy it was first written for.

Documents a real gotcha hit while verifying the update: re-Observe with
byte-identical env vars to a prior run gets Go's test result cache replaying
the stale prior output instead of re-hitting OCI, which looks exactly like a
failed update. -count=1 is now called out everywhere (docs, Makefile target,
the test file's own usage comment).

---
[signing-metadata]
key = cic-my-sign-key
signature = vault:v1:MEYCIQC2lR7SZ27A7YpJnf9HYUUgWu8KqXDGu9LeF5RdK8BEnAIhAIuN2AiSsdqCMVb/OJV1DIk9OBrnwsJXF9Z6nohH5k3M
hash-algorithm = sha256
digest = cuLslRtzxx6LrM+U12ehoactzmcCdPbWmxNbwzkrjGA=

[certificate]
-----BEGIN CERTIFICATE-----
MIICBjCCAaygAwIBAgIUSnRMR6RPnEbg296XWPOqq/u5PCwwCgYIKoZIzj0EAwIw
QzELMAkGA1UEBhMCSFUxGTAXBgNVBAoMEENlbnRyYWxJbmZyYUNvcmUxGTAXBgNV
BAMMEENJQyBEZXZlbG9wZXIgQ0EwHhcNMjYwMzIwMTMyMjU5WhcNMjYxMjMxMTMy
MjU5WjBFMQswCQYDVQQGEwJIVTEZMBcGA1UECgwQQ2VudHJhbEluZnJhQ29yZTEb
MBkGA1UEAwwSR2Fib3IgWm9sdGFuIFNpbmtvMFkwEwYHKoZIzj0CAQYIKoZIzj0D
AQcDQgAEIG2CVmTfmLB9pLLclj7YmP2eedAjklpy4LGrU2ijoiy6Xqpuybv7OgJe
i+ez31s65NEV8+X/ByeX1cstR988z6N8MHowCQYDVR0TBAIwADAdBgNVHQ4EFgQU
yZN6AIX/TNnIJ9GwAa/NRN3ujHAwHwYDVR0jBBgwFoAUXn6CHYzPUqU4JVP8g+OS
WeDYjhcwDgYDVR0PAQH/BAQDAgeAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF
BQcDBDAKBggqhkjOPQQDAgNIADBFAiEA+bFzXRoJ4PCQbhAAtpkcMjt0vNj5rEW0
lOMBGDNyaWkCIB1vmM7PcZzv/c9bIrxF5kqv6QXomouhByUfeNUTbpKW
-----END CERTIFICATE-----
… real OCI

CreateSubnet (inside the VCN from the previous commit) + DeleteSubnet +
DeleteVcn all verified against the same trial tenancy — all synchronous
(204/200, no work request), correct teardown order enforced (subnet before
its VCN), and the tenancy confirmed empty again afterward via the oci CLI.

---
[signing-metadata]
key = cic-my-sign-key
signature = vault:v1:MEUCIFgCdRi1p5PM0gVYnq7fK5CStPwSMTiQjs5E/JZOvcQ+AiEA4cX8Lw4J9t5RSARw0O0RTg5gC1RKy+AL40Szs4VEbwQ=
hash-algorithm = sha256
digest = pqk61gHzksZF1X0CYWl9BKOcqZLP2zyZZ05/agVxPag=

[certificate]
-----BEGIN CERTIFICATE-----
MIICBjCCAaygAwIBAgIUSnRMR6RPnEbg296XWPOqq/u5PCwwCgYIKoZIzj0EAwIw
QzELMAkGA1UEBhMCSFUxGTAXBgNVBAoMEENlbnRyYWxJbmZyYUNvcmUxGTAXBgNV
BAMMEENJQyBEZXZlbG9wZXIgQ0EwHhcNMjYwMzIwMTMyMjU5WhcNMjYxMjMxMTMy
MjU5WjBFMQswCQYDVQQGEwJIVTEZMBcGA1UECgwQQ2VudHJhbEluZnJhQ29yZTEb
MBkGA1UEAwwSR2Fib3IgWm9sdGFuIFNpbmtvMFkwEwYHKoZIzj0CAQYIKoZIzj0D
AQcDQgAEIG2CVmTfmLB9pLLclj7YmP2eedAjklpy4LGrU2ijoiy6Xqpuybv7OgJe
i+ez31s65NEV8+X/ByeX1cstR988z6N8MHowCQYDVR0TBAIwADAdBgNVHQ4EFgQU
yZN6AIX/TNnIJ9GwAa/NRN3ujHAwHwYDVR0jBBgwFoAUXn6CHYzPUqU4JVP8g+OS
WeDYjhcwDgYDVR0PAQH/BAQDAgeAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF
BQcDBDAKBggqhkjOPQQDAgNIADBFAiEA+bFzXRoJ4PCQbhAAtpkcMjt0vNj5rEW0
lOMBGDNyaWkCIB1vmM7PcZzv/c9bIrxF5kqv6QXomouhByUfeNUTbpKW
-----END CERTIFICATE-----
@sinkog
sinkog merged commit 98d4070 into main Aug 3, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant