pyvider 2025-01-07
Created the `pyvider_rpcplugin` package implementing HashiCorp's go-plugin
77 files · 5,389+ · 533-

pyvider_rpcplugin Package (`src/pyvider_rpcplugin/`)

77 files changed
  • core.py Updated core.py (+1/-1 lines)
  • base_provider.py Removed base_provider.py (-127 lines)
  • auth.py Updated auth.py (+5/-4 lines)
  • cloud.py Removed cloud.py (-115 lines)
  • injector.py Updated injector.py (+7/-3 lines)
  • foo Updated foo (+0/-0 lines)
  • handler.py Updated handler.py (+1/-1 lines)
  • capabilities.py Updated capabilities.py (+2/-2 lines)
  • components.py Updated components.py (+14/-14 lines)
  • decorators.py Updated decorators.py (+3/-3 lines)
  • terraform_handshake.py Updated terraform_handshake.py (+23/-15 lines)
  • service.py Updated service.py (+2/-6 lines)
  • apply_resource_change.py Updated apply_resource_change.py (+1/-1 lines)
  • get_metadata.py Updated get_metadata.py (+1/-1 lines)
  • get_provider_schema.py Updated get_provider_schema.py (+15/-11 lines)
  • plan_resource_change.py Updated plan_resource_change.py (+1/-1 lines)
  • read_resource_handler.py Updated read_resource_handler.py (+1/-1 lines)
  • upgrade_resource_state.py Updated upgrade_resource_state.py (+1/-1 lines)
  • validate_provider_config.py Updated validate_provider_config.py (+5/-5 lines)
  • validate_resource_config.py Updated validate_resource_config.py (+1/-1 lines)
  • tfplugin6_pb2_grpc.py Updated tfplugin6_pb2_grpc.py (+1/-1 lines)
  • provide.py Updated provide.py (+0/-0 lines)
  • __init__.py Added __init__.py (+2 lines)
  • base.py Updated base.py (+123/-13 lines)
  • config.py Updated config.py (+18/-5 lines)
  • provider.py Updated provider.py (+14/-18 lines)
  • base.py Updated base.py (+9/-9 lines)
  • decorators.py Updated decorators.py (+1/-1 lines)
  • lifecycle.py Updated lifecycle.py (+1/-1 lines)
  • registry.py Updated registry.py (+4/-4 lines)
  • schema.py Updated schema.py (+2/-2 lines)
  • __init__.py Updated __init__.py (+127/-112 lines)
  • grpc_logging.py Updated grpc_logging.py (+1/-1 lines)
  • shutdown.py Updated shutdown.py (+8/-8 lines)
  • __init__.py Updated __init__.py (+3/-3 lines)
  • base.py Updated base.py (+8/-1 lines)
  • formatters.py Updated formatters.py (+17/-3 lines)
  • base.py Removed base.py (-1 lines)
  • decorators.py Updated decorators.py (+30/-9 lines)
  • crypto.py Added crypto.py (+150 lines)
  • dynamic_value.py Updated dynamic_value.py (+2/-2 lines)
  • __init__.py Added __init__.py (+23 lines)
  • client.py Added client.py (+250 lines)
  • exception.py Added exception.py (+20 lines)
  • handshake.py Added handshake.py (+188 lines)
  • protocol.py Added protocol.py (+33 lines)
  • security.py Added security.py (+177 lines)
  • server.py Added server.py (+266 lines)
  • compile_mock_message.sh Added compile_mock_message.sh (+7 lines)
  • conftest.py Added conftest.py (+201 lines)
  • create_test_certs.sh Added create_test_certs.sh (+174 lines)
  • dummy_server.py Added dummy_server.py (+35 lines)
  • mock_message.proto Added mock_message.proto (+6 lines)
  • mock_message_pb2.py Added mock_message_pb2.py (+36 lines)
  • mock_message_pb2_grpc.py Added mock_message_pb2_grpc.py (+24 lines)
  • test_client.py Added test_client.py (+311 lines)
  • test_handshake.py Added test_handshake.py (+147 lines)
  • test_security.py Added test_security.py (+214 lines)
  • test_server.py Added test_server.py (+269 lines)
  • test_transport.py Added test_transport.py (+47 lines)
  • transport.py Added transport.py (+156 lines)
  • utils.py Added utils.py (+19 lines)
  • .gitignore Added .gitignore (+2 lines)
  • fake_cloud.py Updated fake_cloud.py (+3/-3 lines)
  • fake_cloud_auth.py Updated fake_cloud_auth.py (+3/-3 lines)
  • dynamic_config.py Updated dynamic_config.py (+6/-6 lines)
  • file_content.py Updated file_content.py (+12/-12 lines)
  • another-schema-example.md Added another-schema-example.md (+34 lines)
  • chatgpt-2025-01-06-1343-maturity.md Added chatgpt-2025-01-06-1343-maturity.md (+153 lines)
  • grpc-info.txt Added grpc-info.txt (+788 lines)
  • hashicorp-mtls-client-cert.md Added hashicorp-mtls-client-cert.md (+62 lines)
  • notes.md Updated notes.md (+2/-1 lines)
  • tf-core-rpc-api.md Added tf-core-rpc-api.md (+162 lines)
  • env.sh Added env.sh (+15 lines)
  • ugh Added ugh (+151 lines)
  • capabilities.md Removed capabilities.md (-1 lines)
  • grpcplugin.md Added grpcplugin.md (+788 lines)
  • Created client.py (228 lines) implementing the go-plugin client protocol with subprocess management and gRPC channel creation interface internal
    2 files
    • client.py
    • test_client.py
  • Created server.py (264 lines) implementing the go-plugin server with health checking, graceful shutdown, and Unix domain socket support interface internal
    3 files
    • server.py
    • dummy_server.py
    • test_server.py
  • Created handshake.py (188 lines) implementing the go-plugin handshake protocol (magic cookie, version negotiation, address communication via stdout) interface internal
    3 files
    • terraform_handshake.py
    • handshake.py
    • test_handshake.py
  • Created security.py (198 lines) with mTLS support including certificate generation, validation, and gRPC channel credentials interface internal
    2 files
    • security.py
    • test_security.py
  • Created protocol.py (33 lines) defining protocol constants and version negotiation interface internal
    1 file
    • protocol.py
  • Created exception.py (20 lines) with plugin-specific exceptions interface internal
    1 file
    • exception.py

Crypto Utilities

1 file changed
  • crypto.py Updated crypto.py
  • Created src/pyvider/utils/crypto.py (150 lines) with certificate generation, key management, and TLS utilities harden internal
    1 file
    • crypto.py

Telemetry Logger Formatters

1 file changed
  • formatters.py Updated formatters.py
  • Updated src/pyvider/telemetry/logger/formatters.py with logging format improvements decouple errata
    1 file
    • formatters.py

Terraform Handshake

1 file changed
  • terraform_handshake.py Updated terraform_handshake.py
  • Updated src/pyvider/protocols/grpc/terraform_handshake.py with protocol refinements interface internal
    1 file
    • terraform_handshake.py