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>
36 lines
733 B
Ruby
36 lines
733 B
Ruby
# 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
|