84 lines
2.8 KiB
Plaintext
84 lines
2.8 KiB
Plaintext
# Info: UpCloud provider dependencies for batch provisioning workflows (Provisioning)
|
|
# Author: Claude Code Agent 7
|
|
# Release: 2.0.0
|
|
# Date: 2025-09-25
|
|
import provisioning
|
|
|
|
schema NetworkDependencies:
|
|
"""Network dependency configuration"""
|
|
private_networks_first: bool = True
|
|
public_networks_managed: bool = True
|
|
network_timeout: int = 300
|
|
network_wait: int = 5
|
|
|
|
schema ServerDependencies:
|
|
"""Server dependency configuration"""
|
|
requires: [str] = ["networks", "ssh_keys"]
|
|
batch_size: int = 5
|
|
batch_wait: int = 30
|
|
max_concurrent: int = 3
|
|
creation_timeout: int = 15
|
|
|
|
schema StorageDependencies:
|
|
"""Storage dependency configuration"""
|
|
flexible_timing: bool = True
|
|
attached_requires_server: bool = True
|
|
batch_size: int = 10
|
|
operation_timeout: int = 10
|
|
|
|
schema ApiLimits:
|
|
"""API rate limits and constraints"""
|
|
requests_per_minute: int = 300
|
|
burst_requests: int = 50
|
|
api_call_delay: int = 200
|
|
max_retries: int = 3
|
|
backoff_multiplier: float = 1.5
|
|
|
|
schema SharedResources:
|
|
"""Shared resources configuration"""
|
|
ssh_keys_shared: bool = True
|
|
networks_shared: bool = False
|
|
storage_shared: bool = False
|
|
firewall_shared: bool = True
|
|
|
|
schema Lifecycle:
|
|
"""Resource lifecycle management"""
|
|
safe_delete: [str] = ["servers", "storage", "networks"]
|
|
confirm_delete: [str] = ["ssh_keys", "shared_networks"]
|
|
protected: [str] = ["payment_methods", "account_settings"]
|
|
cleanup_order: [str] = ["loadbalancers", "storage", "servers", "ssh_keys", "security_groups", "networks"]
|
|
|
|
schema CrossProvider:
|
|
"""Cross-provider compatibility"""
|
|
aws_compatible: bool = True
|
|
local_compatible: bool = True
|
|
mixed_deployments: bool = True
|
|
naming_conflicts: [str] = ["default", "main", "primary"]
|
|
|
|
schema Validation:
|
|
"""Validation and health checks"""
|
|
network_connectivity: bool = True
|
|
ssh_key_validation: bool = True
|
|
zone_validation: bool = True
|
|
quota_validation: bool = True
|
|
|
|
schema UpCloudDependencies:
|
|
"""
|
|
UpCloud provider dependency management for batch workflows
|
|
"""
|
|
# Resource creation order and dependencies
|
|
resource_order: [str] = ["networks", "security_groups", "ssh_keys", "servers", "storage", "loadbalancers"]
|
|
|
|
# Configuration sections
|
|
network_dependencies: NetworkDependencies = NetworkDependencies {}
|
|
server_dependencies: ServerDependencies = ServerDependencies {}
|
|
storage_dependencies: StorageDependencies = StorageDependencies {}
|
|
api_limits: ApiLimits = ApiLimits {}
|
|
shared_resources: SharedResources = SharedResources {}
|
|
lifecycle: Lifecycle = Lifecycle {}
|
|
cross_provider: CrossProvider = CrossProvider {}
|
|
validation: Validation = Validation {}
|
|
|
|
# Default dependency configuration for UpCloud provider
|
|
upcloud_dependencies: UpCloudDependencies = UpCloudDependencies {}
|