d
This commit is contained in:
@@ -4,11 +4,13 @@ from datetime import datetime
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from app.core.config import settings
|
||||
from app.core.db import get_db
|
||||
from app.services.ops_job_service import (
|
||||
_execute_control_plane_job,
|
||||
_serialize_job_row,
|
||||
create_ops_job,
|
||||
dispatch_ops_job,
|
||||
list_managed_nodes,
|
||||
upsert_managed_node,
|
||||
)
|
||||
|
||||
@@ -109,6 +111,39 @@ class OpsJobServiceTests(unittest.TestCase):
|
||||
self.assertTrue(job["steps_loaded"])
|
||||
self.assertIn("mainland-worker-02", job["summary_text"])
|
||||
|
||||
def test_upsert_managed_node_supports_ssh_entry_and_secret_flags(self) -> None:
|
||||
node_code = "test-managed-node-secret"
|
||||
ok, message, data = upsert_managed_node(
|
||||
{
|
||||
"node_code": node_code,
|
||||
"region": "mainland",
|
||||
"role": "worker",
|
||||
"ssh_entry": "121.204.244.188 root <demo-password>",
|
||||
"is_enabled": True,
|
||||
}
|
||||
)
|
||||
|
||||
self.assertTrue(ok, message)
|
||||
node = data["node"]
|
||||
self.assertEqual("121.204.244.188", node["ssh_host"])
|
||||
self.assertEqual("root", node["ssh_user"])
|
||||
self.assertEqual(22, node["ssh_port"])
|
||||
self.assertEqual("password", node["auth_mode"])
|
||||
self.assertTrue(node["ssh_password_configured"])
|
||||
|
||||
managed = next(item for item in list_managed_nodes() if item["node_code"] == node_code)
|
||||
self.assertTrue(managed["ssh_password_configured"])
|
||||
|
||||
with get_db() as conn:
|
||||
with conn.cursor() as cur:
|
||||
cur.execute(
|
||||
"SELECT ssh_password FROM ops_managed_node_secrets WHERE node_code = %s",
|
||||
(node_code,),
|
||||
)
|
||||
row = cur.fetchone()
|
||||
self.assertIsNotNone(row)
|
||||
self.assertEqual("demo-password", str(row[0] or ""))
|
||||
|
||||
@patch("app.services.ops_job_service.list_managed_nodes")
|
||||
@patch("app.services.ops_agent_service.build_node_agent_bootstrap_plan")
|
||||
def test_execute_control_plane_bootstrap_uses_managed_node_defaults(
|
||||
@@ -237,7 +272,11 @@ class OpsJobServiceTests(unittest.TestCase):
|
||||
self.assertEqual("keep-me", node["metadata"]["operator_note"])
|
||||
self.assertEqual("online", node["metadata"]["cluster_status"])
|
||||
|
||||
insert_call = cursor.execute.call_args_list[-1]
|
||||
insert_call = next(
|
||||
call
|
||||
for call in cursor.execute.call_args_list
|
||||
if "INSERT INTO ops_managed_nodes" in str(call.args[0])
|
||||
)
|
||||
insert_params = insert_call.args[1]
|
||||
self.assertEqual("121.204.244.248", insert_params[4])
|
||||
self.assertEqual(22, insert_params[5])
|
||||
|
||||
Reference in New Issue
Block a user