diff --git a/scripts/smoke/seed-abcip-smoke.sql b/scripts/smoke/seed-abcip-smoke.sql index f9c9e4d..14028cb 100644 --- a/scripts/smoke/seed-abcip-smoke.sql +++ b/scripts/smoke/seed-abcip-smoke.sql @@ -47,12 +47,14 @@ DELETE FROM dbo.ClusterNodeGenerationState WHERE NodeId = @NodeId; DELETE FROM dbo.ClusterNode WHERE NodeId = @NodeId; DELETE FROM dbo.ServerCluster WHERE ClusterId = @ClusterId; +DELETE FROM dbo.ClusterNodeCredential WHERE Kind = 'SqlLogin' AND Value = 'sa'; + INSERT dbo.ServerCluster(ClusterId, Name, Enterprise, Site, NodeCount, RedundancyMode, Enabled, CreatedBy) VALUES (@ClusterId, 'AB CIP Smoke', 'zb', 'lab', 1, 'None', 1, 'abcip-smoke'); INSERT dbo.ClusterNode(NodeId, ClusterId, RedundancyRole, Host, OpcUaPort, DashboardPort, ApplicationUri, ServiceLevelBase, Enabled, CreatedBy) -VALUES (@NodeId, @ClusterId, 'Primary', 'localhost', 4840, 5000, +VALUES (@NodeId, @ClusterId, 'Primary', 'localhost', 4840, 15050, 'urn:OtOpcUa:abcip-smoke-node', 200, 1, 'abcip-smoke'); INSERT dbo.ClusterNodeCredential(NodeId, Kind, Value, Enabled, CreatedBy) diff --git a/scripts/smoke/seed-ablegacy-smoke.sql b/scripts/smoke/seed-ablegacy-smoke.sql index 1da13d1..2ce007f 100644 --- a/scripts/smoke/seed-ablegacy-smoke.sql +++ b/scripts/smoke/seed-ablegacy-smoke.sql @@ -44,12 +44,14 @@ DELETE FROM dbo.ClusterNodeGenerationState WHERE NodeId = @NodeId; DELETE FROM dbo.ClusterNode WHERE NodeId = @NodeId; DELETE FROM dbo.ServerCluster WHERE ClusterId = @ClusterId; +DELETE FROM dbo.ClusterNodeCredential WHERE Kind = 'SqlLogin' AND Value = 'sa'; + INSERT dbo.ServerCluster(ClusterId, Name, Enterprise, Site, NodeCount, RedundancyMode, Enabled, CreatedBy) VALUES (@ClusterId, 'AB Legacy Smoke', 'zb', 'lab', 1, 'None', 1, 'ablegacy-smoke'); INSERT dbo.ClusterNode(NodeId, ClusterId, RedundancyRole, Host, OpcUaPort, DashboardPort, ApplicationUri, ServiceLevelBase, Enabled, CreatedBy) -VALUES (@NodeId, @ClusterId, 'Primary', 'localhost', 4840, 5000, +VALUES (@NodeId, @ClusterId, 'Primary', 'localhost', 4840, 15050, 'urn:OtOpcUa:ablegacy-smoke-node', 200, 1, 'ablegacy-smoke'); INSERT dbo.ClusterNodeCredential(NodeId, Kind, Value, Enabled, CreatedBy) diff --git a/scripts/smoke/seed-modbus-smoke.sql b/scripts/smoke/seed-modbus-smoke.sql index a2be86d..dcaa91c 100644 --- a/scripts/smoke/seed-modbus-smoke.sql +++ b/scripts/smoke/seed-modbus-smoke.sql @@ -56,13 +56,22 @@ DELETE FROM dbo.ClusterNodeGenerationState WHERE NodeId = @NodeId; DELETE FROM dbo.ClusterNode WHERE NodeId = @NodeId; DELETE FROM dbo.ServerCluster WHERE ClusterId = @ClusterId; +-- `UX_ClusterNodeCredential_Value` is a unique index on (Kind, Value) WHERE +-- Enabled=1, so a `sa` login can only bind to one node at a time. Drop any +-- prior smoke cluster's binding before we claim the login for this one. +DELETE FROM dbo.ClusterNodeCredential WHERE Kind = 'SqlLogin' AND Value = 'sa'; + -- 1. Cluster + Node. INSERT dbo.ServerCluster(ClusterId, Name, Enterprise, Site, NodeCount, RedundancyMode, Enabled, CreatedBy) VALUES (@ClusterId, 'Modbus Smoke', 'zb', 'lab', 1, 'None', 1, 'modbus-smoke'); +-- DashboardPort 15050 rather than 5000 — HttpListener on :5000 requires +-- URL-ACL reservation or admin rights on Windows (HttpListenerException 32). +-- 15000+ ports are unreserved by default. Safe to change back when deploying +-- with a netsh urlacl grant or reverse-proxy fronting :5000. INSERT dbo.ClusterNode(NodeId, ClusterId, RedundancyRole, Host, OpcUaPort, DashboardPort, ApplicationUri, ServiceLevelBase, Enabled, CreatedBy) -VALUES (@NodeId, @ClusterId, 'Primary', 'localhost', 4840, 5000, +VALUES (@NodeId, @ClusterId, 'Primary', 'localhost', 4840, 15050, 'urn:OtOpcUa:modbus-smoke-node', 200, 1, 'modbus-smoke'); -- Bind the SQL login this smoke test connects as to the node identity. The diff --git a/scripts/smoke/seed-s7-smoke.sql b/scripts/smoke/seed-s7-smoke.sql index 6a0e723..98868ee 100644 --- a/scripts/smoke/seed-s7-smoke.sql +++ b/scripts/smoke/seed-s7-smoke.sql @@ -48,13 +48,16 @@ DELETE FROM dbo.ClusterNodeGenerationState WHERE NodeId = @NodeId; DELETE FROM dbo.ClusterNode WHERE NodeId = @NodeId; DELETE FROM dbo.ServerCluster WHERE ClusterId = @ClusterId; +DELETE FROM dbo.ClusterNodeCredential WHERE Kind = 'SqlLogin' AND Value = 'sa'; + INSERT dbo.ServerCluster(ClusterId, Name, Enterprise, Site, NodeCount, RedundancyMode, Enabled, CreatedBy) VALUES (@ClusterId, 'S7 Smoke', 'zb', 'lab', 1, 'None', 1, 's7-smoke'); INSERT dbo.ClusterNode(NodeId, ClusterId, RedundancyRole, Host, OpcUaPort, DashboardPort, ApplicationUri, ServiceLevelBase, Enabled, CreatedBy) -VALUES (@NodeId, @ClusterId, 'Primary', 'localhost', 4840, 5000, +VALUES (@NodeId, @ClusterId, 'Primary', 'localhost', 4840, 15050, 'urn:OtOpcUa:s7-smoke-node', 200, 1, 's7-smoke'); +-- Dashboard moved off :5000 (Windows URL-ACL). INSERT dbo.ClusterNodeCredential(NodeId, Kind, Value, Enabled, CreatedBy) VALUES (@NodeId, 'SqlLogin', 'sa', 1, 's7-smoke');