API: Added test for inspect_flake
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
import argparse
|
import argparse
|
||||||
|
import logging
|
||||||
import os
|
import os
|
||||||
import shlex
|
import shlex
|
||||||
import subprocess
|
import subprocess
|
||||||
@@ -9,6 +10,8 @@ from clan_cli.errors import ClanError
|
|||||||
from ..dirs import get_clan_flake_toplevel, module_root
|
from ..dirs import get_clan_flake_toplevel, module_root
|
||||||
from ..nix import nix_build, nix_config
|
from ..nix import nix_build, nix_config
|
||||||
|
|
||||||
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def build_generate_script(machine: str, clan_dir: Path) -> str:
|
def build_generate_script(machine: str, clan_dir: Path) -> str:
|
||||||
config = nix_config()
|
config = nix_config()
|
||||||
@@ -39,6 +42,8 @@ def run_generate_secrets(secret_generator_script: str, clan_dir: Path) -> None:
|
|||||||
)
|
)
|
||||||
|
|
||||||
if proc.returncode != 0:
|
if proc.returncode != 0:
|
||||||
|
log.error("stdout: %s", proc.stdout)
|
||||||
|
log.error("stderr: %s", proc.stderr)
|
||||||
raise ClanError("failed to generate secrets")
|
raise ClanError("failed to generate secrets")
|
||||||
else:
|
else:
|
||||||
print("successfully generated secrets")
|
print("successfully generated secrets")
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import argparse
|
import argparse
|
||||||
import json
|
import json
|
||||||
|
import logging
|
||||||
import os
|
import os
|
||||||
import shlex
|
import shlex
|
||||||
import subprocess
|
import subprocess
|
||||||
@@ -11,6 +12,8 @@ from ..errors import ClanError
|
|||||||
from ..nix import nix_build, nix_config, nix_shell
|
from ..nix import nix_build, nix_config, nix_shell
|
||||||
from ..ssh import parse_deployment_address
|
from ..ssh import parse_deployment_address
|
||||||
|
|
||||||
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def build_upload_script(machine: str, clan_dir: Path) -> str:
|
def build_upload_script(machine: str, clan_dir: Path) -> str:
|
||||||
config = nix_config()
|
config = nix_config()
|
||||||
@@ -67,6 +70,8 @@ def run_upload_secrets(
|
|||||||
)
|
)
|
||||||
|
|
||||||
if proc.returncode != 0:
|
if proc.returncode != 0:
|
||||||
|
log.error("Stdout: %s", proc.stdout)
|
||||||
|
log.error("Stderr: %s", proc.stderr)
|
||||||
raise ClanError("failed to upload secrets")
|
raise ClanError("failed to upload secrets")
|
||||||
|
|
||||||
h = parse_deployment_address(flake_attr, target)
|
h = parse_deployment_address(flake_attr, target)
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
import json
|
||||||
import pytest
|
import pytest
|
||||||
from api import TestClient
|
from api import TestClient
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.impure
|
@pytest.mark.impure
|
||||||
def test_inspect(api: TestClient, test_flake_with_core: Path) -> None:
|
def test_inspect_attrs(api: TestClient, test_flake_with_core: Path) -> None:
|
||||||
params = {"url": str(test_flake_with_core)}
|
params = {"url": str(test_flake_with_core)}
|
||||||
response = api.get(
|
response = api.get(
|
||||||
"/api/flake/attrs",
|
"/api/flake/attrs",
|
||||||
@@ -15,3 +15,24 @@ def test_inspect(api: TestClient, test_flake_with_core: Path) -> None:
|
|||||||
data = response.json()
|
data = response.json()
|
||||||
print("Data: ", data)
|
print("Data: ", data)
|
||||||
assert data.get("flake_attrs") == ["vm1"]
|
assert data.get("flake_attrs") == ["vm1"]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.impure
|
||||||
|
def test_inspect_flake(api: TestClient, test_flake_with_core: Path) -> None:
|
||||||
|
params = {"url": str(test_flake_with_core)}
|
||||||
|
response = api.get(
|
||||||
|
"/api/flake",
|
||||||
|
params=params,
|
||||||
|
)
|
||||||
|
assert response.status_code == 200, "Failed to inspect vm"
|
||||||
|
data = response.json()
|
||||||
|
print("Data: ", json.dumps(data, indent=2))
|
||||||
|
assert data.get("content") is not None
|
||||||
|
actions = data.get("actions")
|
||||||
|
assert actions is not None
|
||||||
|
assert len(actions) == 2
|
||||||
|
assert actions[0].get("id") == "vms/inspect"
|
||||||
|
assert actions[0].get("uri") == "api/vms/inspect"
|
||||||
|
assert actions[1].get("id") == "vms/create"
|
||||||
|
assert actions[1].get("uri") == "api/vms/create"
|
||||||
Reference in New Issue
Block a user