src/dlw/marvin_ops.py aktualisiert

This commit is contained in:
Kim Diallo 2026-01-03 02:31:18 +01:00
parent 1fc53588da
commit fef09ead53
1 changed files with 10 additions and 23 deletions

View File

@ -1,28 +1,15 @@
import requests
import os
class MarvinClient:
def __init__(self, api_key, asteroid_name):
self.api_key = api_key
self.asteroid = asteroid_name
def __init__(self):
self.api_key = os.getenv('MARVIN_API_KEY')
self.asteroid = os.getenv('UBERSPACE_ASTEROID')
self.base_url = "https://api.uberspace.de/api/v1/external"
self.headers = {"Authorization": f"Api-Key {api_key}"}
self.headers = {"Authorization": f"Api-Key {self.api_key}"}
def setup_webapp_backend(self, port):
"""Registriert das Flask-Interface in der Marvin API."""
url = f"{self.base_url}/asteroids/{self.asteroid}/webbackends/"
data = {
"asteroid": self.asteroid,
"domain": None,
"path": "/admin", # Optionaler Pfad für das Interface
"destination": "PORT",
"port": port
}
res = requests.post(url, headers=self.headers, json=data)
return res.status_code in [201, 200]
def add_domain(self, domain_name):
"""Fügt eine neue Web-Domain hinzu."""
url = f"{self.base_url}/asteroids/{self.asteroid}/webdomains/"
data = {"name": domain_name, "asteroid": self.asteroid}
res = requests.post(url, headers=self.headers, json=data)
return res.json()
def get_status(self):
"""Beispiel: Abfrage des Asteroid-Status."""
url = f"{self.base_url}/asteroids/{self.asteroid}"
res = requests.get(url, headers=self.headers)
return res.json() if res.status_code == 200 else None