Files
cleveragents-core/robot/cloud_resources.robot
freemo c65e8a5285 feat(resource): add cloud infrastructure resources
Implement cloud resource types (aws, gcp, azure) with credential
fields, region/tenant metadata, and stubbed sandbox strategies.
Credential resolution uses environment variables and profile names
with no secrets logged.

Key changes:
- Add CloudResourceHandler with aws/gcp/azure type definitions
- Add credential resolution from env vars and profile names
- Add stubbed sandbox strategies (validate config, raise NotImplementedError)
- Register cloud types in bootstrap_builtin_types
- Credential masking via existing redaction patterns
- Add Behave BDD tests, Robot integration tests, ASV benchmarks

ISSUES CLOSED: #343
2026-03-17 13:14:37 -04:00

82 lines
3.6 KiB
Plaintext

*** Settings ***
Documentation Smoke tests for cloud infrastructure resource handlers
Resource ${CURDIR}/common.resource
Suite Setup Setup Test Environment
Suite Teardown Cleanup Test Environment
*** Variables ***
${HELPER} ${CURDIR}/helper_cloud_resources.py
*** Test Cases ***
Cloud Handler Protocol Conformance
[Documentation] Verify CloudResourceHandler satisfies ResourceHandler
${result}= Run Process ${PYTHON} ${HELPER} protocol-check cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} protocol-check-ok
AWS Credential Resolution From Env Vars
[Documentation] Verify AWS credential resolution from environment variables
${result}= Run Process ${PYTHON} ${HELPER} aws-resolve cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} aws-resolve-ok
GCP Credential Resolution From Env Vars
[Documentation] Verify GCP credential resolution from environment variables
${result}= Run Process ${PYTHON} ${HELPER} gcp-resolve cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} gcp-resolve-ok
Azure Credential Resolution From Env Vars
[Documentation] Verify Azure credential resolution from environment variables
${result}= Run Process ${PYTHON} ${HELPER} azure-resolve cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} azure-resolve-ok
Cloud Handler Stub Raises NotImplementedError
[Documentation] Verify cloud handler resolve raises NotImplementedError for valid config
${result}= Run Process ${PYTHON} ${HELPER} stub-resolve cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} stub-resolve-ok
Cloud Handler Missing Creds Raises ValueError
[Documentation] Verify cloud handler raises ValueError for missing credentials
${result}= Run Process ${PYTHON} ${HELPER} missing-creds cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} missing-creds-ok
Cloud Sandbox Strategy Stubs
[Documentation] Verify cloud sandbox strategy methods raise NotImplementedError
${result}= Run Process ${PYTHON} ${HELPER} sandbox-stubs cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} sandbox-stubs-ok
AWS Profile Resolution
[Documentation] Verify AWS profile name resolves as credential source
${result}= Run Process ${PYTHON} ${HELPER} aws-profile cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} aws-profile-ok
Cloud Builtin Types Registered
[Documentation] Verify cloud hierarchy types are in _BUILTIN_TYPES
${result}= Run Process ${PYTHON} ${HELPER} builtin-types cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} builtin-types-ok