From 0015a69cd0253631224a8d7651dbeca2af74eba0 Mon Sep 17 00:00:00 2001 From: Phillip Davis Date: Wed, 8 Oct 2025 14:14:33 -0400 Subject: [PATCH] mark test instances as such --- forms/snikket_launch.rb | 6 ++++++ lib/snikket.rb | 12 +++++++++++- sgx_jmp.rb | 3 ++- test/test_snikket.rb | 8 ++++++++ 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/forms/snikket_launch.rb b/forms/snikket_launch.rb index 6989cccb5957e555339522946614d308f6b9f79a..20489f016816171e522c52e9d974c0b06c36d958 100644 --- a/forms/snikket_launch.rb +++ b/forms/snikket_launch.rb @@ -7,3 +7,9 @@ field( label: "Domain for Instance", type: "text-single" ) + +field( + var: "test_instance", + label: "Is this a test instance?", + type: "boolean" +) diff --git a/lib/snikket.rb b/lib/snikket.rb index 05cde182906414173a01255855a389742d27fcc8..bcd3a60cb1e01311e748c4ac9c94282d116a8f00 100644 --- a/lib/snikket.rb +++ b/lib/snikket.rb @@ -12,7 +12,7 @@ module Snikket def self.new( type=nil, to=nil, id=nil, - domain: nil, region: nil, av_region: "na" + domain: nil, region: nil, test_instance: false, av_region: "na" ) stanza = super(type || :set, to, id) node = Nokogiri::XML::Node.new("launch", stanza.document) @@ -21,6 +21,7 @@ module Snikket stanza.domain = domain if domain stanza.region = region if region stanza.av_region = av_region if av_region + stanza.test_instance = test_instance stanza end @@ -51,6 +52,15 @@ module Snikket def query at_xpath("./ns:launch", ns: self.class.registered_ns) end + + def test_instance=(enabled) + query.at_xpath("./ns:test-instance", ns: self.class.registered_ns)&.remove + return unless enabled + + node = Nokogiri::XML::Node.new("test-instance", document) + node.default_namespace = self.class.registered_ns + query << node + end end class Launched < Blather::Stanza::Iq diff --git a/sgx_jmp.rb b/sgx_jmp.rb index 1ecaa57f1b0366f788672e0bbe4854f28332ee7d..fc2cc27f97c7e57f0d33cdfe0fcd3c8d8d2d4ec6 100644 --- a/sgx_jmp.rb +++ b/sgx_jmp.rb @@ -955,9 +955,10 @@ Command.new( reply.command << FormTemplate.render("snikket_launch") }.then { |response| domain = response.form.field("domain").value.to_s + test_instance = response.field("test_instance")&.value.to_s IQ_MANAGER.write(Snikket::Launch.new( nil, CONFIG[:snikket_hosting_api], - domain: domain + domain: domain, test_instance: test_instance )).then do |launched| Snikket::CustomerInstance.for(customer, domain, launched) end diff --git a/test/test_snikket.rb b/test/test_snikket.rb index 8ea5df2c1bfc7105cf8429a40203f8e6b7023f94..f1f48e57a1cff634cf8249ebd9fa670312577408 100644 --- a/test/test_snikket.rb +++ b/test/test_snikket.rb @@ -14,6 +14,14 @@ class TestSnikket < Minitest::Test "example.com", launch.query.at_xpath("./ns:domain", ns: NS).content ) + assert_nil launch.query.at_xpath("./ns:test-instance", ns: NS) + end + + def test_launch_test_instance + launch = Snikket::Launch.new( + domain: "jmp-test-example.com", test_instance: true + ) + refute_nil launch.query.at_xpath("./ns:test-instance", ns: NS) end def test_launched