Aggiunge registry nodi stream e provisioning Hetzner/lab per lo scale-out.
Prepara l'architettura multi-nodo (MediaMTX+ffmpeg) con assignment URL per sessione, admin di provision/drain e provider Cloud/DNS astratti verso mltv-stream.net. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Streams
|
||||
module CloudProviders
|
||||
class Error < StandardError; end
|
||||
|
||||
# Descrittore restituito da create_node / list.
|
||||
Instance = Struct.new(
|
||||
:id, :name, :public_ip, :private_ip, :status, :raw,
|
||||
keyword_init: true
|
||||
)
|
||||
|
||||
class Base
|
||||
def create_node(name:, labels: {})
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
def destroy_node(instance_id)
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
def list_nodes(labels: {})
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
def wait_until_running(instance_id, timeout: 120)
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
def public_ip(instance_id)
|
||||
raise NotImplementedError
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user