8460: Merge branch 'master' into 8460-websocket-go
[arvados.git] / services / api / test / unit / node_test.rb
index ef500362d7ba758136bb3c683ebeb0bbaf6475e3..6eb1df56d129f0279c2e86323b865d13fd09817c 100644 (file)
@@ -126,10 +126,30 @@ class NodeTest < ActiveSupport::TestCase
     assert_equal "custom1", node2.hostname
   end
 
-  test "ping node with no hostname and malformed config and expect nil for hostname" do
-    Rails.configuration.assign_node_hostname = 'compute%<slot_number>04'  # should end with "04d"
-    assert_raise ArgumentError do
-      ping_node(:new_with_no_hostname, {})
+  test "update dns when nodemanager clears hostname and ip_address" do
+    act_as_system_user do
+      node = ping_node(:new_with_custom_hostname, {})
+      Node.expects(:dns_server_update).with(node.hostname, Node::UNUSED_NODE_IP)
+      node.update_attributes(hostname: nil, ip_address: nil)
+    end
+  end
+
+  test "update dns when hostname changes" do
+    act_as_system_user do
+      node = ping_node(:new_with_custom_hostname, {})
+
+      Node.expects(:dns_server_update).with(node.hostname, Node::UNUSED_NODE_IP)
+      Node.expects(:dns_server_update).with('foo0', node.ip_address)
+      node.update_attributes!(hostname: 'foo0')
+
+      Node.expects(:dns_server_update).with('foo0', Node::UNUSED_NODE_IP)
+      node.update_attributes!(hostname: nil, ip_address: nil)
+
+      Node.expects(:dns_server_update).with('foo0', '10.11.12.13')
+      node.update_attributes!(hostname: 'foo0', ip_address: '10.11.12.13')
+
+      Node.expects(:dns_server_update).with('foo0', '10.11.12.14')
+      node.update_attributes!(hostname: 'foo0', ip_address: '10.11.12.14')
     end
   end
 end