#! vim: set filetype=nu: # provctl service management wrapper module # # Provides unified interface for managing provisioning platform services: # - provisioning-orchestrator # - provisioning-control-center # - provisioning-kms-service # - Other platform services # ============================================================================ # Service Management Operations # ============================================================================ # Start a platform service export def provctl-service-start [service_name: string] { if ($service_name | is-empty) { error make { msg: "Service name required" } } log info $"Starting platform service: [$service_name]" let result = (do { ^provctl start $service_name } | complete) if ($result.exit_code == 0) { log info $"Successfully started: [$service_name]" ($result.stdout | str trim) } else { log error $"Failed to start [$service_name]: ($result.stderr)" error make { msg: $"Service start failed: ($result.stderr)" } } } # Stop a platform service export def provctl-service-stop [service_name: string] { if ($service_name | is-empty) { error make { msg: "Service name required" } } log info $"Stopping platform service: [$service_name]" let result = (do { ^provctl stop $service_name } | complete) if ($result.exit_code == 0) { log info $"Successfully stopped: [$service_name]" ($result.stdout | str trim) } else { log error $"Failed to stop [$service_name]: ($result.stderr)" error make { msg: $"Service stop failed: ($result.stderr)" } } } # Restart a platform service export def provctl-service-restart [service_name: string] { if ($service_name | is-empty) { error make { msg: "Service name required" } } log info $"Restarting platform service: [$service_name]" let result = (do { ^provctl restart $service_name } | complete) if ($result.exit_code == 0) { log info $"Successfully restarted: [$service_name]" ($result.stdout | str trim) } else { log error $"Failed to restart [$service_name]: ($result.stderr)" error make { msg: $"Service restart failed: ($result.stderr)" } } } # Get status of a platform service export def provctl-service-status [service_name: string] { if ($service_name | is-empty) { error make { msg: "Service name required" } } log debug $"Getting status for service: [$service_name]" let result = (do { ^provctl status $service_name } | complete) if ($result.exit_code == 0) { ($result.stdout | str trim) } else { log error $"Failed to get status for [$service_name]: ($result.stderr)" error make { msg: $"Service status check failed: ($result.stderr)" } } } # Get logs from a platform service # Arguments: service_name, optional lines (default 50) export def provctl-service-logs [ service_name: string lines?: int ] { if ($service_name | is-empty) { error make { msg: "Service name required" } } let line_count = ($lines // 50) log debug $"Getting logs for service: [$service_name] (retrieving ($line_count) lines)" let result = ( do { ^provctl logs $service_name --lines ($line_count | into string) } | complete ) if ($result.exit_code == 0) { ($result.stdout | str trim) } else { log error $"Failed to get logs for [$service_name]: ($result.stderr)" error make { msg: $"Service logs retrieval failed: ($result.stderr)" } } } # ============================================================================ # Batch Operations # ============================================================================ # Start multiple platform services export def provctl-services-start [services: list] { print "Starting batch of services..." print $services } # Stop multiple platform services export def provctl-services-stop [services: list] { print "Stopping batch of services..." print $services } # Restart multiple platform services export def provctl-services-restart [services: list] { print "Restarting batch of services..." print $services } # ============================================================================ # Utility Functions # ============================================================================ # Get all platform services status export def provctl-all-services-status [] { [ { service: "provisioning-orchestrator" } { service: "provisioning-control-center" } { service: "provisioning-kms-service" } ] | each { |item| log info $"Checking status of [$($item.service)]" $item } } # Show provctl wrapper help export def provctl-help [] { print " ╔══════════════════════════════════════════════════════════════╗ ║ Provisioning Platform Service Management ║ ║ (provctl wrapper) ║ ╚══════════════════════════════════════════════════════════════╝ SINGLE SERVICE OPERATIONS: provctl-service-start - Start a service provctl-service-stop - Stop a service provctl-service-restart - Restart a service provctl-service-status - Get service status provctl-service-logs [n] - Get service logs (default: 50 lines) BATCH OPERATIONS: provctl-services-start - Start multiple services provctl-services-stop - Stop multiple services provctl-services-restart - Restart multiple services UTILITY: provctl-all-services-status - Show status of all platform services provctl-help - Show this help message EXAMPLE USAGE: # Start single service provctl-service-start provisioning-orchestrator # Batch start all platform services let services = [ \"provisioning-orchestrator\" \"provisioning-control-center\" \"provisioning-kms-service\" ] provctl-services-start \$services # Get logs provctl-service-logs provisioning-orchestrator 100 " }